package mireka.filter.dnsbl;
import java.util.List;
import mireka.filter.MailTransaction;
public class DnsblsChecker {
private final List<Dnsbl> blacklists;
private final MailTransaction mailTransaction;
protected DnsblsChecker(List<Dnsbl> blacklists,
MailTransaction mailTransaction) {
this.blacklists = blacklists;
this.mailTransaction = mailTransaction;
}
private DnsblResult result;
public DnsblResult getResult() {
if (result == null)
result = calculateResult();
return result;
}
private DnsblResult calculateResult() {
for (Dnsbl dnsbl : blacklists) {
DnsblResult result =
dnsbl.check(mailTransaction.getRemoteInetAddress());
if (result.isListed)
return result;
}
return DnsblResult.NOT_LISTED;
}
}