Found this the hard way by playing with the new filter API.
When sending a plaintext message, which has an '|' in the text it would
cut of the data at that point. The diff below pushes the parameter split
to after handling the filter-dataline.
Fixes my usecase.
OK?
martijn@
Index: lka_filter.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/lka_filter.c,v
retrieving revision 1.34
diff -u -p -r1.34 lka_filter.c
--- lka_filter.c 15 Jan 2019 04:49:50 -0000 1.34
+++ lka_filter.c 8 Apr 2019 06:20:26 -0000
@@ -458,14 +458,14 @@ lka_filter_process_response(const char *
return 0;
response = ep+1;
- if ((ep = strchr(response, '|'))) {
- parameter = ep + 1;
- *ep = 0;
- }
-
if (strcmp(kind, "filter-dataline") == 0) {
filter_data_next(token, reqid, response);
return 1;
+ }
+
+ if ((ep = strchr(response, '|'))) {
+ parameter = ep + 1;
+ *ep = 0;
}
if (strcmp(response, "proceed") != 0 &&