mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-13 08:47:50 +01:00
fix assertions from missing timestamps
This commit is contained in:
parent
bba8e99098
commit
550248bce0
6 changed files with 23 additions and 8 deletions
|
@ -543,12 +543,12 @@ public class MQTTUtils extends Thread
|
|||
}
|
||||
|
||||
public static void sendInvite( Context context, String invitee,
|
||||
NetLaunchInfo nli )
|
||||
int timestamp, NetLaunchInfo nli )
|
||||
{
|
||||
Log.d( TAG, "sendInvite(invitee: %s, nli: %s)", invitee, nli );
|
||||
byte[][][] packets = {null};
|
||||
String[][] topics = {null};
|
||||
XwJNI.dvc_makeMQTTInvites( invitee, nli, topics, packets );
|
||||
XwJNI.dvc_makeMQTTInvites( invitee, timestamp, nli, topics, packets );
|
||||
addToSendQueue( context, topics[0], packets[0] );
|
||||
}
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ public class MultiMsgSink implements TransportProcs {
|
|||
case COMMS_CONN_MQTT:
|
||||
target = addr.mqtt_devID;
|
||||
means = InviteMeans.MQTT;
|
||||
MQTTUtils.sendInvite( context, addr.mqtt_devID, nli );
|
||||
MQTTUtils.sendInvite( context, addr.mqtt_devID, timestamp, nli );
|
||||
success = true;
|
||||
break;
|
||||
case COMMS_CONN_SMS:
|
||||
|
|
|
@ -153,10 +153,12 @@ public class XwJNI {
|
|||
return dvc_getMQTTSubTopics( getJNI().m_ptrGlobals );
|
||||
}
|
||||
|
||||
public static void dvc_makeMQTTInvites( String invitee, NetLaunchInfo nli,
|
||||
String[][] topics, byte[][][] packets )
|
||||
public static void dvc_makeMQTTInvites( String invitee, int timestamp,
|
||||
NetLaunchInfo nli, String[][] topics,
|
||||
byte[][][] packets )
|
||||
{
|
||||
dvc_makeMQTTInvites( getJNI().m_ptrGlobals, invitee, nli, topics, packets );
|
||||
dvc_makeMQTTInvites( getJNI().m_ptrGlobals, invitee, timestamp,
|
||||
nli, topics, packets );
|
||||
}
|
||||
|
||||
public static void dvc_makeMQTTMessages( String addressee, int gameID,
|
||||
|
@ -770,6 +772,7 @@ public class XwJNI {
|
|||
private static native String[] dvc_getMQTTSubTopics( long jniState );
|
||||
private static native void dvc_makeMQTTInvites( long jniState,
|
||||
String invitee,
|
||||
int timestamp,
|
||||
NetLaunchInfo nli,
|
||||
String[][] topics,
|
||||
byte[][][] packets );
|
||||
|
|
|
@ -737,7 +737,8 @@ wrapResults( jobjectArray jTopicsOut, jobjectArray jPacketsOut, MTPData* mtp )
|
|||
JNIEXPORT void JNICALL
|
||||
Java_org_eehouse_android_xw4_jni_XwJNI_dvc_1makeMQTTInvites
|
||||
( JNIEnv* env, jclass C, jlong jniGlobalPtr, jstring jAddressee,
|
||||
jobject jnli, jobjectArray jTopicsOut, jobjectArray jPacketsOut )
|
||||
jint jTimestamp, jobject jnli, jobjectArray jTopicsOut,
|
||||
jobjectArray jPacketsOut )
|
||||
{
|
||||
DVC_HEADER(jniGlobalPtr);
|
||||
|
||||
|
@ -751,7 +752,7 @@ Java_org_eehouse_android_xw4_jni_XwJNI_dvc_1makeMQTTInvites
|
|||
jstrToDevID( env, jAddressee, &addressee );
|
||||
|
||||
dvc_makeMQTTInvites( globalState->dutil, env, msgAndTopicProc, &mtp,
|
||||
&addressee, &nli, 0 );
|
||||
&addressee, &nli, jTimestamp );
|
||||
wrapResults( jTopicsOut, jPacketsOut, &mtp );
|
||||
|
||||
DVC_HEADER_END();
|
||||
|
|
|
@ -894,6 +894,10 @@ comms_makeFromStream( MPFORMAL XWEnv xwe, XWStreamCtxt* stream,
|
|||
if ( version >= STREAM_VERS_MSGTIMESTAMP ) {
|
||||
msg->createdStamp = stream_getU32( stream );
|
||||
}
|
||||
if ( 0 == msg->createdStamp ) {
|
||||
msg->createdStamp = dutil_getCurSeconds( comms->dutil, xwe );
|
||||
XP_LOGFF( "added missing timestamp" );
|
||||
}
|
||||
#ifdef DEBUG
|
||||
msg->sendCount = 0;
|
||||
#endif
|
||||
|
@ -2009,6 +2013,7 @@ sendMsg( CommsCtxt* comms, XWEnv xwe, MsgQueueElem* elem, const CommsConnType fi
|
|||
} else if ( isInvite ) {
|
||||
if ( !!comms->procs.sendInvt ) {
|
||||
NetLaunchInfo* nli = (NetLaunchInfo*)elem->msg;
|
||||
XP_ASSERT( 0 != elem->createdStamp );
|
||||
nSent = (*comms->procs.sendInvt)( xwe, nli, elem->createdStamp,
|
||||
&addr, comms->procs.closure );
|
||||
}
|
||||
|
@ -2019,6 +2024,7 @@ sendMsg( CommsCtxt* comms, XWEnv xwe, MsgQueueElem* elem, const CommsConnType fi
|
|||
logAddr( comms, xwe, &addr, __func__ );
|
||||
XP_UCHAR msgNo[16];
|
||||
formatMsgNo( comms, elem, msgNo, sizeof(msgNo) );
|
||||
XP_ASSERT( 0 != elem->createdStamp );
|
||||
nSent = (*comms->procs.sendMsg)( xwe, elem->msg, elem->len, msgNo,
|
||||
elem->createdStamp, &addr,
|
||||
typ, gameid,
|
||||
|
|
|
@ -383,6 +383,11 @@ dvc_makeMQTTNoSuchGames( XW_DUtilCtxt* dutil, XWEnv xwe,
|
|||
XP_UCHAR devTopic[64]; /* used by two below */
|
||||
formatMQTTDevTopic( addressee, devTopic, VSIZE(devTopic) );
|
||||
|
||||
if ( 0 == timestamp ) {
|
||||
timestamp = dutil_getCurSeconds( dutil, xwe );
|
||||
XP_LOGFF( "replacing timestamp of 0" );
|
||||
}
|
||||
|
||||
XWStreamCtxt* stream = mkStream( dutil );
|
||||
addHeaderGameIDAndCmd( dutil, xwe, CMD_DEVGONE, gameID,
|
||||
timestamp, stream );
|
||||
|
|
Loading…
Add table
Reference in a new issue