----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1440/ -----------------------------------------------------------
Review request for qpid, Alan Conway, Gordon Sim, Kenneth Giusti, Ted Ross, Steve Huston, and Cliff Jansen. Summary ------- This is my proposed code change for C++ and Python to support IPv6: It includes a few different items: IPv6 support at the socket level - The C++ broker now listens on both TCPv4 and TCPv6 sockets for connections and accepts from both in the regular tcp transport. - The C++ client will connect to both TCPv4 and TCPv6 connections. If a name resolves to both v4 and v6 addresses they will be tried in turn as is required for correct functioning in a mixed network. - The necessary Windows code is also present but more lightly tested. - The Python client will now similarly connect to v6 as well as v4 addresses Connection URL syntax and parsing updated to include literal IPv6 addresses - For example "[::1]" is now allowed - C++ and Python URL parsers updated (very annoying that the parse different syntaxes) Simple system test to the C++ build to smoke test IPv6 support. - This only uses the IPv6 loopback address though This addresses bugs QPID-3404, QPID-3405, QPID-3406, QPID-3407, and QPID-3409. https://issues.apache.org/jira/browse/QPID-3404 https://issues.apache.org/jira/browse/QPID-3405 https://issues.apache.org/jira/browse/QPID-3406 https://issues.apache.org/jira/browse/QPID-3407 https://issues.apache.org/jira/browse/QPID-3409 Diffs ----- /trunk/qpid/cpp/src/qpid/Address.cpp 1155572 /trunk/qpid/cpp/src/qpid/Url.cpp 1155572 /trunk/qpid/cpp/src/qpid/broker/windows/SslProtocolFactory.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/Socket.h 1155572 /trunk/qpid/cpp/src/qpid/sys/SocketAddress.h 1155572 /trunk/qpid/cpp/src/qpid/sys/TCPIOPlugin.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/posix/Socket.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/posix/SocketAddress.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/windows/AsynchIoResult.h 1155572 /trunk/qpid/cpp/src/qpid/sys/windows/Socket.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/windows/SocketAddress.cpp 1155572 /trunk/qpid/cpp/src/qpid/sys/windows/SslAsynchIO.h 1155572 /trunk/qpid/cpp/src/tests/Makefile.am 1155572 /trunk/qpid/cpp/src/tests/Url.cpp 1155572 /trunk/qpid/cpp/src/tests/cluster_test_logs.py 1155572 /trunk/qpid/cpp/src/tests/ipv6_test PRE-CREATION /trunk/qpid/extras/qmf/src/py/qmf/console.py 1155572 /trunk/qpid/python/qpid/util.py 1155572 /trunk/qpid/tools/src/py/qpid-route 1155572 Diff: https://reviews.apache.org/r/1440/diff Testing ------- Tested (amongst other things) with included system test Tested lightly by hand on Windows Thanks, Andrew