lib/Odin.pm, exim-filter.in: Force mail local parts to lower case.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 9 Aug 2015 16:00:49 +0000 (17:00 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 9 Aug 2015 16:00:49 +0000 (17:00 +0100)
This needs to be done both at generation time, and at lookup time.  Just
in case something tries to use upper-case letters.

exim-filter.in
lib/Odin.pm

index baf51cc..ff77f7f 100644 (file)
@@ -3,7 +3,7 @@
 if "${lookup pgsql { \
        servers=db.distorted.org.uk/odin/exim/@PASSWORD@; \
        SELECT recip FROM odin_maildeliver \
-       WHERE lpart = '${quote_pgsql:$local_part}' AND \
+       WHERE lpart = '${quote_pgsql:${lc:$local_part}}' AND \
        dom = '$domain' } {!$value}{}}" matches "^(.+)\\$"
 then
        deliver ${s_1:$1}
index a742839..06b5212 100644 (file)
@@ -550,7 +550,7 @@ sub gen_redir_name ($$) {
   my ($db, $gen) = @_;
 
   for (my $try = 0; $try < $MAIL_MAXGENTRY; $try++) {
-    my $l = $gen->gen;
+    my $l = lc $gen->gen;
     return $l
       unless $db->selectrow_arrayref
        ("SELECT 1 FROM odin_mailredir WHERE lpart = ? AND dom = ?",