don't pass relayDevID unless inviting using relay

And do some cleanup to make things more clear
This commit is contained in:
Eric House 2020-01-08 11:12:12 -08:00
parent 90903c24da
commit 68890cdf86
4 changed files with 29 additions and 29 deletions

View file

@ -85,7 +85,7 @@ static void handle_invite_button( GtkWidget* widget, GtkGameGlobals* globals );
static void gtkShowFinalScores( const GtkGameGlobals* globals, static void gtkShowFinalScores( const GtkGameGlobals* globals,
XP_Bool ignoreTimeout ); XP_Bool ignoreTimeout );
static void send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers, 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 ); const CommsAddrRec* addrs );
@ -1556,18 +1556,19 @@ handle_invite_button( GtkWidget* XP_UNUSED(widget), GtkGameGlobals* globals )
CommsAddrRec inviteAddr = {0}; CommsAddrRec inviteAddr = {0};
gint nPlayers = nMissing; gint nPlayers = nMissing;
XP_U32 devID; XP_U32 relayDevID = 0;
XP_Bool confirmed = gtkInviteDlg( globals, &inviteAddr, &nPlayers, &devID ); XP_Bool confirmed = gtkInviteDlg( globals, &inviteAddr, &nPlayers,
&relayDevID );
XP_LOGF( "%s: inviteDlg => %d", __func__, confirmed ); XP_LOGF( "%s: inviteDlg => %d", __func__, confirmed );
if ( confirmed ) { if ( confirmed ) {
send_invites( cGlobals, nPlayers, devID, NULL, &inviteAddr ); send_invites( cGlobals, nPlayers, relayDevID, NULL, &inviteAddr );
} }
} /* handle_invite_button */ } /* handle_invite_button */
static void static void
send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers, send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
XP_U32 devID, const XP_UCHAR* relayID, XP_U32 relayDevID, const XP_UCHAR* relayID,
const CommsAddrRec* addrs ) const CommsAddrRec* addrs )
{ {
CommsAddrRec addr = {0}; CommsAddrRec addr = {0};
@ -1579,10 +1580,12 @@ send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
NetLaunchInfo nli = {0}; NetLaunchInfo nli = {0};
nli_init( &nli, cGlobals->gi, &addr, nPlayers, forceChannel ); nli_init( &nli, cGlobals->gi, &addr, nPlayers, forceChannel );
XP_UCHAR buf[32]; if ( 0 != relayDevID || !!relayID ) {
snprintf( buf, sizeof(buf), "%X", makeRandomInt() ); XP_UCHAR buf[32];
nli_setInviteID( &nli, buf ); snprintf( buf, sizeof(buf), "%X", makeRandomInt() );
nli_setDevID( &nli, linux_getDevIDRelay( cGlobals->params ) ); nli_setInviteID( &nli, buf );
}
// nli_setDevID( &nli, linux_getDevIDRelay( cGlobals->params ) );
#ifdef DEBUG #ifdef DEBUG
{ {
@ -1603,9 +1606,9 @@ send_invites( CommonGlobals* cGlobals, XP_U16 nPlayers,
linux_sms_invite( cGlobals->params, &nli, linux_sms_invite( cGlobals->params, &nli,
addrs->u.sms.phone, addrs->u.sms.port ); addrs->u.sms.phone, addrs->u.sms.port );
} }
if ( 0 != devID || !!relayID ) { if ( 0 != relayDevID || !!relayID ) {
XP_ASSERT( 0 != devID || (!!relayID && !!relayID[0]) ); XP_ASSERT( 0 != relayDevID || (!!relayID && !!relayID[0]) );
relaycon_invite( cGlobals->params, devID, relayID, &nli ); relaycon_invite( cGlobals->params, relayDevID, relayID, &nli );
} }
/* while ( gtkaskm( "Invite how many and how?", infos, VSIZE(infos) ) ) { */ /* while ( gtkaskm( "Invite how many and how?", infos, VSIZE(infos) ) ) { */

View file

@ -38,7 +38,7 @@ typedef struct _GtkInviteState {
GtkGameGlobals* globals; GtkGameGlobals* globals;
CommsAddrRec* addr; CommsAddrRec* addr;
gint* nPlayersP; gint* nPlayersP;
XP_U32* devIDp; XP_U32* relayDevIDp;
gint maxPlayers; gint maxPlayers;
GtkWidget* nPlayersCombo; GtkWidget* nPlayersCombo;
@ -96,7 +96,7 @@ handle_ok( GtkWidget* XP_UNUSED(widget), gpointer closure )
case COMMS_CONN_RELAY: case COMMS_CONN_RELAY:
txt = gtk_entry_get_text( GTK_ENTRY(state->devID) ); txt = gtk_entry_get_text( GTK_ENTRY(state->devID) );
snprintf( s_devIDBuf, sizeof(s_devIDBuf), "%s", txt ); snprintf( s_devIDBuf, sizeof(s_devIDBuf), "%s", txt );
*state->devIDp = atoi( txt ); *state->relayDevIDp = atoi( txt );
break; break;
#endif #endif
#ifdef XWFEATURE_BLUETOOTH #ifdef XWFEATURE_BLUETOOTH
@ -275,18 +275,15 @@ onPageChanged( GtkNotebook* XP_UNUSED(notebook), gpointer XP_UNUSED(arg1),
XP_Bool XP_Bool
gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr, gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr,
gint* nPlayersP, XP_U32* devIDp ) gint* nPlayersP, XP_U32* relayDevIDp )
{ {
GtkInviteState state; GtkInviteState state = {
XP_MEMSET( &state, 0, sizeof(state) ); .globals = globals,
.addr = addr,
state.globals = globals; .nPlayersP = nPlayersP,
state.addr = addr; .relayDevIDp = relayDevIDp,
state.nPlayersP = nPlayersP; .maxPlayers = *nPlayersP,
state.devIDp = devIDp; };
state.maxPlayers = *nPlayersP;
GtkWidget* dialog; GtkWidget* dialog;
GtkWidget* hbox; GtkWidget* hbox;

View file

@ -24,7 +24,7 @@
/* return true if not cancelled */ /* return true if not cancelled */
XP_Bool gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr, XP_Bool gtkInviteDlg( GtkGameGlobals* globals, CommsAddrRec* addr,
/*inout*/ gint* nPlayers, /* out */ XP_U32* devID ); /*inout*/ gint* nPlayers, /* out */ XP_U32* relayDevID );
#endif #endif

View file

@ -313,7 +313,7 @@ relaycon_reg( LaunchParams* params, const XP_UCHAR* rDevID,
} }
void void
relaycon_invite( LaunchParams* params, XP_U32 destDevID, relaycon_invite( LaunchParams* params, XP_U32 destRelayDevID,
const XP_UCHAR* relayID, NetLaunchInfo* invit ) const XP_UCHAR* relayID, NetLaunchInfo* invit )
{ {
XP_U8 tmpbuf[256]; 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 /* write relayID <connname>/<hid>, or if we have an actual devID write a
null byte plus it. */ null byte plus it. */
if ( 0 == destDevID ) { if ( 0 == destRelayDevID ) {
XP_ASSERT( '\0' != relayID[0] ); XP_ASSERT( '\0' != relayID[0] );
indx += writeBytes( &tmpbuf[indx], sizeof(tmpbuf) - indx, indx += writeBytes( &tmpbuf[indx], sizeof(tmpbuf) - indx,
(XP_U8*)relayID, 1 + XP_STRLEN( relayID ) ); (XP_U8*)relayID, 1 + XP_STRLEN( relayID ) );
} else { } else {
tmpbuf[indx++] = '\0'; /* null byte: zero-len str */ 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) XWStreamCtxt* stream = mem_stream_make_raw( MPPARM(params->mpool)