chiark
/
gitweb
/
~mdw
/
qmail
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
dd1ee02
)
addrcheck: Strip off the domain part before passing to userv service.
author
Mark Wooding
<mdw@distorted.org.uk>
Tue, 7 Mar 2006 12:38:38 +0000
(12:38 +0000)
committer
Mark Wooding
<mdw@distorted.org.uk>
Thu, 16 Mar 2006 23:15:14 +0000
(23:15 +0000)
addrcheck.c
patch
|
blob
|
blame
|
history
diff --git
a/addrcheck.c
b/addrcheck.c
index b463bd8925bbb3f5012d5783a3eb9daa52e66997..496c5ddf82dab27f95cc63ef11ecd360bd88e6a8 100644
(file)
--- a/
addrcheck.c
+++ b/
addrcheck.c
@@
-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;
int at, len, dot;
int err = 0;
uint32 dlen;
+ static stralloc l = STRALLOC_INIT;
len = str_len(addr);
at = str_chr(addr, '@');
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 (-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
}
#ifdef TEST