]> granicus.if.org Git - pgbouncer/commitdiff
avoid recv() if buffer has data
authorMarko Kreen <markokr@gmail.com>
Thu, 2 Aug 2007 11:56:28 +0000 (11:56 +0000)
committerMarko Kreen <markokr@gmail.com>
Thu, 2 Aug 2007 11:56:28 +0000 (11:56 +0000)
src/sbuf.c

index a08a60c4a20049690258d1f6ee7a052e1e13de86..40eb41a76c424c27e32ad8f8e5d3a9f6da5ec655 100644 (file)
@@ -175,11 +175,19 @@ void sbuf_pause(SBuf *sbuf)
 /* resume from pause, start waiting for data */
 void sbuf_continue(SBuf *sbuf)
 {
+       bool do_recv = true;
        AssertActive(sbuf);
 
        sbuf_wait_for_data(sbuf);
 
-       /* FIXME: > SMALL_PKT in buffer, skip the recv() ?? */
+       /*
+        * FIXME: is it safe?
+        *
+        * if avail > SMALL_PKT in buffer, skip the recv().
+        */
+       if (sbuf->recv_pos - sbuf->pkt_pos >= SMALL_PKT)
+               do_recv = false;
+
        /*
         * There may be some data already received,
         * but not certain, so avoid SKIP_RECV.