One more place were we have to check whether this is still our context first.
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 27 Oct 2014 21:29:11 +0000 (22:29 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 27 Oct 2014 21:29:11 +0000 (22:29 +0100)
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;
+
+                       }
                }
        }