aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorZhang Chen <zhangchen.fnst@cn.fujitsu.com>2016-08-18 11:23:25 +0800
committerJason Wang <jasowang@redhat.com>2016-08-18 12:20:57 +0800
commite9e0a5854b6dc888f44e7e280a007326714199a6 (patch)
treef1603b31232beaf770512b88ae00c7f20336daf2 /net
parent47882fa4975bf0b58dd74474329fdd7154e8f04c (diff)
downloadqemu-e9e0a5854b6dc888f44e7e280a007326714199a6.zip
qemu-e9e0a5854b6dc888f44e7e280a007326714199a6.tar.gz
qemu-e9e0a5854b6dc888f44e7e280a007326714199a6.tar.bz2
net/net: properly handle multiple packets in net_fill_rstate()
When network is busy, we will receive multiple packets at one time. In that situation, we should keep trying to do the receiving instead of finalizing only the first packet. Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'net')
-rw-r--r--net/net.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/net.c b/net/net.c
index c124b11..d51cb29 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1602,9 +1602,8 @@ void net_socket_rs_init(SocketReadState *rs,
/*
* Returns
- * 0: SocketReadState is not ready
- * 1: SocketReadState is ready
- * otherwise error occurs
+ * 0: success
+ * -1: error occurs
*/
int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size)
{
@@ -1652,10 +1651,11 @@ int net_fill_rstate(SocketReadState *rs, const uint8_t *buf, int size)
if (rs->finalize) {
rs->finalize(rs);
}
- return 1;
}
break;
}
}
+
+ assert(size == 0);
return 0;
}