]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/bind.c
ber_scanf() returns unsigned long, not int
[openldap] / servers / slapd / bind.c
index fbffeebc9fae67fd80dc51637beccb11ef1e99be..8d3979992c57bca3e662fffebbc0c3de67f42878 100644 (file)
  * is provided ``as is'' without express or implied warranty.
  */
 
+#include "portable.h"
+
 #include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
+
+#include <ac/string.h>
+#include <ac/socket.h>
+
 #include "slap.h"
 
 extern Backend *select_backend();
+extern char    *suffixAlias();
 
 extern char    *default_referral;
 
@@ -29,7 +33,8 @@ do_bind(
 )
 {
        BerElement      *ber = op->o_ber;
-       int             version, method, len, rc;
+       int             version, method, len;
+       unsigned long   rc;
        char            *dn;
        struct berval   cred;
        Backend         *be;
@@ -50,7 +55,7 @@ do_bind(
         *      }
         */
 
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        /*
         * in version 3.0 there is an extra SEQUENCE tag after the
         * BindRequest SEQUENCE tag.
@@ -79,13 +84,13 @@ do_bind(
                    "decoding error" );
                return;
        }
-#ifdef COMPAT30
+#ifdef LDAP_COMPAT30
        if ( conn->c_version == 30 ) {
                switch ( method ) {
                case LDAP_AUTH_SIMPLE_30:
                        method = LDAP_AUTH_SIMPLE;
                        break;
-#ifdef KERBEROS
+#ifdef HAVE_KERBEROS
                case LDAP_AUTH_KRBV41_30:
                        method = LDAP_AUTH_KRBV41;
                        break;
@@ -155,6 +160,9 @@ do_bind(
                return;
        }
 
+        /* alias suffix */
+        dn = suffixAlias ( dn, op, be );
+
        if ( be->be_bind != NULL ) {
                if ( (*be->be_bind)( be, conn, op, dn, method, &cred ) == 0 ) {
                        pthread_mutex_lock( &conn->c_dnmutex );