diff options
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*; }%% |