On Aug 10, 2011, at 1:29 PM, rajith attapattu wrote:
>
>
>> 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.
+1
> 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
>>
>>
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]