]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/kbind.c
Fix ldap_rename parameter order (ITS#387)
[openldap] / libraries / libldap / kbind.c
index 47ab77f939cc1cb120baaf496ff45e45495b7300..0c6a07931b0719355daa60c18e09b2c28d7f0e88 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /*
  * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
@@ -60,7 +61,8 @@ ldap_kerberos_bind1( LDAP *ld, LDAP_CONST char *dn )
 {
        BerElement      *ber;
        char            *cred;
-       int             rc, credlen;
+       int             rc;
+       ber_len_t credlen;
 #ifdef STR_TRANSLATION
        int             str_translation_on;
 #endif /* STR_TRANSLATION */
@@ -76,7 +78,7 @@ ldap_kerberos_bind1( LDAP *ld, LDAP_CONST char *dn )
        }
 
        /* create a message to send */
-       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULLBER ) {
+       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
                LDAP_FREE( cred );
                return( -1 );
        }
@@ -153,7 +155,8 @@ ldap_kerberos_bind2( LDAP *ld, LDAP_CONST char *dn )
 {
        BerElement      *ber;
        char            *cred;
-       int             rc, credlen;
+       int             rc;
+       ber_len_t credlen;
 #ifdef STR_TRANSLATION
        int             str_translation_on;
 #endif /* STR_TRANSLATION */
@@ -169,7 +172,7 @@ ldap_kerberos_bind2( LDAP *ld, LDAP_CONST char *dn )
        }
 
        /* create a message to send */
-       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULLBER ) {
+       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
                LDAP_FREE( cred );
                return( -1 );
        }
@@ -253,7 +256,7 @@ ldap_get_kerberosv4_credentials(
        LDAP *ld,
        LDAP_CONST char *who,
        LDAP_CONST char *service,
-       int *len )
+       ber_len_t *len )
 {
        KTEXT_ST        ktxt;
        int             err;
@@ -270,6 +273,13 @@ ldap_get_kerberosv4_credentials(
                return( NULL );
        }
 
+       if( ! ber_pvt_sb_in_use( &ld->ld_sb ) ) {
+               /* not connected yet */
+               int rc = ldap_open_defconn( ld );
+
+               if( rc < 0 ) return NULL;
+       }
+
        krbinstance = ld->ld_defconn->lconn_krbinstance;
 
        if ( (err = krb_mk_req( &ktxt, service, krbinstance, realm, 0 ))