qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Stitcher" <astitc...@apache.org>
Subject Re: Review Request: IPv6 support for C++ (Windows and Linux) client/broker and python
Date Wed, 10 Aug 2011 14:26:47 GMT


> On 2011-08-10 14:06:02, Alan Conway wrote:
> > /trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp, line 388
> > <https://reviews.apache.org/r/1440/diff/1/?file=31824#file31824line388>
> >
> >     Curious, how would that happen?

This can now happen in retrying connections: When we try to connect we call ::connect() in
non blocking mode and then use the poller to detect success or failure. If we get failure
and need to retry then we close the socket which then causes this condition. This fix is really
an unfortunate hack, but it seemed the simplest solution to this problem.


- Andrew


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1440/#review1374
-----------------------------------------------------------


On 2011-08-09 22:26:16, Andrew Stitcher wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/1440/
> -----------------------------------------------------------
> 
> (Updated 2011-08-09 22:26:16)
> 
> 
> 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
> 
> I have this change broken down into smaller patches if anyone would rather see it that
way. It's just easier
> to put it up for review in one big glob.
> 
> 
> 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
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message