[Date Prev][Date Next] [Chronological] [Thread] [Top]

libldap/cyrus.c's ldap_pvt_sasl_install


  I am working on writing a sasl rebind function for
chasing referrals. (latest openldap, SASL/GSSAPI).  I
can see the completion of authentication between the 
client and the new server but further communication 
after that fails.

  I tracked it down to the libraries/libldap/cyrus.c's 
ldap_pvt_sasl_install. it fails to make the ber_sockbuf_add_io
because of the check on the sb for LBER_SB_OPT_HAS_IO.
It turns out that ldap_pvt_sasl_install is called from 
ldap_int_sasl_bind with 

    ldap_pvt_sasl_install( ld->ld_sb, ctx );

and the ld->ld_sb is the sb to the first server which has
LBER_SB_OPT_HAS_IO set already.

  Changing it to the sb of the new connection fixes it.

   ldap_pvt_sasl_install( ld->ld_conns->lconn_sb, ctx )