commit - b633fa4cd119f62cce08728b29b9dbf8c023b59b
commit + 2e3e5d5f7871668f89268b02831b58752cda503f
blob - cd91a14e4a86f1149982b5afc5d591cb5dfed4a7
blob + 0a1beb15af7de3db3a0601b38f6227e3bfbaacb0
--- main.c
+++ main.c
#include <sys/types.h>
#include <sys/socket.h>
+#include <arpa/inet.h>
#include <errno.h>
#include <event.h>
#include <netdb.h>
struct dnsbl_session {
uint64_t reqid;
uint64_t token;
+ char addr[INET6_ADDRSTRLEN];
int listed;
struct dnsbl_query *query;
RB_ENTRY(dnsbl_session) entry;
session->reqid = reqid;
session->token = token;
session->listed = -1;
+ if (inet_ntop(xaddr->af, xaddr->af == AF_INET ?
+ (void *)&(xaddr->addr) : (void *)&(xaddr->addr6), session->addr,
+ sizeof(session->addr)) == NULL)
+ fatal("inet_ntop");
+
RB_INSERT(dnsbl_sessions, &dnsbl_sessions, session);
if (xaddr->af == AF_INET)
if (!markspam) {
smtp_filter_disconnect(session->reqid, session->token,
"Listed at %s", blacklists[query->blacklist]);
+ log_info("Rejected %s: listed at %s", session->addr,
+ blacklists[query->blacklist]);
dnsbl_session_free(session);
} else {
dnsbl_session_query_done(session);
session->listed = query->blacklist;
smtp_filter_proceed(session->reqid, session->token);
+ log_info("Marked as spam %s: listed at %s", session->addr,
+ blacklists[query->blacklist]);
}
return;
}
return;
}
smtp_filter_proceed(session->reqid, session->token);
+ log_info("%s not listed", session->addr);
if (!markspam)
dnsbl_session_free(session);
}