From: Ben Pfaff Date: Fri, 8 Jul 2011 16:11:55 +0000 (-0700) Subject: vconn-stream: Always call the stream's run function from vconn_stream_run(). X-Git-Tag: v1.1.2~16 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=b90546d40ecf15fdeb0c82f31b6a8283fb3f386e vconn-stream: Always call the stream's run function from vconn_stream_run(). 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 Tested-by: Alex Yip Bug #6221. --- diff --git a/lib/vconn-stream.c b/lib/vconn-stream.c index 39f1c94df..a9890b594 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); }