fdec16e3c2
-net socket has a fd argument, and may be passed pre-opened sockets. TCP sockets use framing. UDP sockets have datagram boundaries. When given a unix dgram socket, it will be able to read from it, but will attempt to send on the dgram_dst, which is unset. The other end will not receive the data. Let's teach -net socket to recognize a UNIX DGRAM socket, and use the regular send() command (without dgram_dst). This makes running slirp out-of-process possible that way (python pseudo-code): a, b = socket.socketpair(socket.AF_UNIX, socket.SOCK_DGRAM) subprocess.Popen('qemu -net socket,fd=%d -net user' % a.fileno(), shell=True) subprocess.Popen('qemu ... -net nic -net socket,fd=%d' % b.fileno(), shell=True) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> |
||
---|---|---|
.. | ||
can | ||
announce.c | ||
checksum.c | ||
clients.h | ||
colo-compare.c | ||
colo-compare.h | ||
colo.c | ||
colo.h | ||
dump.c | ||
eth.c | ||
filter-buffer.c | ||
filter-mirror.c | ||
filter-replay.c | ||
filter-rewriter.c | ||
filter.c | ||
hub.c | ||
hub.h | ||
l2tpv3.c | ||
Makefile.objs | ||
net.c | ||
netmap.c | ||
queue.c | ||
slirp.c | ||
socket.c | ||
tap_int.h | ||
tap-bsd.c | ||
tap-linux.c | ||
tap-linux.h | ||
tap-solaris.c | ||
tap-stub.c | ||
tap-win32.c | ||
tap.c | ||
trace-events | ||
util.c | ||
util.h | ||
vde.c | ||
vhost-user-stub.c | ||
vhost-user.c |