On Wed, 2015-06-03 at 16:57 +0100, Gordon Sim wrote:
> On 06/03/2015 04:14 PM, logty wrote:
> > I ran with PN_TRACE_FRM=1, and it returned the following log results. The
> > connection has been working with Python but not with C. It seems to be some
> > SASL issue, any thoughts?
> 
> The c client is not setting the mechanism chosen which is mandatory. 
> What version of proton are you using (and on what platform)?
> 
> > C Log:
> > [0xa34500]:  -> SASL
> > [0xa34500]:0 -> @sasl-init(65) [initial-response=b""]
> > [0xa34500]:  <- SASL
> > [0xa34500]:0 <- @sasl-mechanisms(64)
> > [sasl-server-mechanisms=@PN_SYMBOL[:ANONYMOUS, :PLAIN]]

There is a bug in the current trunk version of Proton which can look
exactly like this: You will see this if you have built with Cyrus SASL,
have forced the client to use the ANONYMOUS mechanism, but have not
allowed the Cyrus SASL library to use the ANONYMOUS mechanism.

In this case there would also be a log message which said:
[...]: sasl error: SASL(-4): no mechanism available:

The ultimate cause of this would be in the Cyrus SASL configuration: if
you want to use the ANONYMOUS mechanism you need to allow Cyrus to use
it - perhaps it is not installed, or there is a mech_list entry in the
configuration file but it does not include ANONYMOUS.

If this is not trunk, or you are not using Cyrus then I can't explain
this strange frame, there will be a fix for the issue checked in today
or tomorrow.

Also note that in usual circumstances the init frame can't proceed the
mechanisms frame - unless the client has forced anonymous SASL.

Andrew


Andrew


Reply via email to