When suspending, try to hit packet boundary ASAP
authorMarko Kreen <markokr@gmail.com>
Wed, 1 Aug 2007 20:42:19 +0000 (20:42 +0000)
committerMarko Kreen <markokr@gmail.com>
Wed, 1 Aug 2007 20:42:19 +0000 (20:42 +0000)
src/sbuf.c

index f6e5830a5321c812e561c570d8b4cda0a8261c81..4a314131bb2cb22d88e6dffdcadaf426f1eb336c 100644 (file)
@@ -523,6 +523,17 @@ try_more:
         */
        free = cf_sbuf_len - sbuf->recv_pos;
        if (free > 0) {
+               /*
+                * When suspending, try to hit packet boundary ASAP.
+                */
+               if (cf_pause_mode == P_SUSPEND
+                   && sbuf->pkt_remain > 0
+                   && sbuf->pkt_remain < free)
+               {
+                       free = sbuf->pkt_remain;
+               }
+
+               /* now fetch the data */
                ok = sbuf_actual_recv(sbuf, free);
                if (!ok)
                        return;