Date: Tue, 10 Apr 2018 10:58:20 +0000 (UTC) From: Alexey Dokuchaev <danfe@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r466955 - in head/mail/mailfromd: . files Message-ID: <201804101058.w3AAwK6f082536@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: danfe Date: Tue Apr 10 10:58:20 2018 New Revision: 466955 URL: https://svnweb.freebsd.org/changeset/ports/466955 Log: Fix dns_resolve_ipstr(), by selecting `rrtype' depending on the domain in question. This should produce the same results as it was in the previous res_query() implementation, which queried for T_ANY and selected the first RR type returned. Requested by: maintainer Added: head/mail/mailfromd/files/patch-lib_dns.c (contents, props changed) Modified: head/mail/mailfromd/Makefile Modified: head/mail/mailfromd/Makefile ============================================================================== --- head/mail/mailfromd/Makefile Tue Apr 10 10:24:16 2018 (r466954) +++ head/mail/mailfromd/Makefile Tue Apr 10 10:58:20 2018 (r466955) @@ -3,6 +3,7 @@ PORTNAME= mailfromd PORTVERSION= 8.4 +PORTREVISION= 1 CATEGORIES= mail MASTER_SITES= http://download.gnu.org.ua/pub/release/${PORTNAME}/ \ http://download.gnu.org.ua/pub/alpha/${PORTNAME}/ Added: head/mail/mailfromd/files/patch-lib_dns.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/mail/mailfromd/files/patch-lib_dns.c Tue Apr 10 10:58:20 2018 (r466955) @@ -0,0 +1,55 @@ +From 2d91db836a95a66c7b9ad1acb9dd0ebf93fb4f44 Mon Sep 17 00:00:00 2001 +From: Sergey Poznyakoff <gray@gnu.org> +Date: Fri, 23 Mar 2018 11:00:37 +0000 +Subject: Fix dns_resolve_ipstr + +* lib/dns.c (dns_resolve_ipstr): Select rrtype depending on the +domain in question. This should produce the same results as it was +in the previous res_query implementation, which queried for T_ANY +and selected the first RR type returned. + +--- lib/dns.c.orig 2017-11-03 05:06:35 UTC ++++ lib/dns.c +@@ -438,27 +438,35 @@ dns_resolve_ipstr(const char *ipstr, const char *domai + int rc; + adns_answer *ans; + char *name; +- +- if (!dns_str_is_ipv4(ipstr)) +- return dns_failure; +- if (!domain) { ++ adns_rrtype type; ++ ++ if (!domain || strcasecmp(domain, "in-addr.arpa") == 0) { + IPBUF ipbuf; ++ if (!dns_str_is_ipv4(ipstr)) ++ return dns_failure; + if (dns_reverse_ipstr(ipstr, ipbuf)) + return dns_failure; + mu_asprintf(&name, "%s.in-addr.arpa", ipbuf); ++ type = adns_r_ptr_raw; + } else { + mu_asprintf(&name, "%s.%s", ipstr, domain); ++ type = adns_r_a; + } + +- rc = adns_synchronous(get_state(), name, adns_r_ptr_raw, ++ rc = adns_synchronous(get_state(), name, type, + DEFAULT_QFLAGS, + &ans); + free(name); + if (rc) + return errno_to_dns_status(rc); + status = adns_to_dns_status(ans->status); +- if (status == dns_success) +- *hbuf = mu_strdup(ans->rrs.str[0]); ++ if (status == dns_success) { ++ if (ans->type == adns_r_ptr_raw) { ++ *hbuf = mu_strdup(ans->rrs.str[0]); ++ } else { ++ *hbuf = mu_strdup(inet_ntoa(ans->rrs.inaddr[0])); ++ } ++ } + free(ans); + return status; + }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804101058.w3AAwK6f082536>