From 697d37b182040cc68cfc7785fddd340b2f51d9cc Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 21 Mar 2007 20:24:59 +0000 Subject: * nis/nis_call.c: Include bits/libc-lock.h, sys/stat.h, unistd.h. (nis_server_cache, nis_server_cache_lock, nis_cold_start_mtime): New variables. (nis_server_cache_search, nis_server_cache_add): New functions. (__nisfind_server): Use them. Add dbp and flags argument, if call __nisbind_create. (__nisbind_create): Add server_used and current_ep arguments, only call __nis_findfastest if server_used is ~0. (__do_niscall2, __prepare_niscall): Adjust callers. (ckey_cache, ckey_cache_size, ckey_cache_allocated, ckey_cache_pid, ckey_cache_euid, ckey_cache_lock): New variables. (get_ckey): New function. (__nisbind_connect): If not dbp->use_udp, pass IPPROTO_TCP to __pmap_getnisport. Save __pmap_getnisport result in dbp->addr.sin_port if non-zero. Use get_ckey to create conversation key. * nis/nis_lookup.c (nis_lookup): Likewise. * nis/nis_table.c (nis_list): Likewise. * nis/rpcsvc/nislib.h (__nisbind_create, __nisfind_server): Adjust prototypes. * nis/nss_nisplus/nisplus-pwd.c (_nss_nisplus_getpwnam_r, _nss_nisplus_getpwuid_r): Pass USE_DGRAM flag to nis_list. * nis/nss_nisplus/nisplus-service.c (_nss_nisplus_getservbyname_r, _nss_nisplus_getservbyport_r): Likewise. * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyname_r, _nss_nisplus_getnetbyaddr_r): Likewise. * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_getspnam_r): Likewise. * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r, _nss_nisplus_getntohost_r): Likewise. * nis/nss_nisplus/nisplus-rpc.c (_nss_nisplus_getrpcbyname_r, _nss_nisplus_getrpcbynumber_r): Likewise. 2007-03-21 Jakub Jelinek * nis/nis_call.c: Include bits/libc-lock.h, sys/stat.h, unistd.h. (nis_server_cache, nis_server_cache_lock, nis_cold_start_mtime): New variables. (nis_server_cache_search, nis_server_cache_add): New functions. (__nisfind_server): Use them. Add dbp and flags argument, if call __nisbind_create. (__nisbind_create): Add server_used and current_ep arguments, only call __nis_findfastest if server_used is ~0. (__do_niscall2, __prepare_niscall): Adjust callers. (ckey_cache, ckey_cache_size, ckey_cache_allocated, ckey_cache_pid, ckey_cache_euid, ckey_cache_lock): New variables. (get_ckey): New function. (__nisbind_connect): If not dbp->use_udp, pass IPPROTO_TCP to __pmap_getnisport. Save __pmap_getnisport result in dbp->addr.sin_port if non-zero. Use get_ckey to create conversation key. * nis/nis_lookup.c (nis_lookup): Likewise. * nis/nis_table.c (nis_list): Likewise. * nis/rpcsvc/nislib.h (__nisbind_create, __nisfind_server): Adjust prototypes. * nis/nss_nisplus/nisplus-pwd.c (_nss_nisplus_getpwnam_r, _nss_nisplus_getpwuid_r): Pass USE_DGRAM flag to nis_list. * nis/nss_nisplus/nisplus-service.c (_nss_nisplus_getservbyname_r, _nss_nisplus_getservbyport_r): Likewise. * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyname_r, _nss_nisplus_getnetbyaddr_r): Likewise. * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_getspnam_r): Likewise. * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r, _nss_nisplus_getntohost_r): Likewise. * nis/nss_nisplus/nisplus-rpc.c (_nss_nisplus_getrpcbyname_r, _nss_nisplus_getrpcbynumber_r): Likewise. --- nis/nss_nisplus/nisplus-ethers.c | 9 ++++++--- nis/nss_nisplus/nisplus-network.c | 11 +++++++---- nis/nss_nisplus/nisplus-pwd.c | 6 +++--- nis/nss_nisplus/nisplus-rpc.c | 11 +++++++---- nis/nss_nisplus/nisplus-service.c | 11 +++++++---- nis/nss_nisplus/nisplus-spwd.c | 5 +++-- 6 files changed, 33 insertions(+), 20 deletions(-) (limited to 'nis/nss_nisplus') diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c index 8d69ad9373..298869f931 100644 --- a/nis/nss_nisplus/nisplus-ethers.c +++ b/nis/nss_nisplus/nisplus-ethers.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1998,2000-2003,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,2000-2003,2005,2006,2007 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -256,7 +257,8 @@ _nss_nisplus_gethostton_r (const char *name, struct etherent *eth, snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val); - nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); if (result == NULL) { @@ -322,7 +324,8 @@ _nss_nisplus_getntohost_r (const struct ether_addr *addr, struct etherent *eth, addr->ether_addr_octet[4], addr->ether_addr_octet[5], tablename_val); - nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); if (result == NULL) { diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c index 286a4ccbdc..1cf652f071 100644 --- a/nis/nss_nisplus/nisplus-network.c +++ b/nis/nss_nisplus/nisplus-network.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997,1998,2000-2003,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 1997,1998,2000-2003,2005,2006,2007 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -338,7 +339,7 @@ _nss_nisplus_getnetbyname_r (const char *name, struct netent *network, /* Search at first in the alias list, and use the correct name for the next search */ snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val); - result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL); + result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH | USE_DGRAM, NULL, NULL); if (result != NULL) { @@ -366,7 +367,8 @@ _nss_nisplus_getnetbyname_r (const char *name, struct netent *network, } nis_freeresult (result); - result = nis_list (bufptr, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL); + result = nis_list (bufptr, FOLLOW_LINKS | FOLLOW_PATH | USE_DGRAM, + NULL, NULL); } if (result == NULL) @@ -438,7 +440,8 @@ _nss_nisplus_getnetbyaddr_r (uint32_t addr, const int type, while (1) { snprintf (buf, sizeof (buf), "[addr=%s],%s", buf2, tablename_val); - nis_result *result = nis_list (buf, EXPAND_NAME, NULL, NULL); + nis_result *result = nis_list (buf, EXPAND_NAME | USE_DGRAM, + NULL, NULL); if (result == NULL) { diff --git a/nis/nss_nisplus/nisplus-pwd.c b/nis/nss_nisplus/nisplus-pwd.c index 93e37dddab..cd33aebbcc 100644 --- a/nis/nss_nisplus/nisplus-pwd.c +++ b/nis/nss_nisplus/nisplus-pwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1999, 2001, 2002, 2003, 2005, 2006 +/* Copyright (C) 1997, 1999, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -311,7 +311,7 @@ _nss_nisplus_getpwnam_r (const char *name, struct passwd *pw, snprintf (buf, sizeof (buf), "[name=%s],%s", name, pwd_tablename_val); - result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, NULL, NULL); if (result == NULL) { @@ -370,7 +370,7 @@ _nss_nisplus_getpwuid_r (const uid_t uid, struct passwd *pw, snprintf (buf, sizeof (buf), "[uid=%lu],%s", (unsigned long int) uid, pwd_tablename_val); - result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, NULL, NULL); if (result == NULL) { diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c index 5875bbe98d..711c6bc273 100644 --- a/nis/nss_nisplus/nisplus-rpc.c +++ b/nis/nss_nisplus/nisplus-rpc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2001, 2002, 2003, 2005, 2006 +/* Copyright (C) 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -315,7 +315,8 @@ _nss_nisplus_getrpcbyname_r (const char *name, struct rpcent *rpc, /* Search at first in the alias list, and use the correct name for the next search */ snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val); - nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); if (result != NULL) { @@ -342,7 +343,8 @@ _nss_nisplus_getrpcbyname_r (const char *name, struct rpcent *rpc, } nis_freeresult (result); - result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS , NULL, NULL); + result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); } if (result == NULL) @@ -402,7 +404,8 @@ _nss_nisplus_getrpcbynumber_r (const int number, struct rpcent *rpc, snprintf (buf, sizeof (buf), "[number=%d],%s", number, tablename_val); - nis_result *result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH | USE_DGRAM, + NULL, NULL); if (result == NULL) { diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c index 51c1956e2f..607ce80b01 100644 --- a/nis/nss_nisplus/nisplus-service.c +++ b/nis/nss_nisplus/nisplus-service.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005, 2006 +/* Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -322,7 +322,8 @@ _nss_nisplus_getservbyname_r (const char *name, const char *protocol, for the next search */ snprintf (buf, sizeof (buf), "[name=%s,proto=%s],%s", name, protocol, tablename_val); - nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); if (result != NULL) { @@ -351,7 +352,8 @@ _nss_nisplus_getservbyname_r (const char *name, const char *protocol, } nis_freeresult (result); - result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); } if (result == NULL) @@ -420,7 +422,8 @@ _nss_nisplus_getservbyport_r (const int number, const char *protocol, snprintf (buf, sizeof (buf), "[port=%d,proto=%s],%s", number, protocol, tablename_val); - nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, + NULL, NULL); if (result == NULL) { diff --git a/nis/nss_nisplus/nisplus-spwd.c b/nis/nss_nisplus/nisplus-spwd.c index e63e1eeaec..f256f3eb90 100644 --- a/nis/nss_nisplus/nisplus-spwd.c +++ b/nis/nss_nisplus/nisplus-spwd.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1997, 2001, 2002, 2003, 2005, 2007 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -182,7 +183,7 @@ _nss_nisplus_getspnam_r (const char *name, struct spwd *sp, snprintf (buf, sizeof (buf), "[name=%s],%s", name, pwd_tablename_val); - result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); + result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS | USE_DGRAM, NULL, NULL); if (result == NULL) { -- cgit v1.2.3