commit - ed005105533320c10c63f61686a3aee3b564904d
commit + 43f97b7c420dd7281de55b19f215a7221e41c3b9
blob - 2550621eb35fce6633bedea3301b8734092ca004
blob + 346f9822741ed8a6ce7cafbef358d69fc628be58
--- main.c
+++ main.c
struct dnsbl_query {
struct asr_query *query;
struct event_asr *event;
- struct event timeout;
int resolved;
int blacklist;
struct dnsbl_session *session;
uint64_t, char *);
void dnsbl_disconnect(char *, int, struct timespec *, char *, char *, uint64_t);
void dnsbl_resolve(struct asr_result *, void *);
-void dnsbl_timeout(int, short, void *);
void dnsbl_session_query_done(struct dnsbl_session *);
void dnsbl_session_free(struct dnsbl_session *);
int dnsbl_session_cmp(struct dnsbl_session *, struct dnsbl_session *);
struct inx_addr *xaddr)
{
struct dnsbl_session *session;
- struct timeval timeout = {1, 0};
char query[255];
u_char *addr;
int i, try;
dnsbl_resolve, &(session->query[i]));
session->query[i].blacklist = i;
session->query[i].session = session;
- evtimer_set(&(session->query[i].timeout), dnsbl_timeout,
- &(session->query[i]));
- evtimer_add(&(session->query[i].timeout), &timeout);
}
}
query->resolved = 1;
query->event = NULL;
query->query = NULL;
- evtimer_del(&(query->timeout));
if (result->ar_hostent != NULL) {
if (!markspam) {
smtp_filter_disconnect(session->reqid, session->token,
}
void
-dnsbl_timeout(int fd, short event, void *arg)
-{
- struct dnsbl_query *query = arg;
- struct dnsbl_session *session = query->session;
-
- smtp_filter_disconnect(session->reqid, session->token,
- "DNS timeout on %s", blacklists[query->blacklist]);
- dnsbl_session_free(session);
-}
-
-void
dnsbl_disconnect(char *type, int version, struct timespec *tm, char *direction,
char *phase, uint64_t reqid)
{
for (i = 0; i < nblacklists; i++) {
if (!session->query[i].resolved) {
event_asr_abort(session->query[i].event);
- evtimer_del(&(session->query[i].timeout));
session->query[i].resolved = 1;
}
}