aboutsummaryrefslogtreecommitdiffstats
path: root/extras/filters/filter-perl/filter_perl.c
diff options
context:
space:
mode:
authorEric Faurot <eric@openbsd.org>2016-06-29 08:51:15 +0200
committerEric Faurot <eric@openbsd.org>2016-06-29 08:51:15 +0200
commit78530ed774bacf2e4baba9463e89c0fe4ac67d20 (patch)
tree03a225fc4c602c1b8dd60d9ec833226bf09f5d4d /extras/filters/filter-perl/filter_perl.c
parentmv resolve out of rspamd.c to temporary file (diff)
downloadOpenSMTPD-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.c30
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)))