Ken Giusti commented on PROTON-1133:
This issue is caused by a defect in the way Reactor obtains the socket address
for its connections.
The reactor - or more specifically, the io_handler used by connections created
via the reactor - expects to find the socket address in the Connection's
'hostname' property. See proton-c/src/reactor/connection.c:pni_handle_bound().
This isn't the correct use of 'hostname' as per the AMQP 1.0 spec:
"The name of the host (either fully qualified or relative) to which the sending
peer is connecting. It is
not mandatory to provide the hostname. If no hostname is provided the receiving
select a default based on its own configuration. This field can be used by AMQP
determine the correct back-end service to connect the client to.
This field MAY already have been specified by the sasl-init frame, if a SASL
layer is used, or,
the server name indication extension as described in RFC-4366, if a TLS layer
is used, in which
case this field SHOULD be null or contain the same value. It is undefined what
a different value
to that already specified means"
Reactor assumes that the user will set the transport-level address (eg socket
address) in the hostname property. Thus port information needs to be placed in
the 'hostname' (if 5672 is not used). It also forces the user to set hostname
to a numeric address if necessary.
This conflicts with the above specification.
Reactor needs a different approach to configuring the transport-level address
that doesn't conflict with the hostname property.
> Proton C includes port number in AMQP Open hostname
> Key: PROTON-1133
> URL: https://issues.apache.org/jira/browse/PROTON-1133
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c, python-binding
> Affects Versions: 0.12.0
> Reporter: Chuck Rolke
> Fix For: 0.13.0
> A command like:
> qdmanage -b amqp://u1:password@photoserver:21000 --type policyStats query
> sends the port number in the hostname field of the AMQP Open:
> Mon Feb 8 11:37:46 2016 SERVER (trace) :0 <- @open(16)
> hostname="photoserver:21000", channel-max=32767]
> Built in C example code using Proton only does the same thing.
> This bug originally reported at
This message was sent by Atlassian JIRA