summaryrefslogtreecommitdiff
path: root/nis/nis_table.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-03-21 20:24:59 +0000
committerJakub Jelinek <jakub@redhat.com>2007-03-21 20:24:59 +0000
commit697d37b182040cc68cfc7785fddd340b2f51d9cc (patch)
tree9017cebb174e086addf14f7ff7bb9b047cde6fcc /nis/nis_table.c
parent371f84a4dca19f1416c3f28db9980539d2f62905 (diff)
downloadglibc-697d37b182040cc68cfc7785fddd340b2f51d9cc.tar.gz
* 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 <jakub@redhat.com> * 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.
Diffstat (limited to 'nis/nis_table.c')
-rw-r--r--nis/nis_table.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/nis/nis_table.c b/nis/nis_table.c
index cb25be61e2..70b4701419 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -1,4 +1,5 @@
-/* Copyright (c) 1997-1999,2003,2004,2005,2006 Free Software Foundation, Inc.
+/* Copyright (c) 1997-1999, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
@@ -274,21 +275,14 @@ nis_list (const_nis_name name, unsigned int flags,
memset (res, '\0', sizeof (nis_result));
status = __nisfind_server (ibreq->ibr_name,
- ibreq->ibr_srch.ibr_srch_val != NULL, &dir);
+ ibreq->ibr_srch.ibr_srch_val != NULL,
+ &dir, &bptr, flags & ~MASTER_ONLY);
if (status != NIS_SUCCESS)
{
NIS_RES_STATUS (res) = status;
goto fail3;
}
- status = __nisbind_create (&bptr, dir->do_servers.do_servers_val,
- dir->do_servers.do_servers_len, flags);
- if (__builtin_expect (status != NIS_SUCCESS, 0))
- {
- NIS_RES_STATUS (res) = status;
- goto fail2;
- }
-
while (__nisbind_connect (&bptr) != NIS_SUCCESS)
if (__builtin_expect (__nisbind_next (&bptr) != NIS_SUCCESS, 0))
{
@@ -338,7 +332,6 @@ nis_list (const_nis_name name, unsigned int flags,
NIS_RES_STATUS (res) = NIS_NOMEMORY;
fail:
__nisbind_destroy (&bptr);
- fail2:
nis_free_directory (dir);
fail3:
free (tablepath);