commit - 84127c5197b9154c14be3053bfce7f13d3fa8e86
commit + 0696aea6cc2a797fd68090de35525de6b298e406
blob - 0a700a0ff66e3ff542a44f3055ed3e3100ad5e08
blob + 9e6511fc8dbeaf5b70d67ef9082bc18e6850f5dd
--- smtp_proc.c
+++ smtp_proc.c
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 *);
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}
};
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
}
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
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);