summaryrefslogtreecommitdiff
path: root/nis
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-08-02 21:00:51 +0000
committerUlrich Drepper <drepper@redhat.com>1997-08-02 21:00:51 +0000
commit8f2ece695d8822e9ecc63ecd157e90bf17a6fe65 (patch)
tree8391ab64ce8c9c6e45d137905f75f1d17c9ed987 /nis
parent3996f34b46043ed8ea8fdc6f44377d969d64396b (diff)
downloadglibc-8f2ece695d8822e9ecc63ecd157e90bf17a6fe65.tar.gz
1997-08-02 21:27 Ulrich Drepper <drepper@cygnus.com> * inet/Makefile (headers): Rename netinet/inbits.h to bits/in.h. * inet/netinet/in.h: Include bits/in.h instead of netinet/inbits.h. * sysdeps/generic/netinet/inbits.h: Move to... * sysdeps/generic/bits/in.h: ... here. * sysdeps/unix/sysv/linux/bits/inbits.h: Move to ... * sysdeps/unix/sysv/linux/bits/in.h: ... here. * nis/Makefile (headers): Add bits/nislib.h. * nis/rpcsvc/nislib.h: Moved to .... * nis/bits/nislib.h: ... here. * nis/nss_compat/compat-grp.c: Don't include <rpcsvc/nislib.h>. * nis/nss_compat/compat-pwd.c: Likewise. * nis/nss_compat/compat-spwd.c: Likewise. * nis/nss_nisplus/nisplus-alias.c: Likewise. * nis/nss_nisplus/nisplus-ethers.c: Likewise. * nis/nss_nisplus/nisplus-grp.c: Likewise. * nis/nss_nisplus/nisplus-hosts.c: Likewise. * nis/nss_nisplus/nisplus-netgrp.c: Likewise. * nis/nss_nisplus/nisplus-ntework.c: Likewise. * nis/nss_nisplus/nisplus-proto.c: Likewise. * nis/nss_nisplus/nisplus-publickey.c: Likewise. * nis/nss_nisplus/nisplus-pwd.c: Likewise. * nis/nss_nisplus/nisplus-rpc.c: Likewise. * nis/nss_nisplus/nisplus-service.c: Likewise. * nis/nss_nisplus/nisplus-spwd.c: Likewise. * nis/rpcsvc/nis.x: Include bits/nislib.h, not rpcsvc/nislib.h. * nis/rpcsvc/nis.h: Likewise. * inet/getnameinfo.c (nrl_domainname): Change return type to const char *. (getnameinfo): Change type of local variable c to const char *. * inet/inet_ntoa.c: Rewrite to use __libc_once for initialization. * stdlib/fmtmsg.c: Likewise. * intl/bindtextdom.c: Update from latest gettext. * intl/dcgettext.c: Likewise. * intl/finddomain.c: Likewise. * intl/l10nflist.c: Likewise. * intl/localealias.c: Likewise. * intl/textdomain.c: Likewise. * login/getutid_r.c: Remove parameter to setutent call. * login/getutline_r.c: Likewise. * posix/wordexp.c: Complete rewrite. Not fully implemented yet, though. Patch by Tim Waugh <tim@cyberelk.demon.co.uk>. * stdio-common/printf_fp.c: Remove relative include paths. * stdio-common/printf_fphex.c: Likewise. * sysdeps/generic/crypt.h: Cleanup. Don't define non standard elements unless __USE_GNU. * sysdeps/generic/vlimit.c: Pretty print. * sysdeps/generic/vtimes.c: Likewise. * sysdeps/i386/elf/bsd-_setjmp.S: New file. Empty dummy file. * sysdeps/i386/elf/bsd-setjmp.S: New file. Empty dummy file. * sysdeps/i386/elf/setjmp.S: New file. Define __setjmp and also weak definitions of setjmp and _setjmp. * sysdeps/i386/fpu/bits/mathinline.h: More patches by John Bowman. * sysdeps/stub/if_index.h: Set errno in all functions and add stub warnings. * sysdeps/stub/libc-lock.h: Add __libc_once. 1997-08-02 01:57 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/ptrace.c: Don't set errno in error case since the __syscall_ptrace call already did this. Reported by Philip Gladstone <philip@talon.raptor.com>. 1997-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/sys/fsuid.h: Change include <gnu/types.h> to <sys/types.h>. 1997-08-01 23:18 Ulrich Drepper <drepper@cygnus.com> * csu/defs.awk: Fix regexp for end and align. Patch by Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de>. * locale/programs/localedef.c (print_escaped): New function. (show_info): Use print_escaped if strings can control unprintable characters. Patch by Jochen Hein <jochen.hein@delphi.central.de>. 1997-08-01 18:45 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/nss_nisplus/nisplus-alias.c: Fix NULL pointer problems * nis/nss_nisplus/nisplus-grp.c: Likewise. 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-profile.c (_dl_start_profile): Use _dl_sysdep_error instead of fprintf. 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * manual/socket.texi (Host Address Functions): Fix arguments of @deftypefun. 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-runtime.c: Avoid warning about profile_fixup being unused. * sysdeps/m68k/dl-machine.h: Add support for shared library profiling. 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * md5-crypt/Makefile (extra-objs): Add onlymd5-crypt.o for dependencies. 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Make-dist (subdirs): Distribute both aout and elf. 1997-07-31 23:04 Mark Kettenis <kettenis@phys.uva.nl> * login/utmp-private.h: Remove reset argument from backend setutent. * login/getutent_r.c (__setutent): Allways call the setutent function in the daemon backend. (setutent_unknown): Function removed. (getutent_unknown, pututline_unknown): Call __setutent instead of setutent_unknown. * login/utmp_file.c (setutent_file): Removed reset argument. All callers changed. * login/utmp_daemon.c (setutent_daemon): Removed reset argument. All callers changed. Try to open connection even if a previous connection failed, but first check if the sockets exist in the filesystem. * login/utmp_daemon.c (pututline_daemon): Try to open connection before reporting failure. * login/programs/database.c (open_database): Create compatibility file if it does not already exist. Supply mode argument in open calls to guarantee that created files have the proper protection. * login/programs/utmpd.c (main): Remove files created by a previous `bind' before creating sockets. Suggested by a sun <asum@zoology.washington.edu>. 1997-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/libm-test.c: Remove unneeded function check_int_exec. * BUGS: Correct typos. * gmon/gmon.c: Add alias for monstartup, declare _strerror_internal. 1997-07-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/socket.texi (Host Address Functions): Reformat inet_ntop entry to confirm with expected behaviour of some scripts. * libc.map: Add functions/variables in global namespace, remove wildcards. 1997-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> * resolv/libresolv.map: Add variables and routines used by named, nslookup and other bind utils. * libc.map: Likewise. 1997-07-31 00:35 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/if_index.c: Rewrite to avoid using /proc filesystem. * inet/test_ifindex.c: New file. * inet/Makefile (tests): Add test_ifindex. 1997-08-01 04:25 Ulrich Drepper <drepper@cygnus.com> * nis/nss_nisplus/nisplus-parser.c: Fix another bug in the parser. Patch by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>. * manual/errno.texi: Fix typo. Reported by Erik Talvola <etalvo@sapient.com>. (write_hist): Remove dependency on 32 bit int.
Diffstat (limited to 'nis')
-rw-r--r--nis/Makefile2
-rw-r--r--nis/nislib/nislib.h (renamed from nis/rpcsvc/nislib.h)0
-rw-r--r--nis/nss_compat/compat-grp.c1
-rw-r--r--nis/nss_compat/compat-pwd.c1
-rw-r--r--nis/nss_compat/compat-spwd.c1
-rw-r--r--nis/nss_nisplus/nisplus-alias.c16
-rw-r--r--nis/nss_nisplus/nisplus-ethers.c16
-rw-r--r--nis/nss_nisplus/nisplus-grp.c16
-rw-r--r--nis/nss_nisplus/nisplus-hosts.c29
-rw-r--r--nis/nss_nisplus/nisplus-netgrp.c1
-rw-r--r--nis/nss_nisplus/nisplus-network.c15
-rw-r--r--nis/nss_nisplus/nisplus-parser.c19
-rw-r--r--nis/nss_nisplus/nisplus-proto.c9
-rw-r--r--nis/nss_nisplus/nisplus-publickey.c1
-rw-r--r--nis/nss_nisplus/nisplus-pwd.c9
-rw-r--r--nis/nss_nisplus/nisplus-rpc.c3
-rw-r--r--nis/nss_nisplus/nisplus-service.c3
-rw-r--r--nis/nss_nisplus/nisplus-spwd.c1
-rw-r--r--nis/rpcsvc/nis.h2
-rw-r--r--nis/rpcsvc/nis.x60
20 files changed, 105 insertions, 100 deletions
diff --git a/nis/Makefile b/nis/Makefile
index e7dd50c1d9..7c70c9c2a8 100644
--- a/nis/Makefile
+++ b/nis/Makefile
@@ -21,7 +21,7 @@
#
subdir := nis
-headers := $(wildcard rpcsvc/*.[hx])
+headers := $(wildcard rpcsvc/*.[hx]) bits/nislib.h
distribute := nss-nis.h nss-nisplus.h nis_intern.h Banner \
nisplus-parser.h
diff --git a/nis/rpcsvc/nislib.h b/nis/nislib/nislib.h
index 73b3804e85..73b3804e85 100644
--- a/nis/rpcsvc/nislib.h
+++ b/nis/nislib/nislib.h
diff --git a/nis/nss_compat/compat-grp.c b/nis/nss_compat/compat-grp.c
index 35ae2f7b02..c0ddbdffdf 100644
--- a/nis/nss_compat/compat-grp.c
+++ b/nis/nss_compat/compat-grp.c
@@ -27,7 +27,6 @@
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include <nsswitch.h>
#include "nss-nisplus.h"
diff --git a/nis/nss_compat/compat-pwd.c b/nis/nss_compat/compat-pwd.c
index 6fac0f46c6..681258d2e6 100644
--- a/nis/nss_compat/compat-pwd.c
+++ b/nis/nss_compat/compat-pwd.c
@@ -28,7 +28,6 @@
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include <nsswitch.h>
#include "netgroup.h"
diff --git a/nis/nss_compat/compat-spwd.c b/nis/nss_compat/compat-spwd.c
index a4c6201c2d..431380dac6 100644
--- a/nis/nss_compat/compat-spwd.c
+++ b/nis/nss_compat/compat-spwd.c
@@ -28,7 +28,6 @@
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include <nsswitch.h>
#include "netgroup.h"
diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c
index 0a16b3890f..8d682d785c 100644
--- a/nis/nss_nisplus/nisplus-alias.c
+++ b/nis/nss_nisplus/nisplus-alias.c
@@ -24,7 +24,6 @@
#include <aliases.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -153,6 +152,8 @@ _nss_nisplus_parse_aliasent (nis_result *result, unsigned long entry,
static enum nss_status
internal_setaliasent (void)
{
+ enum nss_status status;
+
if (result)
nis_freeresult (result);
result = NULL;
@@ -162,12 +163,13 @@ internal_setaliasent (void)
next_entry = 0;
result = nis_list(tablename_val, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
- if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
+ status = niserr2nss (result->status);
+ if (status != NSS_STATUS_SUCCESS)
{
nis_freeresult (result);
result = NULL;
}
- return niserr2nss (result->status);
+ return status;
}
enum nss_status
@@ -206,7 +208,13 @@ internal_nisplus_getaliasent_r (struct aliasent *alias,
int parse_res;
if (result == NULL)
- internal_setaliasent ();
+ {
+ enum nss_status status;
+
+ status = internal_setaliasent ();
+ if (result == NULL || status != NSS_STATUS_SUCCESS)
+ return status;
+ }
/* Get the next entry until we found a correct one. */
do
diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c
index d7c3720932..cfdb3dc4e1 100644
--- a/nis/nss_nisplus/nisplus-ethers.c
+++ b/nis/nss_nisplus/nisplus-ethers.c
@@ -25,7 +25,6 @@
#include <netdb.h>
#include <netinet/ether.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include <netinet/if_ether.h>
#include "nss-nisplus.h"
@@ -153,7 +152,7 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
do
{
nis_result *saved_result;
-
+
if (result == NULL)
{
saved_result = NULL;
@@ -175,7 +174,7 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
}
}
- if ((parse_res = _nss_nisplus_parse_etherent (result, ether, buffer,
+ if ((parse_res = _nss_nisplus_parse_etherent (result, ether, buffer,
buflen)) == -1)
{
nis_freeresult (result);
@@ -187,7 +186,7 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
if (saved_result != NULL)
nis_freeresult (saved_result);
}
-
+
} while (!parse_res);
return NSS_STATUS_SUCCESS;
@@ -233,14 +232,14 @@ _nss_nisplus_gethostton_r (const char *name, struct etherent *eth,
nis_freeresult (result);
return status;
}
-
+
if ((parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
buflen)) == -1)
{
nis_freeresult (result);
return NSS_STATUS_TRYAGAIN;
}
-
+
if (parse_res)
return NSS_STATUS_SUCCESS;
}
@@ -282,16 +281,15 @@ _nss_nisplus_getntohost_r (const struct ether_addr *addr,
return status;
}
- if ((parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
+ if ((parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
buflen)) == -1)
{
nis_freeresult (result);
return NSS_STATUS_TRYAGAIN;
}
-
+
if (parse_res)
return NSS_STATUS_SUCCESS;
}
return NSS_STATUS_NOTFOUND;
}
-
diff --git a/nis/nss_nisplus/nisplus-grp.c b/nis/nss_nisplus/nisplus-grp.c
index 08e9e040fe..1031d69ac9 100644
--- a/nis/nss_nisplus/nisplus-grp.c
+++ b/nis/nss_nisplus/nisplus-grp.c
@@ -24,7 +24,6 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
#include "nisplus-parser.h"
@@ -57,6 +56,8 @@ _nss_create_tablename (void)
static enum nss_status
internal_setgrent (void)
{
+ enum nss_status status;
+
if (result)
nis_freeresult (result);
result = NULL;
@@ -67,12 +68,13 @@ internal_setgrent (void)
return NSS_STATUS_UNAVAIL;
result = nis_list (tablename_val, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
- if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
+ status = niserr2nss (result->status);
+ if (status != NSS_STATUS_SUCCESS)
{
nis_freeresult (result);
result = NULL;
}
- return niserr2nss (result->status);
+ return status;
}
enum nss_status
@@ -109,7 +111,13 @@ internal_nisplus_getgrent_r (struct group *gr, char *buffer, size_t buflen)
int parse_res;
if (result == NULL)
- internal_setgrent ();
+ {
+ enum nss_status status;
+
+ status = internal_setgrent ();
+ if (result == NULL || status != NSS_STATUS_SUCCESS)
+ return status;
+ }
/* Get the next entry until we found a correct one. */
do
diff --git a/nis/nss_nisplus/nisplus-hosts.c b/nis/nss_nisplus/nisplus-hosts.c
index 10f939e341..89a8bf7564 100644
--- a/nis/nss_nisplus/nisplus-hosts.c
+++ b/nis/nss_nisplus/nisplus-hosts.c
@@ -26,7 +26,6 @@
#include <arpa/inet.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -98,7 +97,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
if (NISENTRYLEN (0, 0, result) + 1 > room_left)
goto no_more_room;
-
+
p = stpncpy (first_unused, NISENTRYVAL (0, 0, result),
NISENTRYLEN (0, 0, result));
*p = '\0';
@@ -114,7 +113,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
{
if (NISENTRYLEN (i, 1, result) + 2 > room_left)
goto no_more_room;
-
+
*p++ = ' ';
p = stpncpy (p, NISENTRYVAL (i, 1, result),
NISENTRYLEN (i, 1, result));
@@ -131,7 +130,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
host->h_addr_list = (char **) first_unused;
if (room_left < 2 * sizeof (char *))
goto no_more_room;
-
+
room_left -= (2 * sizeof (char *));
host->h_addr_list[0] = data;
host->h_addr_list[1] = NULL;
@@ -242,7 +241,7 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
result = nis_first_entry(tablename_val);
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
- enum nss_status retval = niserr2nss (result->status);
+ enum nss_status retval = niserr2nss (result->status);
if (retval == NSS_STATUS_TRYAGAIN)
{
*herrnop = NETDB_INTERNAL;
@@ -250,12 +249,12 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
}
return retval;
}
-
+
}
else
{
nis_result *res2;
-
+
saved_res = result;
res2 = nis_next_entry(tablename_val, &result->cookie);
result = res2;
@@ -273,7 +272,7 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
return retval;
}
}
-
+
parse_res = _nss_nisplus_parse_hostent (result, AF_INET6,
host, buffer, buflen);
if (parse_res < 1 && errno != ERANGE)
@@ -288,9 +287,9 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
}
if (saved_res != NULL)
nis_freeresult (saved_res);
-
+
} while (!parse_res);
-
+
return NSS_STATUS_SUCCESS;
}
@@ -349,10 +348,10 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
else
sprintf(buf, "[cname=%s],%s", NISENTRYVAL(0, 0, result),
tablename_val);
-
+
nis_freeresult (result);
result = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
-
+
retval = niserr2nss (result->status);
if (retval != NSS_STATUS_SUCCESS)
{
@@ -369,7 +368,7 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
_nss_nisplus_parse_hostent (result, af, host, buffer, buflen);
nis_freeresult (result);
-
+
if (parse_res > 0)
return NSS_STATUS_SUCCESS;
@@ -435,10 +434,10 @@ _nss_nisplus_gethostbyaddr_r (const char *addr, int addrlen, int type,
parse_res = _nss_nisplus_parse_hostent (result, type, host,
buffer, buflen);
nis_freeresult (result);
-
+
if (parse_res > 0)
return NSS_STATUS_SUCCESS;
-
+
*herrnop = NETDB_INTERNAL;
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
diff --git a/nis/nss_nisplus/nisplus-netgrp.c b/nis/nss_nisplus/nisplus-netgrp.c
index 9c38539de8..967eec898c 100644
--- a/nis/nss_nisplus/nisplus-netgrp.c
+++ b/nis/nss_nisplus/nisplus-netgrp.c
@@ -25,7 +25,6 @@
#include <netgroup.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c
index 57362dba78..ff71af8573 100644
--- a/nis/nss_nisplus/nisplus-network.c
+++ b/nis/nss_nisplus/nisplus-network.c
@@ -25,7 +25,6 @@
#include <arpa/inet.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -86,7 +85,7 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
{
if (NISENTRYLEN (i, 1, result) + 2 > room_left)
goto no_more_room;
-
+
*p++ = ' ';
p = stpncpy (p, NISENTRYVAL (i, 1, result),
NISENTRYLEN (i, 1, result));
@@ -217,7 +216,7 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
int retval;
-
+
retval = niserr2nss (result->status);
nis_freeresult (result);
result = NULL;
@@ -254,15 +253,15 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
}
}
- if ((parse_res = _nss_nisplus_parse_netent (result, network, buffer,
+ if ((parse_res = _nss_nisplus_parse_netent (result, network, buffer,
buflen)) == -1)
{
*herrnop = NETDB_INTERNAL;
return NSS_STATUS_TRYAGAIN;
}
-
+
} while (!parse_res);
-
+
return NSS_STATUS_SUCCESS;
}
@@ -301,7 +300,7 @@ _nss_nisplus_getnetbyname_r (const char *name, struct netent *network,
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
-
+
/* Search at first in the alias list, and use the correct name
for the next search */
sprintf(buf, "[name=%s],%s", name, tablename_val);
@@ -390,7 +389,7 @@ _nss_nisplus_getnetbyaddr_r (const unsigned long addr, const int type,
if (parse_res > 0)
return NSS_STATUS_SUCCESS;
-
+
*herrnop = NETDB_INTERNAL;
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
diff --git a/nis/nss_nisplus/nisplus-parser.c b/nis/nss_nisplus/nisplus-parser.c
index 3d0ff32e57..db5f487159 100644
--- a/nis/nss_nisplus/nisplus-parser.c
+++ b/nis/nss_nisplus/nisplus-parser.c
@@ -212,20 +212,23 @@ _nss_nisplus_parse_grent (nis_result *result, u_long entry,
room_left -= sizeof (char *);
gr->gr_mem[count] = line;
- while (*line != '\0' && *line != ',' && !isspace(*line))
+ while (*line != '\0' && *line != ',' && !isspace (*line))
++line;
- if (line != gr->gr_mem[count])
+ if (*line == ',' || isspace (*line))
{
- if (*line != '\0')
- {
- *line = '\0';
+ int is = isspace (*line);
+
+ *line = '\0';
+ if (is)
+ while (*line != '\0' && (*line == ',' || isspace (*line)))
++line;
- }
+ else
+ ++line;
++count;
}
else
- gr->gr_mem[count] = NULL;
+ gr->gr_mem[count+1] = NULL;
}
if (room_left < sizeof (char *))
goto no_more_room;
@@ -241,7 +244,7 @@ _nss_nisplus_parse_spent (nis_result *result, struct spwd *sp,
{
char *first_unused = buffer;
size_t room_left = buflen;
-
+
if (result == NULL)
return 0;
diff --git a/nis/nss_nisplus/nisplus-proto.c b/nis/nss_nisplus/nisplus-proto.c
index 707a0e5296..ddfce86905 100644
--- a/nis/nss_nisplus/nisplus-proto.c
+++ b/nis/nss_nisplus/nisplus-proto.c
@@ -24,7 +24,6 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -212,7 +211,7 @@ internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,
else
{
nis_result *res;
-
+
saved_res = result;
res = nis_next_entry (tablename_val, &result->cookie);
result = res;
@@ -224,7 +223,7 @@ internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,
}
}
- if ((parse_res = _nss_nisplus_parse_protoent (result, proto, buffer,
+ if ((parse_res = _nss_nisplus_parse_protoent (result, proto, buffer,
buflen)) == -1)
{
nis_freeresult (result);
@@ -346,10 +345,10 @@ _nss_nisplus_getprotobynumber_r (const int number, struct protoent *proto,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
-
+
if (parse_res)
return NSS_STATUS_SUCCESS;
-
+
return NSS_STATUS_NOTFOUND;
}
}
diff --git a/nis/nss_nisplus/nisplus-publickey.c b/nis/nss_nisplus/nisplus-publickey.c
index 4c596b8ada..554da95754 100644
--- a/nis/nss_nisplus/nisplus-publickey.c
+++ b/nis/nss_nisplus/nisplus-publickey.c
@@ -25,7 +25,6 @@
#include <syslog.h>
#include <rpc/rpc.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#ifdef HAVE_SECURE_RPC
#include <rpc/key_prot.h>
extern int xdecrypt (char *, char *);
diff --git a/nis/nss_nisplus/nisplus-pwd.c b/nis/nss_nisplus/nisplus-pwd.c
index 2c1fb19cab..e358b060e1 100644
--- a/nis/nss_nisplus/nisplus-pwd.c
+++ b/nis/nss_nisplus/nisplus-pwd.c
@@ -23,7 +23,6 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -97,7 +96,7 @@ internal_nisplus_getpwent_r (struct passwd *pw, char *buffer, size_t buflen)
do
{
nis_result *saved_res;
-
+
if (result == NULL)
{
saved_res = NULL;
@@ -123,7 +122,7 @@ internal_nisplus_getpwent_r (struct passwd *pw, char *buffer, size_t buflen)
}
}
- if ((parse_res = _nss_nisplus_parse_pwent (result, pw, buffer,
+ if ((parse_res = _nss_nisplus_parse_pwent (result, pw, buffer,
buflen)) == -1)
{
nis_freeresult (result);
@@ -192,7 +191,7 @@ _nss_nisplus_getpwnam_r (const char *name, struct passwd *pw,
if (parse_res)
return NSS_STATUS_SUCCESS;
-
+
return NSS_STATUS_NOTFOUND;
}
}
@@ -227,7 +226,7 @@ _nss_nisplus_getpwuid_r (const uid_t uid, struct passwd *pw,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
-
+
if (parse_res)
return NSS_STATUS_SUCCESS;
diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c
index b70c2ebbca..6682a7502a 100644
--- a/nis/nss_nisplus/nisplus-rpc.c
+++ b/nis/nss_nisplus/nisplus-rpc.c
@@ -24,7 +24,6 @@
#include <bits/libc-lock.h>
#include <rpc/netdb.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -225,7 +224,7 @@ internal_nisplus_getrpcent_r (struct rpcent *rpc, char *buffer,
}
}
- if ((parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer,
+ if ((parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer,
buflen)) == -1)
{
nis_freeresult (result);
diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c
index 37042d9d13..e8a12145d3 100644
--- a/nis/nss_nisplus/nisplus-service.c
+++ b/nis/nss_nisplus/nisplus-service.c
@@ -24,7 +24,6 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
@@ -205,7 +204,7 @@ internal_nisplus_getservent_r (struct servent *serv, char *buffer,
do
{
nis_result *saved_res;
-
+
if (result == NULL)
{
saved_res = NULL;
diff --git a/nis/nss_nisplus/nisplus-spwd.c b/nis/nss_nisplus/nisplus-spwd.c
index c7f1e2a567..507aa4bcad 100644
--- a/nis/nss_nisplus/nisplus-spwd.c
+++ b/nis/nss_nisplus/nisplus-spwd.c
@@ -23,7 +23,6 @@
#include <string.h>
#include <bits/libc-lock.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nss-nisplus.h"
#include "nisplus-parser.h"
diff --git a/nis/rpcsvc/nis.h b/nis/rpcsvc/nis.h
index b91ce19903..e24c7d05b3 100644
--- a/nis/rpcsvc/nis.h
+++ b/nis/rpcsvc/nis.h
@@ -767,7 +767,7 @@ typedef enum name_pos name_pos;
#endif
/* Prototypes, and extern declarations for the NIS library functions. */
-#include <rpcsvc/nislib.h>
+#include <bits/nislib.h>
#endif /* __NIS_RPCGEN_H */
/* EDIT_START */
diff --git a/nis/rpcsvc/nis.x b/nis/rpcsvc/nis.x
index 625ed57f10..e68114c36b 100644
--- a/nis/rpcsvc/nis.x
+++ b/nis/rpcsvc/nis.x
@@ -28,7 +28,7 @@
% * Mountain View, California 94043
% */
-/*
+/*
* From 4.1 : @(#)nis.x 1.61 Copyright 1989 Sun Microsystems
*
* RPC Language Protocol description file for NIS Plus
@@ -44,9 +44,9 @@
% * structures used by the NIS service. It includes the file nis_tags.h
% * which defines the tag values. This allows the tags to change without
% * having to change the nis.x file.
-% *
+% *
% * NOTE : DO NOT EDIT THIS FILE! It is automatically generated when
-% * rpcgen is run on the nis.x file. Note that there is a
+% * rpcgen is run on the nis.x file. Note that there is a
% * simple sed script to remove some unneeded lines. (See the
% * Makefile target nis.h)
% *
@@ -118,11 +118,11 @@ enum nis_error {
};
-/*
+/*
* Structure definitions for the parameters and results of the actual
* NIS RPC calls.
*
- * This is the standard result (in the protocol) of most of the nis
+ * This is the standard result (in the protocol) of most of the nis
* requests.
*/
@@ -136,11 +136,11 @@ struct nis_result {
u_long cticks; /* Client ticks */
};
-/*
- * A Name Service request
- * This request is used to access the name space, ns_name is the name
+/*
+ * A Name Service request
+ * This request is used to access the name space, ns_name is the name
* of the object within the namespace and the object is it's value, for
- * add/modify, a copy of the original for remove.
+ * add/modify, a copy of the original for remove.
*/
struct ns_request {
@@ -148,7 +148,7 @@ struct ns_request {
nis_object ns_object<1>; /* Optional Object (add/remove) */
};
-/*
+/*
* An information base request
* This request includes the NIS name of the table we wish to search, the
* search criteria in the form of attribute/value pairs and an optional
@@ -168,7 +168,7 @@ struct ib_request {
};
/*
- * This argument to the PING call notifies the replicas that something in
+ * This argument to the PING call notifies the replicas that something in
* a directory has changed and this is it's timestamp. The replica will use
* the timestamp to determine if its resync operation was successful.
*/
@@ -177,8 +177,8 @@ struct ping_args {
u_long stamp; /* timestamp of the transaction */
};
-/*
- * These are the type of entries that are stored in the transaction log,
+/*
+ * These are the type of entries that are stored in the transaction log,
* note that modifications will appear as two entries, for names, they have
* a "OLD" entry followed by a "NEW" entry. For entries in tables, there
* is a remove followed by an add. It is done this way so that we can read
@@ -196,13 +196,13 @@ enum log_entry_t {
MOD_IBASE = 7, /* Entry was modified in information base */
UPD_STAMP = 8 /* Update timestamp (used as fenceposts) */
};
-
+
/*
- * This result is returned from the name service when it is requested to
+ * This result is returned from the name service when it is requested to
* dump logged entries from its transaction log. Information base updates
* will have the name of the information base in the le_name field and
* a canonical set of attribute/value pairs to fully specify the entry's
- * 'name'.
+ * 'name'.
*/
struct log_entry {
u_long le_time; /* Time in seconds */
@@ -218,7 +218,7 @@ struct log_result {
netobj lr_cookie; /* Used by the dump callback */
log_entry lr_entries<>; /* zero or more entries */
};
-
+
struct cp_result {
nis_error cp_status; /* Status of the checkpoint */
u_long cp_zticks; /* Service 'ticks' */
@@ -227,7 +227,7 @@ struct cp_result {
/*
* This structure defines a generic NIS tag list. The taglist contains
- * zero or tags, each of which is a type and a value. (u_long).
+ * zero or tags, each of which is a type and a value. (u_long).
* These are used to report statistics (see tag definitions below)
* and to set or reset state variables.
*/
@@ -254,17 +254,17 @@ struct fd_args {
struct fd_result {
nis_error status; /* Status returned by function */
nis_name source; /* Source of this answer */
- opaque dir_data<>; /* Directory Data (XDR'ed) */
+ opaque dir_data<>; /* Directory Data (XDR'ed) */
opaque signature<>; /* Signature of the source */
};
-/*
+/*
* What's going on here? Well, it's like this. When the service
* is being compiled it wants to have the service definition specific
* info included, and when the client is being compiled it wants that
* info. This includes the appropriate file which was generated by
- * make in the protocols directory (probably /usr/include/rpcsvc).
+ * make in the protocols directory (probably /usr/include/rpcsvc).
*/
#ifdef RPC_SVC
%#include "nis_svc.h"
@@ -296,10 +296,10 @@ program NIS_PROG {
/* If fetch and optionally reset statistics */
nis_taglist NIS_STATUS(nis_taglist) = 14;
-
+
/* Dump changes to directory since time in da_time */
log_result NIS_DUMPLOG(dump_args) = 15;
-
+
/* Dump contents of directory named */
log_result NIS_DUMP(dump_args) = 16;
@@ -314,16 +314,16 @@ program NIS_PROG {
/* Send 'status changed' ping to replicates */
void NIS_PING(ping_args) = 20;
-
+
/* Modify server behaviour (such as debugging) */
nis_taglist NIS_SERVSTATE(nis_taglist) = 21;
-
+
/* Create a Directory */
nis_error NIS_MKDIR(nis_name) = 22;
-
+
/* Remove a Directory */
nis_error NIS_RMDIR(nis_name) = 23;
-
+
/* Update public keys of a directory object */
nis_error NIS_UPDKEYS(nis_name) = 24;
} = 3;
@@ -423,18 +423,18 @@ program NIS_PROG {
%#endif
%
%/* Prototypes, and extern declarations for the NIS library functions. */
-%#include <rpcsvc/nislib.h>
+%#include <bits/nislib.h>
%#endif /* __NIS_RPCGEN_H */
%/* EDIT_START */
%
%/*
% * nis_3.h
-% *
+% *
% * This file contains definitions that are only of interest to the actual
% * service daemon and client stubs. Normal users of NIS will not include
% * this file.
% *
-% * NOTE : This include file is automatically created by a combination
+% * NOTE : This include file is automatically created by a combination
% * of rpcgen and sed. DO NOT EDIT IT, change the nis.x file instead
% * and then remake this file.
% */