cleaned up some picky compiler warnings and indented the code curl style
authorDaniel Stenberg <daniel@haxx.se>
Tue, 14 Aug 2001 08:32:50 +0000 (08:32 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 14 Aug 2001 08:32:50 +0000 (08:32 +0000)
lib/security.c

index 98553a6..e62951a 100644 (file)
@@ -73,45 +73,15 @@ static struct {
     { prot_private, "private" }
 };
 
-#if 0
-static const char *
-level_to_name(enum protection_level level)
-{
-    int i;
-    for(i = 0; i < sizeof(level_names) / sizeof(level_names[0]); i++)
-       if(level_names[i].level == level)
-           return level_names[i].name;
-    return "unknown";
-}
-#endif
-
-#ifndef FTP_SERVER /* not used in server */
 static enum protection_level 
 name_to_level(const char *name)
 {
-    int i;
-    for(i = 0; i < sizeof(level_names) / sizeof(level_names[0]); i++)
-       if(!strncasecmp(level_names[i].name, name, strlen(name)))
-           return level_names[i].level;
-    return (enum protection_level)-1;
+  int i;
+  for(i = 0; i < (int)sizeof(level_names)/(int)sizeof(level_names[0]); i++)
+    if(!strncasecmp(level_names[i].name, name, strlen(name)))
+      return level_names[i].level;
+  return (enum protection_level)-1;
 }
-#endif
-
-#ifdef FTP_SERVER
-
-static struct sec_server_mech *mechs[] = {
-#ifdef KRB5
-    &gss_server_mech,
-#endif
-#ifdef KRB4
-    &krb4_server_mech,
-#endif
-    NULL
-};
-
-static struct sec_server_mech *mech;
-
-#else
 
 static struct sec_client_mech *mechs[] = {
 #ifdef KRB5
@@ -125,8 +95,6 @@ static struct sec_client_mech *mechs[] = {
 
 static struct sec_client_mech *mech;
 
-#endif
-
 int
 sec_getc(struct connectdata *conn, FILE *F)
 {
@@ -135,49 +103,50 @@ sec_getc(struct connectdata *conn, FILE *F)
     if(sec_read(conn, fileno(F), &c, 1) <= 0)
       return EOF;
     return c;
-  } else
+  }
+  else
     return getc(F);
 }
 
 static int
 block_read(int fd, void *buf, size_t len)
 {
-    unsigned char *p = buf;
-    int b;
-    while(len) {
-       b = read(fd, p, len);
-       if (b == 0)
-           return 0;
-       else if (b < 0)
-           return -1;
-       len -= b;
-       p += b;
-    }
-    return p - (unsigned char*)buf;
+  unsigned char *p = buf;
+  int b;
+  while(len) {
+    b = read(fd, p, len);
+    if (b == 0)
+      return 0;
+    else if (b < 0)
+      return -1;
+    len -= b;
+    p += b;
+  }
+  return p - (unsigned char*)buf;
 }
 
 static int
 block_write(int fd, void *buf, size_t len)
 {
-    unsigned char *p = buf;
-    int b;
-    while(len) {
-       b = write(fd, p, len);
-       if(b < 0)
-           return -1;
-       len -= b;
-       p += b;
-    }
-    return p - (unsigned char*)buf;
+  unsigned char *p = buf;
+  int b;
+  while(len) {
+    b = write(fd, p, len);
+    if(b < 0)
+      return -1;
+    len -= b;
+    p += b;
+  }
+  return p - (unsigned char*)buf;
 }
 
 static int
 sec_get_data(struct connectdata *conn,
-             int fd, struct krb4buffer *buf, int level)
+             int fd, struct krb4buffer *buf)
 {
   int len;
   int b;
-
+  
   b = block_read(fd, &len, sizeof(len));
   if (b == 0)
     return 0;
@@ -244,7 +213,7 @@ sec_read(struct connectdata *conn, int fd, void *buffer, int length)
     buffer = (char*)buffer + len;
     
     while(length) {
-      if(sec_get_data(conn, fd, &conn->in_buffer, conn->data_prot) < 0)
+      if(sec_get_data(conn, fd, &conn->in_buffer) < 0)
         return -1;
       if(conn->in_buffer.size == 0) {
         if(rx)
@@ -472,49 +441,49 @@ sec_status(void)
 static int
 sec_prot_internal(struct connectdata *conn, int level)
 {
-    char *p;
-    unsigned int s = 1048576;
-    size_t nread;
+  char *p;
+  unsigned int s = 1048576;
+  ssize_t nread;
 
-    if(!conn->sec_complete){
-      infof(conn->data, "No security data exchange has taken place.\n");
-      return -1;
-    }
-
-    if(level){
-      Curl_ftpsendf(conn->firstsocket, conn,
-                    "PBSZ %u", s);
-      /* wait for feedback */
-      nread = Curl_GetFTPResponse(conn->firstsocket,
-                                  conn->data->buffer, conn, NULL);
-      if(nread < 0)
-        return /*CURLE_OPERATION_TIMEOUTED*/-1;
-      if(/*ret != COMPLETE*/conn->data->buffer[0] != '2'){
-        failf(conn->data, "Failed to set protection buffer size.\n");
-        return -1;
-      }
-      conn->buffer_size = s;
-      p = strstr(/*reply_string*/conn->data->buffer, "PBSZ=");
-      if(p)
-        sscanf(p, "PBSZ=%u", &s);
-      if(s < conn->buffer_size)
-        conn->buffer_size = s;
-    }
+  if(!conn->sec_complete){
+    infof(conn->data, "No security data exchange has taken place.\n");
+    return -1;
+  }
 
+  if(level){
     Curl_ftpsendf(conn->firstsocket, conn,
-                  "PROT %c", level["CSEP"]);
+                  "PBSZ %u", s);
     /* wait for feedback */
     nread = Curl_GetFTPResponse(conn->firstsocket,
                                 conn->data->buffer, conn, NULL);
     if(nread < 0)
       return /*CURLE_OPERATION_TIMEOUTED*/-1;
     if(/*ret != COMPLETE*/conn->data->buffer[0] != '2'){
-      failf(conn->data, "Failed to set protection level.\n");
+      failf(conn->data, "Failed to set protection buffer size.\n");
       return -1;
     }
+    conn->buffer_size = s;
+    p = strstr(/*reply_string*/conn->data->buffer, "PBSZ=");
+    if(p)
+      sscanf(p, "PBSZ=%u", &s);
+    if(s < conn->buffer_size)
+      conn->buffer_size = s;
+  }
+
+  Curl_ftpsendf(conn->firstsocket, conn,
+                "PROT %c", level["CSEP"]);
+  /* wait for feedback */
+  nread = Curl_GetFTPResponse(conn->firstsocket,
+                              conn->data->buffer, conn, NULL);
+  if(nread < 0)
+    return /*CURLE_OPERATION_TIMEOUTED*/-1;
+  if(/*ret != COMPLETE*/conn->data->buffer[0] != '2'){
+    failf(conn->data, "Failed to set protection level.\n");
+    return -1;
+  }
     
-    conn->data_prot = (enum protection_level)level;
-    return 0;
+  conn->data_prot = (enum protection_level)level;
+  return 0;
 }
 
 enum protection_level
@@ -577,7 +546,7 @@ sec_set_protection_level(struct connectdata *conn)
 
 
 int
-sec_request_prot(struct connectdata *conn, char *level)
+sec_request_prot(struct connectdata *conn, const char *level)
 {
   int l = name_to_level(level);
   if(l == -1)
@@ -589,65 +558,65 @@ sec_request_prot(struct connectdata *conn, char *level)
 int
 sec_login(struct connectdata *conn)
 {
-    int ret;
-    struct sec_client_mech **m;
-    size_t nread;
-    struct UrlData *data=conn->data;
+  int ret;
+  struct sec_client_mech **m;
+  ssize_t nread;
+  struct UrlData *data=conn->data;
 
-    for(m = mechs; *m && (*m)->name; m++) {
-       void *tmp;
+  for(m = mechs; *m && (*m)->name; m++) {
+    void *tmp;
 
-       tmp = realloc(conn->app_data, (*m)->size);
-       if (tmp == NULL) {
-          failf (data, "realloc %u failed", (*m)->size);
-          return -1;
-       }
-       conn->app_data = tmp;
+    tmp = realloc(conn->app_data, (*m)->size);
+    if (tmp == NULL) {
+      failf (data, "realloc %u failed", (*m)->size);
+      return -1;
+    }
+    conn->app_data = tmp;
            
-       if((*m)->init && (*(*m)->init)(conn->app_data) != 0) {
-           infof(data, "Skipping %s...\n", (*m)->name);
-           continue;
-       }
-       infof(data, "Trying %s...\n", (*m)->name);
-       /*ret = command("AUTH %s", (*m)->name);***/
-       Curl_ftpsendf(conn->firstsocket, conn,
-                 "AUTH %s", (*m)->name);
-       /* wait for feedback */
-       nread = Curl_GetFTPResponse(conn->firstsocket,
-                                    conn->data->buffer, conn, NULL);
-       if(nread < 0)
-           return /*CURLE_OPERATION_TIMEOUTED*/-1;
-       if(/*ret != CONTINUE*/conn->data->buffer[0] != '3'){
-           if(/*code == 504*/strncmp(conn->data->buffer,"504",3) == 0) {
-               infof(data,
-                      "%s is not supported by the server.\n", (*m)->name);
-           }
-            else if(/*code == 534*/strncmp(conn->data->buffer,"534",3) == 0) {
-              infof(data, "%s rejected as security mechanism.\n", (*m)->name);
-           }
-            else if(/*ret == ERROR*/conn->data->buffer[0] == '5') {
-              infof(data, "The server doesn't support the FTP "
-                    "security extensions.\n");
-              return -1;
-           }
-           continue;
-       }
+    if((*m)->init && (*(*m)->init)(conn->app_data) != 0) {
+      infof(data, "Skipping %s...\n", (*m)->name);
+      continue;
+    }
+    infof(data, "Trying %s...\n", (*m)->name);
+    /*ret = command("AUTH %s", (*m)->name);***/
+    Curl_ftpsendf(conn->firstsocket, conn,
+                  "AUTH %s", (*m)->name);
+    /* wait for feedback */
+    nread = Curl_GetFTPResponse(conn->firstsocket,
+                                conn->data->buffer, conn, NULL);
+    if(nread < 0)
+      return /*CURLE_OPERATION_TIMEOUTED*/-1;
+    if(/*ret != CONTINUE*/conn->data->buffer[0] != '3'){
+      if(/*code == 504*/strncmp(conn->data->buffer,"504",3) == 0) {
+        infof(data,
+              "%s is not supported by the server.\n", (*m)->name);
+      }
+      else if(/*code == 534*/strncmp(conn->data->buffer,"534",3) == 0) {
+        infof(data, "%s rejected as security mechanism.\n", (*m)->name);
+      }
+      else if(/*ret == ERROR*/conn->data->buffer[0] == '5') {
+        infof(data, "The server doesn't support the FTP "
+              "security extensions.\n");
+        return -1;
+      }
+      continue;
+    }
 
-       ret = (*(*m)->auth)(conn->app_data, /*host***/conn);
+    ret = (*(*m)->auth)(conn->app_data, /*host***/conn);
        
-       if(ret == AUTH_CONTINUE)
-          continue;
-       else if(ret != AUTH_OK){
-          /* mechanism is supposed to output error string */
-           return -1;
-       }
-       mech = *m;
-       conn->sec_complete = 1;
-       conn->command_prot = prot_safe;
-       break;
+    if(ret == AUTH_CONTINUE)
+      continue;
+    else if(ret != AUTH_OK){
+      /* mechanism is supposed to output error string */
+      return -1;
     }
+    mech = *m;
+    conn->sec_complete = 1;
+    conn->command_prot = prot_safe;
+    break;
+  }
     
-    return *m == NULL;
+  return *m == NULL;
 }
 
 void