changeset 532:67d663145da5

Make sub/unsub/bounce lowercase all the time
author mmj
date Tue, 17 Jan 2006 22:49:06 +1100
parents 427cc8c9fff2
children 40c505c297f5
files src/mlmmj-process.c src/mlmmj-sub.c src/mlmmj-unsub.c
diffstat 3 files changed, 29 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/mlmmj-process.c	Tue Jan 17 22:47:06 2006 +1100
+++ b/src/mlmmj-process.c	Tue Jan 17 22:49:06 2006 +1100
@@ -583,8 +583,13 @@
 
 	/* discard malformed mail with invalid From: */
 	if(fromemails.emailcount != 1) { 
+		for(i = 0; i < fromemails.emailcount; i++)
+			printf("fromemails.emaillist[%d] = %s\n",
+					i, fromemails.emaillist[i]);
 		discardname = concatstr(3, listdir,
 				"/queue/discarded/", randomstr);
+		log_error(LOG_ARGS, "Discarding %s due to invalid From:",
+				mailfile);
 		rename(mailfile, discardname);
 		unlink(donemailname);
 		myfree(donemailname);
--- a/src/mlmmj-sub.c	Tue Jan 17 22:47:06 2006 +1100
+++ b/src/mlmmj-sub.c	Tue Jan 17 22:49:06 2006 +1100
@@ -32,6 +32,7 @@
 #include <fcntl.h>
 #include <libgen.h>
 #include <sys/wait.h>
+#include <ctype.h>
 
 #include "mlmmj.h"
 #include "mlmmj-sub.h"
@@ -282,9 +283,9 @@
 {
 	char *listaddr, *listdelim, *listdir = NULL, *address = NULL;
 	char *subfilename = NULL, *mlmmjsend, *bindir, chstr[2], *subdir;
-	char *subddirname = NULL, *sublockname;
+	char *subddirname = NULL, *sublockname, *lowcaseaddr;
 	int subconfirm = 0, confirmsub = 0, opt, subfilefd, lock, notifysub;
-	int changeuid = 1, status, digest = 0, nomail = 0;
+	int changeuid = 1, status, digest = 0, nomail = 0, i = 0;
 	int groupwritable = 0, sublock, sublockfd, nogensubscribed = 0, subbed;
 	size_t len;
 	struct stat st;
@@ -364,6 +365,15 @@
 		exit(EXIT_FAILURE);
 	}
 
+	/* Make the address lowercase */
+	lowcaseaddr = mystrdup(address);
+	i = 0;
+	while(lowcaseaddr[i]) {
+		lowcaseaddr[i] = tolower(lowcaseaddr[i]);
+		i++;
+	}
+	address = lowcaseaddr;
+
 	/* get the list address */
 	listaddr = getlistaddr(listdir);
 	if(strncasecmp(listaddr, address, strlen(listaddr)) == 0) {
--- a/src/mlmmj-unsub.c	Tue Jan 17 22:47:06 2006 +1100
+++ b/src/mlmmj-unsub.c	Tue Jan 17 22:49:06 2006 +1100
@@ -32,6 +32,7 @@
 #include <libgen.h>
 #include <dirent.h>
 #include <sys/wait.h>
+#include <ctype.h>
 
 #include "mlmmj.h"
 #include "mlmmj-unsub.h"
@@ -328,10 +329,10 @@
 	int subread, subwrite, rlock, wlock, opt, unsubres, status, nomail = 0;
 	int confirmunsub = 0, unsubconfirm = 0, notifysub = 0, digest = 0;
 	int changeuid = 1, groupwritable = 0, sublock, sublockfd;
-	int nogennotsubscribed = 0;
+	int nogennotsubscribed = 0, i = 0;
 	char *listaddr, *listdelim, *listdir = NULL, *address = NULL;
 	char *subreadname = NULL, *subwritename, *mlmmjsend, *bindir, *subdir;
-	char *subddirname, *sublockname;
+	char *subddirname, *sublockname, *lowcaseaddr;
 	off_t suboff;
 	DIR *subddir;
 	struct dirent *dp;
@@ -405,6 +406,15 @@
 		exit(EXIT_FAILURE);
 	}
 
+	/* Make the address lowercase */
+	lowcaseaddr = mystrdup(address);
+	i = 0;
+	while(lowcaseaddr[i]) {
+		lowcaseaddr[i] = tolower(lowcaseaddr[i]);
+		i++;
+	}
+	address = lowcaseaddr;
+
 	/* get the list address */
 	listaddr = getlistaddr(listdir);