fixed an inet_ntoa() occurance to use inet_ntoa_r() if it is available.
authorDaniel Stenberg <daniel@haxx.se>
Fri, 4 Jan 2002 09:52:44 +0000 (09:52 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 4 Jan 2002 09:52:44 +0000 (09:52 +0000)
I also replaced all printf() calls with calls to Curl_failf()

lib/krb4.c

index 9b752af..3b3db40 100644 (file)
 #include "ftp.h"
 #include "sendf.h"
 
+#if defined(HAVE_INET_NTOA_R) && !defined(HAVE_INET_NTOA_R_DECL)
+#include "inet_ntoa_r.h"
+#endif
+
 /* The last #include file should be: */
 #ifdef MALLOCDEBUG
 #include "memdebug.h"
@@ -193,10 +197,10 @@ krb4_auth(void *app_data, struct connectdata *conn)
   int checksum;
   u_int32_t cs;
   struct krb4_data *d = app_data;
-  struct sockaddr_in *localaddr  = (struct sockaddr_in *)LOCAL_ADDR;
   char *host = conn->hostaddr->h_name;
   ssize_t nread;
   int l = sizeof(conn->local_addr);
+  struct SessionHandle *data = conn->data;
 
   if(getsockname(conn->firstsocket,
                  (struct sockaddr *)LOCAL_ADDR, &l) < 0)
@@ -207,80 +211,76 @@ krb4_auth(void *app_data, struct connectdata *conn)
   if(ret == KDC_PR_UNKNOWN)
     ret = mk_auth(d, &adat, "rcmd", host, checksum);
   if(ret) {
-    printf("%s\n", krb_get_err_text(ret));
+    Curl_infof(data, "%s\n", krb_get_err_text(ret));
     return AUTH_CONTINUE;
   }
   
 #ifdef HAVE_KRB_GET_OUR_IP_FOR_REALM
   if (krb_get_config_bool("nat_in_use")) {
+    struct sockaddr_in *localaddr  = (struct sockaddr_in *)LOCAL_ADDR;
     struct in_addr natAddr;
 
     if (krb_get_our_ip_for_realm(krb_realmofhost(host),
                                  &natAddr) != KSUCCESS
         && krb_get_our_ip_for_realm(NULL, &natAddr) != KSUCCESS)
-      printf("Can't get address for realm %s\n",
-             krb_realmofhost(host));
+      Curl_infof(data, "Can't get address for realm %s\n",
+                 krb_realmofhost(host));
     else {
       if (natAddr.s_addr != localaddr->sin_addr.s_addr) {
-        printf("Using NAT IP address (%s) for kerberos 4\n",
-               (char *)inet_ntoa(natAddr));
+#ifdef HAVE_INET_NTOA_R
+        char ntoa_buf[64];
+        char *ip = (char *)inet_ntoa_r(natAddr, ntoa_buf, sizeof(ntoa_buf));
+#else
+        char *ip = (char *)inet_ntoa(natAddr);
+#endif
+        Curl_infof(data, "Using NAT IP address (%s) for kerberos 4\n", ip);
         localaddr->sin_addr = natAddr;
-        
-        /*
-         * This not the best place to do this, but it is here we know that
-         * (probably) NAT is in use!  */
-
-        /*passivemode = 1;***/
-        /*printf("Setting: Passive mode on.\n");***/
       }
     }
   }
 #endif
 
-  /*printf("Local address is %s\n", inet_ntoa(localaddr->sin_addr));***/
-  /*printf("Remote address is %s\n", inet_ntoa(remoteaddr->sin_addr));***/
-
   if(Curl_base64_encode(adat.dat, adat.length, &p) < 0) {
-    printf("Out of memory base64-encoding.\n");
+    Curl_failf(data, "Out of memory base64-encoding");
     return AUTH_CONTINUE;
   }
 
   if(Curl_ftpsendf(conn, "ADAT %s", p))
     return -2;
 
-  nread = Curl_GetFTPResponse(conn->data->state.buffer, conn, NULL);
+  nread = Curl_GetFTPResponse(data->state.buffer, conn, NULL);
   if(nread < 0)
     return -1;
   free(p);
 
-  if(/*ret != COMPLETE*/conn->data->state.buffer[0] != '2'){
-    printf("Server didn't accept auth data.\n");
+  if(data->state.buffer[0] != '2'){
+    Curl_failf(data, "Server didn't accept auth data");
     return AUTH_ERROR;
   }
 
-  p = strstr(conn->data->state.buffer, "ADAT=");
-  if(!p){
-    printf("Remote host didn't send adat reply.\n");
+  p = strstr(data->state.buffer, "ADAT=");
+  if(!p) {
+    Curl_failf(data, "Remote host didn't send adat reply");
     return AUTH_ERROR;
   }
   p += 5;
   len = Curl_base64_decode(p, adat.dat);
-  if(len < 0){
-    printf("Failed to decode base64 from server.\n");
+  if(len < 0) {
+    Curl_failf(data, "Failed to decode base64 from server");
     return AUTH_ERROR;
   }
   adat.length = len;
   ret = krb_rd_safe(adat.dat, adat.length, &d->key, 
                     (struct sockaddr_in *)hisctladdr, 
                     (struct sockaddr_in *)myctladdr, &msg_data);
-  if(ret){
-    printf("Error reading reply from server: %s.\n", 
-           krb_get_err_text(ret));
+  if(ret) {
+    Curl_failf(data, "Error reading reply from server: %s", 
+               krb_get_err_text(ret));
     return AUTH_ERROR;
   }
   krb_get_int(msg_data.app_data, &cs, 4, 0);
-  if(cs - checksum != 1){
-    printf("Bad checksum returned from server.\n");
+  if(cs - checksum != 1) {
+    Curl_failf(data, "Bad checksum returned from server");
     return AUTH_ERROR;
   }
   return AUTH_OK;
@@ -321,15 +321,14 @@ void Curl_krb_kauth(struct connectdata *conn)
   if(nread < 0)
     return /*CURLE_OPERATION_TIMEOUTED*/;
 
-  if(/*ret != CONTINUE*/conn->data->state.buffer[0] != '3'){
+  if(conn->data->state.buffer[0] != '3'){
     Curl_set_command_prot(conn, save);
-    /*code = -1;***/
     return;
   }
 
   p = strstr(conn->data->state.buffer, "T=");
   if(!p) {
-    printf("Bad reply from server.\n");
+    Curl_failf(conn->data, "Bad reply from server");
     Curl_set_command_prot(conn, save);
     return;
   }
@@ -337,7 +336,7 @@ void Curl_krb_kauth(struct connectdata *conn)
   p += 2;
   tmp = Curl_base64_decode(p, &tkt.dat);
   if(tmp < 0) {
-    printf("Failed to decode base64 in reply.\n");
+    Curl_failf(conn->data, "Failed to decode base64 in reply.\n");
     Curl_set_command_prot(conn, save);
     return;
   }
@@ -346,7 +345,7 @@ void Curl_krb_kauth(struct connectdata *conn)
     
   p = strstr(conn->data->state.buffer, "P=");
   if(!p) {
-    printf("Bad reply from server.\n");
+    Curl_failf(conn->data, "Bad reply from server");
     Curl_set_command_prot(conn, save);
     return;
   }