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