One more place were we have to check whether this is still our context first.
[citadel.git] / citadel / event_client.c
index 120519e7e12356b999249ecf92c29dc498807a8e..c46429337da7f1db65dff1b53db14ea916679d38 100644 (file)
@@ -493,10 +493,18 @@ eReadState HandleInbound(AsyncIO *IO)
                }
 
                if (Finished != eMustReadMore) {
+                       eNextState rc;
                        assert(IO->ReadDone);
                        ev_io_stop(event_base, &IO->recv_event);
-                       IO->NextState = IO->ReadDone(IO);
-                       Finished = StrBufCheckBuffer(&IO->RecvBuf);
+                       rc = IO->ReadDone(IO);
+                       if  (rc != eDBQuery) {
+                               IO->NextState = rc;
+                               Finished = StrBufCheckBuffer(&IO->RecvBuf);
+                       }
+                       else {
+                               return rc;
+
+                       }
                }
        }