From 663c6be564efdb355598b34b8f083f79a38c726d Mon Sep 17 00:00:00 2001 From: Manuel Mausz Date: Fri, 26 Jun 2026 13:53:30 +0200 Subject: Implement plus addressing for locals --- realrcptto.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'realrcptto.c') diff --git a/realrcptto.c b/realrcptto.c index 5ae9684..8f4d50e 100644 --- a/realrcptto.c +++ b/realrcptto.c @@ -269,7 +269,7 @@ int depth; && extension && !str_diffn(extension, "mailbox-", 8)) username = extension + 8; - /* remove plus-addressing */ + /* remove sub-addressing */ username[str_chr(username, '+')] = '\0'; env_put2("DTUSER", username); @@ -316,6 +316,13 @@ int depth; if (constmap(&maplocals,localpart.s + at + 1,localpart.len - at - 1)) { localpart.len = at; localpart.s[at] = '\0'; + /* sub-addressing for local domains */ + for (i = 1; i < localpart.len - 1; ++i) { + if (localpart.s[i] == '+') { + localpart.s[i] = '-'; + break; + } + } } else { unsigned int xlen,newlen; char *x; -- cgit v1.2.3