$NetBSD: patch-ar,v 1.1 2014/06/15 20:48:50 jnemeth Exp $

--- sendmail/daemon.c.orig	2017-02-17 03:44:29.000000000 +0900
+++ sendmail/daemon.c	2018-04-01 06:45:50.803848979 +0900
@@ -71,6 +71,10 @@ SM_RCSID("@(#)$Id: daemon.c,v 8.698 2013
 # endif /* HAS_IN_H */
 #endif /* IP_SRCROUTE && NETINET */
 
+#if NAMED_BIND
+extern struct __res_state sm_res;
+#endif
+
 #include <sm/fdset.h>
 
 #include <ratectrl.h>
@@ -2310,16 +2314,16 @@ makeconnection(host, port, mci, e, enoug
 				if (hp == NULL && p[-1] == '.')
 				{
 #if NAMED_BIND
-					int oldopts = _res.options;
+					int oldopts = sm_res.options;
 
-					_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
+					sm_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
 #endif /* NAMED_BIND */
 					p[-1] = '\0';
 					hp = sm_gethostbyname(&host[1],
 							      family);
 					p[-1] = '.';
 #if NAMED_BIND
-					_res.options = oldopts;
+					sm_res.options = oldopts;
 #endif /* NAMED_BIND */
 				}
 				*p = ']';
@@ -2348,15 +2352,15 @@ makeconnection(host, port, mci, e, enoug
 			if (hp == NULL && *p == '.')
 			{
 #if NAMED_BIND
-				int oldopts = _res.options;
+				int oldopts = sm_res.options;
 
-				_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
+				sm_res.options &= ~(RES_DEFNAMES|RES_DNSRCH);
 #endif /* NAMED_BIND */
 				*p = '\0';
 				hp = sm_gethostbyname(host, family);
 				*p = '.';
 #if NAMED_BIND
-				_res.options = oldopts;
+				sm_res.options = oldopts;
 #endif /* NAMED_BIND */
 			}
 		}
@@ -4023,13 +4027,13 @@ host_map_lookup(map, name, av, statp)
 #if NAMED_BIND
 	if (map->map_timeout > 0)
 	{
-		retrans = _res.retrans;
-		_res.retrans = map->map_timeout;
+		retrans = sm_res.retrans;
+		sm_res.retrans = map->map_timeout;
 	}
 	if (map->map_retry > 0)
 	{
-		retry = _res.retry;
-		_res.retry = map->map_retry;
+		retry = sm_res.retry;
+		sm_res.retry = map->map_retry;
 	}
 #endif /* NAMED_BIND */
 
@@ -4107,9 +4111,9 @@ host_map_lookup(map, name, av, statp)
 	}
 #if NAMED_BIND
 	if (map->map_timeout > 0)
-		_res.retrans = retrans;
+		sm_res.retrans = retrans;
 	if (map->map_retry > 0)
-		_res.retry = retry;
+		sm_res.retry = retry;
 #endif /* NAMED_BIND */
 
 	s->s_namecanon.nc_flags |= NCF_VALID;	/* will be soon */
@@ -4438,11 +4442,11 @@ hostnamebyanyaddr(sap)
 
 # if NAMED_BIND
 	/* shorten name server timeout to avoid higher level timeouts */
-	saveretry = _res.retry;
-	if (_res.retry * _res.retrans > 20)
-		_res.retry = 20 / _res.retrans;
-	if (_res.retry == 0)
-		_res.retry = 1;
+	saveretry = sm_res.retry;
+	if (sm_res.retry * sm_res.retrans > 20)
+		sm_res.retry = 20 / sm_res.retrans;
+	if (sm_res.retry == 0)
+		sm_res.retry = 1;
 # endif /* NAMED_BIND */
 
 	switch (sap->sa.sa_family)
@@ -4481,7 +4485,7 @@ hostnamebyanyaddr(sap)
 	}
 
 # if NAMED_BIND
-	_res.retry = saveretry;
+	sm_res.retry = saveretry;
 # endif /* NAMED_BIND */
 
 # if NETINET || NETINET6
