diff --git a/xwords4/relay/cref.cpp b/xwords4/relay/cref.cpp index b4b7293e9..43ceaebc8 100644 --- a/xwords4/relay/cref.cpp +++ b/xwords4/relay/cref.cpp @@ -591,7 +591,7 @@ CookieRef::handleEvents() sendResponse( &evt, false ); sendAnyStored( &evt ); increasePlayerCounts( &evt, true ); - // postCheckAllHere(); + postCheckAllHere(); break; case XWA_SEND_NO_ROOM: @@ -1216,7 +1216,6 @@ CookieRef::_CheckNotAcked() { logf( XW_LOGINFO, "%s", __func__ ); if ( m_nPendingAcks > 0 ) { - assert( m_curState == XWS_WAITING_ACKS ); CRefEvent newEvt( XWE_ACKTIMEOUT ); m_eventQueue.push_back( newEvt ); handleEvents(); diff --git a/xwords4/relay/states.cpp b/xwords4/relay/states.cpp index 3646d57bb..d510d3000 100644 --- a/xwords4/relay/states.cpp +++ b/xwords4/relay/states.cpp @@ -67,9 +67,11 @@ static StateTable g_stateTable[] = { { XWS_WAITMORE, XWE_ACKTIMEOUT, XWA_DROPDEVICE, XWS_WAITMORE }, { XWS_WAITMORE, XWE_ALLHERE, XWA_SENDALLHERE, XWS_ALLCONND }, +{ XWS_WAITMORE, XWE_RECONNECT, XWA_SEND_RERSP, XWS_WAITMORE }, +{ XWS_WAITMORE, XWE_FORWARDMSG, XWA_FWD, XWS_WAITMORE }, -/* { XWS_WAITMORE, XWE_RECONNECT, XWA_SEND_RERSP, XWS_WAITMORE }, */ -/* { XWS_ALLCONND, XWE_RECONNECT, XWA_SEND_RERSP, XWS_ALLCONND }, */ +{ XWS_ALLCONND, XWE_RECONNECT, XWA_SEND_RERSP, XWS_ALLCONND }, +{ XWS_ALLCONND, XWE_ALLHERE, XWA_NONE, XWS_ALLCONND }, /* { XWS_WAITMORE, XWE_GAMEFULL, XWA_SENDALLHERE, XWS_ALLCONND }, */ /* { XWS_WAITMORE, XWE_CHECKFULL, XWA_, XWS_WAITMORE }, */ @@ -105,8 +107,8 @@ static StateTable g_stateTable[] = { /* This doesn't make sense. Can't go straight to ALLCOND if don't have all players/devices. */ -{ XWS_INITED, XWE_RECONNECT, XWA_SEND_RERSP, XWS_ALLCONND }, -{ XWS_MSGONLY, XWE_RECONNECT, XWA_SEND_RERSP, XWS_ALLCONND }, +{ XWS_INITED, XWE_RECONNECT, XWA_SEND_RERSP, XWS_WAITMORE }, +{ XWS_MSGONLY, XWE_RECONNECT, XWA_SEND_RERSP, XWS_WAITMORE }, { XWS_MISSING, XWE_RECONNECT, XWA_SEND_RERSP, XWS_CHK_ALLHERE_2 }, { XWS_CHK_ALLHERE_2, XWE_ALLHERE, XWA_SNDALLHERE_2, XWS_ALLCONND },