Dan's request for file descriptor passing in the embedded NBD server opened a nice can of worms. :)
This is because there is no existing QAPI description of socket addresses and similar things, plus QAPI-fication of qemu-sockets.c is a bit sparse. This series tries to fix this. It includes three extra patches at the end that actually implement the NBD server and serve as an example of the new socket creation APIs. I would ask for your review of patches 14 and 15 anyway, so I don't mind if you take these three as well; I terminated the series officially at patch 12 just because these three require the changes from my outstanding NBD pull request. Patches 1 and 2 add error propagation to named file descriptors. These should go in as a prerequisite to the QAPI conversion of add_client. Patches 3 and 4 are small fixes to the QAPI scripts. Nothing spectacular. Patches 5 to 10 start moving qemu-sockets functions away from error_report (or printf) and away from QemuOpts. And after patch 11 harmonizes a bit the Unix-socket functions, patch 12 introduces the new socket API. Please review! Paolo Bonzini (12): monitor: use monitor_handle_fd_param for non-Error-friendly users of named fds monitor: add Error * argument to monitor_get_fd qapi: do not protect enum values from namespace pollution qapi: add "unix" to the set of reserved words build: add QAPI files to the tools qapi: add socket address types qemu-sockets: add error propagation to inet_parse qemu-sockets: add error propagation to Unix socket functions qemu-sockets: return IPSocketAddress from inet_parse qemu-sockets: move block from QemuOpts to arguments qemu-sockets: add block and in_progress arguments to unix_connect_opts qemu-sockets: add socket_listen, socket_connect, socket_parse Makefile.objs | 3 +- dump.c | 5 +- hw/kvm/pci-assign.c | 4 +- migration-fd.c | 3 +- monitor.c | 15 +-- monitor.h | 2 +- nbd.c | 4 +- qapi-schema.json | 53 +++++++++ qemu-char.c | 6 +- qemu-sockets.c | 289 ++++++++++++++++++++++++++++++++++++++------------ qemu-tool.c | 6 ++ qemu_socket.h | 14 ++- qga/channel-posix.c | 2 +- scripts/qapi-types.py | 4 +- scripts/qapi-visit.py | 2 +- scripts/qapi.py | 10 +- ui/vnc.c | 4 +- 17 file modificati, 321 inserzioni(+), 105 rimozioni(-) -- 1.7.12