commit - 9d22f50090e93dc156fe36e8c602e99624762dfd
commit + 05f20f1d7b49e25f045edfe43053c3f66bfa611d
blob - b3485b1bfa8478c7739de10ae713686503cd2173
blob + fa04b86564ef9d134a26de6cbaf62c93d40ad6a0
--- main.c
+++ main.c
static char **blacklists = NULL;
static size_t nblacklists = 0;
-int retries = 0;
-int reject_onfailure = 0;
void usage(void);
enum filter_decision dnsbl_connect(char *, int, time_t, char *, char *,
err(1, NULL);
nblacklists++;
break;
- case 'f':
- reject_onfailure = 1;
- case 'r':
- if ((retries = strtonum(optarg, 0, 10, &errstr)) == 0 &&
- errstr != NULL)
- errx(1, "retries %s", errstr);
- break;
default:
usage();
}
} else
errx(1, "Invalid address family received");
- for (try = -1; try < retries; try++) {
- if ((hent = gethostbyname(query)) == NULL) {
- if (h_errno == HOST_NOT_FOUND)
- break;
- if (h_errno != TRY_AGAIN) {
- if (!reject_onfailure)
- break;
- else
- smtp_filter_disconnect(reqid,
- token,
- "Blacklist check failed");
- return FILTER_DISCONNECT;
- }
- } else {
+ if ((hent = gethostbyname(query)) == NULL) {
+ if (h_errno == HOST_NOT_FOUND)
+ break;
+ if (h_errno != TRY_AGAIN) {
smtp_filter_disconnect(reqid, token,
- "Listed at %s", blacklists[i]);
+ "Blacklist check failed");
return FILTER_DISCONNECT;
}
+ } else {
+ smtp_filter_disconnect(reqid, token,
+ "Listed at %s", blacklists[i]);
+ return FILTER_DISCONNECT;
}
}
return FILTER_PROCEED;