qemu/util
Paolo Bonzini b77e7c8e99 qemu-sockets: fix conversion of ipv4/ipv6 JSON to QemuOpts
The QemuOpts-based code treats "option not set" and "option set
to false" the same way for the ipv4 and ipv6 options, because it
is meant to handle only the ",ipv4" and ",ipv6" substrings in
hand-crafted option parsers.

When converting InetSocketAddress to QemuOpts, however, it is
necessary to handle all three cases (not set, set to true, set
to false).  Currently we are not handling all cases correctly.
The rules are:

* if none or both options are absent, leave things as is

* if the single present option is Y, the other should be N.
This can be implemented by leaving things as is, or by setting
the other option to N as done in this patch.

* if the single present option is N, the other should be Y.
This is handled by the "else if" branch of this patch.

This ensures that the ipv4 option has an effect on Windows,
where creating the socket with PF_UNSPEC makes an ipv6
socket.  With this patch, ",ipv4" will result in a PF_INET
socket instead.

Reported-by: Sair, Umair <Umair_Sair@mentor.com>
Tested-by: Sair, Umair <Umair_Sair@mentor.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-12 18:29:26 +02:00
..
acl.c acl: fix memory leak 2014-11-17 11:48:56 +01:00
bitmap.c maint: remove / fix many doubled words 2015-09-11 10:21:38 +03:00
bitops.c bitops: unroll while loop in find_next_bit() 2013-03-26 13:32:32 +01:00
compatfd.c util: Remove unused functions 2015-04-30 16:05:48 +03:00
crc32c.c qemu: add castagnoli crc32c checksum algorithm 2013-05-03 10:31:58 +02:00
cutils.c utils: rename strtosz to use qemu prefix 2015-09-25 12:04:41 +02:00
envlist.c utils: drop strtok_r from envlist_parse 2015-02-16 16:20:02 -06:00
error.c error: New error_fatal 2015-09-18 14:38:08 +02:00
event_notifier-posix.c event-notifier: Always return 0 for posix implementation 2015-06-12 13:26:21 +01:00
event_notifier-win32.c build: move libqemuutil.a components to util/ 2013-01-12 18:42:50 +01:00
fifo8.c savevm: Remove all the unneeded version_minimum_id_old (arm) 2014-05-13 16:09:35 +01:00
getauxval.c util: Move general qemu_getauxval to util/getauxval.c 2014-09-09 13:13:05 +02:00
hbitmap.c util/hbitmap: Add an API to reset all set bits in hbitmap 2015-06-23 15:06:16 +01:00
hexdump.c Rename hexdump to avoid FreeBSD libutil conflict 2013-05-20 08:20:08 -05:00
host-utils.c util: Don't link host-utils.o if it's empty 2014-09-09 13:13:05 +02:00
id.c util: Emancipate id_wellformed() from QemuOpts 2014-10-03 10:30:33 +01:00
iov.c iov: don't touch iov in iov_send_recv() 2015-06-23 16:05:34 +01:00
Makefile.objs crypto: move built-in AES implementation into crypto/ 2015-07-07 12:04:13 +02:00
module.c module: Don't complain when a module is absent 2014-07-18 14:57:35 +02:00
notify.c notify: add NotiferWithReturn so notifier list can abort 2013-06-28 09:20:26 +02:00
osdep.c qerror: Move #include out of qerror.h 2015-06-22 18:20:40 +02:00
oslib-posix.c oslib: allocate PROT_NONE pages on top of RAM 2015-10-01 16:16:52 +03:00
oslib-win32.c oslib-win32: only provide localtime_r/gmtime_r if missing 2015-09-24 21:13:49 +02:00
path.c util/path: Use the GLib memory allocation routines 2014-08-24 13:16:32 +04:00
qemu-config.c Include qapi/qmp/qerror.h exactly where needed 2015-06-22 18:20:41 +02:00
qemu-error.c error: only prepend timestamp on stderr 2015-09-18 14:34:39 +02:00
qemu-openpty.c util/qemu-openpty: fix build with musl libc by include termios.h as fallback 2014-06-11 00:25:06 +01:00
qemu-option.c hmp: Allow for error message hints on HMP 2015-09-18 14:34:39 +02:00
qemu-progress.c qemu-progress: Fix progress printing on SIGUSR1 2014-01-24 14:33:00 +01:00
qemu-sockets.c qemu-sockets: fix conversion of ipv4/ipv6 JSON to QemuOpts 2015-10-12 18:29:26 +02:00
qemu-thread-posix.c * Support for jemalloc 2015-09-14 16:13:16 +01:00
qemu-thread-win32.c qemu-thread: add a fast path to the Win32 QemuEvent 2015-09-24 20:52:28 +02:00
qemu-timer-common.c Allow clock_gettime() monotonic clock to be utilized on more OS's 2013-04-04 20:22:45 -05:00
rcu.c Revert "rcu: init rcu_registry_lock after fork" 2015-09-16 17:33:32 +02:00
readline.c readline: Clear screen on form feed. 2014-06-11 10:10:29 -04:00
rfifolock.c rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
throttle.c throttle: refuse bps_max/iops_max without bps/iops 2015-08-05 12:53:48 +01:00
unicode.c unicode: New mod_utf8_codepoint() 2013-04-13 19:39:59 +00:00
uri.c util/uri: Add overflow check to rfc3986_parse_port 2015-03-18 12:05:31 +01:00