|
 |
70be2d |
From 119825e3df9b65ea24f28a7faf39b54861d62f0c Mon Sep 17 00:00:00 2001
|
|
 |
70be2d |
From: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Date: Mon, 19 Sep 2016 16:21:31 +0200
|
|
 |
70be2d |
Subject: [PATCH] waf: Explicitly link libreplace against libnss_wins.so
|
|
 |
70be2d |
|
|
 |
70be2d |
If we do not specify replace as a depencency here, it will not link to
|
|
 |
70be2d |
libreplace using an rpath.
|
|
 |
70be2d |
|
|
 |
70be2d |
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12277
|
|
 |
70be2d |
|
|
 |
70be2d |
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Reviewed-by: Jeremy Allison <jra@samba.org>
|
|
 |
70be2d |
Reviewed-by: Jim McDonough <jmcd@samba.org>
|
|
 |
70be2d |
|
|
 |
70be2d |
(cherry picked from commit d8a5565ae647352d11d622bd4e73ff4568678a7c)
|
|
 |
70be2d |
---
|
|
 |
70be2d |
nsswitch/wscript_build | 2 +-
|
|
 |
70be2d |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
 |
70be2d |
|
|
 |
70be2d |
diff --git a/nsswitch/wscript_build b/nsswitch/wscript_build
|
|
 |
70be2d |
index f286896..ab8f8ea 100644
|
|
 |
70be2d |
--- a/nsswitch/wscript_build
|
|
 |
70be2d |
+++ b/nsswitch/wscript_build
|
|
 |
70be2d |
@@ -42,7 +42,7 @@ if (Utils.unversioned_sys_platform() == 'linux' or (host_os.rfind('gnu') > -1)):
|
|
 |
70be2d |
bld.SAMBA3_LIBRARY('nss_wins',
|
|
 |
70be2d |
keep_underscore=True,
|
|
 |
70be2d |
source='wins.c',
|
|
 |
70be2d |
- deps='''wbclient''',
|
|
 |
70be2d |
+ deps='wbclient replace',
|
|
 |
70be2d |
public_headers=[],
|
|
 |
70be2d |
public_headers_install=False,
|
|
 |
70be2d |
pc_files=[],
|
|
 |
70be2d |
--
|
|
 |
70be2d |
2.10.0
|
|
 |
70be2d |
|
|
 |
70be2d |
From 33bc85d9060340e4ce3d2edecb3fb76dd85a5195 Mon Sep 17 00:00:00 2001
|
|
 |
70be2d |
From: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Date: Mon, 19 Sep 2016 16:17:11 +0200
|
|
 |
70be2d |
Subject: [PATCH 1/2] nsswitch: Add missing arguments to wins gethostbyname*
|
|
 |
70be2d |
|
|
 |
70be2d |
The errno pointer argument is missing.
|
|
 |
70be2d |
|
|
 |
70be2d |
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12269
|
|
 |
70be2d |
|
|
 |
70be2d |
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Reviewed-by: Jeremy Allison <jra@samba.org>
|
|
 |
70be2d |
Reviewed-by: Jim McDonough <jmcd@samba.org>
|
|
 |
70be2d |
(cherry picked from commit 124ae4e861f048fe015bff32ace4abff4d3e6c62)
|
|
 |
70be2d |
---
|
|
 |
70be2d |
nsswitch/wins.c | 51 +++++++++++++++++++++++++++++++++++++++++----------
|
|
 |
70be2d |
1 file changed, 41 insertions(+), 10 deletions(-)
|
|
 |
70be2d |
|
|
 |
70be2d |
diff --git a/nsswitch/wins.c b/nsswitch/wins.c
|
|
 |
70be2d |
index fc65c03..be84f2e 100644
|
|
 |
70be2d |
--- a/nsswitch/wins.c
|
|
 |
70be2d |
+++ b/nsswitch/wins.c
|
|
 |
70be2d |
@@ -39,10 +39,19 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
 |
70be2d |
#define INADDRSZ 4
|
|
 |
70be2d |
#endif
|
|
 |
70be2d |
|
|
 |
70be2d |
-NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
- char *buffer, size_t buflen, int *h_errnop);
|
|
 |
70be2d |
-NSS_STATUS _nss_wins_gethostbyname2_r(const char *name, int af, struct hostent *he,
|
|
 |
70be2d |
- char *buffer, size_t buflen, int *h_errnop);
|
|
 |
70be2d |
+NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
+ struct hostent *he,
|
|
 |
70be2d |
+ char *buffer,
|
|
 |
70be2d |
+ size_t buflen,
|
|
 |
70be2d |
+ int *errnop,
|
|
 |
70be2d |
+ int *h_errnop);
|
|
 |
70be2d |
+NSS_STATUS _nss_wins_gethostbyname2_r(const char *name,
|
|
 |
70be2d |
+ int af,
|
|
 |
70be2d |
+ struct hostent *he,
|
|
 |
70be2d |
+ char *buffer,
|
|
 |
70be2d |
+ size_t buflen,
|
|
 |
70be2d |
+ int *errnop,
|
|
 |
70be2d |
+ int *h_errnop);
|
|
 |
70be2d |
|
|
 |
70be2d |
static char *lookup_byname_backend(const char *name)
|
|
 |
70be2d |
{
|
|
 |
70be2d |
@@ -225,8 +234,12 @@ gethostbyname() - we ignore any domain portion of the name and only
|
|
 |
70be2d |
handle names that are at most 15 characters long
|
|
 |
70be2d |
**************************************************************************/
|
|
 |
70be2d |
NSS_STATUS
|
|
 |
70be2d |
-_nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
- char *buffer, size_t buflen, int *h_errnop)
|
|
 |
70be2d |
+_nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
+ struct hostent *he,
|
|
 |
70be2d |
+ char *buffer,
|
|
 |
70be2d |
+ size_t buflen,
|
|
 |
70be2d |
+ int *errnop,
|
|
 |
70be2d |
+ int *h_errnop)
|
|
 |
70be2d |
{
|
|
 |
70be2d |
NSS_STATUS nss_status = NSS_STATUS_SUCCESS;
|
|
 |
70be2d |
char *ip;
|
|
 |
70be2d |
@@ -247,6 +260,7 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
|
|
 |
70be2d |
ip = lookup_byname_backend(name);
|
|
 |
70be2d |
if (ip == NULL) {
|
|
 |
70be2d |
+ *errnop = EINVAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_NOTFOUND;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -254,6 +268,7 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
rc = inet_pton(AF_INET, ip, &in);
|
|
 |
70be2d |
wbcFreeMemory(ip);
|
|
 |
70be2d |
if (rc == 0) {
|
|
 |
70be2d |
+ *errnop = errno;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -263,6 +278,7 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
namelen = strlen(name) + 1;
|
|
 |
70be2d |
|
|
 |
70be2d |
if ((he->h_name = get_static(&buffer, &buflen, namelen)) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -275,18 +291,21 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
i = sizeof(char*) - i;
|
|
 |
70be2d |
|
|
 |
70be2d |
if (get_static(&buffer, &buflen, i) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
|
|
 |
70be2d |
if ((he->h_addr_list = (char **)get_static(
|
|
 |
70be2d |
&buffer, &buflen, 2 * sizeof(char *))) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
|
|
 |
70be2d |
if ((he->h_addr_list[0] = get_static(&buffer, &buflen,
|
|
 |
70be2d |
INADDRSZ)) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -306,12 +325,14 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
i = sizeof(char*) - i;
|
|
 |
70be2d |
|
|
 |
70be2d |
if (get_static(&buffer, &buflen, i) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
|
|
 |
70be2d |
if ((he->h_aliases = (char **)get_static(
|
|
 |
70be2d |
&buffer, &buflen, sizeof(char *))) == NULL) {
|
|
 |
70be2d |
+ *errnop = EAGAIN;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -330,17 +351,27 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
|
|
 |
70be2d |
|
|
 |
70be2d |
|
|
 |
70be2d |
NSS_STATUS
|
|
 |
70be2d |
-_nss_wins_gethostbyname2_r(const char *name, int af, struct hostent *he,
|
|
 |
70be2d |
- char *buffer, size_t buflen, int *h_errnop)
|
|
 |
70be2d |
+_nss_wins_gethostbyname2_r(const char *name,
|
|
 |
70be2d |
+ int af,
|
|
 |
70be2d |
+ struct hostent *he,
|
|
 |
70be2d |
+ char *buffer,
|
|
 |
70be2d |
+ size_t buflen,
|
|
 |
70be2d |
+ int *errnop,
|
|
 |
70be2d |
+ int *h_errnop)
|
|
 |
70be2d |
{
|
|
 |
70be2d |
NSS_STATUS nss_status;
|
|
 |
70be2d |
|
|
 |
70be2d |
if(af!=AF_INET) {
|
|
 |
70be2d |
+ *errnop = EAFNOSUPPORT;
|
|
 |
70be2d |
*h_errnop = NO_DATA;
|
|
 |
70be2d |
nss_status = NSS_STATUS_UNAVAIL;
|
|
 |
70be2d |
} else {
|
|
 |
70be2d |
- nss_status = _nss_wins_gethostbyname_r(
|
|
 |
70be2d |
- name, he, buffer, buflen, h_errnop);
|
|
 |
70be2d |
+ nss_status = _nss_wins_gethostbyname_r(name,
|
|
 |
70be2d |
+ he,
|
|
 |
70be2d |
+ buffer,
|
|
 |
70be2d |
+ buflen,
|
|
 |
70be2d |
+ errnop,
|
|
 |
70be2d |
+ h_errnop);
|
|
 |
70be2d |
}
|
|
 |
70be2d |
return nss_status;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
--
|
|
 |
70be2d |
2.10.0
|
|
 |
70be2d |
|
|
 |
70be2d |
|
|
 |
70be2d |
From b8d9c7b69509555f40335a0dd7b93ef032354b0d Mon Sep 17 00:00:00 2001
|
|
 |
70be2d |
From: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Date: Tue, 20 Sep 2016 13:26:52 +0200
|
|
 |
70be2d |
Subject: [PATCH 2/2] nsswitch: Also set h_errnop for nss_wins functions
|
|
 |
70be2d |
|
|
 |
70be2d |
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12269
|
|
 |
70be2d |
|
|
 |
70be2d |
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Reviewed-by: Jim McDonough <jmcd@samba.org>
|
|
 |
70be2d |
|
|
 |
70be2d |
(cherry picked from commit 382345126c56e26d3dbc319f1c7c1dae3c4fafc9)
|
|
 |
70be2d |
---
|
|
 |
70be2d |
nsswitch/wins.c | 9 +++++++++
|
|
 |
70be2d |
1 file changed, 9 insertions(+)
|
|
 |
70be2d |
|
|
 |
70be2d |
diff --git a/nsswitch/wins.c b/nsswitch/wins.c
|
|
 |
70be2d |
index be84f2e..dccb6dd 100644
|
|
 |
70be2d |
--- a/nsswitch/wins.c
|
|
 |
70be2d |
+++ b/nsswitch/wins.c
|
|
 |
70be2d |
@@ -261,6 +261,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
ip = lookup_byname_backend(name);
|
|
 |
70be2d |
if (ip == NULL) {
|
|
 |
70be2d |
*errnop = EINVAL;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_NOTFOUND;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -269,6 +270,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
wbcFreeMemory(ip);
|
|
 |
70be2d |
if (rc == 0) {
|
|
 |
70be2d |
*errnop = errno;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -279,6 +281,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
|
|
 |
70be2d |
if ((he->h_name = get_static(&buffer, &buflen, namelen)) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -292,6 +295,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
|
|
 |
70be2d |
if (get_static(&buffer, &buflen, i) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -299,6 +303,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
if ((he->h_addr_list = (char **)get_static(
|
|
 |
70be2d |
&buffer, &buflen, 2 * sizeof(char *))) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -306,6 +311,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
if ((he->h_addr_list[0] = get_static(&buffer, &buflen,
|
|
 |
70be2d |
INADDRSZ)) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -326,6 +332,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
|
|
 |
70be2d |
if (get_static(&buffer, &buflen, i) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
@@ -333,12 +340,14 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
if ((he->h_aliases = (char **)get_static(
|
|
 |
70be2d |
&buffer, &buflen, sizeof(char *))) == NULL) {
|
|
 |
70be2d |
*errnop = EAGAIN;
|
|
 |
70be2d |
+ *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
nss_status = NSS_STATUS_TRYAGAIN;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
|
|
 |
70be2d |
he->h_aliases[0] = NULL;
|
|
 |
70be2d |
|
|
 |
70be2d |
+ *h_errnop = NETDB_SUCCESS;
|
|
 |
70be2d |
nss_status = NSS_STATUS_SUCCESS;
|
|
 |
70be2d |
|
|
 |
70be2d |
out:
|
|
 |
70be2d |
--
|
|
 |
70be2d |
2.10.0
|
|
 |
70be2d |
|
|
 |
70be2d |
From c91544eb234af9a13ab08f2b1e31d2915965985b Mon Sep 17 00:00:00 2001
|
|
 |
70be2d |
From: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
Date: Sun, 13 Nov 2016 17:40:21 +0100
|
|
 |
70be2d |
Subject: [PATCH] nss_wins: Fix errno values for HOST_NOT_FOUND
|
|
 |
70be2d |
|
|
 |
70be2d |
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12269
|
|
 |
70be2d |
|
|
 |
70be2d |
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
 |
70be2d |
---
|
|
 |
70be2d |
nsswitch/wins.c | 3 +--
|
|
 |
70be2d |
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
 |
70be2d |
|
|
 |
70be2d |
diff --git a/nsswitch/wins.c b/nsswitch/wins.c
|
|
 |
70be2d |
index dccb6dd..19d3c5b 100644
|
|
 |
70be2d |
--- a/nsswitch/wins.c
|
|
 |
70be2d |
+++ b/nsswitch/wins.c
|
|
 |
70be2d |
@@ -260,8 +260,7 @@ _nss_wins_gethostbyname_r(const char *hostname,
|
|
 |
70be2d |
|
|
 |
70be2d |
ip = lookup_byname_backend(name);
|
|
 |
70be2d |
if (ip == NULL) {
|
|
 |
70be2d |
- *errnop = EINVAL;
|
|
 |
70be2d |
- *h_errnop = NETDB_INTERNAL;
|
|
 |
70be2d |
+ *h_errnop = HOST_NOT_FOUND;
|
|
 |
70be2d |
nss_status = NSS_STATUS_NOTFOUND;
|
|
 |
70be2d |
goto out;
|
|
 |
70be2d |
}
|
|
 |
70be2d |
--
|
|
 |
70be2d |
2.10.2
|
|
 |
70be2d |
|