[ovs-dev] [PATCH] vconn-stream: Always call the stream's run function from vconn_stream_run().

Ben Pfaff blp at nicira.com
Fri Jul 8 16:14:43 UTC 2011


The stream's run function ensures that data buffered in the stream itself
gets pushed to the network.  Only the SSL stream class has such a run
function, which means that SSL stream data failed to be pushed to the
remote peer in a timely manner in some cases.

Many thanks to Alex Yip for narrowing this down.

Reported-by: Alex Yip <alex at nicira.com>
Tested-by: Alex Yip <alex at nicira.com>
Bug #6221.
---
 lib/vconn-stream.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/lib/vconn-stream.c b/lib/vconn-stream.c
index 39f1c94..a9890b5 100644
--- a/lib/vconn-stream.c
+++ b/lib/vconn-stream.c
@@ -227,6 +227,7 @@ vconn_stream_run(struct vconn *vconn)
     struct vconn_stream *s = vconn_stream_cast(vconn);
     ssize_t retval;
 
+    stream_run(s->stream);
     if (!s->txbuf) {
         return;
     }
@@ -252,6 +253,7 @@ vconn_stream_run_wait(struct vconn *vconn)
 {
     struct vconn_stream *s = vconn_stream_cast(vconn);
 
+    stream_run_wait(s->stream);
     if (s->txbuf) {
         stream_send_wait(s->stream);
     }
-- 
1.7.4.4




More information about the dev mailing list