diff src/pop3_in.c @ 10:26e34ae9a3e3

changed indention and line wrapping to a more consistent style
author meillo@marmaro.de
date Mon, 27 Oct 2008 16:23:10 +0100
parents 08114f7dcc23
children f671821d8222
line wrap: on
line diff
--- a/src/pop3_in.c	Mon Oct 27 16:21:27 2008 +0100
+++ b/src/pop3_in.c	Mon Oct 27 16:23:10 2008 +0100
@@ -4,7 +4,7 @@
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -36,785 +36,774 @@
 /* experimental feature */
 #define DO_WRITE_UIDL_EARLY 1
 
-static
-gchar *MD5String (char *string)
+static gchar*
+MD5String(char *string)
 {
-  MD5_CTX context;
-  unsigned char digest[16];
-  char str_digest[33];
-  int i;
+	MD5_CTX context;
+	unsigned char digest[16];
+	char str_digest[33];
+	int i;
 
 #ifdef USE_LIB_CRYPTO
-  MD5(string, strlen(string), digest);
+	MD5(string, strlen(string), digest);
 #else
-  MD5Init(&context);
-  MD5Update(&context, string, strlen(string));
-  MD5Final(digest, &context);
+	MD5Init(&context);
+	MD5Update(&context, string, strlen(string));
+	MD5Final(digest, &context);
 #endif
-  for (i = 0;  i < 16;  i++) 
-    sprintf(str_digest+2*i, "%02x", digest[i]);
+	for (i = 0; i < 16; i++)
+		sprintf(str_digest + 2 * i, "%02x", digest[i]);
 
-  return g_strdup(str_digest);
+	return g_strdup(str_digest);
 }
 
-static
-pop3_base *create_pop3base(gint sock, guint flags)
+static pop3_base*
+create_pop3base(gint sock, guint flags)
 {
-  gint dup_sock;
+	gint dup_sock;
 
-  pop3_base *popb = (pop3_base *)g_malloc(sizeof(pop3_base));
-  if(popb){
-    memset(popb, 0, sizeof(pop3_base));
+	pop3_base *popb = (pop3_base *) g_malloc(sizeof(pop3_base));
+	if (popb) {
+		memset(popb, 0, sizeof(pop3_base));
 
-    popb->error = pop3_ok;
+		popb->error = pop3_ok;
 
-    popb->buffer = (gchar *)g_malloc(POP3_BUF_LEN);
+		popb->buffer = (gchar *) g_malloc(POP3_BUF_LEN);
 
-    dup_sock = dup(sock);
-    popb->out = fdopen(sock, "w");
-    popb->in = fdopen(dup_sock, "r");
-    
-    popb->flags = flags;
-  }
-  return popb;
+		dup_sock = dup(sock);
+		popb->out = fdopen(sock, "w");
+		popb->in = fdopen(dup_sock, "r");
+
+		popb->flags = flags;
+	}
+	return popb;
 }
 
-static
-void pop3_printf(FILE *out, gchar *fmt, ...)
+static void
+pop3_printf(FILE * out, gchar * fmt, ...)
 {
-  va_list args;
-  va_start(args, fmt);
+	va_list args;
+	va_start(args, fmt);
 
-  DEBUG(4){
-    gchar buf[256];
-    va_list args_copy;
+	DEBUG(4) {
+		gchar buf[256];
+		va_list args_copy;
 
-    va_copy(args_copy, args);
-    vsnprintf(buf, 255, fmt, args_copy);
-    va_end(args_copy);
+		va_copy(args_copy, args);
+		vsnprintf(buf, 255, fmt, args_copy);
+		va_end(args_copy);
 
-    debugf(">>>%s", buf);
-  }
+		debugf(">>>%s", buf);
+	}
 
-  vfprintf(out, fmt, args);  fflush(out);
+	vfprintf(out, fmt, args);
+	fflush(out);
 
-  va_end(args);
+	va_end(args);
 }
 
-static
-gboolean find_uid(pop3_base *popb, gchar *str)
+static gboolean
+find_uid(pop3_base * popb, gchar * str)
 {
-  GList *node, *node_next;
+	GList *node, *node_next;
 
-  for(node = popb->list_uid_old; node; node=node_next){
-    gchar *uid = (gchar *)(node->data);
-    node_next = node->next;
-    if(strcmp(uid, str) == 0){
+	for (node = popb->list_uid_old; node; node = node_next) {
+		gchar *uid = (gchar *) (node->data);
+		node_next = node->next;
+		if (strcmp(uid, str) == 0) {
 #if 1
-      popb->list_uid_old = g_list_remove_link(popb->list_uid_old, node);
-      g_list_free_1(node);
-      g_free(uid);
+			popb->list_uid_old = g_list_remove_link(popb->list_uid_old, node);
+			g_list_free_1(node);
+			g_free(uid);
 #endif
-      return TRUE;
-    }
-  }
-  return FALSE;
+			return TRUE;
+		}
+	}
+	return FALSE;
 }
 
-static
-gboolean write_uidl(pop3_base *popb, gchar *user)
+static gboolean
+write_uidl(pop3_base * popb, gchar * user)
 {
-  gboolean ok = FALSE;
-  GList *node;
-  gchar *filename = g_strdup_printf("%s/popuidl/%s@%s",
-				    conf.spool_dir,
-				    user, popb->remote_host);
-  gchar *tmpname = g_strdup_printf("%s.tmp", filename);
-  FILE *fptr = fopen(tmpname, "wt");
+	gboolean ok = FALSE;
+	GList *node;
+	gchar *filename = g_strdup_printf("%s/popuidl/%s@%s", conf.spool_dir, user, popb->remote_host);
+	gchar *tmpname = g_strdup_printf("%s.tmp", filename);
+	FILE *fptr = fopen(tmpname, "wt");
 
-  if(fptr){
-    foreach(popb->drop_list, node){
-      msg_info *info = (msg_info *)(node->data);
-      if(info->is_fetched || info->is_in_uidl)
-	fprintf(fptr, "%s\n", info->uid);
-    }
-    fclose(fptr);
-    ok = (rename(tmpname, filename) != -1);
-  }
-  
-  g_free(tmpname);
-  g_free(filename);
-  return ok;
+	if (fptr) {
+		foreach(popb->drop_list, node) {
+			msg_info *info = (msg_info *) (node->data);
+			if (info->is_fetched || info->is_in_uidl)
+				fprintf(fptr, "%s\n", info->uid);
+		}
+		fclose(fptr);
+		ok = (rename(tmpname, filename) != -1);
+	}
+
+	g_free(tmpname);
+	g_free(filename);
+	return ok;
 }
 
-static
-gboolean read_uidl_fname(pop3_base *popb, gchar *filename)
+static gboolean
+read_uidl_fname(pop3_base * popb, gchar * filename)
 {
-  gboolean ok = FALSE;
-  FILE *fptr = fopen(filename, "rt");
-  gchar buf[256];
+	gboolean ok = FALSE;
+	FILE *fptr = fopen(filename, "rt");
+	gchar buf[256];
 
-  if(fptr){
-    popb->list_uid_old = NULL;
-    while(fgets(buf, 255, fptr)){
-      if(buf[strlen(buf)-1] == '\n'){
-	g_strchomp(buf);
-	popb->list_uid_old =
-	  g_list_append(popb->list_uid_old, g_strdup(buf));
-      }else{
-	logwrite(LOG_ALERT, "broken uid: %s\n", buf);
-	break;
-      }
-    }
-    fclose(fptr);
-    ok = TRUE;
-  }else
-    logwrite(LOG_ALERT, "opening of %s failed: %s", filename, strerror(errno));
-  return ok;
+	if (fptr) {
+		popb->list_uid_old = NULL;
+		while (fgets(buf, 255, fptr)) {
+			if (buf[strlen(buf) - 1] == '\n') {
+				g_strchomp(buf);
+				popb->list_uid_old = g_list_append(popb->list_uid_old, g_strdup(buf));
+			} else {
+				logwrite(LOG_ALERT, "broken uid: %s\n", buf);
+				break;
+			}
+		}
+		fclose(fptr);
+		ok = TRUE;
+	} else
+		logwrite(LOG_ALERT, "opening of %s failed: %s", filename, strerror(errno));
+	return ok;
 }
 
-static
-gboolean read_uidl(pop3_base *popb, gchar *user)
+static gboolean
+read_uidl(pop3_base * popb, gchar * user)
 {
-  gboolean ok = FALSE;
-  struct stat statbuf;
-  gchar *filename = g_strdup_printf("%s/popuidl/%s@%s",
-				    conf.spool_dir,
-				    user, popb->remote_host);
+	gboolean ok = FALSE;
+	struct stat statbuf;
+	gchar *filename = g_strdup_printf("%s/popuidl/%s@%s", conf.spool_dir, user, popb->remote_host);
 
-  if(stat(filename, &statbuf) == 0){
-    ok = read_uidl_fname(popb, filename);
-    if(ok){
-      GList *drop_node;
-      foreach(popb->drop_list, drop_node){
-	msg_info *info = (msg_info *)(drop_node->data);
-	if(find_uid(popb, info->uid)){
-	  DEBUG(5) debugf("msg with uid '%s' already known\n", info->uid);
-	  info->is_in_uidl = TRUE;
-	  popb->uidl_known_cnt++;
-	}else
-	  DEBUG(5) debugf("msg with uid '%s' not known\n", info->uid);
-      }
-    }
-  }else{
-    logwrite(LOG_DEBUG, "no uidl file '%s' found\n", filename);
-    ok = TRUE;
-  }
+	if (stat(filename, &statbuf) == 0) {
+		ok = read_uidl_fname(popb, filename);
+		if (ok) {
+			GList *drop_node;
+			foreach(popb->drop_list, drop_node) {
+				msg_info *info = (msg_info *) (drop_node->data);
+				if (find_uid(popb, info->uid)) {
+					DEBUG(5) debugf("msg with uid '%s' already known\n", info->uid);
+					info->is_in_uidl = TRUE;
+					popb->uidl_known_cnt++;
+				} else
+					DEBUG(5) debugf("msg with uid '%s' not known\n", info->uid);
+			}
+		}
+	} else {
+		logwrite(LOG_DEBUG, "no uidl file '%s' found\n", filename);
+		ok = TRUE;
+	}
 
-  g_free(filename);
-  return ok; /* return code is irrelevant, do not check... */
+	g_free(filename);
+	return ok;  /* return code is irrelevant, do not check... */
 }
 
-static
-gboolean read_response(pop3_base *popb, int timeout)
+static gboolean
+read_response(pop3_base * popb, int timeout)
 {
-  gint len;
+	gint len;
 
-  len = read_sockline(popb->in, popb->buffer, POP3_BUF_LEN, timeout, READSOCKL_CHUG);
+	len = read_sockline(popb->in, popb->buffer, POP3_BUF_LEN, timeout, READSOCKL_CHUG);
 
-  if(len == -3){
-    popb->error = pop3_timeout;
-    return FALSE;
-  }
-  else if(len == -2){
-    popb->error = pop3_syntax;
-    return FALSE;
-  }
-  else if(len == -1){
-    popb->error = pop3_eof;
-    return FALSE;
-  }
-  
-  return TRUE;
+	if (len == -3) {
+		popb->error = pop3_timeout;
+		return FALSE;
+	} else if (len == -2) {
+		popb->error = pop3_syntax;
+		return FALSE;
+	} else if (len == -1) {
+		popb->error = pop3_eof;
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+static gboolean
+check_response(pop3_base * popb)
+{
+	char c = popb->buffer[0];
+
+	if (c == '+') {
+		popb->error = pop3_ok;
+		return TRUE;
+	} else if (c == '-')
+		popb->error = pop3_fail;
+	else
+		popb->error = pop3_syntax;
+	return FALSE;
 }
 
-static
-gboolean check_response(pop3_base *popb)
+static gboolean
+strtoi(gchar * p, gchar ** pend, gint * val)
 {
-  char c = popb->buffer[0];
+	gchar buf[12];
+	gint i = 0;
 
-  if(c == '+'){
-    popb->error = pop3_ok;
-    return TRUE;
-  }else if(c == '-')
-    popb->error = pop3_fail;
-  else
-    popb->error = pop3_syntax;
-  return FALSE;
+	while (*p && isspace(*p))
+		p++;
+	if (*p) {
+		while ((i < 11) && isdigit(*p))
+			buf[i++] = *(p++);
+		buf[i] = 0;
+		*val = atoi(buf);
+		*pend = p;
+		return TRUE;
+	}
+	return FALSE;
 }
 
-static
-gboolean strtoi(gchar *p, gchar **pend, gint *val)
+static gboolean
+check_response_int_int(pop3_base * popb, gint * arg0, gint * arg1)
 {
-  gchar buf[12];
-  gint i = 0;
-
-  while(*p && isspace(*p)) p++;
-  if(*p){
-    while((i < 11) && isdigit(*p))
-      buf[i++] = *(p++);
-    buf[i] = 0;
-    *val = atoi(buf);
-    *pend = p;
-    return TRUE;
-  }
-  return FALSE;
-}
+	if (check_response(popb)) {
+		gchar *p = &(popb->buffer[3]);
+		gchar *pe;
 
-static
-gboolean check_response_int_int(pop3_base *popb, gint *arg0, gint *arg1)
-{
-  if(check_response(popb)){
-    gchar *p = &(popb->buffer[3]);
-    gchar *pe;
-
-    if(strtoi(p, &pe, arg0)){
-      DEBUG(5) debugf("arg0 = %d\n", *arg0);
-      p = pe;
-      if(strtoi(p, &pe, arg1))
-	DEBUG(5) debugf("arg1 = %d\n", *arg1);
-	return TRUE;
-    }
-    popb->error = pop3_syntax;
-  }
-  return FALSE;
+		if (strtoi(p, &pe, arg0)) {
+			DEBUG(5) debugf("arg0 = %d\n", *arg0);
+			p = pe;
+			if (strtoi(p, &pe, arg1))
+				DEBUG(5) debugf("arg1 = %d\n", *arg1);
+			return TRUE;
+		}
+		popb->error = pop3_syntax;
+	}
+	return FALSE;
 }
 
-static
-gboolean get_drop_listing(pop3_base *popb)
+static gboolean
+get_drop_listing(pop3_base * popb)
 {
-  gchar buf[64];
+	gchar buf[64];
 
-  DEBUG(5) debugf("get_drop_listing() entered\n");
+	DEBUG(5) debugf("get_drop_listing() entered\n");
 
-  while(1){
-    gint len = read_sockline(popb->in, buf, 64, POP3_CMD_TIMEOUT, READSOCKL_CHUG);
-    if(len > 0){
-      if(buf[0] == '.')
-	return TRUE;
-      else{
-	gint number, msg_size;
-	gchar *p = buf, *pe;
-	if(strtoi(p, &pe, &number)){
-	  p = pe;
-	  if(strtoi(p, &pe, &msg_size)){
-	    msg_info *info = g_malloc(sizeof(msg_info));
-	    info->number = number;
-	    info->size = msg_size;
+	while (1) {
+		gint len = read_sockline(popb->in, buf, 64, POP3_CMD_TIMEOUT, READSOCKL_CHUG);
+		if (len > 0) {
+			if (buf[0] == '.')
+				return TRUE;
+			else {
+				gint number, msg_size;
+				gchar *p = buf, *pe;
+				if (strtoi(p, &pe, &number)) {
+					p = pe;
+					if (strtoi(p, &pe, &msg_size)) {
+						msg_info *info = g_malloc(sizeof(msg_info));
+						info->number = number;
+						info->size = msg_size;
 
-	    DEBUG(5) debugf("get_drop_listing(), number = %d, msg_size = %d\n", number, msg_size);
+						DEBUG(5) debugf ("get_drop_listing(), number = %d, msg_size = %d\n", number, msg_size);
 
-	    info->uid = NULL;
-	    info->is_fetched = FALSE;
-	    info->is_in_uidl = FALSE;
-	    popb->drop_list = g_list_append(popb->drop_list, info);
-	  }else{
-	    popb->error = pop3_syntax;
-	    break;
-	  }
-	}else{
-	  popb->error = pop3_syntax;
-	  break;
+						info->uid = NULL;
+						info->is_fetched = FALSE;
+						info->is_in_uidl = FALSE;
+						popb->drop_list = g_list_append(popb->drop_list, info);
+					} else {
+						popb->error = pop3_syntax;
+						break;
+					}
+				} else {
+					popb->error = pop3_syntax;
+					break;
+				}
+			}
+		} else {
+			popb->error = (len == -1) ? pop3_eof : pop3_timeout;
+			return FALSE;
+		}
 	}
-      }
-    }else{
-      popb->error = (len == -1) ? pop3_eof : pop3_timeout;
-      return FALSE;
-    }
-  }
-  return FALSE;
+	return FALSE;
 }
 
-static
-gboolean get_uid_listing(pop3_base *popb)
+static gboolean
+get_uid_listing(pop3_base * popb)
 {
-  gchar buf[64];
+	gchar buf[64];
 
-  while(1){
-    gint len = read_sockline(popb->in, buf, 64, POP3_CMD_TIMEOUT, READSOCKL_CHUG);
-    if(len > 0){
-      if(buf[0] == '.')
-	return TRUE;
-      else{
-	gint number;
-	gchar *p = buf, *pe;
-	if(strtoi(p, &pe, &number)){
-	  msg_info *info = NULL;
-	  GList *drop_node;
+	while (1) {
+		gint len = read_sockline(popb->in, buf, 64, POP3_CMD_TIMEOUT, READSOCKL_CHUG);
+		if (len > 0) {
+			if (buf[0] == '.')
+				return TRUE;
+			else {
+				gint number;
+				gchar *p = buf, *pe;
+				if (strtoi(p, &pe, &number)) {
+					msg_info *info = NULL;
+					GList *drop_node;
 
-	  p = pe;
-	  while(*p && isspace(*p)) p++;
+					p = pe;
+					while (*p && isspace(*p))
+						p++;
 
-	  foreach(popb->drop_list, drop_node){
-	    msg_info *curr_info = (msg_info *)(drop_node->data);
-	    if(curr_info->number == number){
-	      info = curr_info;
-	      break;
-	    }
-	  }
-	  if(info){
-	    info->uid = g_strdup(p);
-	    g_strchomp(info->uid);
-	  }
+					foreach(popb->drop_list, drop_node) {
+						msg_info *curr_info = (msg_info *) (drop_node->data);
+						if (curr_info->number == number) {
+							info = curr_info;
+							break;
+						}
+					}
+					if (info) {
+						info->uid = g_strdup(p);
+						g_strchomp(info->uid);
+					}
 
-	}else{
-	  popb->error = pop3_syntax;
-	  break;
+				} else {
+					popb->error = pop3_syntax;
+					break;
+				}
+			}
+		}
 	}
-      }
-    }
-  }
-  return FALSE;
+	return FALSE;
 }
 
-static
-gboolean check_init_response(pop3_base *popb)
+static gboolean
+check_init_response(pop3_base * popb)
 {
-  if(check_response(popb)){
-    gchar buf[256];
-    gchar *p = popb->buffer;
-    gint i = 0;
-    if(*p){
-      while(*p && (*p != '<')) p++;
-      while(*p && (*p != '>') && (i < 254))
-	buf[i++] = *(p++);
-      buf[i++] = '>';
-      buf[i] = 0;
+	if (check_response(popb)) {
+		gchar buf[256];
+		gchar *p = popb->buffer;
+		gint i = 0;
+		if (*p) {
+			while (*p && (*p != '<'))
+				p++;
+			while (*p && (*p != '>') && (i < 254))
+				buf[i++] = *(p++);
+			buf[i++] = '>';
+			buf[i] = 0;
 
-      popb->timestamp = g_strdup(buf);
+			popb->timestamp = g_strdup(buf);
 
-      return TRUE;
-    }
-  }
-  return FALSE;
+			return TRUE;
+		}
+	}
+	return FALSE;
 }
 
-void pop3_in_close(pop3_base *popb)
+void
+pop3_in_close(pop3_base * popb)
 {
-  GList *node;
+	GList *node;
 
-  fclose(popb->in);
-  fclose(popb->out);
+	fclose(popb->in);
+	fclose(popb->out);
 
-  close(popb->sock);
+	close(popb->sock);
 
-  foreach(popb->list_uid_old, node){
-    gchar *uid = (gchar *)(node->data);
-    g_free(uid);
-  }
-  g_list_free(popb->list_uid_old);
+	foreach(popb->list_uid_old, node) {
+		gchar *uid = (gchar *) (node->data);
+		g_free(uid);
+	}
+	g_list_free(popb->list_uid_old);
 
-  foreach(popb->drop_list, node){
-    msg_info *info = (msg_info *)(node->data);
-    if(info->uid) g_free(info->uid);
-    g_free(info);
-  }
-  g_list_free(popb->drop_list);
+	foreach(popb->drop_list, node) {
+		msg_info *info = (msg_info *) (node->data);
+		if (info->uid)
+			g_free(info->uid);
+		g_free(info);
+	}
+	g_list_free(popb->drop_list);
 
-  if(popb->buffer) g_free(popb->buffer);
-  if(popb->timestamp) g_free(popb->timestamp);
+	if (popb->buffer)
+		g_free(popb->buffer);
+	if (popb->timestamp)
+		g_free(popb->timestamp);
 }
 
-pop3_base *pop3_in_open(gchar *host, gint port, GList *resolve_list, guint flags)
+pop3_base*
+pop3_in_open(gchar * host, gint port, GList * resolve_list, guint flags)
 {
-  pop3_base *popb;
-  gint sock;
-  mxip_addr *addr;
+	pop3_base *popb;
+	gint sock;
+	mxip_addr *addr;
 
-  DEBUG(5) debugf("pop3_in_open entered, host = %s\n", host);
+	DEBUG(5) debugf("pop3_in_open entered, host = %s\n", host);
 
-  if((addr = connect_resolvelist(&sock, host, port, resolve_list))){
-    /* create structure to hold status data: */
-    popb = create_pop3base(sock, flags);
-    popb->remote_host = addr->name;
+	if ((addr = connect_resolvelist(&sock, host, port, resolve_list))) {
+		/* create structure to hold status data: */
+		popb = create_pop3base(sock, flags);
+		popb->remote_host = addr->name;
 
-    DEBUG(5){
-      struct sockaddr_in name;
-      int len;
-      getsockname(sock, (struct sockaddr *)(&name), &len);
-      debugf("socket: name.sin_addr = %s\n", inet_ntoa(name.sin_addr));
-    }
-    return popb;
-  }
-  return NULL;
+		DEBUG(5) {
+			struct sockaddr_in name;
+			int len;
+			getsockname(sock, (struct sockaddr *) (&name), &len);
+			debugf("socket: name.sin_addr = %s\n", inet_ntoa(name.sin_addr));
+		}
+		return popb;
+	}
+	return NULL;
 }
 
-pop3_base *pop3_in_open_child(gchar *cmd, guint flags)
+pop3_base*
+pop3_in_open_child(gchar * cmd, guint flags)
 {
-  pop3_base *popb;
-  gint sock;
+	pop3_base *popb;
+	gint sock;
 
-  DEBUG(5) debugf("pop3_in_open_child entered, cmd = %s\n", cmd);
+	DEBUG(5) debugf("pop3_in_open_child entered, cmd = %s\n", cmd);
 
-  sock = child(cmd);
+	sock = child(cmd);
 
-  if(sock > 0){
+	if (sock > 0) {
 
-    popb = create_pop3base(sock, flags);
-    popb->remote_host = NULL;
+		popb = create_pop3base(sock, flags);
+		popb->remote_host = NULL;
 
-    return popb;
-  }
-  logwrite(LOG_ALERT, "child failed (sock = %d): %s\n", sock, strerror(errno));
+		return popb;
+	}
+	logwrite(LOG_ALERT, "child failed (sock = %d): %s\n", sock, strerror(errno));
 
-  return NULL;
+	return NULL;
 }
 
-gboolean pop3_in_init(pop3_base *popb)
+gboolean
+pop3_in_init(pop3_base * popb)
 {
-  gboolean ok;
+	gboolean ok;
 
-  if((ok = read_response(popb, POP3_INITIAL_TIMEOUT))){
-    ok = check_init_response(popb);
-  }
-  if(!ok)
-    /*    pop3_in_log_failure(popb, NULL);*/
-    logwrite(LOG_ALERT, "pop3 failed\n");
-  return ok;
+	if ((ok = read_response(popb, POP3_INITIAL_TIMEOUT))) {
+		ok = check_init_response(popb);
+	}
+	if (!ok)
+		/* pop3_in_log_failure(popb, NULL); */
+		logwrite(LOG_ALERT, "pop3 failed\n");
+	return ok;
 }
 
-gboolean pop3_in_login(pop3_base *popb, gchar *user, gchar *pass)
+gboolean
+pop3_in_login(pop3_base * popb, gchar * user, gchar * pass)
 {
-  if(popb->flags & POP3_FLAG_APOP){
+	if (popb->flags & POP3_FLAG_APOP) {
 
-    gchar *string = g_strdup_printf("%s%s", popb->timestamp, pass);
-    gchar *digest = MD5String(string);
-    pop3_printf(popb->out, "APOP %s %s\r\n", user, digest);
-    g_free(string);
-    g_free(digest);
-    if(read_response(popb, POP3_CMD_TIMEOUT)){
-      if(check_response(popb))
-	return TRUE;
-      else
-	popb->error = pop3_login_failure;
-    }
+		gchar *string = g_strdup_printf("%s%s", popb->timestamp, pass);
+		gchar *digest = MD5String(string);
+		pop3_printf(popb->out, "APOP %s %s\r\n", user, digest);
+		g_free(string);
+		g_free(digest);
+		if (read_response(popb, POP3_CMD_TIMEOUT)) {
+			if (check_response(popb))
+				return TRUE;
+			else
+				popb->error = pop3_login_failure;
+		}
 
-  }else{
+	} else {
 
-    pop3_printf(popb->out, "USER %s\r\n", user);
-    if(read_response(popb, POP3_CMD_TIMEOUT)){
-      if(check_response(popb)){
-	pop3_printf(popb->out, "PASS %s\r\n", pass);
-	if(read_response(popb, POP3_CMD_TIMEOUT)){
-	  if(check_response(popb))
-	    return TRUE;
-	  else
-	    popb->error = pop3_login_failure;
+		pop3_printf(popb->out, "USER %s\r\n", user);
+		if (read_response(popb, POP3_CMD_TIMEOUT)) {
+			if (check_response(popb)) {
+				pop3_printf(popb->out, "PASS %s\r\n", pass);
+				if (read_response(popb, POP3_CMD_TIMEOUT)) {
+					if (check_response(popb))
+						return TRUE;
+					else
+						popb->error = pop3_login_failure;
+				}
+			} else {
+				popb->error = pop3_login_failure;
+			}
+		}
 	}
-      }else{
-	popb->error = pop3_login_failure;
-      }
-    }
-  }
-  return FALSE;
+	return FALSE;
 }
 
-gboolean pop3_in_stat(pop3_base *popb)
+gboolean
+pop3_in_stat(pop3_base * popb)
 {
-  pop3_printf(popb->out, "STAT\r\n");
-  if(read_response(popb, POP3_CMD_TIMEOUT)){
-    gint msg_cnt, mbox_size;
-    if(check_response_int_int(popb, &msg_cnt, &mbox_size)){
-      popb->msg_cnt = msg_cnt;
-      popb->mbox_size = mbox_size;
+	pop3_printf(popb->out, "STAT\r\n");
+	if (read_response(popb, POP3_CMD_TIMEOUT)) {
+		gint msg_cnt, mbox_size;
+		if (check_response_int_int(popb, &msg_cnt, &mbox_size)) {
+			popb->msg_cnt = msg_cnt;
+			popb->mbox_size = mbox_size;
 
-      return TRUE;
-    }
-  }
-  return FALSE;
+			return TRUE;
+		}
+	}
+	return FALSE;
 }
 
-gboolean pop3_in_list(pop3_base *popb)
+gboolean
+pop3_in_list(pop3_base * popb)
 {
-  pop3_printf(popb->out, "LIST\r\n");
-  if(read_response(popb, POP3_CMD_TIMEOUT)){
-    if(get_drop_listing(popb)){
-      return TRUE;
-    }
-  }
-  return FALSE;
+	pop3_printf(popb->out, "LIST\r\n");
+	if (read_response(popb, POP3_CMD_TIMEOUT)) {
+		if (get_drop_listing(popb)) {
+			return TRUE;
+		}
+	}
+	return FALSE;
 }
 
-gboolean pop3_in_dele(pop3_base *popb, gint number)
+gboolean
+pop3_in_dele(pop3_base * popb, gint number)
 {
-  pop3_printf(popb->out, "DELE %d\r\n", number);
-  if(read_response(popb, POP3_CMD_TIMEOUT)){
-    return TRUE;
-  }
-  return FALSE;
+	pop3_printf(popb->out, "DELE %d\r\n", number);
+	if (read_response(popb, POP3_CMD_TIMEOUT)) {
+		return TRUE;
+	}
+	return FALSE;
 }
 
-message *pop3_in_retr(pop3_base *popb, gint number, address *rcpt)
+message*
+pop3_in_retr(pop3_base * popb, gint number, address * rcpt)
 {
-  accept_error err;
-
-  pop3_printf(popb->out, "RETR %d\r\n", number);
-  if(read_response(popb, POP3_CMD_TIMEOUT)){
-    message *msg = create_message();
-    msg->received_host = popb->remote_host;
-    msg->received_prot = (popb->flags & POP3_FLAG_APOP) ? PROT_APOP : PROT_POP3;
-    msg->transfer_id = (popb->next_id)++;
-    msg->rcpt_list = g_list_append(NULL, copy_address(rcpt));
+	accept_error err;
 
-    if((err = accept_message(popb->in, msg,
-			     ACC_MAIL_FROM_HEAD|(conf.do_save_envelope_to ? ACC_SAVE_ENVELOPE_TO : 0)))
-       == AERR_OK)
-      return msg;
-
-    destroy_message(msg);
-  }
-  return NULL;
-}  
+	pop3_printf(popb->out, "RETR %d\r\n", number);
+	if (read_response(popb, POP3_CMD_TIMEOUT)) {
+		message *msg = create_message();
+		msg->received_host = popb->remote_host;
+		msg->received_prot = (popb->flags & POP3_FLAG_APOP) ? PROT_APOP : PROT_POP3;
+		msg->transfer_id = (popb->next_id)++;
+		msg->rcpt_list = g_list_append(NULL, copy_address(rcpt));
 
-gboolean pop3_in_uidl(pop3_base *popb)
-{
-  pop3_printf(popb->out, "UIDL\r\n");
-  if(read_response(popb, POP3_CMD_TIMEOUT)){
-    if(get_uid_listing(popb)){
-      return TRUE;
-    }
-  }
-  return FALSE;
+		if ((err = accept_message(popb->in, msg, ACC_MAIL_FROM_HEAD
+		    | (conf.do_save_envelope_to ? ACC_SAVE_ENVELOPE_TO : 0)))
+		    == AERR_OK)
+			return msg;
+
+		destroy_message(msg);
+	}
+	return NULL;
 }
 
-gboolean pop3_in_quit(pop3_base *popb)
+gboolean
+pop3_in_uidl(pop3_base * popb)
 {
-  pop3_printf(popb->out, "QUIT\r\n");
-  
-  DEBUG(4) debugf("QUIT\n");
+	pop3_printf(popb->out, "UIDL\r\n");
+	if (read_response(popb, POP3_CMD_TIMEOUT)) {
+		if (get_uid_listing(popb)) {
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
 
-  signal(SIGALRM, SIG_DFL);
+gboolean
+pop3_in_quit(pop3_base * popb)
+{
+	pop3_printf(popb->out, "QUIT\r\n");
 
-  return TRUE;
+	DEBUG(4) debugf("QUIT\n");
+
+	signal(SIGALRM, SIG_DFL);
+
+	return TRUE;
 }
 
 /* Send a DELE command for each message in (the old) uid listing.
    This is to prevent mail from to be kept on server, if a previous
    transaction was interupted. */
-gboolean pop3_in_uidl_dele(pop3_base *popb)
+gboolean
+pop3_in_uidl_dele(pop3_base * popb)
 {
-  GList *drop_node;
+	GList *drop_node;
 
-  foreach(popb->drop_list, drop_node){
-    msg_info *info = (msg_info *)(drop_node->data);
-    /*    if(find_uid(popb, info->uid)){*/
-    if(info->is_in_uidl){
-      if(!pop3_in_dele(popb, info->number))
-	return FALSE;
-      /* TODO: it probably makes sense to also
-	 delete this uid from the listing */
-    }
-  }
-  return TRUE;
+	foreach(popb->drop_list, drop_node) {
+		msg_info *info = (msg_info *) (drop_node->data);
+		/* if(find_uid(popb, info->uid)){ */
+		if (info->is_in_uidl) {
+			if (!pop3_in_dele(popb, info->number))
+				return FALSE;
+			/* TODO: it probably makes sense to also delete this uid from the listing */
+		}
+	}
+	return TRUE;
 }
 
-gboolean pop3_get(pop3_base *popb,
-		  gchar *user, gchar *pass, address *rcpt, address *return_path,
-		  gint max_count, gint max_size, gboolean max_size_delete)
+gboolean
+pop3_get(pop3_base * popb, gchar * user, gchar * pass, address * rcpt, address * return_path, gint max_count, gint max_size, gboolean max_size_delete)
 {
-  gboolean ok = FALSE;
-  gint num_children = 0;
-  
-  DEBUG(5) debugf("rcpt = %s@%s\n", rcpt->local_part, rcpt->domain);
+	gboolean ok = FALSE;
+	gint num_children = 0;
 
-  signal(SIGCHLD, SIG_DFL);
+	DEBUG(5) debugf("rcpt = %s@%s\n", rcpt->local_part, rcpt->domain);
+
+	signal(SIGCHLD, SIG_DFL);
 
-  if(pop3_in_init(popb)){
-    if(pop3_in_login(popb, user, pass)){
-      if(pop3_in_stat(popb)){
-	if(popb->msg_cnt > 0){
+	if (pop3_in_init(popb)) {
+		if (pop3_in_login(popb, user, pass)) {
+			if (pop3_in_stat(popb)) {
+				if (popb->msg_cnt > 0) {
+
+					logwrite(LOG_NOTICE | LOG_VERBOSE, "%d message(s) for user %s at %s\n", popb->msg_cnt, user, popb->remote_host);
 
-	  logwrite(LOG_NOTICE|LOG_VERBOSE, "%d message(s) for user %s at %s\n",
-		   popb->msg_cnt, user, popb->remote_host);
-
-	  if(pop3_in_list(popb)){
-	    gboolean do_get = !(popb->flags & POP3_FLAG_UIDL);
-	    if(!do_get) do_get = pop3_in_uidl(popb);
-	    if(do_get){
-	      gint count = 0;
-	      GList *drop_node;
+					if (pop3_in_list(popb)) {
+						gboolean do_get = !(popb->flags & POP3_FLAG_UIDL);
+						if (!do_get)
+							do_get = pop3_in_uidl(popb);
+						if (do_get) {
+							gint count = 0;
+							GList *drop_node;
 
-	      if(popb->flags & POP3_FLAG_UIDL){
-		read_uidl(popb, user);
-		logwrite(LOG_VERBOSE|LOG_NOTICE, "%d message(s) already in uidl.\n",
-			 popb->uidl_known_cnt);
-	      }
-	      if((popb->flags & POP3_FLAG_UIDL) && (popb->flags & POP3_FLAG_UIDL_DELE))
-		pop3_in_uidl_dele(popb);
+							if (popb->flags & POP3_FLAG_UIDL) {
+								read_uidl(popb, user);
+								logwrite(LOG_VERBOSE | LOG_NOTICE, "%d message(s) already in uidl.\n", popb->uidl_known_cnt);
+							}
+							if ((popb->flags & POP3_FLAG_UIDL) && (popb->flags & POP3_FLAG_UIDL_DELE))
+								pop3_in_uidl_dele(popb);
 
-	      foreach(popb->drop_list, drop_node){
+							foreach(popb->drop_list, drop_node) {
 
-		msg_info *info = (msg_info *)(drop_node->data);
-		gboolean do_get_this = !(popb->flags & POP3_FLAG_UIDL);
-		/*		if(!do_get_this) do_get_this = !find_uid(popb, info->uid);*/
-		if(!do_get_this) do_get_this = !(info->is_in_uidl);
-		if(do_get_this){
-
-		  if((info->size < max_size) || (max_size == 0)){
-		    message *msg;
+								msg_info *info = (msg_info *) (drop_node->data);
+								gboolean do_get_this = !(popb->flags & POP3_FLAG_UIDL);
+								/* if(!do_get_this) do_get_this = !find_uid(popb, info->uid); */
+								if (!do_get_this)
+									do_get_this = !(info->is_in_uidl);
+								if (do_get_this) {
 
-		    logwrite(LOG_VERBOSE|LOG_NOTICE, "receiving message %d\n", info->number);
-		    msg = pop3_in_retr(popb, info->number, rcpt);
+									if ((info->size < max_size) || (max_size == 0)) {
+										message *msg;
+
+										logwrite(LOG_VERBOSE | LOG_NOTICE, "receiving message %d\n", info->number);
+										msg = pop3_in_retr(popb, info->number, rcpt);
 
-		    if(msg){
-		      if(return_path)
-			msg->return_path = copy_address(return_path);
-		      if(spool_write(msg, TRUE)){
-			pid_t pid;
-			logwrite(LOG_NOTICE, "%s <= %s host=%s with %s\n",
-				 msg->uid,
-				 addr_string(msg->return_path),
-				 popb->remote_host,
-				 (popb->flags & POP3_FLAG_APOP) ?
-				 prot_names[PROT_APOP] : prot_names[PROT_POP3]
-				 );
-			info->is_fetched = TRUE;
-			count++;
+										if (msg) {
+											if (return_path)
+												msg->return_path = copy_address(return_path);
+											if (spool_write(msg, TRUE)) {
+												pid_t pid;
+												logwrite(LOG_NOTICE, "%s <= %s host=%s with %s\n", msg->uid,
+												         addr_string(msg->return_path), popb->remote_host,
+												         (popb->flags & POP3_FLAG_APOP) ? prot_names [PROT_APOP] : prot_names [PROT_POP3]);
+												info->is_fetched = TRUE;
+												count++;
 #if DO_WRITE_UIDL_EARLY
-			if(popb->flags & POP3_FLAG_UIDL) write_uidl(popb, user);
+												if (popb->flags & POP3_FLAG_UIDL)
+													write_uidl(popb, user);
 #endif
-			if(!conf.do_queue){
+												if (!conf.do_queue) {
 
-			  /* wait for child processes. If there are too many,
-			     we wait blocking, before we fork another one */
-			  while(num_children > 0){
-			    int status, options = WNOHANG;
-			    pid_t pid;
+													/* wait for child processes. If there are too many, we wait blocking, before we fork another one */
+													while (num_children > 0) {
+														int status, options = WNOHANG;
+														pid_t pid;
 
-			    if(num_children >= POP3_MAX_CHILDREN){
-			      logwrite(LOG_NOTICE, "too many children - waiting\n");
-			      options = 0;
-			    }
-			    if((pid = waitpid(0, &status, options)) > 0){
-			      num_children--;
-			      if(WEXITSTATUS(status) != EXIT_SUCCESS)
-				logwrite(LOG_WARNING,
-					 "delivery process with pid %d returned %d\n",
-					 pid, WEXITSTATUS(status));
-			      if(WIFSIGNALED(status))
-				logwrite(LOG_WARNING,
-					 "delivery process with pid %d got signal: %d\n",
-					 pid, WTERMSIG(status));
-			    }else if(pid < 0){
-			      logwrite(LOG_WARNING, "wait got error: %s\n", strerror(errno));
-			    }
-			  }
+														if (num_children >= POP3_MAX_CHILDREN) {
+															logwrite(LOG_NOTICE, "too many children - waiting\n");
+															options = 0;
+														}
+														if ((pid = waitpid(0, &status, options)) > 0) {
+															num_children--;
+															if (WEXITSTATUS(status) != EXIT_SUCCESS)
+																logwrite(LOG_WARNING, "delivery process with pid %d returned %d\n", pid, WEXITSTATUS (status));
+															if (WIFSIGNALED(status))
+																logwrite(LOG_WARNING, "delivery process with pid %d got signal: %d\n", pid, WTERMSIG (status));
+														} else if (pid < 0) {
+															logwrite(LOG_WARNING, "wait got error: %s\n", strerror(errno));
+														}
+													}
 
-			  if((pid = fork()) == 0){
-			    deliver(msg);
-			    _exit(EXIT_SUCCESS);
-			  }else if(pid < 0){
-			    logwrite(LOG_ALERT|LOG_VERBOSE,
-				     "could not fork for delivery, id = %s: %s\n",
-				     msg->uid, strerror(errno));
-			  }else
-			    num_children++;
-			}else{
-			  DEBUG(1) debugf("queuing forced by configuration or option.\n");
-			}
-			if(popb->flags & POP3_FLAG_DELETE)
-			  pop3_in_dele(popb, info->number);
+													if ((pid = fork()) == 0) {
+														deliver(msg);
+														_exit(EXIT_SUCCESS);
+													} else if (pid < 0) {
+														logwrite(LOG_ALERT | LOG_VERBOSE, "could not fork for delivery, id = %s: %s\n", msg->uid, strerror(errno));
+													} else
+														num_children++;
+												} else {
+													DEBUG(1) debugf("queuing forced by configuration or option.\n");
+												}
+												if (popb->flags & POP3_FLAG_DELETE)
+													pop3_in_dele(popb, info->number);
 
-			destroy_message(msg);
-		      }/* if(spool_write(msg, TRUE)) */
-		    }else{
-		      logwrite(LOG_ALERT,
-			       "retrieving of message %d failed: %d\n",
-			       info->number, popb->error);
-		    }
-		  }/* if((info->size > max_size) ... */
-		  else{
-		    logwrite(LOG_NOTICE|LOG_VERBOSE, "size of message #%d (%d) > max_size (%d)\n",
-			     info->number, info->size, max_size);
-		    if(max_size_delete)
-			if(popb->flags & POP3_FLAG_DELETE)
-			  pop3_in_dele(popb, info->number);
-		  }
-		}/* if(do_get_this) ... */
-		else{
-		  if(popb->flags & POP3_FLAG_UIDL){
-		    info->is_fetched = TRUE; /* obsolete? */
-		    logwrite(LOG_VERBOSE, "message %d already known\n",
-			     info->number);
-		    DEBUG(1) debugf("message %d (uid = %s) not fetched\n",
-				    info->number, info->uid);
+												destroy_message(msg);
+											}	/* if(spool_write(msg, TRUE)) */
+										} else {
+											logwrite(LOG_ALERT, "retrieving of message %d failed: %d\n", info->number, popb->error);
+										}
+									} /* if((info->size > max_size) ... */
+									else {
+										logwrite(LOG_NOTICE | LOG_VERBOSE, "size of message #%d (%d) > max_size (%d)\n", info->number, info->size, max_size);
+										if (max_size_delete)
+											if (popb->flags & POP3_FLAG_DELETE)
+												pop3_in_dele(popb, info->number);
+									}
+								} /* if(do_get_this) ... */
+								else {
+									if (popb->flags & POP3_FLAG_UIDL) {
+										info->is_fetched = TRUE;  /* obsolete? */
+										logwrite(LOG_VERBOSE, "message %d already known\n", info->number);
+										DEBUG(1) debugf("message %d (uid = %s) not fetched\n", info->number, info->uid);
 #if 0
 #if DO_WRITE_UIDL_EARLY
-		    write_uidl(popb, user); /* obsolete? */
+										write_uidl(popb, user);  /* obsolete? */
 #endif
 #endif
-		  }
-		}
-		if((max_count != 0) && (count >= max_count))
-		  break;
-	      }/* foreach() */
+									}
+								}
+								if ((max_count != 0) && (count >= max_count))
+									break;
+							}	/* foreach() */
 #if DO_WRITE_UIDL_EARLY
 #else
-	      if(popb->flags & POP3_FLAG_UIDL) write_uidl(popb, user);
+							if (popb->flags & POP3_FLAG_UIDL)
+								write_uidl(popb, user);
 #endif
-	    }/* if(pop3_in_uidl(popb) ... */
-	  }/* if(pop3_in_list(popb)) */
-	}/* if(popb->msg_cnt > 0) */
-	else{
-	  logwrite(LOG_NOTICE|LOG_VERBOSE,
-		   "no messages for user %s at %s\n", user, popb->remote_host);
+						}  /* if(pop3_in_uidl(popb) ... */
+					}  /* if(pop3_in_list(popb)) */
+				}  /* if(popb->msg_cnt > 0) */
+				else {
+					logwrite(LOG_NOTICE | LOG_VERBOSE, "no messages for user %s at %s\n", user, popb->remote_host);
+				}
+				ok = TRUE;
+			}
+			pop3_in_quit(popb);
+		} else {
+			logwrite(LOG_ALERT | LOG_VERBOSE, "pop3 login failed for user %s, host = %s\n", user, popb->remote_host);
+		}
 	}
-	ok = TRUE;
-      }
-      pop3_in_quit(popb);
-    }else{
-      logwrite(LOG_ALERT|LOG_VERBOSE,
-	       "pop3 login failed for user %s, host = %s\n", user, popb->remote_host);
-    }
-  }
-  if(!ok){
-    logwrite(LOG_ALERT|LOG_VERBOSE, "pop3 failed, error = %d\n", popb->error);
-  }
+	if (!ok) {
+		logwrite(LOG_ALERT | LOG_VERBOSE, "pop3 failed, error = %d\n", popb->error);
+	}
 
-  while(num_children > 0){
-    int status;
-    pid_t pid;
-    if((pid = wait(&status)) > 0){
-      num_children--;
-      if(WEXITSTATUS(status) != EXIT_SUCCESS)
-	logwrite(LOG_WARNING,
-		 "delivery process with pid %d returned %d\n",
-		 pid, WEXITSTATUS(status));
-      if(WIFSIGNALED(status))
-	logwrite(LOG_WARNING,
-		 "delivery process with pid %d got signal: %d\n",
-		 pid, WTERMSIG(status));
-    }else{
-      logwrite(LOG_WARNING, "wait got error: %s\n", strerror(errno));
-    }
-  }
+	while (num_children > 0) {
+		int status;
+		pid_t pid;
+		if ((pid = wait(&status)) > 0) {
+			num_children--;
+			if (WEXITSTATUS(status) != EXIT_SUCCESS)
+				logwrite(LOG_WARNING, "delivery process with pid %d returned %d\n", pid, WEXITSTATUS(status));
+			if (WIFSIGNALED(status))
+				logwrite(LOG_WARNING, "delivery process with pid %d got signal: %d\n", pid, WTERMSIG(status));
+		} else {
+			logwrite(LOG_WARNING, "wait got error: %s\n", strerror(errno));
+		}
+	}
 
-  return ok;
+	return ok;
 }
 
 /* function just to log into a pop server,
    for pop_before_smtp (or is it smtp_after_pop?)
 */
 
-gboolean pop3_login(gchar *host, gint port, GList *resolve_list,
-		    gchar *user, gchar *pass, guint flags)
+gboolean
+pop3_login(gchar * host, gint port, GList * resolve_list, gchar * user, gchar * pass, guint flags)
 {
-  gboolean ok = FALSE;
-  pop3_base *popb;
+	gboolean ok = FALSE;
+	pop3_base *popb;
 
-  signal(SIGCHLD, SIG_IGN);
+	signal(SIGCHLD, SIG_IGN);
 
-  if((popb = pop3_in_open(host, port, resolve_list, flags))){
-    if(pop3_in_init(popb)){
-      if(pop3_in_login(popb, user, pass))
-	ok = TRUE;
-      else
-	logwrite(LOG_ALERT|LOG_VERBOSE,
-		 "pop3 login failed for user %s, host = %s\n", user, host);
-    }
-    pop3_in_close(popb);
-  }
-  return ok;
+	if ((popb = pop3_in_open(host, port, resolve_list, flags))) {
+		if (pop3_in_init(popb)) {
+			if (pop3_in_login(popb, user, pass))
+				ok = TRUE;
+			else
+				logwrite(LOG_ALERT | LOG_VERBOSE, "pop3 login failed for user %s, host = %s\n", user, host);
+		}
+		pop3_in_close(popb);
+	}
+	return ok;
 }
 
 #endif