diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-04-25 11:01:39 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-04-25 11:01:39 +0100 |
commit | eedb359726e0d99265969451261fdb8494e462f2 (patch) | |
tree | 37a7bf1387bb6b686ca0e73781dde9eb5f8f76ee /src/ragel | |
parent | bb2d73b4d4e0729d0e637ccffd9ee8f2d41c3b4d (diff) | |
download | rspamd-eedb359726e0d99265969451261fdb8494e462f2.tar.gz rspamd-eedb359726e0d99265969451261fdb8494e462f2.zip |
[Feature] Add support of address with at-domain list
Diffstat (limited to 'src/ragel')
-rw-r--r-- | src/ragel/smtp_addr_parser.rl | 16 | ||||
-rw-r--r-- | src/ragel/smtp_address.rl | 6 |
2 files changed, 7 insertions, 15 deletions
diff --git a/src/ragel/smtp_addr_parser.rl b/src/ragel/smtp_addr_parser.rl index 55b8eefb0..a480970ec 100644 --- a/src/ragel/smtp_addr_parser.rl +++ b/src/ragel/smtp_addr_parser.rl @@ -52,23 +52,15 @@ addr->flags |= RSPAMD_EMAIL_ADDR_VALID; } - action Angled_addr_start { - addr->addr = p; + action Addr_has_angle { + addr->flags |= RSPAMD_EMAIL_ADDR_BRACED; } - action Unangled_addr_start { + action Addr_start { addr->addr = p; } - action Angled_addr_end { - addr->flags |= RSPAMD_EMAIL_ADDR_BRACED; - if (addr->addr) { - addr->addr_len = p - addr->addr; - } - } - - action Unangled_addr_end { - addr->flags |= RSPAMD_EMAIL_ADDR_BRACED; + action Addr_end { if (addr->addr) { addr->addr_len = p - addr->addr; } diff --git a/src/ragel/smtp_address.rl b/src/ragel/smtp_address.rl index fddafe59d..d98fb57eb 100644 --- a/src/ragel/smtp_address.rl +++ b/src/ragel/smtp_address.rl @@ -42,9 +42,9 @@ Adl = Atdomain ( "," Atdomain )*; Mailbox = Local_part "@" (address_literal | Domain >Domain_start %Domain_end); - UnangledPath = ( Adl ":" )? Mailbox; - AngledPath = "<" UnangledPath >Angled_addr_start %Angled_addr_end ">"; - Path = AngledPath | UnangledPath >Unangled_addr_start %Unangled_addr_end; + UnangledPath = ( Adl ":" )? Mailbox >Addr_start %Addr_end; + AngledPath = "<" UnangledPath ">" %Addr_has_angle; + Path = AngledPath | UnangledPath; SMTPAddr = space* (Path | "<>" %Empty_addr ) %Valid_addr space*; }%% |