> On 2011-08-10 14:15:46, Gordon Sim wrote:
> > As you have noted the python client doesn't support the AMQP 0-10 defined
> > url scheme. The c++ messaging API consequently supports the form of url
> > used by python in addition. That code is in
> > src/qpid/cpp/amqp_0_10/SimpleUrlParser.cpp and would (I believe) break for
> > IPv6 addresses.
>
> Andrew Stitcher wrote:
> I didn't spot this code, what is it used for? It doesn't seem to have
> been in the path for anything I tried. In other words nothing failed for not
> changing this parser.
>
> Incidentally why (oh why, oh why) do we have *two* parsers in C++ for the
> amqp_0_10 url scheme? I thought the one I fixed was that parser.
>
> Gordon Sim wrote:
> SimpleUrlParser does not parse the 0-10 URL scheme (i.e. that defined by
> the spec). It was introduced to provide an alternative that was compatible
> with the form used by the python client and is only used by the messaging API
> for URLs that don't begin with the 'amqp' scheme identifier (the ipv6 test
> includes that identifier which is why it would not use this codepath).
> However, looking at the latest URL code it appears that the qpid::Url class
> would now be sufficient as it no longer restricts itself to the official
> scheme...
>
> Gordon Sim wrote:
> Fyi: I have now removed SimpleUrlParser (r1156262) so this point can be
> ignored.
>
> Andrew Stitcher wrote:
> Ah I understand, I think it would be nice to have a single compatible
> superset syntax across all the implementations. I have an idea for something
> I think would work.
+1 on the single syntax across all implementations. The java client could
certainly make use of a better connection string syntax.
Something along the lines of "protocol://host:port; {k1:v1,.....kn:vn} would be
nice, where the optional set of properties allowing implementation specific
properties in addition to a bunch of common props across all clients.
A property value can be another map ex k:{...}, a list k:[] or just a string.
- rajith
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1440/#review1376
-----------------------------------------------------------
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
>
>