SockAddr name_lookup(const char *host, int port, char **canonicalname, Conf *conf, int addressfamily, void *frontend, const char *reason) { char *logmsg; if (conf_get_int(conf, CONF_proxy_type) != PROXY_NONE && do_proxy_dns(conf) && proxy_for_destination(NULL, host, port, conf)) { if (frontend) { logmsg = dupprintf("Leaving host lookup to proxy of \"%s\"" " (for %s)", host, reason); logevent(frontend, logmsg); sfree(logmsg); } *canonicalname = dupstr(host); return sk_nonamelookup(host); } else { if (frontend) { logmsg = dns_log_msg(host, addressfamily, reason); logevent(frontend, logmsg); sfree(logmsg); } return sk_namelookup(host, canonicalname, addressfamily); } }
SockAddr name_lookup(char *host, int port, char **canonicalname, const Config *cfg, int addressfamily) { if (cfg->proxy_type != PROXY_NONE && do_proxy_dns(cfg) && proxy_for_destination(NULL, host, port, cfg)) { *canonicalname = dupstr(host); return sk_nonamelookup(host); } return sk_namelookup(host, canonicalname, addressfamily); }
SockAddr name_lookup(char *host, int port, char **canonicalname, Conf *conf, int addressfamily) { if (conf_get_int(conf, CONF_proxy_type) != PROXY_NONE && do_proxy_dns(conf) && proxy_for_destination(NULL, host, port, conf)) { *canonicalname = dupstr(host); return sk_nonamelookup(host); } return sk_namelookup(host, canonicalname, addressfamily); }
SockAddr *name_lookup(const char *host, int port, char **canonicalname, Conf *conf, int addressfamily, LogContext *logctx, const char *reason) { if (conf_get_int(conf, CONF_proxy_type) != PROXY_NONE && do_proxy_dns(conf) && proxy_for_destination(NULL, host, port, conf)) { if (logctx) logeventf(logctx, "Leaving host lookup to proxy of \"%s\"" " (for %s)", host, reason); *canonicalname = dupstr(host); return sk_nonamelookup(host); } else { if (logctx) logevent_and_free( logctx, dns_log_msg(host, addressfamily, reason)); return sk_namelookup(host, canonicalname, addressfamily); } }