Commit Diff


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);