mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-07 20:46:17 +01:00
don't pass relayDevID unless inviting using relay
And do some cleanup to make things more clear
This commit is contained in:
parent
90903c24da
commit
68890cdf86
4 changed files with 29 additions and 29 deletions
|
@ -85,7 +85,7 @@ static void handle_invite_button( GtkWidget* widget, GtkGameGlobals* globals );
|
|||
static void gtkShowFinalScores( const GtkGameGlobals* globals,
|
||||
XP_Bool ignoreTimeout );
|
||||
static void send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
|
||||
XP_U32 devID, const XP_UCHAR* relayID,
|
||||
XP_U32 relayDevID, const XP_UCHAR* relayID,
|
||||
const CommsAddrRec* addrs );
|
||||
|
||||
|
||||
|
@ -1556,18 +1556,19 @@ handle_invite_button( GtkWidget* XP_UNUSED(widget), GtkGameGlobals* globals )
|
|||
|
||||
CommsAddrRec inviteAddr = {0};
|
||||
gint nPlayers = nMissing;
|
||||
XP_U32 devID;
|
||||
XP_Bool confirmed = gtkInviteDlg( globals, &inviteAddr, &nPlayers, &devID );
|
||||
XP_U32 relayDevID = 0;
|
||||
XP_Bool confirmed = gtkInviteDlg( globals, &inviteAddr, &nPlayers,
|
||||
&relayDevID );
|
||||
XP_LOGF( "%s: inviteDlg => %d", __func__, confirmed );
|
||||
|
||||
if ( confirmed ) {
|
||||
send_invites( cGlobals, nPlayers, devID, NULL, &inviteAddr );
|
||||
send_invites( cGlobals, nPlayers, relayDevID, NULL, &inviteAddr );
|
||||
}
|
||||
} /* handle_invite_button */
|
||||
|
||||
static void
|
||||
send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
|
||||
XP_U32 devID, const XP_UCHAR* relayID,
|
||||
XP_U32 relayDevID, const XP_UCHAR* relayID,
|
||||
const CommsAddrRec* addrs )
|
||||
{
|
||||
CommsAddrRec addr = {0};
|
||||
|
@ -1579,10 +1580,12 @@ send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
|
|||
|
||||
NetLaunchInfo nli = {0};
|
||||
nli_init( &nli, cGlobals->gi, &addr, nPlayers, forceChannel );
|
||||
XP_UCHAR buf[32];
|
||||
snprintf( buf, sizeof(buf), "%X", makeRandomInt() );
|
||||
nli_setInviteID( &nli, buf );
|
||||
nli_setDevID( &nli, linux_getDevIDRelay( cGlobals->params ) );
|
||||
if ( 0 != relayDevID || !!relayID ) {
|
||||
XP_UCHAR buf[32];
|
||||
snprintf( buf, sizeof(buf), "%X", makeRandomInt() );
|
||||
nli_setInviteID( &nli, buf );
|
||||
}
|
||||
// nli_setDevID( &nli, linux_getDevIDRelay( cGlobals->params ) );
|
||||
|
||||
#ifdef DEBUG
|
||||
{
|
||||
|
@ -1603,9 +1606,9 @@ send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
|
|||
linux_sms_invite( cGlobals->params, &nli,
|
||||
addrs->u.sms.phone, addrs->u.sms.port );
|
||||
}
|
||||
if ( 0 != devID || !!relayID ) {
|
||||
XP_ASSERT( 0 != devID || (!!relayID && !!relayID[0]) );
|
||||
relaycon_invite( cGlobals->params, devID, relayID, &nli );
|
||||
if ( 0 != relayDevID || !!relayID ) {
|
||||
XP_ASSERT( 0 != relayDevID || (!!relayID && !!relayID[0]) );
|
||||
relaycon_invite( cGlobals->params, relayDevID, relayID, &nli );
|
||||
}
|
||||
|
||||
/* while ( gtkaskm( "Invite how many and how?", infos, VSIZE(infos) ) ) { */
|
||||
|
|
|
@ -38,7 +38,7 @@ typedef struct _GtkInviteState {
|
|||
GtkGameGlobals* globals;
|
||||
CommsAddrRec* addr;
|
||||
gint* nPlayersP;
|
||||
XP_U32* devIDp;
|
||||
XP_U32* relayDevIDp;
|
||||
gint maxPlayers;
|
||||
|
||||
GtkWidget* nPlayersCombo;
|
||||
|
@ -96,7 +96,7 @@ handle_ok( GtkWidget* XP_UNUSED(widget), gpointer closure )
|
|||
case COMMS_CONN_RELAY:
|
||||
txt = gtk_entry_get_text( GTK_ENTRY(state->devID) );
|
||||
snprintf( s_devIDBuf, sizeof(s_devIDBuf), "%s", txt );
|
||||
*state->devIDp = atoi( txt );
|
||||
*state->relayDevIDp = atoi( txt );
|
||||
break;
|
||||
#endif
|
||||
#ifdef XWFEATURE_BLUETOOTH
|
||||
|
@ -275,18 +275,15 @@ onPageChanged( GtkNotebook* XP_UNUSED(notebook), gpointer XP_UNUSED(arg1),
|
|||
|
||||
XP_Bool
|
||||
gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr,
|
||||
gint* nPlayersP, XP_U32* devIDp )
|
||||
|
||||
|
||||
gint* nPlayersP, XP_U32* relayDevIDp )
|
||||
{
|
||||
GtkInviteState state;
|
||||
XP_MEMSET( &state, 0, sizeof(state) );
|
||||
|
||||
state.globals = globals;
|
||||
state.addr = addr;
|
||||
state.nPlayersP = nPlayersP;
|
||||
state.devIDp = devIDp;
|
||||
state.maxPlayers = *nPlayersP;
|
||||
GtkInviteState state = {
|
||||
.globals = globals,
|
||||
.addr = addr,
|
||||
.nPlayersP = nPlayersP,
|
||||
.relayDevIDp = relayDevIDp,
|
||||
.maxPlayers = *nPlayersP,
|
||||
};
|
||||
|
||||
GtkWidget* dialog;
|
||||
GtkWidget* hbox;
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
/* return true if not cancelled */
|
||||
XP_Bool gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr,
|
||||
/*inout*/ gint* nPlayers, /* out */ XP_U32* devID );
|
||||
/*inout*/ gint* nPlayers, /* out */ XP_U32* relayDevID );
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@ relaycon_reg( LaunchParams* params, const XP_UCHAR* rDevID,
|
|||
}
|
||||
|
||||
void
|
||||
relaycon_invite( LaunchParams* params, XP_U32 destDevID,
|
||||
relaycon_invite( LaunchParams* params, XP_U32 destRelayDevID,
|
||||
const XP_UCHAR* relayID, NetLaunchInfo* invit )
|
||||
{
|
||||
XP_U8 tmpbuf[256];
|
||||
|
@ -326,13 +326,13 @@ relaycon_invite( LaunchParams* params, XP_U32 destDevID,
|
|||
|
||||
/* write relayID <connname>/<hid>, or if we have an actual devID write a
|
||||
null byte plus it. */
|
||||
if ( 0 == destDevID ) {
|
||||
if ( 0 == destRelayDevID ) {
|
||||
XP_ASSERT( '\0' != relayID[0] );
|
||||
indx += writeBytes( &tmpbuf[indx], sizeof(tmpbuf) - indx,
|
||||
(XP_U8*)relayID, 1 + XP_STRLEN( relayID ) );
|
||||
} else {
|
||||
tmpbuf[indx++] = '\0'; /* null byte: zero-len str */
|
||||
indx += writeLong( &tmpbuf[indx], sizeof(tmpbuf) - indx, destDevID );
|
||||
indx += writeLong( &tmpbuf[indx], sizeof(tmpbuf) - indx, destRelayDevID );
|
||||
}
|
||||
|
||||
XWStreamCtxt* stream = mem_stream_make_raw( MPPARM(params->mpool)
|
||||
|
|
Loading…
Add table
Reference in a new issue