]> granicus.if.org Git - curl/commitdiff
Jean-Philippe Barrette-LaPierre fixed the CURLOPT_PASSWDFUNCTION to make
authorDaniel Stenberg <daniel@haxx.se>
Fri, 8 Mar 2002 15:06:42 +0000 (15:06 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 8 Mar 2002 15:06:42 +0000 (15:06 +0000)
NULL set back the internal default function

lib/url.c

index e88a65e85b573f8b014439759a65d9aa2aab9ed8..e42ce9aeda290dd375c0774a7108a32c9e48ad13 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -765,6 +765,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
      * Password prompt callback
      */
     data->set.fpasswd = va_arg(param, curl_passwd_callback);
+    /*
+     * if the callback provided is null, reset the default callback
+     */
+    if(!data->set.fpasswd)
+    {
+      data->set.fpasswd = my_getpass;
+    }
     break;
   case CURLOPT_PASSWDDATA:
     /*
@@ -1456,11 +1463,14 @@ static CURLcode CreateConnection(struct SessionHandle *data,
 
     /* check for password, if no ask for one */
     if( !data->state.passwd[0] ) {
-      if(!data->set.fpasswd ||
+      if(!data->set.fpasswd || 
          data->set.fpasswd(data->set.passwd_client,
-                       "password:", data->state.passwd,
+                           "password:", data->state.passwd,
                            sizeof(data->state.passwd)))
+      {
+        failf(data, "Bad password from password callback");
         return CURLE_BAD_PASSWORD_ENTERED;
+      }
     }
   }
 
@@ -1486,8 +1496,10 @@ static CURLcode CreateConnection(struct SessionHandle *data,
          data->set.fpasswd( data->set.passwd_client,
                         "proxy password:",
                         data->state.proxypasswd,
-                        sizeof(data->state.proxypasswd)))
+                        sizeof(data->state.proxypasswd))) {
+        failf(data, "Bad password from password callback");
         return CURLE_BAD_PASSWORD_ENTERED;
+      }
     }
 
   }
@@ -1860,8 +1872,10 @@ static CURLcode CreateConnection(struct SessionHandle *data,
         if(!data->set.fpasswd ||
            data->set.fpasswd(data->set.passwd_client,
                              "password:", data->state.passwd,
-                             sizeof(data->state.passwd)))
+                             sizeof(data->state.passwd))) {
+          failf(data, "Bad password from password callback");
           return CURLE_BAD_PASSWORD_ENTERED;
+        }
       }
       else {
         /* we have a password found in the URL, decode it! */