r11137: Compile with only 2 warnings (I'm still working on that code) on a gcc4
[ira/wip.git] / source3 / passdb / pdb_nds.c
index e2f3128fd5d97c7621f9444397ec8f7b18417ddf..5de80a827fa0f7f99c92214757d4067e9f0dae3b 100644 (file)
@@ -227,7 +227,7 @@ static int berDecodeLoginData(
        size_t   *retDataLen,
        void     *retData )
 {
-       int rc=0, err = 0;
+       int err = 0;
        BerElement *replyBer = NULL;
        char    *retOctStr = NULL;
        size_t  retOctStrLen = 0;
@@ -248,7 +248,7 @@ static int berDecodeLoginData(
                        goto Cleanup;
                }
        
-               if( (rc = ber_scanf(replyBer, "{iis}", serverVersion, &err, retOctStr, &retOctStrLen)) != -1)
+               if(ber_scanf(replyBer, "{iis}", serverVersion, &err, retOctStr, &retOctStrLen) != -1)
                {
                        if (*retDataLen >= retOctStrLen)
                        {
@@ -268,7 +268,7 @@ static int berDecodeLoginData(
        }
        else
        {
-               if( (rc = ber_scanf(replyBer, "{ii}", serverVersion, &err)) == -1)
+               if(ber_scanf(replyBer, "{ii}", serverVersion, &err) == -1)
                {
                        if (!err)
                        {
@@ -550,7 +550,7 @@ static int nmasldap_get_password(
        LDAP     *ld,
        char     *objectDN,
        size_t   *pwdSize,      /* in bytes */
-       char     *pwd )
+       unsigned char     *pwd )
 {
        int err = 0;
 
@@ -663,13 +663,13 @@ Cleanup:
 int pdb_nds_get_password(
        struct smbldap_state *ldap_state,
        char *object_dn,
-       int *pwd_len,
+       size_t *pwd_len,
        char *pwd )
 {
        LDAP *ld = ldap_state->ldap_struct;
        int rc = -1;
 
-       rc = nmasldap_get_password(ld, object_dn, pwd_len, pwd);
+       rc = nmasldap_get_password(ld, object_dn, pwd_len, (unsigned char *)pwd);
        if (rc == LDAP_SUCCESS) {
 #ifdef DEBUG_PASSWORD
                DEBUG(100,("nmasldap_get_password returned %s for %s\n", pwd, object_dn));
@@ -714,9 +714,13 @@ int pdb_nds_set_password(
        if (rc == LDAP_SUCCESS) {
                DEBUG(5,("NDS Universal Password changed for user %s\n", object_dn));
        } else {
+               char *ld_error = NULL;
+               ldap_get_option(ld, LDAP_OPT_ERROR_STRING, &ld_error);
+               
                /* This will fail if Universal Password is not enabled for the user's context */
-               DEBUG(3,("NDS Universal Password could not be changed for user %s: %d\n",
-                                object_dn, rc));
+               DEBUG(3,("NDS Universal Password could not be changed for user %s: %s (%s)\n",
+                                object_dn, ldap_err2string(rc), ld_error?ld_error:"unknown"));
+               SAFE_FREE(ld_error);
        }
 
        /* Set eDirectory Password */
@@ -757,7 +761,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
                LDAPMessage *entry = NULL;
                const char **attr_list;
                size_t pwd_len;
-               uchar clear_text_pw[512];
+               char clear_text_pw[512];
                const char *p = NULL;
                LDAP *ld = NULL;
                int ldap_port = 0;
@@ -800,7 +804,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
                                got_clear_text_pw = True;
                        }
                } else {
-                       generate_random_buffer(clear_text_pw, 24);
+                       generate_random_buffer((unsigned char *)clear_text_pw, 24);
                        clear_text_pw[24] = '\0';
                        DEBUG(5,("pdb_nds_update_login_attempts: using random password %s\n", clear_text_pw));
                }