提交 6f030226 编写于 作者: R Romain Vimont

Fix net_send_all()

On partial writes, the final result was the number of bytes written by
the last send() rather than the total.
上级 daf90d33
......@@ -99,16 +99,18 @@ net_send(socket_t socket, const void *buf, size_t len) {
ssize_t
net_send_all(socket_t socket, const void *buf, size_t len) {
size_t copied = 0;
ssize_t w = 0;
while (len > 0) {
w = send(socket, buf, len, 0);
if (w == -1) {
return -1;
return copied ? (ssize_t) copied : -1;
}
len -= w;
buf = (char *) buf + w;
copied += w;
}
return w;
return copied;
}
bool
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册