chiark / gitweb /
addrcheck: Strip off the domain part before passing to userv service.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 7 Mar 2006 12:38:38 +0000 (12:38 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 16 Mar 2006 23:15:14 +0000 (23:15 +0000)
addrcheck.c

index b463bd8925bbb3f5012d5783a3eb9daa52e66997..496c5ddf82dab27f95cc63ef11ecd360bd88e6a8 100644 (file)
@@ -259,6 +259,7 @@ int addrcheck(int cdb, const char *addr, const char *sender, int *rc)
   int at, len, dot;
   int err = 0;
   uint32 dlen;
+  static stralloc l = STRALLOC_INIT;
 
   len = str_len(addr);
   at = str_chr(addr, '@');
@@ -278,8 +279,11 @@ int addrcheck(int cdb, const char *addr, const char *sender, int *rc)
     return (-1);
   if (!err) { *rc = 1; return (0); }
   if (dlen != 0) { errno = EINVAL; return (-1); }
-
-  return (local(cdb, addr, at, sender, rc));
+  l.len = 0;
+  if (!stralloc_catb(&l, addr, at) ||
+      !stralloc_0(&l))
+    return (-1);
+  return (local(cdb, l.s, l.len - 1, sender, rc));
 }
 
 #ifdef TEST