summaryrefslogtreecommitdiffstats
path: root/src/ragel
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-04-25 11:01:39 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-04-25 11:01:39 +0100
commiteedb359726e0d99265969451261fdb8494e462f2 (patch)
tree37a7bf1387bb6b686ca0e73781dde9eb5f8f76ee /src/ragel
parentbb2d73b4d4e0729d0e637ccffd9ee8f2d41c3b4d (diff)
downloadrspamd-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.rl16
-rw-r--r--src/ragel/smtp_address.rl6
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*;
}%%