diff lib/protocols.c @ 516:fbb5a02beddb

2004-7-26 Brian Masney <masneyb@gftp.org> * lib/config_file.c lib/local.c lib/ftps.c lib/gftp.h lib/httpcommon.h lib/https.c lib/misc.c lib/protocols.c lib/pty.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c - various fixes found through a static code analysis checker. (some signed/unsigned fixes, removed unneeded casts, removed unneeded variables, more consistency, largefile fixes). Thanks to Derek M Jones for running the static code analysis for me * lib/cache.c - s/remove/del_entry/g * lib/bookmark.c lib/protocols.c (gftp_parse_bookmark) - allow the third parameter of this function to be a NULL pointer
author masneyb
date Tue, 27 Jul 2004 02:46:54 +0000
parents 2c8a42a63a31
children c6a6e908dbaf
line wrap: on
line diff
--- a/lib/protocols.c	Mon Jul 26 09:51:07 2004 +0000
+++ b/lib/protocols.c	Tue Jul 27 02:46:54 2004 +0000
@@ -643,14 +643,14 @@
   gftp_set_directory (request, tempentry->remote_dir);
   gftp_set_port (request, tempentry->port);
 
-  if (local_request != NULL &&
-      tempentry->local_dir != NULL &&
+  if (local_request != NULL && tempentry->local_dir != NULL &&
       *tempentry->local_dir != '\0')
     {
       gftp_set_directory (local_request, tempentry->local_dir);
-      *refresh_local = 1;
+      if (refresh_local != NULL)
+        *refresh_local = 1;
     }
-  else
+  else if (refresh_local != NULL)
     *refresh_local = 0;
 
   for (i = 0; gftp_protocols[i].name; i++)
@@ -1053,7 +1053,8 @@
   char *pos;
 #if defined (HAVE_GETADDRINFO) && defined (HAVE_GAI_STRERROR)
   struct addrinfo hints;
-  int port, errnum;
+  unsigned int port;
+  int errnum;
   char serv[8];
 #endif
 
@@ -1128,7 +1129,7 @@
 
       if (hostname->ipv4_network_address != 0)
         {
-          memcpy (addy, addr, sizeof (addy));
+          memcpy (addy, addr, sizeof (*addy));
           netaddr =
             (((addy[0] & 0xff) << 24) | ((addy[1] & 0xff) << 16) |
              ((addy[2] & 0xff) << 8) | (addy[3] & 0xff)) & 
@@ -1175,10 +1176,7 @@
   while (*pos != ' ' && *pos != '\t' && *pos != '\0')
     pos++;
 
-  if (pos == '\0')
-    return (pos);
-
-  while ((*pos == ' ' || *pos == '\t') && *pos != '\0')
+  while (*pos == ' ' || *pos == '\t')
     pos++;
 
   return (pos);
@@ -1477,15 +1475,15 @@
       startpos++;
       switch (*startpos)
         {
-        case '/':
-          isdir = 1;
-          break;
-        case 's':
-          fle->size = gftp_parse_file_size (startpos + 1);
-          break;
-        case 'm':
-          fle->datetime = strtol (startpos + 1, NULL, 10);
-          break;
+          case '/':
+            isdir = 1;
+            break;
+          case 's':
+            fle->size = gftp_parse_file_size (startpos + 1);
+            break;
+          case 'm':
+            fle->datetime = strtol (startpos + 1, NULL, 10);
+            break;
         }
       startpos = strchr (startpos, ',');
     }
@@ -1774,9 +1772,9 @@
 static GHashTable *
 gftp_gen_dir_hash (gftp_request * request, int *ret)
 {
-  unsigned long *newsize;
   GHashTable * dirhash;
   gftp_file * fle;
+  off_t *newsize;
   char * newname;
 
   dirhash = g_hash_table_new (string_hash_function, string_hash_compare);
@@ -1787,7 +1785,7 @@
       while (gftp_get_next_file (request, NULL, fle) > 0)
         {
           newname = fle->file;
-          newsize = g_malloc (sizeof (unsigned long));
+          newsize = g_malloc (sizeof (*newsize));
           *newsize = fle->size;
           g_hash_table_insert (dirhash, newname, newsize);
           fle->file = NULL;
@@ -1826,10 +1824,10 @@
 static GList *
 gftp_get_dir_listing (gftp_transfer * transfer, int getothdir, int *ret)
 {
-  unsigned long *newsize;
   GHashTable * dirhash;
   GList * templist;
   gftp_file * fle;
+  off_t *newsize;
   char *newname;
 
   if (getothdir && transfer->toreq)
@@ -1897,9 +1895,9 @@
   char *oldfromdir, *oldtodir, *newname, *pos;
   int forcecd, remotechanged, ret;
   GList * templist, * lastlist;
-  unsigned long *newsize;
   GHashTable * dirhash;
   gftp_file * curfle;
+  off_t *newsize;
   mode_t st_mode;
 
   g_return_val_if_fail (transfer != NULL, GFTP_EFATAL);
@@ -2070,21 +2068,26 @@
 
 int
 gftp_connect_server (gftp_request * request, char *service,
-                     char *proxy_hostname, int proxy_port)
+                     char *proxy_hostname, unsigned int proxy_port)
 {
   char *connect_host, *disphost;
-  int port, sock;
+  unsigned int port;
+  int sock = -1;
 #if defined (HAVE_GETADDRINFO) && defined (HAVE_GAI_STRERROR)
   struct addrinfo hints, *res;
   intptr_t enable_ipv6;
   char serv[8];
   int errnum;
 
-  if ((request->use_proxy = gftp_need_proxy (request, service,
-                                             proxy_hostname, proxy_port)) < 0)
-    return (request->use_proxy);
-  else if (request->use_proxy == 1)
-    request->hostp = NULL;
+  if ((errnum = gftp_need_proxy (request, service, proxy_hostname,
+                                 proxy_port)) < 0)
+    return (errnum);
+  else
+    {
+      request->use_proxy = errnum;
+      if (request->use_proxy)
+        request->hostp = NULL;
+    }
 
   gftp_lookup_request_option (request, "enable_ipv6", &enable_ipv6);
 
@@ -2181,6 +2184,8 @@
   else if (request->use_proxy == 1)
     request->hostp = NULL;
 
+  g_return_val_if_fail (sock != -1, GFTP_EFATAL);
+
   if ((sock = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
     {
       request->logging_function (gftp_logging_error, request,
@@ -2317,7 +2322,7 @@
 #if defined (_LARGEFILE_SOURCE)
       printf ("%s:%s:%lld:%lld:%s:%s:%s\n", 
               tempfle->file, tempfle->destfile, 
-              (long long) tempfle->size, (long long) tempfle->startsize, 
+              tempfle->size, tempfle->startsize, 
               tempfle->user, tempfle->group, attribs);
 #else
       printf ("%s:%s:%ld:%ld:%s:%s:%s\n", 
@@ -2340,7 +2345,7 @@
 #if defined (_LARGEFILE_SOURCE)
       printf ("%s:%s:%lld:%lld:%s:%s:%s\n", 
               tempfle->file, tempfle->destfile, 
-              (long long) tempfle->size, (long long) tempfle->startsize, 
+              tempfle->size, tempfle->startsize, 
               tempfle->user, tempfle->group, attribs);
 #else
       printf ("%s:%s:%ld:%ld:%s:%s:%s\n", 
@@ -2370,11 +2375,12 @@
 gftp_get_line (gftp_request * request, gftp_getline_buffer ** rbuf, 
                char * str, size_t len, int fd)
 {
-  ssize_t ret, retval, rlen;
-  char *pos, *nextpos;
   ssize_t (*read_function) (gftp_request * request, void *ptr, size_t size,
                             int fd);
+  char *pos, *nextpos;
+  size_t rlen, nslen;
   int end_of_buffer;
+  ssize_t ret;
 
   if (request == NULL || request->read_function == NULL)
     read_function = gftp_fd_read;
@@ -2398,8 +2404,8 @@
       (*rbuf)->curpos = (*rbuf)->buffer;
     }
 
-  retval = GFTP_ERETRYABLE;
-  do
+  ret = 0;
+  while (1)
     {
       pos = strchr ((*rbuf)->curpos, '\n');
       end_of_buffer = (*rbuf)->curpos == (*rbuf)->buffer && 
@@ -2409,7 +2415,7 @@
         {
           if (pos != NULL)
             {
-              retval = pos - (*rbuf)->curpos + 1;
+              nslen = pos - (*rbuf)->curpos + 1;
               nextpos = pos + 1;
               if (pos > (*rbuf)->curpos && *(pos - 1) == '\r')
                 pos--;
@@ -2417,22 +2423,24 @@
             }
           else
             {
-              retval = (*rbuf)->cur_bufsize;
+              nslen = (*rbuf)->cur_bufsize;
               nextpos = NULL;
 
               /* This is not an overflow since we allocated one extra byte to
                  buffer above */
-              ((*rbuf)->curpos)[retval] = '\0';
+              ((*rbuf)->curpos)[nslen] = '\0';
             }
 
           strncpy (str, (*rbuf)->curpos, len);
           str[len - 1] = '\0';
-          (*rbuf)->cur_bufsize -= retval;
+          (*rbuf)->cur_bufsize -= nslen;
 
           if (nextpos != NULL)
             (*rbuf)->curpos = nextpos;
           else
             (*rbuf)->cur_bufsize = 0;
+
+          ret = nslen;
           break;
         }
       else
@@ -2476,9 +2484,8 @@
           (*rbuf)->curpos[(*rbuf)->cur_bufsize] = '\0';
         }
     }
-  while (retval == GFTP_ERETRYABLE);
-
-  return (retval);
+
+  return (ret);
 }
 
 
@@ -2559,7 +2566,7 @@
   struct timeval tv;
   ssize_t w_ret;
   fd_set fset;
-  size_t ret;
+  int ret;
 
   gftp_lookup_request_option (request, "network_timeout", &network_timeout);  
 
@@ -2699,7 +2706,7 @@
 #endif
     }
 
-  if (dest->swap_socks)
+  if (dest->swap_socks != NULL)
     dest->swap_socks (dest, source);
 }
 
@@ -2711,7 +2718,6 @@
   union { intptr_t i; float f; } maxkbs;
   unsigned long waitusecs;
   double start_difftime;
-  gftp_file * tempfle;
   struct timeval tv;
   int waited;
 
@@ -2722,7 +2728,6 @@
 
   gettimeofday (&tv, NULL);
 
-  tempfle = tdata->curfle->data;
   tdata->trans_bytes += num_read;
   tdata->curtrans += num_read;
   tdata->stalled = 0;