On 06/01/2017 04:29 AM, Daniel P. Berrange wrote:
> This is a followup to:
>
> v1: https://lists.nongnu.org/archive/html/qemu-devel/2017-04/msg05659.html
> v2: https://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg04706.html
>
> This series aims to fix a lot of bugs related to handling of IPv4 / IPv6
> dual stack.
>
> - The VNC server mistakenly listened on two separate ports 5900+5901
> when the to= parameter was given
> - IPv6 sockets are accepting IPv4 clients even when IPv4 is set to
> be disabled
> - IPv6 sockets are failing to accept IPv4 clients when IPv4 is not set
> to be disabled
> - The VNC server was loosing the ipv4=/ipv6= settings due to a bug
> in the DNS resolver
>
> The behaviour of all this is really subtle and hard to get working correctly
> across all the different network backends. Thus, the most important part of
> this patch series is the last patch which adds a test case covering the
> backends for -vnc, -chardev tcp, -net socket, and -incoming socket, with
> a 120 entry matrix.
>
> IOW, if you think any of the first 4 patches are applying the wrong logic,
> then take a look at the last patch and indicate which test matrix entries
> are believed to be defining wrong behaviour :-)
>
> Changed in v2:
>
> - Clarified error message in commit message
> - Replace assert with exit (Eric)
> - Fix typo in test comment (Eric)
> - Fix wierd copyright line (Eric)
>
> Daniel P. Berrange (5):
> sockets: ensure we can bind to both ipv4 & ipv6 separately
> sockets: don't block IPv4 clients when listening on "::"
> sockets: ensure we don't accept IPv4 clients when IPv4 is disabled
> io: preserve ipv4/ipv6 flags when resolving InetSocketAddress
> tests: add functional test validating ipv4/ipv6 address flag handling
>
> io/dns-resolver.c | 6 +-
> tests/.gitignore | 1 +
> tests/Makefile.include | 4 +
> tests/test-sockets-proto.c | 855 +++++++++++++++++++++++++++++++++++++++++++++
> util/qemu-sockets.c | 71 +++-
> 5 files changed, 916 insertions(+), 21 deletions(-)
> create mode 100644 tests/test-sockets-proto.c
>
Series Reviewed-by: Vlad Yasevich <vyasevic@redhat.com>
-vlad