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