Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/crypto/external/bsd/openssh/dist eliminate direct use of _re...
details: https://anonhg.NetBSD.org/src/rev/cfdd018c2e27
branches: trunk
changeset: 942608:cfdd018c2e27
user: christos <christos%NetBSD.org@localhost>
date: Thu Nov 12 19:43:18 2020 +0000
description:
eliminate direct use of _res for threaded programs.
diffstat:
crypto/external/bsd/openssh/dist/getrrsetbyname.c | 41 +++++++++++++++-------
1 files changed, 28 insertions(+), 13 deletions(-)
diffs (116 lines):
diff -r 6b8f525420b5 -r cfdd018c2e27 crypto/external/bsd/openssh/dist/getrrsetbyname.c
--- a/crypto/external/bsd/openssh/dist/getrrsetbyname.c Thu Nov 12 17:53:43 2020 +0000
+++ b/crypto/external/bsd/openssh/dist/getrrsetbyname.c Thu Nov 12 19:43:18 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: getrrsetbyname.c,v 1.5 2017/04/18 18:41:46 christos Exp $ */
+/* $NetBSD: getrrsetbyname.c,v 1.6 2020/11/12 19:43:18 christos Exp $ */
/* $OpenBSD: getrrsetbyname.c,v 1.10 2005/03/30 02:58:28 tedu Exp $ */
/*
@@ -47,7 +47,7 @@
/* OPENBSD ORIGINAL: lib/libc/net/getrrsetbyname.c */
#include "includes.h"
-__RCSID("$NetBSD: getrrsetbyname.c,v 1.5 2017/04/18 18:41:46 christos Exp $");
+__RCSID("$NetBSD: getrrsetbyname.c,v 1.6 2020/11/12 19:43:18 christos Exp $");
#ifndef HAVE_GETRRSETBYNAME
@@ -189,8 +189,9 @@
unsigned int rdtype, unsigned int flags,
struct rrsetinfo **res)
{
- struct __res_state *_resp = _THREAD_PRIVATE(_res, _res, &_res);
+ struct __res_state *_resp;
int result;
+ unsigned long options;
struct rrsetinfo *rrset = NULL;
struct dns_response *response = NULL;
struct dns_rr *rr;
@@ -201,27 +202,33 @@
/* check for invalid class and type */
if (rdclass > 0xffff || rdtype > 0xffff) {
- result = ERRSET_INVAL;
- goto fail;
+ return ERRSET_INVAL;
}
/* don't allow queries of class or type ANY */
if (rdclass == 0xff || rdtype == 0xff) {
- result = ERRSET_INVAL;
- goto fail;
+ return ERRSET_INVAL;
}
/* don't allow flags yet, unimplemented */
if (flags) {
- result = ERRSET_INVAL;
- goto fail;
+ return ERRSET_INVAL;
}
+#ifndef __NetBSD__
+ _resp = _THREAD_PRIVATE(_res, _res, &_res);
/* initialize resolver */
if ((_resp->options & RES_INIT) == 0 && res_init() == -1) {
result = ERRSET_FAIL;
goto fail;
}
+#else
+ _resp = __res_get_state();
+ if (_resp == NULL) {
+ return ERRSET_FAIL;
+ }
+#endif
+ options = _resp->options;
#ifdef DEBUG
_resp->options |= RES_DEBUG;
@@ -234,8 +241,8 @@
#endif /* RES_USE_DNSEC */
/* make query */
- length = res_query(hostname, (signed int) rdclass, (signed int) rdtype,
- answer, sizeof(answer));
+ length = res_nquery(_resp, hostname, (signed int) rdclass,
+ (signed int) rdtype, answer, sizeof(answer));
if (length < 0) {
switch(h_errno) {
case HOST_NOT_FOUND:
@@ -335,9 +342,17 @@
free_dns_response(response);
*res = rrset;
+ _resp->options = options;
+#ifdef __NetBSD__
+ __res_put_state(_resp);
+#endif
return (ERRSET_SUCCESS);
fail:
+ _resp->options = options;
+#ifdef __NetBSD__
+ __res_put_state(_resp);
+#endif
if (rrset != NULL)
freerrset(rrset);
if (response != NULL)
@@ -466,7 +481,7 @@
/* name */
length = dn_expand(answer, answer + size, *cp, name,
- sizeof(name));
+ (int)sizeof(name));
if (length < 0) {
free_dns_query(head);
return (NULL);
@@ -513,7 +528,7 @@
/* name */
length = dn_expand(answer, answer + size, *cp, name,
- sizeof(name));
+ (int)sizeof(name));
if (length < 0) {
free_dns_rr(head);
return (NULL);
Home |
Main Index |
Thread Index |
Old Index