about summary refs log tree commit diff
path: root/nis/nss_nisplus/nisplus-network.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/nss_nisplus/nisplus-network.c
parent371f84a4dca19f1416c3f28db9980539d2f62905 (diff)
downloadglibc-697d37b182040cc68cfc7785fddd340b2f51d9cc.tar.gz
glibc-697d37b182040cc68cfc7785fddd340b2f51d9cc.tar.xz
glibc-697d37b182040cc68cfc7785fddd340b2f51d9cc.zip
* 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/nss_nisplus/nisplus-network.c')
-rw-r--r--nis/nss_nisplus/nisplus-network.c11
1 files changed, 7 insertions, 4 deletions
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 <kukuk@vt.uni-paderborn.de>, 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)
 	  {