mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-06 20:45:54 +01:00
manual bring-over of relay changes for invite support
This commit is contained in:
parent
9c7213e42b
commit
67f4e4475c
3 changed files with 28 additions and 6 deletions
|
@ -902,6 +902,19 @@ DBMgr::readArray( const char* const connName, const char* column, int arr[] ) /
|
||||||
PQclear( result );
|
PQclear( result );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parse something created by comms.c's formatRelayID
|
||||||
|
DevIDRelay
|
||||||
|
DBMgr::getDevID( string& relayID )
|
||||||
|
{
|
||||||
|
size_t pos = relayID.find_first_of( '/' );
|
||||||
|
string connName = relayID.substr( 0, pos );
|
||||||
|
int hid = relayID[pos + 1] - '0';
|
||||||
|
DevIDRelay result = getDevID( connName.c_str(), hid );
|
||||||
|
// Not an error. Remove or downlog when confirm working
|
||||||
|
logf( XW_LOGERROR, "%s(%s) => %d", __func__, relayID.c_str(), result );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
DevIDRelay
|
DevIDRelay
|
||||||
DBMgr::getDevID( const char* connName, int hid )
|
DBMgr::getDevID( const char* connName, int hid )
|
||||||
{
|
{
|
||||||
|
|
|
@ -148,6 +148,8 @@ class DBMgr {
|
||||||
void RemoveStoredMessage( const int msgID );
|
void RemoveStoredMessage( const int msgID );
|
||||||
void RemoveStoredMessages( vector<int>& ids );
|
void RemoveStoredMessages( vector<int>& ids );
|
||||||
|
|
||||||
|
DevIDRelay getDevID( string& relayID );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DBMgr();
|
DBMgr();
|
||||||
bool execSql( const string& query );
|
bool execSql( const string& query );
|
||||||
|
|
|
@ -1780,16 +1780,23 @@ handle_udp_packet( UdpThreadClosure* utc )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case XWPDEV_INVITE:
|
case XWPDEV_INVITE: {
|
||||||
DevIDRelay sender;
|
DevIDRelay sender;
|
||||||
DevIDRelay invitee;
|
string relayID;
|
||||||
if ( getNetLong( &ptr, end, &sender )
|
if ( getNetLong( &ptr, end, &sender )
|
||||||
&& getNetLong( &ptr, end, &invitee) ) {
|
&& getNetString( &ptr, end, relayID ) ) {
|
||||||
|
DevIDRelay invitee;
|
||||||
|
if ( 0 < relayID.size() ) {
|
||||||
|
invitee = DBMgr::Get()->getDevID( relayID );
|
||||||
|
} else if ( !getNetLong( &ptr, end, &invitee ) ) {
|
||||||
|
break; // failure
|
||||||
|
}
|
||||||
logf( XW_LOGVERBOSE0, "got invite from %d for %d",
|
logf( XW_LOGVERBOSE0, "got invite from %d for %d",
|
||||||
sender, invitee );
|
sender, invitee );
|
||||||
post_invite( sender, invitee, ptr, end - ptr );
|
post_invite( sender, invitee, ptr, end - ptr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case XWPDEV_KEEPALIVE:
|
case XWPDEV_KEEPALIVE:
|
||||||
case XWPDEV_RQSTMSGS: {
|
case XWPDEV_RQSTMSGS: {
|
||||||
|
|
Loading…
Add table
Reference in a new issue