The included patch allows smtpd/filter_api.c to compile. I know it's
not hooked in yet. I am working on adding dnsbl. I have a patch
under test which is integrated into the body of smtpd. It would be
cleaner if it could be an external filter. Is anybody working on
the filter code? Would it be possible to get hints about how
the filter api code should hook into the body of smtpd.

Otherwise I'll just install sendmail & let this go for now.

Index: filter_api.c
===================================================================
RCS file: /cvs/src/usr.sbin/smtpd/filter_api.c,v
retrieving revision 1.16
diff -u -p -u -r1.16 filter_api.c
--- filter_api.c        20 Jan 2015 17:37:54 -0000      1.16
+++ filter_api.c        15 Aug 2015 09:42:38 -0000
@@ -18,8 +18,10 @@
  */

 #include <sys/types.h>
+#include <sys/tree.h>
 #include <sys/queue.h>
 #include <sys/uio.h>
+#include <sys/socket.h>

 #include <event.h>
 #include <fcntl.h>
@@ -30,6 +32,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <netdb.h>
+#include <limits.h>

 #include "smtpd.h"
 #include "log.h"
@@ -115,9 +119,13 @@ static void filter_trigger_eom(struct fi
 static void filter_io_in(struct io *, int);
 static void filter_io_out(struct io *, int);
 static const char *filterimsg_to_str(int);
+#if 0  /* unused, left because purpose unknown */
 static const char *hook_to_str(int);
+#endif
 static const char *query_to_str(int);
+#if 0  /* unused, left because purpose unknown */
 static const char *event_to_str(int);
+#endif


 static void
@@ -180,7 +188,7 @@ filter_dispatch(struct mproc *p, struct
        const char              *line, *name;
        uint32_t                 v, datalen;
        uint64_t                 id, qid;
-       int                      status, type;
+       int                      type;
        int                      fds[2], fdin, fdout;

        log_trace(TRACE_FILTERS, "filter-api:%s imsg %s", filter_name,
@@ -610,6 +618,7 @@ filterimsg_to_str(int imsg)
        }
 }

+#if 0  /* unused, left because purpose unknown */
 static const char *
 hook_to_str(int hook)
 {
@@ -629,6 +638,7 @@ hook_to_str(int hook)
                return ("HOOK_???");
        }
 }
+#endif

 static const char *
 query_to_str(int query)
@@ -646,6 +656,7 @@ query_to_str(int query)
        }
 }

+#if 0  /* unused, left because purpose unknown */
 static const char *
 event_to_str(int event)
 {
@@ -659,6 +670,7 @@ event_to_str(int event)
                return ("EVENT_???");
        }
 }
+#endif

 /*
  * These functions are called from mproc.c

Reply via email to