mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-20 11:22:25 -07:00
Replace spinning send_all() with a proper non-blocking send. When the socket write buffer limit is reached, we should stop trying to send and wait for the socket to become writable again. Non-blocking TCP sockets can return in two different ways when the write buffer limit is reached: 1. ret = -1 and errno = EAGAIN/EWOULDBLOCK. No data has been written. 2. ret < total_size. Short write, only part of the message was transmitted. Handle both cases and keep track of how many bytes have been written in s->send_index. (This includes the 'length' header before the actual payload buffer.) Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> |
||
|---|---|---|
| .. | ||
| checksum.c | ||
| checksum.h | ||
| dump.c | ||
| dump.h | ||
| hub.c | ||
| hub.h | ||
| Makefile.objs | ||
| queue.c | ||
| queue.h | ||
| slirp.c | ||
| slirp.h | ||
| socket.c | ||
| socket.h | ||
| tap-aix.c | ||
| tap-bsd.c | ||
| tap-haiku.c | ||
| tap-linux.c | ||
| tap-linux.h | ||
| tap-solaris.c | ||
| tap-win32.c | ||
| tap.c | ||
| tap.h | ||
| util.c | ||
| util.h | ||
| vde.c | ||
| vde.h | ||