summaryrefslogtreecommitdiffstats
path: root/realrcptto.c
diff options
context:
space:
mode:
Diffstat (limited to 'realrcptto.c')
-rw-r--r--realrcptto.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/realrcptto.c b/realrcptto.c
index 5ae9684..8f4d50e 100644
--- a/realrcptto.c
+++ b/realrcptto.c
@@ -269,7 +269,7 @@ int depth;
269 && extension && !str_diffn(extension, "mailbox-", 8)) 269 && extension && !str_diffn(extension, "mailbox-", 8))
270 username = extension + 8; 270 username = extension + 8;
271 271
272 /* remove plus-addressing */ 272 /* remove sub-addressing */
273 username[str_chr(username, '+')] = '\0'; 273 username[str_chr(username, '+')] = '\0';
274 274
275 env_put2("DTUSER", username); 275 env_put2("DTUSER", username);
@@ -316,6 +316,13 @@ int depth;
316 if (constmap(&maplocals,localpart.s + at + 1,localpart.len - at - 1)) { 316 if (constmap(&maplocals,localpart.s + at + 1,localpart.len - at - 1)) {
317 localpart.len = at; 317 localpart.len = at;
318 localpart.s[at] = '\0'; 318 localpart.s[at] = '\0';
319 /* sub-addressing for local domains */
320 for (i = 1; i < localpart.len - 1; ++i) {
321 if (localpart.s[i] == '+') {
322 localpart.s[i] = '-';
323 break;
324 }
325 }
319 } else { 326 } else {
320 unsigned int xlen,newlen; 327 unsigned int xlen,newlen;
321 char *x; 328 char *x;