]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/kbind.c
Added thread-pool getkey/setkey functions
[openldap] / libraries / libldap / kbind.c
index 3f6f20cdd1280063e89570666b650cd1a39e581f..eadf2ac72dd1f8b7266d9a75d49ba52338219217 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /*  Portions
@@ -45,7 +45,6 @@
 
 #include "ldap-int.h"
 
-
 /*
  * ldap_kerberos_bind1 - initiate a bind to the ldap server using
  * kerberos authentication.  The dn is supplied.  It is assumed the user
@@ -63,11 +62,17 @@ ldap_kerberos_bind1( LDAP *ld, LDAP_CONST char *dn )
        char            *cred;
        int             rc;
        ber_len_t credlen;
-#ifdef STR_TRANSLATION
-       int             str_translation_on;
-#endif /* STR_TRANSLATION */
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_kerberos_bind1\n", 0, 0, 0 );
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_kerberos_bind1\n", 0, 0, 0 );
+#endif
+
+       if( ld->ld_version > LDAP_VERSION2 ) {
+               ld->ld_errno = LDAP_NOT_SUPPORTED;
+               return -1;
+       }
 
        if ( dn == NULL )
                dn = "";
@@ -83,23 +88,10 @@ ldap_kerberos_bind1( LDAP *ld, LDAP_CONST char *dn )
                return( -1 );
        }
 
-#ifdef STR_TRANSLATION
-       if (( str_translation_on = (( ber->ber_options &
-           LBER_TRANSLATE_STRINGS ) != 0 ))) { /* turn translation off */
-               ber->ber_options &= ~LBER_TRANSLATE_STRINGS;
-       }
-#endif /* STR_TRANSLATION */
-
        /* fill it in */
-       rc = ber_printf( ber, "{it{isto}}", ++ld->ld_msgid, LDAP_REQ_BIND,
+       rc = ber_printf( ber, "{it{istoN}N}", ++ld->ld_msgid, LDAP_REQ_BIND,
            ld->ld_version, dn, LDAP_AUTH_KRBV41, cred, credlen );
 
-#ifdef STR_TRANSLATION
-       if ( str_translation_on ) {     /* restore translation */
-               ber->ber_options |= LBER_TRANSLATE_STRINGS;
-       }
-#endif /* STR_TRANSLATION */
-
        if ( rc == -1 ) {
                LDAP_FREE( cred );
                ber_free( ber, 1 );
@@ -125,7 +117,11 @@ ldap_kerberos_bind1_s( LDAP *ld, LDAP_CONST char *dn )
        int             msgid;
        LDAPMessage     *res;
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_kerberos_bind1_s\n", 0, 0, 0 );
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_kerberos_bind1_s\n", 0, 0, 0 );
+#endif
 
        /* initiate the bind */
        if ( (msgid = ldap_kerberos_bind1( ld, dn )) == -1 )
@@ -157,11 +153,17 @@ ldap_kerberos_bind2( LDAP *ld, LDAP_CONST char *dn )
        char            *cred;
        int             rc;
        ber_len_t credlen;
-#ifdef STR_TRANSLATION
-       int             str_translation_on;
-#endif /* STR_TRANSLATION */
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_kerberos_bind2\n", 0, 0, 0 );
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_kerberos_bind2\n", 0, 0, 0 );
+#endif
+
+       if( ld->ld_version > LDAP_VERSION2 ) {
+               ld->ld_errno = LDAP_NOT_SUPPORTED;
+               return -1;
+       }
 
        if ( dn == NULL )
                dn = "";
@@ -177,24 +179,11 @@ ldap_kerberos_bind2( LDAP *ld, LDAP_CONST char *dn )
                return( -1 );
        }
 
-#ifdef STR_TRANSLATION
-       if (( str_translation_on = (( ber->ber_options &
-           LBER_TRANSLATE_STRINGS ) != 0 ))) { /* turn translation off */
-               ber->ber_options &= ~LBER_TRANSLATE_STRINGS;
-       }
-#endif /* STR_TRANSLATION */
-
        /* fill it in */
-       rc = ber_printf( ber, "{it{isto}}", ++ld->ld_msgid, LDAP_REQ_BIND,
+       rc = ber_printf( ber, "{it{istoN}N}", ++ld->ld_msgid, LDAP_REQ_BIND,
            ld->ld_version, dn, LDAP_AUTH_KRBV42, cred, credlen );
 
 
-#ifdef STR_TRANSLATION
-       if ( str_translation_on ) {     /* restore translation */
-               ber->ber_options |= LBER_TRANSLATE_STRINGS;
-       }
-#endif /* STR_TRANSLATION */
-
        LDAP_FREE( cred );
 
        if ( rc == -1 ) {
@@ -214,7 +203,11 @@ ldap_kerberos_bind2_s( LDAP *ld, LDAP_CONST char *dn )
        int             msgid;
        LDAPMessage     *res;
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_kerberos_bind2_s\n" , 0, 0, 0);
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_kerberos_bind2_s\n", 0, 0, 0 );
+#endif
 
        /* initiate the bind */
        if ( (msgid = ldap_kerberos_bind2( ld, dn )) == -1 )
@@ -235,7 +228,11 @@ ldap_kerberos_bind_s( LDAP *ld, LDAP_CONST char *dn )
 {
        int     err;
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_kerberos_bind_s\n", 0, 0, 0 );
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_kerberos_bind_s\n", 0, 0, 0 );
+#endif
 
        if ( (err = ldap_kerberos_bind1_s( ld, dn )) != LDAP_SUCCESS )
                return( err );
@@ -262,13 +259,21 @@ ldap_get_kerberosv4_credentials(
        int             err;
        char            realm[REALM_SZ], *cred, *krbinstance;
 
+#ifdef NEW_LOGGING
+       LDAP_LOG ( OPERATION, ENTRY, "ldap_get_kerberosv4_credentials\n", 0, 0, 0 );
+#else
        Debug( LDAP_DEBUG_TRACE, "ldap_get_kerberosv4_credentials\n", 0, 0, 0 );
+#endif
 
        if ( (err = krb_get_tf_realm( tkt_string(), realm )) != KSUCCESS ) {
-#ifdef LDAP_LIBUI
-               fprintf( stderr, "krb_get_tf_realm failed (%s)\n",
-                   krb_err_txt[err] );
-#endif /* LDAP_LIBUI */
+#ifdef NEW_LOGGING
+               LDAP_LOG ( OPERATION, ERR, 
+                       "ldap_get_kerberosv4_credentials: krb_get_tf_realm failed: %s\n",
+                       krb_err_txt[err], 0, 0 );
+#else
+               Debug( LDAP_DEBUG_ANY, "ldap_get_kerberosv4_credentials: "
+                       "krb_get_tf_realm failed: %s\n", krb_err_txt[err], 0, 0 );
+#endif
                ld->ld_errno = LDAP_AUTH_UNKNOWN;
                return( NULL );
        }
@@ -283,10 +288,16 @@ ldap_get_kerberosv4_credentials(
        krbinstance = ld->ld_defconn->lconn_krbinstance;
 
        if ( (err = krb_mk_req( &ktxt, service, krbinstance, realm, 0 ))
-           != KSUCCESS ) {
-#ifdef LDAP_LIBUI
-               fprintf( stderr, "krb_mk_req failed (%s)\n", krb_err_txt[err] );
-#endif /* LDAP_LIBUI */
+           != KSUCCESS )
+       {
+#ifdef NEW_LOGGING
+               LDAP_LOG ( OPERATION, ERR, 
+                       "ldap_get_kerberosv4_credentials: krb_mk_req failed: %s\n",
+                       krb_err_txt[err], 0, 0 );
+#else
+               Debug( LDAP_DEBUG_ANY, "ldap_get_kerberosv4_credentials: "
+                       "krb_mk_req failed (%s)\n", krb_err_txt[err], 0, 0 );
+#endif
                ld->ld_errno = LDAP_AUTH_UNKNOWN;
                return( NULL );
        }
@@ -297,7 +308,7 @@ ldap_get_kerberosv4_credentials(
        }
 
        *len = ktxt.length;
-       memcpy( cred, ktxt.dat, ktxt.length );
+       AC_MEMCPY( cred, ktxt.dat, ktxt.length );
 
        return( cred );
 }