commit 0696aea6cc2a797fd68090de35525de6b298e406 from: Martijn van Duren date: Sat Apr 06 14:56:29 2019 UTC Import commit filter from dkim signer commit - 84127c5197b9154c14be3053bfce7f13d3fa8e86 commit + 0696aea6cc2a797fd68090de35525de6b298e406 blob - 0a700a0ff66e3ff542a44f3055ed3e3100ad5e08 blob + 9e6511fc8dbeaf5b70d67ef9082bc18e6850f5dd --- smtp_proc.c +++ smtp_proc.c @@ -43,7 +43,7 @@ static ssize_t smtp_getline(char ** restrict, size_t * static void smtp_newline(int, short, void *); static void smtp_connect(struct smtp_callback *, int, struct timespec *, uint64_t, uint64_t, char *); -static void smtp_data(struct smtp_callback *, int, struct timespec *, +static void smtp_noargs(struct smtp_callback *, int, struct timespec *, uint64_t, uint64_t, char *); static void smtp_dataline(struct smtp_callback *, int, struct timespec *, uint64_t, uint64_t, char *); @@ -73,8 +73,9 @@ struct smtp_callback { void *cb; } smtp_callbacks[] = { {"filter", "connect", "smtp-in", .smtp_filter = smtp_connect, NULL}, - {"filter", "data", "smtp-in", .smtp_filter = smtp_data, NULL}, + {"filter", "data", "smtp-in", .smtp_filter = smtp_noargs, NULL}, {"filter", "data-line", "smtp-in", .smtp_filter = smtp_dataline, NULL}, + {"filter", "commit", "smtp-in", .smtp_filter = smtp_noargs, NULL}, {"report", "link-disconnect", "smtp-in", .smtp_report = smtp_in_link_disconnect, NULL} }; @@ -100,6 +101,13 @@ smtp_register_filter_dataline(void (*cb)(char *, int, char *, uint64_t, uint64_t, char *)) { return smtp_register("filter", "data-line", "smtp-in", (void *)cb); +} + +int +smtp_register_filter_commit(void (*cb)(char *, int, struct timespec *, char *, + char *, uint64_t, uint64_t)) +{ + return smtp_register("filter", "commit", "smtp-in", (void *)cb); } int @@ -297,7 +305,7 @@ smtp_connect(struct smtp_callback *cb, int version, st } static void -smtp_data(struct smtp_callback *cb, int version, struct timespec *tm, +smtp_noargs(struct smtp_callback *cb, int version, struct timespec *tm, uint64_t reqid, uint64_t token, char *params) { void (*f)(char *, int, struct timespec *, char *, char *, uint64_t, blob - 39a43d963a2e37a9f520a2229d53d6b73694db1e blob + ca27bcad53dea8412d4a2739f4b25ef203fe4d4f --- smtp_proc.h +++ smtp_proc.h @@ -31,6 +31,8 @@ int smtp_register_filter_data(void (*)(char *, int, st char *, uint64_t, uint64_t)); int smtp_register_filter_dataline(void (*)(char *, int, struct timespec *, char *, char *, uint64_t, uint64_t, char *)); +int smtp_register_filter_commit(void (*)(char *, int, struct timespec *, char *, + char *, uint64_t, uint64_t)); int smtp_in_register_report_disconnect(void (*)(char *, int, struct timespec *, char *, char *, uint64_t)); void smtp_filter_proceed(uint64_t, uint64_t);