diff lib-src/pop.c @ 272:c5d627a313b1 r21-0b34

Import from CVS: tag r21-0b34
author cvs
date Mon, 13 Aug 2007 10:28:48 +0200
parents 11cf20601dec
children bbff43aa5eb7
line wrap: on
line diff
--- a/lib-src/pop.c	Mon Aug 13 10:27:41 2007 +0200
+++ b/lib-src/pop.c	Mon Aug 13 10:28:48 2007 +0200
@@ -92,12 +92,6 @@
 #endif /* KRB5 */
 #endif /* KERBEROS */
 
-extern char *getenv (/* char * */);
-extern char *getlogin (/* void */);
-extern char *getpass (/* char * */);
-extern char *strerror (/* int */);
-extern char *index ();
-
 #ifdef KERBEROS
 #ifndef KRB5
 extern int krb_sendauth (/* long, int, KTEXT, char *, char *, char *,
@@ -114,16 +108,16 @@
 #endif
 #endif
 
-static int socket_connection (/* char *, int */);
-static char *getline (/* popserver */);
-static int sendline (/* popserver, char * */);
-static int fullwrite (/* int, char *, int */);
-static int getok (/* popserver */);
+static int socket_connection (char *, int);
+static char *pop_getline (popserver);
+static int sendline (popserver, char *);
+static int fullwrite (int, char *, int);
+static int getok (popserver);
 #if 0
-static int gettermination (/* popserver */);
+static int gettermination (popserver);
 #endif
-static void pop_trash (/* popserver */);
-static char *find_crlf (/* char * */);
+static void pop_trash (popserver);
+static char *find_crlf (char *);
 
 #define ERROR_MAX 80		/* a pretty arbitrary size */
 #define POP_PORT 110
@@ -178,11 +172,7 @@
  * 	explanation of the error.
  */
 popserver
-pop_open (host, username, password, flags)
-     char *host;
-     char *username;
-     char *password;
-     int flags;
+pop_open (char *host, char *username, char *password, int flags)
 {
   int sock;
   popserver server;
@@ -348,10 +338,7 @@
  * 	connection impossible.
  */
 int
-pop_stat (server, count, size)
-     popserver server;
-     int *count;
-     int *size;
+pop_stat (popserver server, int *count, int *size)
 {
   char *fromserver;
 
@@ -361,7 +348,7 @@
       return (-1);
     }
      
-  if (sendline (server, "STAT") || (! (fromserver = getline (server))))
+  if (sendline (server, "STAT") || (! (fromserver = pop_getline (server))))
     return (-1);
 
   if (strncmp (fromserver, "+OK ", 4))
@@ -381,7 +368,7 @@
 
   *count = atoi (&fromserver[4]);
      
-  fromserver = index (&fromserver[4], ' ');
+  fromserver = strchr (&fromserver[4], ' ');
   if (! fromserver)
     {
       strcpy (pop_error,
@@ -415,11 +402,7 @@
  * 	connection impossible.
  */
 int
-pop_list (server, message, IDs, sizes)
-     popserver server;
-     int message;
-     int **IDs;
-     int **sizes;
+pop_list (popserver server, int message, int **IDs, int **sizes)
 {
   int how_many, i;
   char *fromserver;
@@ -457,7 +440,7 @@
 	  free ((char *) *sizes);
 	  return (-1);
 	}
-      if (! (fromserver = getline (server)))
+      if (! (fromserver = pop_getline (server)))
 	{
 	  free ((char *) *IDs);
 	  free ((char *) *sizes);
@@ -478,7 +461,7 @@
 	  return (-1);
 	}
       (*IDs)[0] = atoi (&fromserver[4]);
-      fromserver = index (&fromserver[4], ' ');
+      fromserver = strchr (&fromserver[4], ' ');
       if (! fromserver)
 	{
 	  strcpy (pop_error,
@@ -509,7 +492,7 @@
 	      return (-1);
 	    }
 	  (*IDs)[i] = atoi (fromserver);
-	  fromserver = index (fromserver, ' ');
+	  fromserver = strchr (fromserver, ' ');
 	  if (! fromserver)
 	    {
 	      strcpy (pop_error,
@@ -558,10 +541,7 @@
  * Side effects: May kill connection on error.
  */
 char *
-pop_retrieve (server, message, markfrom)
-     popserver server;
-     int message;
-     int markfrom;
+pop_retrieve (popserver server, int message, int markfrom)
 {
   int *IDs, *sizes, bufsize, fromcount = 0, cp = 0;
   char *ptr, *fromserver;
@@ -627,7 +607,7 @@
 	  ptr[cp++] = '>';
 	}
       linesize = strlen (fromserver);
-      bcopy (fromserver, &ptr[cp], linesize);
+      memcpy (&ptr[cp], fromserver, linesize);
       cp += linesize;
       ptr[cp++] = '\n';
     }
@@ -642,60 +622,45 @@
 }     
 
 int
-pop_retrieve_first (server, message, response)
-     popserver server;
-     int message;
-     char **response;
+pop_retrieve_first (popserver server, int message, char **response)
 {
   sprintf (pop_error, "RETR %d", message);
   return (pop_multi_first (server, pop_error, response));
 }
 
 int
-pop_retrieve_next (server, line)
-     popserver server;
-     char **line;
+pop_retrieve_next (popserver server, char **line)
 {
   return (pop_multi_next (server, line));
 }
 
 int
-pop_retrieve_flush (server)
-     popserver server;
+pop_retrieve_flush (popserver server)
 {
   return (pop_multi_flush (server));
 }
 
 int
-pop_top_first (server, message, lines, response)
-     popserver server;
-     int message, lines;
-     char **response;
+pop_top_first (popserver server, int message, int lines, char **response)
 {
   sprintf (pop_error, "TOP %d %d", message, lines);
   return (pop_multi_first (server, pop_error, response));
 }
 
 int
-pop_top_next (server, line)
-     popserver server;
-     char **line;
+pop_top_next (popserver server, char **line)
 {
   return (pop_multi_next (server, line));
 }
 
 int
-pop_top_flush (server)
-     popserver server;
+pop_top_flush (popserver server)
 {
   return (pop_multi_flush (server));
 }
 
 int
-pop_multi_first (server, command, response)
-     popserver server;
-     char *command;
-     char **response;
+pop_multi_first (popserver server, char *command, char **response)
 {
   if (server->in_multi)
     {
@@ -704,7 +669,7 @@
       return (-1);
     }
 
-  if (sendline (server, command) || (! (*response = getline (server))))
+  if (sendline (server, command) || (! (*response = pop_getline (server))))
     {
       return (-1);
     }
@@ -729,9 +694,7 @@
 }
 
 int
-pop_multi_next (server, line)
-     popserver server;
-     char **line;
+pop_multi_next (popserver server, char **line)
 {
   char *fromserver;
 
@@ -741,7 +704,7 @@
       return (-1);
     }
 
-  fromserver = getline (server);
+  fromserver = pop_getline (server);
   if (! fromserver)
     {
       return (-1);
@@ -769,8 +732,7 @@
 }
 
 int
-pop_multi_flush (server)
-     popserver server;
+pop_multi_flush (popserver server)
 {
   char *line;
 
@@ -802,9 +764,7 @@
  * 	otherwise.
  */
 int
-pop_delete (server, message)
-     popserver server;
-     int message;
+pop_delete (popserver server, int message)
 {
   if (server->in_multi)
     {
@@ -834,8 +794,7 @@
  * Side effects: Closes connection on error.
  */
 int
-pop_noop (server)
-     popserver server;
+pop_noop (popserver server)
 {
   if (server->in_multi)
     {
@@ -864,8 +823,7 @@
  * Side effects: Closes the connection on error.
  */
 int
-pop_last (server)
-     popserver server;
+pop_last (popserver server)
 {
   char *fromserver;
      
@@ -878,7 +836,7 @@
   if (sendline (server, "LAST"))
     return (-1);
 
-  if (! (fromserver = getline (server)))
+  if (! (fromserver = pop_getline (server)))
     return (-1);
 
   if (! strncmp (fromserver, "-ERR", 4))
@@ -912,8 +870,7 @@
  * Side effects: Closes the connection on error.
  */
 int
-pop_reset (server)
-     popserver server;
+pop_reset (popserver server)
 {
   if (pop_retrieve_flush (server))
     {
@@ -941,8 +898,7 @@
  * 	function is called, even if an error occurs.
  */
 int
-pop_quit (server)
-     popserver server;
+pop_quit (popserver server)
 {
   int ret = 0;
 
@@ -987,9 +943,7 @@
  * 	into pop_error.
  */
 static int
-socket_connection (host, flags)
-     char *host;
-     int flags;
+socket_connection (char *host, int flags)
 {
   struct hostent *hostent;
   struct servent *servent;
@@ -1038,7 +992,7 @@
 	}
     } while (! hostent);
 
-  bzero ((char *) &addr, sizeof (addr));
+  memset (&addr, 0, sizeof (addr));
   addr.sin_family = AF_INET;
 
 #ifdef KERBEROS
@@ -1090,8 +1044,7 @@
 
   while (*hostent->h_addr_list)
     {
-      bcopy (*hostent->h_addr_list, (char *) &addr.sin_addr,
-	     hostent->h_length);
+      memcpy (&addr.sin_addr, *hostent->h_addr_list, hostent->h_length);
       if (! connect (sock, (struct sockaddr *) &addr, sizeof (addr)))
 	break;
       hostent->h_addr_list++;
@@ -1207,7 +1160,7 @@
 } /* socket_connection */
 
 /*
- * Function: getline
+ * Function: pop_getline
  *
  * Purpose: Get a line of text from the connection and return a
  * 	pointer to it.  The carriage return and linefeed at the end of
@@ -1220,13 +1173,12 @@
  * Returns: A non-null pointer if successful, or a null pointer on any
  * 	error, with an error message copied into pop_error.
  *
- * Notes: The line returned is overwritten with each call to getline.
+ * Notes: The line returned is overwritten with each call to pop_getline.
  *
  * Side effects: Closes the connection on error.
  */
 static char *
-getline (server)
-     popserver server;
+pop_getline (popserver server)
 {
 #define GETLINE_ERROR "Error reading from server: "
 
@@ -1254,8 +1206,9 @@
 	}
       else
 	{
-	  bcopy (server->buffer + server->buffer_index,
-		 server->buffer, server->data);
+	  memcpy (server->buffer,
+		  server->buffer + server->buffer_index,
+		  server->data);
 	  /* Record the fact that we've searched the data already in
              the buffer for a CRLF, so that when we search below, we
              don't have to search the same data twice.  There's a "-
@@ -1283,7 +1236,7 @@
 	  server->buffer = (char *)realloc (server->buffer, server->buffer_size);
 	  if (! server->buffer)
 	    {
-	      strcpy (pop_error, "Out of memory in getline");
+	      strcpy (pop_error, "Out of memory in pop_getline");
 	      pop_trash (server);
 	      return (0);
 	    }
@@ -1300,7 +1253,7 @@
 	}
       else if (ret == 0)
 	{
-	  strcpy (pop_error, "Unexpected EOF from server in getline");
+	  strcpy (pop_error, "Unexpected EOF from server in pop_getline");
 	  pop_trash (server);
 	  return (0);
 	}
@@ -1348,9 +1301,7 @@
  * Side effects: Closes the connection on error.
  */
 static int
-sendline (server, line)
-     popserver server;
-     char *line;
+sendline (popserver server, char *line)
 {
 #define SENDLINE_ERROR "Error writing to POP server: "
   int ret;
@@ -1385,10 +1336,7 @@
  * Return value: Same as write.  Pop_error is not set.
  */
 static int
-fullwrite (fd, buf, nbytes)
-     int fd;
-     char *buf;
-     int nbytes;
+fullwrite (int fd, char *buf, int nbytes)
 {
   char *cp;
   int ret;
@@ -1418,12 +1366,11 @@
  * Side effects: On failure, may make the connection unusable.
  */
 static int
-getok (server)
-     popserver server;
+getok (popserver server)
 {
   char *fromline;
 
-  if (! (fromline = getline (server)))
+  if (! (fromline = pop_getline (server)))
     {
       return (-1);
     }
@@ -1457,12 +1404,11 @@
  * Side effects: Closes the connection on error.
  */
 static int
-gettermination (server)
-     popserver server;
+gettermination (popserver server)
 {
   char *fromserver;
 
-  fromserver = getline (server);
+  fromserver = pop_getline (server);
   if (! fromserver)
     return (-1);
 
@@ -1491,8 +1437,7 @@
  * 	since the last pop_reset) may be lost.
  */
 void 
-pop_close (server)
-     popserver server;
+pop_close (popserver server)
 {
   pop_trash (server);
   free ((char *) server);
@@ -1508,8 +1453,7 @@
  * 	pop_close or pop_quit after this function has been called.
  */
 static void
-pop_trash (server)
-     popserver server;
+pop_trash (popserver server)
 {
   if (server->file >= 0)
     {
@@ -1540,8 +1484,7 @@
    or 0 if it does not contain one.  */
 
 static char *
-find_crlf (in_string)
-     char *in_string;
+find_crlf (char *in_string)
 {
   while (1)
     {