chiark / gitweb /
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 baf51cc9cd440b48a426296e06f8d8b757fd280a..ff77f7fa53da686794f422cdefd1422af85d2ae5 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 a74283918f599fb6ac427823f5519bf6c32b6993..06b5212fcf929c4bc7791c06e5dca2503279f278 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 = ?",