diff options
author | Eric Faurot <eric@openbsd.org> | 2016-06-29 08:51:15 +0200 |
---|---|---|
committer | Eric Faurot <eric@openbsd.org> | 2016-06-29 08:51:15 +0200 |
commit | 78530ed774bacf2e4baba9463e89c0fe4ac67d20 (patch) | |
tree | 03a225fc4c602c1b8dd60d9ec833226bf09f5d4d /extras/filters/filter-perl/filter_perl.c | |
parent | mv resolve out of rspamd.c to temporary file (diff) | |
download | OpenSMTPD-extras-78530ed774bacf2e4baba9463e89c0fe4ac67d20.tar.xz OpenSMTPD-extras-78530ed774bacf2e4baba9463e89c0fe4ac67d20.zip |
Properly handle BEGIN COMMIT/ROLLBACK event sequences.
Rename some API functions.
Bump API version.
Diffstat (limited to 'extras/filters/filter-perl/filter_perl.c')
-rw-r--r-- | extras/filters/filter-perl/filter_perl.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/extras/filters/filter-perl/filter_perl.c b/extras/filters/filter-perl/filter_perl.c index f52d056..e58d004 100644 --- a/extras/filters/filter-perl/filter_perl.c +++ b/extras/filters/filter-perl/filter_perl.c @@ -38,8 +38,9 @@ static CV *pl_on_mail; static CV *pl_on_rcpt; static CV *pl_on_data; static CV *pl_on_eom; -static CV *pl_on_commit; -static CV *pl_on_rollback; +static CV *pl_on_tx_begin; +static CV *pl_on_tx_commit; +static CV *pl_on_tx_rollback; static CV *pl_on_dataline; static CV *pl_on_disconnect; @@ -187,16 +188,23 @@ on_eom(uint64_t id, size_t size) } static void -on_commit(uint64_t id) +on_tx_begin(uint64_t id) { - call_sub_sv((SV *)pl_on_commit, "%i", id); + call_sub_sv((SV *)pl_on_tx_begin, "%i", id); return; } static void -on_rollback(uint64_t id) +on_tx_commit(uint64_t id) { - call_sub_sv((SV *)pl_on_rollback, "%i", id); + call_sub_sv((SV *)pl_on_tx_commit, "%i", id); + return; +} + +static void +on_tx_rollback(uint64_t id) +{ + call_sub_sv((SV *)pl_on_tx_rollback, "%i", id); return; } @@ -272,10 +280,12 @@ main(int argc, char **argv) filter_api_on_data(on_data); if ((pl_on_eom = perl_get_cv("on_eom", FALSE))) filter_api_on_eom(on_eom); - if ((pl_on_commit = perl_get_cv("on_commit", FALSE))) - filter_api_on_commit(on_commit); - if ((pl_on_rollback = perl_get_cv("on_rollback", FALSE))) - filter_api_on_rollback(on_rollback); + if ((pl_on_tx_begin = perl_get_cv("on_tx_begin", FALSE))) + filter_api_on_tx_begin(on_tx_begin); + if ((pl_on_tx_commit = perl_get_cv("on_tx_commit", FALSE))) + filter_api_on_tx_commit(on_tx_commit); + if ((pl_on_tx_rollback = perl_get_cv("on_tx_rollback", FALSE))) + filter_api_on_rollback(on_tx_rollback); if ((pl_on_dataline = perl_get_cv("on_dataline", FALSE))) filter_api_on_dataline(on_dataline); if ((pl_on_disconnect = perl_get_cv("on_disconnect", FALSE))) |