1998-08-18  Ulrich Drepper  <drepper@cygnus.com>

	* include/features.h: Define __USE_EXTERN_INLINES for recent
	enough gcc.
	* argp/argp.h: Define extern inline functions only if
	__USE_EXTERN_INLINES is defined.
	* libio/stdio.h: Likewise.
	* math/math.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* string/argz.h: Likewise.
	* sysdeps/generic/bits/sigset.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigset.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/sigset.h: Likewise.
	* sysdeps/wordsize-32/inttypes.h: Likewise.
	* sysdeps/wordsize-64/inttypes.h: Likewise.
	* wcsmbs/wchar.h: Likewise.

	* sysdeps/generic/bits/glob.c [_LIBC]: Define __stat using __xstat
	to allow compilation without optimization.

1998-08-14  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de> 
 
	* nis/nss_compat/compat-grp.c: Set errno to ENOENT if we have no 
	more entries. 
	* nis/nss_compat/compat-initgroups.c: Likewise. 
	* nis/nss_compat/compat-pwd.c: Likewise. 
	* nis/nss_compat/compat-spwd.c: Likewise. 
	* nis/nss_nis/nis-alias.c: Likewise. 
	* nis/nss_nis/nis-ethers.c: Likewise. 
	* nis/nss_nis/nis-grp.c: Likewise. 
	* nis/nss_nis/nis-hosts.c: Likewise. 
	* nis/nss_nis/nis-initgroups.c: Likewise. 
	* nis/nss_nis/nis-network.c: Likewise. 
	* nis/nss_nis/nis-proto.c: Likewise. 
	* nis/nss_nis/nis-pwd.c: Likewise. 
	* nis/nss_nis/nis-rpc.c: Likewise. 
	* nis/nss_nis/nis-service.c: Likewise. 
	* nis/nss_nis/nis-spwd.c: Likewise. 
 
	* nis/rpcsvc/yp.h: Generate new without 1024 byte limits. 
 
	* nis/ypclnt.c: Try binding dir only first time, could be to old. 
 
	* nis/yp_xdr.c: Remove 1024 byte limit. 
	* nis/ypupdate_xdr.c: Likewise. 
 
	* nis/nss_nis/nis-publickey.c: Make sure, nobody could send 
	wrong data.
This commit is contained in:
Ulrich Drepper 1998-08-18 23:27:30 +00:00
parent eedbbe588f
commit 0c6cee5d65
34 changed files with 663 additions and 777 deletions

View File

@ -1,3 +1,52 @@
1998-08-18 Ulrich Drepper <drepper@cygnus.com>
* include/features.h: Define __USE_EXTERN_INLINES for recent
enough gcc.
* argp/argp.h: Define extern inline functions only if
__USE_EXTERN_INLINES is defined.
* libio/stdio.h: Likewise.
* math/math.h: Likewise.
* stdlib/stdlib.h: Likewise.
* string/argz.h: Likewise.
* sysdeps/generic/bits/sigset.h: Likewise.
* sysdeps/unix/sysv/linux/bits/sigset.h: Likewise.
* sysdeps/unix/sysv/sysv4/bits/sigset.h: Likewise.
* sysdeps/wordsize-32/inttypes.h: Likewise.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* wcsmbs/wchar.h: Likewise.
* sysdeps/generic/bits/glob.c [_LIBC]: Define __stat using __xstat
to allow compilation without optimization.
1998-08-14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nss_compat/compat-grp.c: Set errno to ENOENT if we have no
more entries.
* nis/nss_compat/compat-initgroups.c: Likewise.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
* nis/nss_nis/nis-alias.c: Likewise.
* nis/nss_nis/nis-ethers.c: Likewise.
* nis/nss_nis/nis-grp.c: Likewise.
* nis/nss_nis/nis-hosts.c: Likewise.
* nis/nss_nis/nis-initgroups.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* nis/nss_nis/nis-proto.c: Likewise.
* nis/nss_nis/nis-pwd.c: Likewise.
* nis/nss_nis/nis-rpc.c: Likewise.
* nis/nss_nis/nis-service.c: Likewise.
* nis/nss_nis/nis-spwd.c: Likewise.
* nis/rpcsvc/yp.h: Generate new without 1024 byte limits.
* nis/ypclnt.c: Try binding dir only first time, could be to old.
* nis/yp_xdr.c: Remove 1024 byte limit.
* nis/ypupdate_xdr.c: Likewise.
* nis/nss_nis/nis-publickey.c: Make sure, nobody could send
wrong data.
1998-08-18 Roland McGrath <roland@baalperazim.frob.com>
* Rules (binaries-static, binaries-shared static pattern rules):

View File

@ -521,7 +521,7 @@ extern void *_argp_input __P ((__const struct argp *argp,
extern void *__argp_input __P ((__const struct argp *argp,
__const struct argp_state *state));
#ifdef __OPTIMIZE__
#ifdef __USE_EXTERN_INLINES
# if !_LIBC
# define __argp_usage argp_usage
@ -564,7 +564,7 @@ __option_is_end (__const struct argp_option *__opt)
# undef __option_is_short
# undef __option_is_end
# endif
#endif /* __OPTIMIZE__ */
#endif /* Use extern inlines. */
#ifdef __cplusplus
}

View File

@ -38,7 +38,7 @@ typedef unsigned long int __sigset_t;
#define _SIGSET_H_fns 1
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
# define _EXTERN_INLINE extern __inline
#endif
/* Return a mask that includes SIG only. The cast to `sigset_t' avoids
@ -63,7 +63,8 @@ extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
#define __SIGSETFN(NAME, BODY, CONST) \
#ifdef __USE_EXTERN_INLINES
# define __SIGSETFN(NAME, BODY, CONST) \
_EXTERN_INLINE int \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
@ -75,7 +76,8 @@ __SIGSETFN (__sigismember, (*__set & __mask) ? 1 : 0, __const)
__SIGSETFN (__sigaddset, ((*__set |= __mask), 0), )
__SIGSETFN (__sigdelset, ((*__set &= ~__mask), 0), )
#undef __SIGSETFN
# undef __SIGSETFN
#endif
#endif /* ! _SIGSET_H_fns. */

View File

@ -279,13 +279,13 @@ extern int vsprintf __P ((char *__restrict __s,
__const char *__restrict __format,
_G_va_list __arg));
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
#ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
vprintf (__const char *__restrict __fmt, _G_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
#endif /* Optimizing. */
#endif /* Use extern inlines. */
#if defined __USE_BSD || defined __USE_ISOC9X || defined __USE_UNIX98
/* Maximum chars of output to write in MAXLEN. */
@ -368,20 +368,20 @@ extern int getchar __P ((void));
optimization for it. */
#define getc(_fp) _IO_getc (_fp)
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
#ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
getchar (void)
{
return _IO_getc (stdin);
}
#endif /* Optimizing. */
#endif /* Use extern inlines. */
#if defined __USE_POSIX || defined __USE_MISC
/* These are defined in POSIX.1:1996. */
extern int getc_unlocked __P ((FILE *__stream));
extern int getchar_unlocked __P ((void));
# ifdef __OPTIMIZE__
# ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
getc_unlocked (FILE *__fp)
{
@ -393,7 +393,7 @@ getchar_unlocked (void)
{
return _IO_getc_unlocked (stdin);
}
# endif /* Optimizing. */
# endif /* Use extern inlines. */
#endif /* Use POSIX or MISC. */
@ -408,25 +408,25 @@ extern int putchar __P ((int __c));
so we always do the optimization for it. */
#define putc(_ch, _fp) _IO_putc (_ch, _fp)
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
#ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
#endif
#endif /* Use extern inlines. */
#ifdef __USE_MISC
/* Faster version when locking is not necessary. */
extern int fputc_unlocked __P ((int __c, FILE *__stream));
# ifdef __OPTIMIZE__
# ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
fputc_unlocked (int __c, FILE *__stream)
{
return _IO_putc_unlocked (__c, __stream);
}
# endif /* Optimizing. */
# endif /* Use extern inlines. */
#endif /* Use MISC. */
#if defined __USE_POSIX || defined __USE_MISC
@ -434,7 +434,7 @@ fputc_unlocked (int __c, FILE *__stream)
extern int putc_unlocked __P ((int __c, FILE *__stream));
extern int putchar_unlocked __P ((int __c));
# ifdef __OPTIMIZE__
# ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
putc_unlocked (int __c, FILE *__stream)
{
@ -446,7 +446,7 @@ putchar_unlocked (int __c)
{
return _IO_putc_unlocked (__c, stdout);
}
# endif /* Optimizing. */
# endif /* Use extern inlines. */
#endif /* Use POSIX or MISC. */
@ -489,13 +489,13 @@ extern _IO_ssize_t getdelim __P ((char **__lineptr, size_t *__n,
extern _IO_ssize_t getline __P ((char **__lineptr, size_t *__n,
FILE *__stream));
# if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__
# ifdef __USE_EXTERN_INLINES
__STDIO_INLINE _IO_ssize_t
getline (char **__lineptr, size_t *__n, FILE *__stream)
{
return __getdelim (__lineptr, __n, '\n', __stream);
}
# endif /* Optimizing. */
# endif /* Use extern inlines. */
#endif
@ -614,7 +614,7 @@ extern void clearerr_unlocked __P ((FILE *__stream));
extern int feof_unlocked __P ((FILE *__stream));
extern int ferror_unlocked __P ((FILE *__stream));
# ifdef __OPTIMIZE__
# ifdef __USE_EXTERN_INLINES
__STDIO_INLINE int
feof_unlocked (FILE *__stream)
{
@ -626,7 +626,7 @@ ferror_unlocked (FILE *__stream)
{
return _IO_ferror_unlocked (__stream);
}
# endif /* Optimizing. */
# endif /* Use extern inlines. */
#endif

View File

@ -306,7 +306,7 @@ extern int matherr __P ((struct exception *__exc));
/* Get machine-dependent inline versions (if there are any). */
#ifdef __OPTIMIZE__
#ifdef __USE_EXTERN_INLINES
# include <bits/mathinline.h>
#endif

View File

@ -246,6 +246,7 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
{
ent->nis = 0;
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
@ -285,6 +286,7 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
!= YPERR_SUCCESS)
{
ent->nis = 0;
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
@ -440,7 +442,10 @@ getgrnam_plusgroup (const char *name, struct group *result, char *buffer,
if (yp_match (domain, "group.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (buflen < ((size_t) outvallen + 1))
{
@ -485,7 +490,10 @@ getgrent_next_file (struct group *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -625,7 +633,10 @@ internal_getgrnam_r (const char *name, struct group *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -667,7 +678,10 @@ internal_getgrnam_r (const char *name, struct group *result, ent_t *ent,
if (result->gr_name[0] == '-' && result->gr_name[1] != '\0')
{
if (strcmp (&result->gr_name[1], name) == 0)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
else
continue;
}
@ -828,7 +842,10 @@ internal_getgrgid_r (gid_t gid, struct group *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);

View File

@ -228,6 +228,7 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
&outval, &outvallen) != YPERR_SUCCESS)
{
ent->nis = 0;
*errnop = ENOENT;
return NSS_STATUS_UNAVAIL;
}
@ -252,6 +253,7 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
!= YPERR_SUCCESS)
{
ent->nis = 0;
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
@ -403,11 +405,17 @@ getgrnam_plusgroup (const char *name, struct group *result, char *buffer,
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (yp_match (domain, "group.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (buflen < ((size_t) outvallen + 1))
{
@ -452,7 +460,10 @@ getgrent_next_file (struct group *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);

View File

@ -681,6 +681,7 @@ getpwent_next_nis (struct passwd *result, ent_t *ent, char *buffer,
{
ent->nis = 0;
give_pwd_free (&ent->pwd);
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
@ -790,7 +791,10 @@ getpwnam_plususer (const char *name, struct passwd *result, char *buffer,
if (yp_match (domain, "passwd.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (buflen < ((size_t) outvallen + 1))
{
@ -840,7 +844,10 @@ getpwent_next_file (struct passwd *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -915,7 +922,11 @@ getpwent_next_file (struct passwd *result, ent_t *ent,
if (status == NSS_STATUS_RETURN)
continue;
else
return status;
{
if (status == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
return status;
}
}
/* -user */
@ -1051,7 +1062,10 @@ internal_getpwnam_r (const char *name, struct passwd *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -1146,7 +1160,10 @@ internal_getpwnam_r (const char *name, struct passwd *result, ent_t *ent,
&& result->pw_name[1] != '@')
{
if (strcmp (&result->pw_name[1], name) == 0)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
else
continue;
}
@ -1196,7 +1213,10 @@ _nss_compat_getpwnam_r (const char *name, struct passwd *pwd,
enum nss_status status;
if (name[0] == '-' || name[0] == '+')
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
__libc_lock_lock (lock);

View File

@ -631,6 +631,7 @@ getspent_next_nis (struct spwd *result, ent_t *ent,
{
ent->nis = 0;
give_spwd_free (&ent->pwd);
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
@ -736,12 +737,16 @@ getspnam_plususer (const char *name, struct spwd *result, char *buffer,
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (yp_match (domain, "shadow.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (buflen < ((size_t) outvallen + 1))
{
free (outval);
@ -791,7 +796,10 @@ getspent_next_file (struct spwd *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -999,7 +1007,10 @@ internal_getspnam_r (const char *name, struct spwd *result, ent_t *ent,
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
@ -1050,7 +1061,10 @@ internal_getspnam_r (const char *name, struct spwd *result, ent_t *ent,
{
if (user != NULL && user[0] != '-')
if (strcmp (user, name) == 0)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
__internal_endnetgrent (&netgrdata);
continue;

View File

@ -167,7 +167,9 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
&result, &len));
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -158,7 +158,10 @@ internal_nis_getetherent_r (struct ether *eth, char *buffer, size_t buflen,
char *p;
if (next == NULL)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
p = strncpy (buffer, next->val, buflen);
while (isspace (*p))
@ -212,7 +215,9 @@ _nss_nis_gethostton_r (const char *name, struct ether *eth,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -297,7 +302,10 @@ _nss_nis_getntohost_r (struct ether_addr *addr, struct ether *eth,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -104,7 +104,9 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -178,7 +180,9 @@ _nss_nis_getgrnam_r (const char *name, struct group *grp,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = EAGAIN;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -202,7 +206,10 @@ _nss_nis_getgrnam_r (const char *name, struct group *grp,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = EAGAIN;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}
@ -227,7 +234,9 @@ _nss_nis_getgrgid_r (gid_t gid, struct group *grp,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -251,7 +260,10 @@ _nss_nis_getgrgid_r (gid_t gid, struct group *grp,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}

View File

@ -176,6 +176,7 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
*h_errnop = TRY_AGAIN;
break;
case NSS_STATUS_NOTFOUND:
*errnop = ENOENT;
*h_errnop = HOST_NOT_FOUND;
break;
default:

View File

@ -112,7 +112,10 @@ internal_getgrent_r (struct group *grp, char *buffer, size_t buflen,
do
{
if (intern->next == NULL)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
p = strncpy (buffer, intern->next->val, buflen);
while (isspace (*p))
++p;

View File

@ -104,7 +104,9 @@ internal_nis_getnetent_r (struct netent *net, char *buffer, size_t buflen,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
{
*herrnop = NETDB_INTERNAL;
*errnop = errno;
@ -203,7 +205,9 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
{
*errnop = errno;
*herrnop = NETDB_INTERNAL;
@ -233,7 +237,10 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
return NSS_STATUS_SUCCESS;
@ -281,7 +288,10 @@ _nss_nis_getnetbyaddr_r (unsigned long addr, int type, struct netent *net,
continue;
}
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
{
@ -313,7 +323,10 @@ _nss_nis_getnetbyaddr_r (unsigned long addr, int type, struct netent *net,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
return NSS_STATUS_SUCCESS;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -150,7 +150,10 @@ internal_nis_getprotoent_r (struct protoent *proto,
char *p;
if (next == NULL)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
p = strncpy (buffer, next->val, buflen);
while (isspace (*p))
@ -204,7 +207,9 @@ _nss_nis_getprotobyname_r (const char *name, struct protoent *proto,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -228,7 +233,10 @@ _nss_nis_getprotobyname_r (const char *name, struct protoent *proto,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}
@ -253,7 +261,9 @@ _nss_nis_getprotobynumber_r (int number, struct protoent *proto,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -277,7 +287,10 @@ _nss_nis_getprotobynumber_r (int number, struct protoent *proto,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -30,7 +30,9 @@ extern int xdecrypt (char *, char *);
#include "nss-nis.h"
/* If we haven't found the entry, we give a SUCCESS and an empty key back. */
/* If we haven't found the entry, we give a SUCCESS and an empty key back.
Solaris docu says: sizeof (pkey) == HEXKEYBYTES + 1.
*/
enum nss_status
_nss_nis_getpublickey (const char *netname, char *pkey, int *errnop)
{
@ -56,7 +58,9 @@ _nss_nis_getpublickey (const char *netname, char *pkey, int *errnop)
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -66,7 +70,8 @@ _nss_nis_getpublickey (const char *netname, char *pkey, int *errnop)
char *p = strchr (result, ':');
if (p != NULL)
*p = 0;
strcpy (pkey, result);
strncpy (pkey, result, HEXKEYBYTES + 1);
pkey[HEXKEYBYTES] = '\0';
}
return NSS_STATUS_SUCCESS;
}
@ -76,7 +81,7 @@ _nss_nis_getsecretkey (const char *netname, char *skey, char *passwd,
int *errnop)
{
enum nss_status retval;
char buf[1024];
char buf[2 * (HEXKEYBYTES + 1)];
char *domain, *result;
int len;
@ -98,7 +103,9 @@ _nss_nis_getsecretkey (const char *netname, char *skey, char *passwd,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -109,15 +116,16 @@ _nss_nis_getsecretkey (const char *netname, char *skey, char *passwd,
if (p == NULL)
return NSS_STATUS_SUCCESS;
p++;
strcpy (buf, p);
++p;
strncpy (buf, p, 2 * (HEXKEYBYTES + 1));
buf[2 * (HEXKEYBYTES + 1)] = '\0';
if (!xdecrypt (buf, passwd))
return NSS_STATUS_SUCCESS;
if (memcmp (buf, &(buf[HEXKEYBYTES]), KEYCHECKSUMSIZE) != 0)
return NSS_STATUS_SUCCESS;
buf[HEXKEYBYTES] = 0;
buf[HEXKEYBYTES] = '\0';
strcpy (skey, buf);
}
return NSS_STATUS_SUCCESS;

View File

@ -106,7 +106,9 @@ internal_nis_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -231,7 +233,9 @@ _nss_nis_getpwnam_r (const char *name, struct passwd *pwd,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -302,7 +306,10 @@ _nss_nis_getpwnam_r (const char *name, struct passwd *pwd,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
return NSS_STATUS_SUCCESS;
@ -329,7 +336,9 @@ _nss_nis_getpwuid_r (uid_t uid, struct passwd *pwd,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -400,8 +409,11 @@ _nss_nis_getpwuid_r (uid_t uid, struct passwd *pwd,
{
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
else
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
return NSS_STATUS_SUCCESS;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -167,7 +167,10 @@ internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,
do
{
if (data->next == NULL)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
p = strncpy (buffer, data->next->val, buflen);
while (isspace (*p))
++p;
@ -242,7 +245,10 @@ _nss_nis_getrpcbyname_r (const char *name, struct rpcent *rpc,
internal_nis_endrpcent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
else
return status;
}
@ -267,7 +273,9 @@ _nss_nis_getrpcbynumber_r (int number, struct rpcent *rpc,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -292,7 +300,10 @@ _nss_nis_getrpcbynumber_r (int number, struct rpcent *rpc,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
else
return NSS_STATUS_SUCCESS;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -166,7 +166,10 @@ internal_nis_getservent_r (struct servent *serv, char *buffer,
do
{
if (data->next == NULL)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
p = strncpy (buffer, data->next->val, buflen);
while (isspace (*p))
++p;
@ -236,7 +239,10 @@ _nss_nis_getservbyname_r (const char *name, char *protocol,
internal_nis_endservent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
else
return status;
}
@ -270,7 +276,10 @@ _nss_nis_getservbyport_r (int port, char *protocol, struct servent *serv,
internal_nis_endservent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
else
return status;
}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -104,7 +104,9 @@ internal_nis_getspent_r (struct spwd *sp, char *buffer, size_t buflen,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -178,7 +180,9 @@ _nss_nis_getspnam_r (const char *name, struct spwd *sp,
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)
if (retval == NSS_STATUS_NOTFOUND)
*errnop = ENOENT;
else if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
@ -202,7 +206,10 @@ _nss_nis_getspnam_r (const char *name, struct spwd *sp,
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
{
*errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
return NSS_STATUS_SUCCESS;
}

View File

@ -30,6 +30,7 @@
#ifndef __RPCSVC_YP_H__
#define __RPCSVC_YP_H__
#include <features.h>
#include <rpc/rpc.h>
#define YPMAXRECORD 1024
@ -51,14 +52,6 @@ enum ypstat {
YP_VERS = -8,
};
typedef enum ypstat ypstat;
#ifdef __cplusplus
extern "C" bool_t xdr_ypstat(XDR *, ypstat*);
#elif __STDC__
extern bool_t xdr_ypstat(XDR *, ypstat*);
#else /* Old Style C */
bool_t xdr_ypstat();
#endif /* Old Style C */
enum ypxfrstat {
YPXFR_SUCC = 1,
@ -79,543 +72,266 @@ enum ypxfrstat {
YPXFR_REFUSED = -14,
};
typedef enum ypxfrstat ypxfrstat;
#ifdef __cplusplus
extern "C" bool_t xdr_ypxfrstat(XDR *, ypxfrstat*);
#elif __STDC__
extern bool_t xdr_ypxfrstat(XDR *, ypxfrstat*);
#else /* Old Style C */
bool_t xdr_ypxfrstat();
#endif /* Old Style C */
typedef char *domainname;
#ifdef __cplusplus
extern "C" bool_t xdr_domainname(XDR *, domainname*);
#elif __STDC__
extern bool_t xdr_domainname(XDR *, domainname*);
#else /* Old Style C */
bool_t xdr_domainname();
#endif /* Old Style C */
typedef char *mapname;
#ifdef __cplusplus
extern "C" bool_t xdr_mapname(XDR *, mapname*);
#elif __STDC__
extern bool_t xdr_mapname(XDR *, mapname*);
#else /* Old Style C */
bool_t xdr_mapname();
#endif /* Old Style C */
typedef char *peername;
#ifdef __cplusplus
extern "C" bool_t xdr_peername(XDR *, peername*);
#elif __STDC__
extern bool_t xdr_peername(XDR *, peername*);
#else /* Old Style C */
bool_t xdr_peername();
#endif /* Old Style C */
typedef struct {
u_int keydat_len;
char *keydat_val;
u_int keydat_len;
char *keydat_val;
} keydat;
#ifdef __cplusplus
extern "C" bool_t xdr_keydat(XDR *, keydat*);
#elif __STDC__
extern bool_t xdr_keydat(XDR *, keydat*);
#else /* Old Style C */
bool_t xdr_keydat();
#endif /* Old Style C */
typedef struct {
u_int valdat_len;
char *valdat_val;
u_int valdat_len;
char *valdat_val;
} valdat;
#ifdef __cplusplus
extern "C" bool_t xdr_valdat(XDR *, valdat*);
#elif __STDC__
extern bool_t xdr_valdat(XDR *, valdat*);
#else /* Old Style C */
bool_t xdr_valdat();
#endif /* Old Style C */
struct ypmap_parms {
domainname domain;
mapname map;
u_int ordernum;
peername peer;
domainname domain;
mapname map;
u_int ordernum;
peername peer;
};
typedef struct ypmap_parms ypmap_parms;
#ifdef __cplusplus
extern "C" bool_t xdr_ypmap_parms(XDR *, ypmap_parms*);
#elif __STDC__
extern bool_t xdr_ypmap_parms(XDR *, ypmap_parms*);
#else /* Old Style C */
bool_t xdr_ypmap_parms();
#endif /* Old Style C */
struct ypreq_key {
domainname domain;
mapname map;
keydat key;
domainname domain;
mapname map;
keydat key;
};
typedef struct ypreq_key ypreq_key;
#ifdef __cplusplus
extern "C" bool_t xdr_ypreq_key(XDR *, ypreq_key*);
#elif __STDC__
extern bool_t xdr_ypreq_key(XDR *, ypreq_key*);
#else /* Old Style C */
bool_t xdr_ypreq_key();
#endif /* Old Style C */
struct ypreq_nokey {
domainname domain;
mapname map;
domainname domain;
mapname map;
};
typedef struct ypreq_nokey ypreq_nokey;
#ifdef __cplusplus
extern "C" bool_t xdr_ypreq_nokey(XDR *, ypreq_nokey*);
#elif __STDC__
extern bool_t xdr_ypreq_nokey(XDR *, ypreq_nokey*);
#else /* Old Style C */
bool_t xdr_ypreq_nokey();
#endif /* Old Style C */
struct ypreq_xfr {
ypmap_parms map_parms;
u_int transid;
u_int prog;
u_int port;
ypmap_parms map_parms;
u_int transid;
u_int prog;
u_int port;
};
typedef struct ypreq_xfr ypreq_xfr;
#ifdef __cplusplus
extern "C" bool_t xdr_ypreq_xfr(XDR *, ypreq_xfr*);
#elif __STDC__
extern bool_t xdr_ypreq_xfr(XDR *, ypreq_xfr*);
#else /* Old Style C */
bool_t xdr_ypreq_xfr();
#endif /* Old Style C */
struct ypresp_val {
ypstat stat;
valdat val;
ypstat stat;
valdat val;
};
typedef struct ypresp_val ypresp_val;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_val(XDR *, ypresp_val*);
#elif __STDC__
extern bool_t xdr_ypresp_val(XDR *, ypresp_val*);
#else /* Old Style C */
bool_t xdr_ypresp_val();
#endif /* Old Style C */
struct ypresp_key_val {
ypstat stat;
ypstat stat;
#ifdef STUPID_SUN_BUG
/* This is the form as distributed by Sun. But even the Sun NIS
servers expect the values in the other order. So their
implementation somehow must change the order internally. We
don't want to follow this bad example since the user should be
able to use rpcgen on this file. */
keydat key;
valdat val;
/* This is the form as distributed by Sun. But even the Sun NIS
servers expect the values in the other order. So their
implementation somehow must change the order internally. We
don't want to follow this bad example since the user should be
able to use rpcgen on this file. */
keydat key;
valdat val;
#else
valdat val;
keydat key;
valdat val;
keydat key;
#endif
};
typedef struct ypresp_key_val ypresp_key_val;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_key_val(XDR *, ypresp_key_val*);
#elif __STDC__
extern bool_t xdr_ypresp_key_val(XDR *, ypresp_key_val*);
#else /* Old Style C */
bool_t xdr_ypresp_key_val();
#endif /* Old Style C */
struct ypresp_master {
ypstat stat;
peername peer;
ypstat stat;
peername peer;
};
typedef struct ypresp_master ypresp_master;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_master(XDR *, ypresp_master*);
#elif __STDC__
extern bool_t xdr_ypresp_master(XDR *, ypresp_master*);
#else /* Old Style C */
bool_t xdr_ypresp_master();
#endif /* Old Style C */
struct ypresp_order {
ypstat stat;
u_int ordernum;
ypstat stat;
u_int ordernum;
};
typedef struct ypresp_order ypresp_order;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_order(XDR *, ypresp_order*);
#elif __STDC__
extern bool_t xdr_ypresp_order(XDR *, ypresp_order*);
#else /* Old Style C */
bool_t xdr_ypresp_order();
#endif /* Old Style C */
struct ypresp_all {
bool_t more;
union {
ypresp_key_val val;
} ypresp_all_u;
bool_t more;
union {
ypresp_key_val val;
} ypresp_all_u;
};
typedef struct ypresp_all ypresp_all;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_all(XDR *, ypresp_all*);
#elif __STDC__
extern bool_t xdr_ypresp_all(XDR *, ypresp_all*);
#else /* Old Style C */
bool_t xdr_ypresp_all();
#endif /* Old Style C */
struct ypresp_xfr {
u_int transid;
ypxfrstat xfrstat;
u_int transid;
ypxfrstat xfrstat;
};
typedef struct ypresp_xfr ypresp_xfr;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_xfr(XDR *, ypresp_xfr*);
#elif __STDC__
extern bool_t xdr_ypresp_xfr(XDR *, ypresp_xfr*);
#else /* Old Style C */
bool_t xdr_ypresp_xfr();
#endif /* Old Style C */
struct ypmaplist {
mapname map;
struct ypmaplist *next;
mapname map;
struct ypmaplist *next;
};
typedef struct ypmaplist ypmaplist;
#ifdef __cplusplus
extern "C" bool_t xdr_ypmaplist(XDR *, ypmaplist*);
#elif __STDC__
extern bool_t xdr_ypmaplist(XDR *, ypmaplist*);
#else /* Old Style C */
bool_t xdr_ypmaplist();
#endif /* Old Style C */
struct ypresp_maplist {
ypstat stat;
ypmaplist *maps;
ypstat stat;
ypmaplist *maps;
};
typedef struct ypresp_maplist ypresp_maplist;
#ifdef __cplusplus
extern "C" bool_t xdr_ypresp_maplist(XDR *, ypresp_maplist*);
#elif __STDC__
extern bool_t xdr_ypresp_maplist(XDR *, ypresp_maplist*);
#else /* Old Style C */
bool_t xdr_ypresp_maplist();
#endif /* Old Style C */
enum yppush_status {
YPPUSH_SUCC = 1,
YPPUSH_AGE = 2,
YPPUSH_NOMAP = -1,
YPPUSH_NODOM = -2,
YPPUSH_RSRC = -3,
YPPUSH_RPC = -4,
YPPUSH_MADDR = -5,
YPPUSH_YPERR = -6,
YPPUSH_BADARGS = -7,
YPPUSH_DBM = -8,
YPPUSH_FILE = -9,
YPPUSH_SKEW = -10,
YPPUSH_CLEAR = -11,
YPPUSH_FORCE = -12,
YPPUSH_XFRERR = -13,
YPPUSH_REFUSED = -14,
YPPUSH_SUCC = 1,
YPPUSH_AGE = 2,
YPPUSH_NOMAP = -1,
YPPUSH_NODOM = -2,
YPPUSH_RSRC = -3,
YPPUSH_RPC = -4,
YPPUSH_MADDR = -5,
YPPUSH_YPERR = -6,
YPPUSH_BADARGS = -7,
YPPUSH_DBM = -8,
YPPUSH_FILE = -9,
YPPUSH_SKEW = -10,
YPPUSH_CLEAR = -11,
YPPUSH_FORCE = -12,
YPPUSH_XFRERR = -13,
YPPUSH_REFUSED = -14,
};
typedef enum yppush_status yppush_status;
#ifdef __cplusplus
extern "C" bool_t xdr_yppush_status(XDR *, yppush_status*);
#elif __STDC__
extern bool_t xdr_yppush_status(XDR *, yppush_status*);
#else /* Old Style C */
bool_t xdr_yppush_status();
#endif /* Old Style C */
struct yppushresp_xfr {
u_int transid;
yppush_status status;
u_int transid;
yppush_status status;
};
typedef struct yppushresp_xfr yppushresp_xfr;
#ifdef __cplusplus
extern "C" bool_t xdr_yppushresp_xfr(XDR *, yppushresp_xfr*);
#elif __STDC__
extern bool_t xdr_yppushresp_xfr(XDR *, yppushresp_xfr*);
#else /* Old Style C */
bool_t xdr_yppushresp_xfr();
#endif /* Old Style C */
enum ypbind_resptype {
YPBIND_SUCC_VAL = 1,
YPBIND_FAIL_VAL = 2,
YPBIND_SUCC_VAL = 1,
YPBIND_FAIL_VAL = 2,
};
typedef enum ypbind_resptype ypbind_resptype;
#ifdef __cplusplus
extern "C" bool_t xdr_ypbind_resptype(XDR *, ypbind_resptype*);
#elif __STDC__
extern bool_t xdr_ypbind_resptype(XDR *, ypbind_resptype*);
#else /* Old Style C */
bool_t xdr_ypbind_resptype();
#endif /* Old Style C */
struct ypbind_binding {
char ypbind_binding_addr[4];
char ypbind_binding_port[2];
char ypbind_binding_addr[4];
char ypbind_binding_port[2];
};
typedef struct ypbind_binding ypbind_binding;
#ifdef __cplusplus
extern "C" bool_t xdr_ypbind_binding(XDR *, ypbind_binding*);
#elif __STDC__
extern bool_t xdr_ypbind_binding(XDR *, ypbind_binding*);
#else /* Old Style C */
bool_t xdr_ypbind_binding();
#endif /* Old Style C */
struct ypbind_resp {
ypbind_resptype ypbind_status;
union {
u_int ypbind_error;
ypbind_binding ypbind_bindinfo;
} ypbind_resp_u;
ypbind_resptype ypbind_status;
union {
u_int ypbind_error;
ypbind_binding ypbind_bindinfo;
} ypbind_resp_u;
};
typedef struct ypbind_resp ypbind_resp;
#ifdef __cplusplus
extern "C" bool_t xdr_ypbind_resp(XDR *, ypbind_resp*);
#elif __STDC__
extern bool_t xdr_ypbind_resp(XDR *, ypbind_resp*);
#else /* Old Style C */
bool_t xdr_ypbind_resp();
#endif /* Old Style C */
#define YPBIND_ERR_ERR 1
#define YPBIND_ERR_NOSERV 2
#define YPBIND_ERR_RESC 3
struct ypbind_setdom {
domainname ypsetdom_domain;
ypbind_binding ypsetdom_binding;
u_int ypsetdom_vers;
domainname ypsetdom_domain;
ypbind_binding ypsetdom_binding;
u_int ypsetdom_vers;
};
typedef struct ypbind_setdom ypbind_setdom;
#ifdef __cplusplus
extern "C" bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom*);
#elif __STDC__
extern bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom*);
#else /* Old Style C */
bool_t xdr_ypbind_setdom();
#endif /* Old Style C */
__BEGIN_DECLS
#define YPPROG ((u_long)100004)
#define YPVERS ((u_long)2)
#ifdef __cplusplus
#define YPPROC_NULL ((u_long)0)
extern "C" void * ypproc_null_2(void *, CLIENT *);
extern "C" void * ypproc_null_2_svc(void *, struct svc_req *);
extern void *ypproc_null_2 __P ((void *, CLIENT *));
extern void *ypproc_null_2_svc __P ((void *, struct svc_req *));
#define YPPROC_DOMAIN ((u_long)1)
extern "C" bool_t * ypproc_domain_2(domainname *, CLIENT *);
extern "C" bool_t * ypproc_domain_2_svc(domainname *, struct svc_req *);
extern bool_t *ypproc_domain_2 __P ((domainname *, CLIENT *));
extern bool_t *ypproc_domain_2_svc __P ((domainname *, struct svc_req *));
#define YPPROC_DOMAIN_NONACK ((u_long)2)
extern "C" bool_t * ypproc_domain_nonack_2(domainname *, CLIENT *);
extern "C" bool_t * ypproc_domain_nonack_2_svc(domainname *, struct svc_req *);
extern bool_t *ypproc_domain_nonack_2 __P ((domainname *, CLIENT *));
extern bool_t *ypproc_domain_nonack_2_svc __P ((domainname *, struct svc_req *));
#define YPPROC_MATCH ((u_long)3)
extern "C" ypresp_val * ypproc_match_2(ypreq_key *, CLIENT *);
extern "C" ypresp_val * ypproc_match_2_svc(ypreq_key *, struct svc_req *);
extern ypresp_val *ypproc_match_2 __P ((ypreq_key *, CLIENT *));
extern ypresp_val *ypproc_match_2_svc __P ((ypreq_key *, struct svc_req *));
#define YPPROC_FIRST ((u_long)4)
extern "C" ypresp_key_val * ypproc_first_2(ypreq_key *, CLIENT *);
extern "C" ypresp_key_val * ypproc_first_2_svc(ypreq_key *, struct svc_req *);
extern ypresp_key_val *ypproc_first_2 __P ((ypreq_key *, CLIENT *));
extern ypresp_key_val *ypproc_first_2_svc __P ((ypreq_key *, struct svc_req *));
#define YPPROC_NEXT ((u_long)5)
extern "C" ypresp_key_val * ypproc_next_2(ypreq_key *, CLIENT *);
extern "C" ypresp_key_val * ypproc_next_2_svc(ypreq_key *, struct svc_req *);
extern ypresp_key_val *ypproc_next_2 __P ((ypreq_key *, CLIENT *));
extern ypresp_key_val *ypproc_next_2_svc __P ((ypreq_key *, struct svc_req *));
#define YPPROC_XFR ((u_long)6)
extern "C" ypresp_xfr * ypproc_xfr_2(ypreq_xfr *, CLIENT *);
extern "C" ypresp_xfr * ypproc_xfr_2_svc(ypreq_xfr *, struct svc_req *);
extern ypresp_xfr *ypproc_xfr_2 __P ((ypreq_xfr *, CLIENT *));
extern ypresp_xfr *ypproc_xfr_2_svc __P ((ypreq_xfr *, struct svc_req *));
#define YPPROC_CLEAR ((u_long)7)
extern "C" void * ypproc_clear_2(void *, CLIENT *);
extern "C" void * ypproc_clear_2_svc(void *, struct svc_req *);
extern void *ypproc_clear_2 __P ((void *, CLIENT *));
extern void *ypproc_clear_2_svc __P ((void *, struct svc_req *));
#define YPPROC_ALL ((u_long)8)
extern "C" ypresp_all * ypproc_all_2(ypreq_nokey *, CLIENT *);
extern "C" ypresp_all * ypproc_all_2_svc(ypreq_nokey *, struct svc_req *);
extern ypresp_all *ypproc_all_2 __P ((ypreq_nokey *, CLIENT *));
extern ypresp_all *ypproc_all_2_svc __P ((ypreq_nokey *, struct svc_req *));
#define YPPROC_MASTER ((u_long)9)
extern "C" ypresp_master * ypproc_master_2(ypreq_nokey *, CLIENT *);
extern "C" ypresp_master * ypproc_master_2_svc(ypreq_nokey *, struct svc_req *);
extern ypresp_master *ypproc_master_2 __P ((ypreq_nokey *, CLIENT *));
extern ypresp_master *ypproc_master_2_svc __P ((ypreq_nokey *, struct svc_req *));
#define YPPROC_ORDER ((u_long)10)
extern "C" ypresp_order * ypproc_order_2(ypreq_nokey *, CLIENT *);
extern "C" ypresp_order * ypproc_order_2_svc(ypreq_nokey *, struct svc_req *);
extern ypresp_order *ypproc_order_2 __P ((ypreq_nokey *, CLIENT *));
extern ypresp_order *ypproc_order_2_svc __P ((ypreq_nokey *, struct svc_req *));
#define YPPROC_MAPLIST ((u_long)11)
extern "C" ypresp_maplist * ypproc_maplist_2(domainname *, CLIENT *);
extern "C" ypresp_maplist * ypproc_maplist_2_svc(domainname *, struct svc_req *);
extern ypresp_maplist *ypproc_maplist_2 __P ((domainname *, CLIENT *));
extern ypresp_maplist *ypproc_maplist_2_svc __P ((domainname *, struct svc_req *));
extern int ypprog_2_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
#elif __STDC__
#define YPPROC_NULL ((u_long)0)
extern void * ypproc_null_2(void *, CLIENT *);
extern void * ypproc_null_2_svc(void *, struct svc_req *);
#define YPPROC_DOMAIN ((u_long)1)
extern bool_t * ypproc_domain_2(domainname *, CLIENT *);
extern bool_t * ypproc_domain_2_svc(domainname *, struct svc_req *);
#define YPPROC_DOMAIN_NONACK ((u_long)2)
extern bool_t * ypproc_domain_nonack_2(domainname *, CLIENT *);
extern bool_t * ypproc_domain_nonack_2_svc(domainname *, struct svc_req *);
#define YPPROC_MATCH ((u_long)3)
extern ypresp_val * ypproc_match_2(ypreq_key *, CLIENT *);
extern ypresp_val * ypproc_match_2_svc(ypreq_key *, struct svc_req *);
#define YPPROC_FIRST ((u_long)4)
extern ypresp_key_val * ypproc_first_2(ypreq_key *, CLIENT *);
extern ypresp_key_val * ypproc_first_2_svc(ypreq_key *, struct svc_req *);
#define YPPROC_NEXT ((u_long)5)
extern ypresp_key_val * ypproc_next_2(ypreq_key *, CLIENT *);
extern ypresp_key_val * ypproc_next_2_svc(ypreq_key *, struct svc_req *);
#define YPPROC_XFR ((u_long)6)
extern ypresp_xfr * ypproc_xfr_2(ypreq_xfr *, CLIENT *);
extern ypresp_xfr * ypproc_xfr_2_svc(ypreq_xfr *, struct svc_req *);
#define YPPROC_CLEAR ((u_long)7)
extern void * ypproc_clear_2(void *, CLIENT *);
extern void * ypproc_clear_2_svc(void *, struct svc_req *);
#define YPPROC_ALL ((u_long)8)
extern ypresp_all * ypproc_all_2(ypreq_nokey *, CLIENT *);
extern ypresp_all * ypproc_all_2_svc(ypreq_nokey *, struct svc_req *);
#define YPPROC_MASTER ((u_long)9)
extern ypresp_master * ypproc_master_2(ypreq_nokey *, CLIENT *);
extern ypresp_master * ypproc_master_2_svc(ypreq_nokey *, struct svc_req *);
#define YPPROC_ORDER ((u_long)10)
extern ypresp_order * ypproc_order_2(ypreq_nokey *, CLIENT *);
extern ypresp_order * ypproc_order_2_svc(ypreq_nokey *, struct svc_req *);
#define YPPROC_MAPLIST ((u_long)11)
extern ypresp_maplist * ypproc_maplist_2(domainname *, CLIENT *);
extern ypresp_maplist * ypproc_maplist_2_svc(domainname *, struct svc_req *);
#else /* Old Style C */
#define YPPROC_NULL ((u_long)0)
extern void * ypproc_null_2();
extern void * ypproc_null_2_svc();
#define YPPROC_DOMAIN ((u_long)1)
extern bool_t * ypproc_domain_2();
extern bool_t * ypproc_domain_2_svc();
#define YPPROC_DOMAIN_NONACK ((u_long)2)
extern bool_t * ypproc_domain_nonack_2();
extern bool_t * ypproc_domain_nonack_2_svc();
#define YPPROC_MATCH ((u_long)3)
extern ypresp_val * ypproc_match_2();
extern ypresp_val * ypproc_match_2_svc();
#define YPPROC_FIRST ((u_long)4)
extern ypresp_key_val * ypproc_first_2();
extern ypresp_key_val * ypproc_first_2_svc();
#define YPPROC_NEXT ((u_long)5)
extern ypresp_key_val * ypproc_next_2();
extern ypresp_key_val * ypproc_next_2_svc();
#define YPPROC_XFR ((u_long)6)
extern ypresp_xfr * ypproc_xfr_2();
extern ypresp_xfr * ypproc_xfr_2_svc();
#define YPPROC_CLEAR ((u_long)7)
extern void * ypproc_clear_2();
extern void * ypproc_clear_2_svc();
#define YPPROC_ALL ((u_long)8)
extern ypresp_all * ypproc_all_2();
extern ypresp_all * ypproc_all_2_svc();
#define YPPROC_MASTER ((u_long)9)
extern ypresp_master * ypproc_master_2();
extern ypresp_master * ypproc_master_2_svc();
#define YPPROC_ORDER ((u_long)10)
extern ypresp_order * ypproc_order_2();
extern ypresp_order * ypproc_order_2_svc();
#define YPPROC_MAPLIST ((u_long)11)
extern ypresp_maplist * ypproc_maplist_2();
extern ypresp_maplist * ypproc_maplist_2_svc();
#endif /* Old Style C */
#define YPPUSH_XFRRESPPROG ((u_long)0x40000000)
#define YPPUSH_XFRRESPVERS ((u_long)1)
#ifdef __cplusplus
#define YPPUSHPROC_NULL ((u_long)0)
extern "C" void * yppushproc_null_1(void *, CLIENT *);
extern "C" void * yppushproc_null_1_svc(void *, struct svc_req *);
extern void *yppushproc_null_1 __P ((void *, CLIENT *));
extern void *yppushproc_null_1_svc __P ((void *, struct svc_req *));
#define YPPUSHPROC_XFRRESP ((u_long)1)
extern "C" void * yppushproc_xfrresp_1(yppushresp_xfr *, CLIENT *);
extern "C" void * yppushproc_xfrresp_1_svc(yppushresp_xfr *, struct svc_req *);
extern void *yppushproc_xfrresp_1 __P ((yppushresp_xfr *, CLIENT *));
extern void *yppushproc_xfrresp_1_svc __P ((yppushresp_xfr *, struct svc_req *));
extern int yppush_xfrrespprog_1_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
#elif __STDC__
#define YPPUSHPROC_NULL ((u_long)0)
extern void * yppushproc_null_1(void *, CLIENT *);
extern void * yppushproc_null_1_svc(void *, struct svc_req *);
#define YPPUSHPROC_XFRRESP ((u_long)1)
extern void * yppushproc_xfrresp_1(yppushresp_xfr *, CLIENT *);
extern void * yppushproc_xfrresp_1_svc(yppushresp_xfr *, struct svc_req *);
#else /* Old Style C */
#define YPPUSHPROC_NULL ((u_long)0)
extern void * yppushproc_null_1();
extern void * yppushproc_null_1_svc();
#define YPPUSHPROC_XFRRESP ((u_long)1)
extern void * yppushproc_xfrresp_1();
extern void * yppushproc_xfrresp_1_svc();
#endif /* Old Style C */
#define YPBINDPROG ((u_long)100007)
#define YPBINDVERS ((u_long)2)
#ifdef __cplusplus
#define YPBINDPROC_NULL ((u_long)0)
extern "C" void * ypbindproc_null_2(void *, CLIENT *);
extern "C" void * ypbindproc_null_2_svc(void *, struct svc_req *);
extern void *ypbindproc_null_2 __P ((void *, CLIENT *));
extern void *ypbindproc_null_2_svc __P ((void *, struct svc_req *));
#define YPBINDPROC_DOMAIN ((u_long)1)
extern "C" ypbind_resp * ypbindproc_domain_2(domainname *, CLIENT *);
extern "C" ypbind_resp * ypbindproc_domain_2_svc(domainname *, struct svc_req *);
extern ypbind_resp *ypbindproc_domain_2 __P ((domainname *, CLIENT *));
extern ypbind_resp *ypbindproc_domain_2_svc __P ((domainname *, struct svc_req *));
#define YPBINDPROC_SETDOM ((u_long)2)
extern "C" void * ypbindproc_setdom_2(ypbind_setdom *, CLIENT *);
extern "C" void * ypbindproc_setdom_2_svc(ypbind_setdom *, struct svc_req *);
extern void *ypbindproc_setdom_2 __P ((ypbind_setdom *, CLIENT *));
extern void *ypbindproc_setdom_2_svc __P ((ypbind_setdom *, struct svc_req *));
extern int ypbindprog_2_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
#elif __STDC__
#define YPBINDPROC_NULL ((u_long)0)
extern void * ypbindproc_null_2(void *, CLIENT *);
extern void * ypbindproc_null_2_svc(void *, struct svc_req *);
#define YPBINDPROC_DOMAIN ((u_long)1)
extern ypbind_resp * ypbindproc_domain_2(domainname *, CLIENT *);
extern ypbind_resp * ypbindproc_domain_2_svc(domainname *, struct svc_req *);
#define YPBINDPROC_SETDOM ((u_long)2)
extern void * ypbindproc_setdom_2(ypbind_setdom *, CLIENT *);
extern void * ypbindproc_setdom_2_svc(ypbind_setdom *, struct svc_req *);
#else /* Old Style C */
#define YPBINDPROC_NULL ((u_long)0)
extern void * ypbindproc_null_2();
extern void * ypbindproc_null_2_svc();
#define YPBINDPROC_DOMAIN ((u_long)1)
extern ypbind_resp * ypbindproc_domain_2();
extern ypbind_resp * ypbindproc_domain_2_svc();
#define YPBINDPROC_SETDOM ((u_long)2)
extern void * ypbindproc_setdom_2();
extern void * ypbindproc_setdom_2_svc();
#endif /* Old Style C */
extern bool_t xdr_ypstat __P ((XDR *, ypstat*));
extern bool_t xdr_ypxfrstat __P ((XDR *, ypxfrstat*));
extern bool_t xdr_domainname __P ((XDR *, domainname*));
extern bool_t xdr_mapname __P ((XDR *, mapname*));
extern bool_t xdr_peername __P ((XDR *, peername*));
extern bool_t xdr_keydat __P ((XDR *, keydat*));
extern bool_t xdr_valdat __P ((XDR *, valdat*));
extern bool_t xdr_ypmap_parms __P ((XDR *, ypmap_parms*));
extern bool_t xdr_ypreq_key __P ((XDR *, ypreq_key*));
extern bool_t xdr_ypreq_nokey __P ((XDR *, ypreq_nokey*));
extern bool_t xdr_ypreq_xfr __P ((XDR *, ypreq_xfr*));
extern bool_t xdr_ypresp_val __P ((XDR *, ypresp_val*));
extern bool_t xdr_ypresp_key_val __P ((XDR *, ypresp_key_val*));
extern bool_t xdr_ypresp_master __P ((XDR *, ypresp_master*));
extern bool_t xdr_ypresp_order __P ((XDR *, ypresp_order*));
extern bool_t xdr_ypresp_all __P ((XDR *, ypresp_all*));
extern bool_t xdr_ypresp_xfr __P ((XDR *, ypresp_xfr*));
extern bool_t xdr_ypmaplist __P ((XDR *, ypmaplist*));
extern bool_t xdr_ypresp_maplist __P ((XDR *, ypresp_maplist*));
extern bool_t xdr_yppush_status __P ((XDR *, yppush_status*));
extern bool_t xdr_yppushresp_xfr __P ((XDR *, yppushresp_xfr*));
extern bool_t xdr_ypbind_resptype __P ((XDR *, ypbind_resptype*));
extern bool_t xdr_ypbind_binding __P ((XDR *, ypbind_binding*));
extern bool_t xdr_ypbind_resp __P ((XDR *, ypbind_resp*));
extern bool_t xdr_ypbind_setdom __P ((XDR *, ypbind_setdom*));
__END_DECLS
#endif /* !__RPCSVC_YP_H__ */

View File

@ -5,23 +5,23 @@
* may copy or modify Sun RPC without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
*
*
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
*
* Sun RPC is provided with no support and without any obligation on the
* part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
*
*
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
* OR ANY PART THEREOF.
*
*
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Sun has been advised of the possibility of such damages.
*
*
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
@ -32,311 +32,269 @@
bool_t
xdr_ypstat (XDR *xdrs, ypstat *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp))
return (FALSE);
return (TRUE);
if (!xdr_enum (xdrs, (enum_t *) objp))
return FALSE;
return TRUE;
}
bool_t
xdr_ypxfrstat(XDR *xdrs, ypxfrstat *objp)
xdr_ypxfrstat (XDR *xdrs, ypxfrstat *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp)) {
return (FALSE);
}
return (TRUE);
if (!xdr_enum (xdrs, (enum_t *) objp))
return FALSE;
return TRUE;
}
bool_t
xdr_domainname(XDR *xdrs, domainname *objp)
xdr_domainname (XDR *xdrs, domainname *objp)
{
if (!xdr_string(xdrs, objp, YPMAXDOMAIN)) {
return (FALSE);
}
return (TRUE);
if (!xdr_string (xdrs, objp, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_mapname(XDR *xdrs, mapname *objp)
xdr_mapname (XDR *xdrs, mapname *objp)
{
if (!xdr_string(xdrs, objp, YPMAXMAP)) {
return (FALSE);
}
return (TRUE);
if (!xdr_string (xdrs, objp, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_peername(XDR *xdrs, peername *objp)
xdr_peername (XDR *xdrs, peername *objp)
{
if (!xdr_string(xdrs, objp, YPMAXPEER)) {
return (FALSE);
}
return (TRUE);
if (!xdr_string (xdrs, objp, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_keydat(XDR *xdrs, keydat *objp)
xdr_keydat (XDR *xdrs, keydat *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->keydat_val, (u_int *)&objp->keydat_len, YPMAXRECORD)) {
return (FALSE);
}
return (TRUE);
if (!xdr_bytes (xdrs, (char **) &objp->keydat_val,
(u_int *) &objp->keydat_len, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_valdat(XDR *xdrs, valdat *objp)
xdr_valdat (XDR *xdrs, valdat *objp)
{
if (!xdr_bytes(xdrs, (char **)&objp->valdat_val, (u_int *)&objp->valdat_len, YPMAXRECORD)) {
return (FALSE);
}
return (TRUE);
if (!xdr_bytes (xdrs, (char **) &objp->valdat_val,
(u_int *) &objp->valdat_len, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_ypmap_parms(XDR *xdrs, ypmap_parms *objp)
xdr_ypmap_parms (XDR *xdrs, ypmap_parms *objp)
{
if (!xdr_domainname(xdrs, &objp->domain)) {
return (FALSE);
}
if (!xdr_mapname(xdrs, &objp->map)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->ordernum)) {
return (FALSE);
}
if (!xdr_peername(xdrs, &objp->peer)) {
return (FALSE);
}
return (TRUE);
if (!xdr_domainname (xdrs, &objp->domain))
return FALSE;
if (!xdr_mapname (xdrs, &objp->map))
return FALSE;
if (!xdr_u_int (xdrs, &objp->ordernum))
return FALSE;
if (!xdr_peername (xdrs, &objp->peer))
return FALSE;
return TRUE;
}
bool_t
xdr_ypreq_key(XDR *xdrs, ypreq_key *objp)
xdr_ypreq_key (XDR *xdrs, ypreq_key *objp)
{
if (!xdr_domainname(xdrs, &objp->domain)) {
return (FALSE);
}
if (!xdr_mapname(xdrs, &objp->map)) {
return (FALSE);
}
if (!xdr_keydat(xdrs, &objp->key)) {
return (FALSE);
}
return (TRUE);
if (!xdr_domainname (xdrs, &objp->domain))
return FALSE;
if (!xdr_mapname (xdrs, &objp->map))
return FALSE;
if (!xdr_keydat (xdrs, &objp->key))
return FALSE;
return TRUE;
}
bool_t
xdr_ypreq_nokey(XDR *xdrs, ypreq_nokey *objp)
xdr_ypreq_nokey (XDR *xdrs, ypreq_nokey *objp)
{
if (!xdr_domainname(xdrs, &objp->domain)) {
return (FALSE);
}
if (!xdr_mapname(xdrs, &objp->map)) {
return (FALSE);
}
return (TRUE);
if (!xdr_domainname (xdrs, &objp->domain))
return FALSE;
if (!xdr_mapname (xdrs, &objp->map))
return FALSE;
return TRUE;
}
bool_t
xdr_ypreq_xfr(XDR *xdrs, ypreq_xfr *objp)
xdr_ypreq_xfr (XDR *xdrs, ypreq_xfr *objp)
{
if (!xdr_ypmap_parms(xdrs, &objp->map_parms)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->transid)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->prog)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->port)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypmap_parms (xdrs, &objp->map_parms))
return FALSE;
if (!xdr_u_int (xdrs, &objp->transid))
return FALSE;
if (!xdr_u_int (xdrs, &objp->prog))
return FALSE;
if (!xdr_u_int (xdrs, &objp->port))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_val(XDR *xdrs, ypresp_val *objp)
xdr_ypresp_val (XDR *xdrs, ypresp_val *objp)
{
if (!xdr_ypstat(xdrs, &objp->stat)) {
return (FALSE);
}
if (!xdr_valdat(xdrs, &objp->val)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypstat (xdrs, &objp->stat))
return FALSE;
if (!xdr_valdat (xdrs, &objp->val))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_key_val(XDR *xdrs, ypresp_key_val *objp)
xdr_ypresp_key_val (XDR *xdrs, ypresp_key_val *objp)
{
if (!xdr_ypstat(xdrs, &objp->stat)) {
return (FALSE);
}
if (!xdr_valdat(xdrs, &objp->val)) {
return (FALSE);
}
if (!xdr_keydat(xdrs, &objp->key)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypstat (xdrs, &objp->stat))
return FALSE;
if (!xdr_valdat (xdrs, &objp->val))
return FALSE;
if (!xdr_keydat (xdrs, &objp->key))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_master(XDR *xdrs, ypresp_master *objp)
xdr_ypresp_master (XDR *xdrs, ypresp_master *objp)
{
if (!xdr_ypstat(xdrs, &objp->stat)) {
return (FALSE);
}
if (!xdr_peername(xdrs, &objp->peer)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypstat (xdrs, &objp->stat))
return FALSE;
if (!xdr_peername (xdrs, &objp->peer))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_order(XDR *xdrs, ypresp_order *objp)
xdr_ypresp_order (XDR *xdrs, ypresp_order *objp)
{
if (!xdr_ypstat(xdrs, &objp->stat)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->ordernum)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypstat (xdrs, &objp->stat))
return FALSE;
if (!xdr_u_int (xdrs, &objp->ordernum))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_all(XDR *xdrs, ypresp_all *objp)
xdr_ypresp_all (XDR *xdrs, ypresp_all *objp)
{
if (!xdr_bool(xdrs, &objp->more)) {
return (FALSE);
}
switch (objp->more) {
case TRUE:
if (!xdr_ypresp_key_val(xdrs, &objp->ypresp_all_u.val)) {
return (FALSE);
if (!xdr_bool (xdrs, &objp->more))
return FALSE;
switch (objp->more)
{
case TRUE:
if (!xdr_ypresp_key_val (xdrs, &objp->ypresp_all_u.val))
return FALSE;
break;
case FALSE:
break;
default:
return FALSE;
}
break;
case FALSE:
break;
default:
return (FALSE);
}
return (TRUE);
return TRUE;
}
bool_t
xdr_ypresp_xfr(XDR *xdrs, ypresp_xfr *objp)
xdr_ypresp_xfr (XDR *xdrs, ypresp_xfr *objp)
{
if (!xdr_u_int(xdrs, &objp->transid)) {
return (FALSE);
}
if (!xdr_ypxfrstat(xdrs, &objp->xfrstat)) {
return (FALSE);
}
return (TRUE);
if (!xdr_u_int (xdrs, &objp->transid))
return FALSE;
if (!xdr_ypxfrstat (xdrs, &objp->xfrstat))
return FALSE;
return TRUE;
}
bool_t
xdr_ypmaplist(XDR *xdrs, ypmaplist *objp)
xdr_ypmaplist (XDR *xdrs, ypmaplist *objp)
{
if (!xdr_mapname(xdrs, &objp->map)) {
return (FALSE);
}
if (!xdr_pointer(xdrs, (char **)&objp->next, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
return (FALSE);
}
return (TRUE);
if (!xdr_mapname (xdrs, &objp->map))
return FALSE;
if (!xdr_pointer (xdrs, (char **) &objp->next, sizeof (ypmaplist),
(xdrproc_t) xdr_ypmaplist))
return FALSE;
return TRUE;
}
bool_t
xdr_ypresp_maplist(XDR *xdrs, ypresp_maplist *objp)
xdr_ypresp_maplist (XDR *xdrs, ypresp_maplist *objp)
{
if (!xdr_ypstat(xdrs, &objp->stat)) {
return (FALSE);
}
if (!xdr_pointer(xdrs, (char **)&objp->maps, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
return (FALSE);
}
return (TRUE);
if (!xdr_ypstat (xdrs, &objp->stat))
return FALSE;
if (!xdr_pointer (xdrs, (char **) &objp->maps, sizeof (ypmaplist),
(xdrproc_t) xdr_ypmaplist))
return FALSE;
return TRUE;
}
bool_t
xdr_yppush_status(XDR *xdrs, yppush_status *objp)
xdr_yppush_status (XDR *xdrs, yppush_status *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp)) {
return (FALSE);
}
return (TRUE);
if (!xdr_enum (xdrs, (enum_t *) objp))
return FALSE;
return TRUE;
}
bool_t
xdr_yppushresp_xfr(XDR *xdrs, yppushresp_xfr *objp)
xdr_yppushresp_xfr (XDR *xdrs, yppushresp_xfr *objp)
{
if (!xdr_u_int(xdrs, &objp->transid)) {
return (FALSE);
}
if (!xdr_yppush_status(xdrs, &objp->status)) {
return (FALSE);
}
return (TRUE);
if (!xdr_u_int (xdrs, &objp->transid))
return FALSE;
if (!xdr_yppush_status (xdrs, &objp->status))
return FALSE;
return TRUE;
}
bool_t
xdr_ypbind_resptype(XDR *xdrs, ypbind_resptype *objp)
xdr_ypbind_resptype (XDR *xdrs, ypbind_resptype *objp)
{
if (!xdr_enum(xdrs, (enum_t *)objp)) {
return (FALSE);
}
return (TRUE);
if (!xdr_enum (xdrs, (enum_t *) objp))
return FALSE;
return TRUE;
}
bool_t
xdr_ypbind_binding(XDR *xdrs, ypbind_binding *objp)
xdr_ypbind_binding (XDR *xdrs, ypbind_binding *objp)
{
if (!xdr_opaque(xdrs, objp->ypbind_binding_addr, 4)) {
return (FALSE);
}
if (!xdr_opaque(xdrs, objp->ypbind_binding_port, 2)) {
return (FALSE);
}
return (TRUE);
if (!xdr_opaque (xdrs, objp->ypbind_binding_addr, 4))
return FALSE;
if (!xdr_opaque (xdrs, objp->ypbind_binding_port, 2))
return FALSE;
return TRUE;
}
bool_t
xdr_ypbind_resp(XDR *xdrs, ypbind_resp *objp)
xdr_ypbind_resp (XDR *xdrs, ypbind_resp *objp)
{
if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) {
return (FALSE);
}
switch (objp->ypbind_status) {
case YPBIND_FAIL_VAL:
if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) {
return (FALSE);
}
break;
case YPBIND_SUCC_VAL:
if (!xdr_ypbind_binding(xdrs, &objp->ypbind_resp_u.ypbind_bindinfo)) {
return (FALSE);
if (!xdr_ypbind_resptype (xdrs, &objp->ypbind_status))
return FALSE;
switch (objp->ypbind_status)
{
case YPBIND_FAIL_VAL:
if (!xdr_u_int (xdrs, &objp->ypbind_resp_u.ypbind_error))
return FALSE;
break;
case YPBIND_SUCC_VAL:
if (!xdr_ypbind_binding (xdrs, &objp->ypbind_resp_u.ypbind_bindinfo))
return FALSE;
break;
default:
return FALSE;
}
break;
default:
return (FALSE);
}
return (TRUE);
return TRUE;
}
bool_t
xdr_ypbind_setdom(XDR *xdrs, ypbind_setdom *objp)
xdr_ypbind_setdom (XDR *xdrs, ypbind_setdom *objp)
{
if (!xdr_domainname(xdrs, &objp->ypsetdom_domain)) {
return (FALSE);
}
if (!xdr_ypbind_binding(xdrs, &objp->ypsetdom_binding)) {
return (FALSE);
}
if (!xdr_u_int(xdrs, &objp->ypsetdom_vers)) {
return (FALSE);
}
return (TRUE);
if (!xdr_domainname (xdrs, &objp->ypsetdom_domain))
return FALSE;
if (!xdr_ypbind_binding (xdrs, &objp->ypsetdom_binding))
return FALSE;
if (!xdr_u_int (xdrs, &objp->ypsetdom_vers))
return FALSE;
return TRUE;
}

View File

@ -90,7 +90,7 @@ __yp_bind (const char *domain, dom_binding **ypdb)
do
{
try++;
++try;
if (try > MAXTRIES)
{
if (is_new)
@ -99,7 +99,7 @@ __yp_bind (const char *domain, dom_binding **ypdb)
}
#if USE_BINDINGDIR
if (ysd->dom_vers < 1 && try < 3)
if (ysd->dom_vers < 1 && try == 1) /* Try binding dir only first time */
{
char path[sizeof (BINDINGDIR) - 1 + strlen (domain) + 10];
struct iovec vec[2];

View File

@ -31,43 +31,35 @@
* Copyright (c) 1986, 1990 by Sun Microsystems, Inc.
*/
/* from @(#)ypupdate_prot.x 1.3 91/03/11 TIRPC 1.0 */
/*
* Compiled from ypupdate_prot.x using rpcgen
* This is NOT source code!
* DO NOT EDIT THIS FILE!
*/
#include <rpcsvc/ypupd.h>
bool_t
xdr_yp_buf (XDR * xdrs, yp_buf * objp)
bool_t
xdr_yp_buf (XDR *xdrs, yp_buf *objp)
{
if (!xdr_bytes (xdrs, (char **) &objp->yp_buf_val, (u_int *) & objp->yp_buf_len, MAXYPDATALEN))
return (FALSE);
return (TRUE);
if (!xdr_bytes (xdrs, (char **) &objp->yp_buf_val,
(u_int *) &objp->yp_buf_len, ~0))
return FALSE;
return TRUE;
}
bool_t
xdr_ypupdate_args (XDR * xdrs, ypupdate_args * objp)
bool_t
xdr_ypupdate_args (XDR *xdrs, ypupdate_args *objp)
{
if (!xdr_string (xdrs, &objp->mapname, MAXMAPNAMELEN))
return (FALSE);
if (!xdr_string (xdrs, &objp->mapname, ~0))
return FALSE;
if (!xdr_yp_buf (xdrs, &objp->key))
return (FALSE);
return FALSE;
if (!xdr_yp_buf (xdrs, &objp->datum))
return (FALSE);
return (TRUE);
return FALSE;
return TRUE;
}
bool_t
xdr_ypdelete_args (XDR * xdrs, ypdelete_args * objp)
bool_t
xdr_ypdelete_args (XDR *xdrs, ypdelete_args *objp)
{
if (!xdr_string (xdrs, &objp->mapname, MAXMAPNAMELEN))
return (FALSE);
if (!xdr_string (xdrs, &objp->mapname, ~0))
return FALSE;
if (!xdr_yp_buf (xdrs, &objp->key))
return (FALSE);
return (TRUE);
return FALSE;
return TRUE;
}

View File

@ -219,7 +219,8 @@ extern unsigned long long int __strtoull_internal __P ((__const char *
# endif
#endif /* GCC */
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && __GNUC__ >= 2
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \
&& defined __USE_EXTERN_INLINES
/* Define inline functions which call the internal entry points. */
extern __inline double
@ -306,7 +307,7 @@ atoll (__const char *__nptr)
return strtoll (__nptr, (char **) NULL, 10);
}
# endif
#endif /* Optimizing GCC >=2. */
#endif /* Optimizing and Inlining. */
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED

View File

@ -133,7 +133,7 @@ extern char *__argz_next __P ((char *argz, size_t __argz_len,
extern char *argz_next __P ((char *argz, size_t __argz_len,
__const char *entry));
#if defined __OPTIMIZE__ && __GNUC__ >= 2
#ifdef __USE_EXTERN_INLINES
extern inline char *
__argz_next (char *__argz, size_t __argz_len, __const char *__entry)
{
@ -152,7 +152,7 @@ argz_next (char *__argz, size_t __argz_len, __const char *__entry)
{
return __argz_next (__argz, __argz_len, __entry);
}
#endif /* optimizing GCC2 */
#endif /* Use extern inlines. */
__END_DECLS

View File

@ -38,7 +38,7 @@ typedef unsigned long int __sigset_t;
#define _SIGSET_H_fns 1
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
# define _EXTERN_INLINE extern __inline
#endif
/* Return a mask that includes SIG only. The cast to `sigset_t' avoids
@ -63,7 +63,8 @@ extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
#define __SIGSETFN(NAME, BODY, CONST) \
#ifdef __USE_EXTERN_INLINES
# define __SIGSETFN(NAME, BODY, CONST) \
_EXTERN_INLINE int \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
@ -75,7 +76,8 @@ __SIGSETFN (__sigismember, (*__set & __mask) ? 1 : 0, __const)
__SIGSETFN (__sigaddset, ((*__set |= __mask), 0), )
__SIGSETFN (__sigdelset, ((*__set &= ~__mask), 0), )
#undef __SIGSETFN
# undef __SIGSETFN
#endif
#endif /* ! _SIGSET_H_fns. */

View File

@ -253,6 +253,7 @@ extern char *alloca ();
# define readdir(str) __readdir (str)
# define getpwnam_r(name, bufp, buf, len, res) \
__getpwnam_r (name, bufp, buf, len, res)
# define __stat(fname, buf) __xstat (_STAT_VER, fname, buf)
#endif
#if !(defined STDC_HEADERS || defined __GNU_LIBRARY__)

View File

@ -104,7 +104,8 @@ extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
# define __SIGSETFN(NAME, BODY, CONST) \
# ifdef __USE_EXTERN_INLINES
# define __SIGSETFN(NAME, BODY, CONST) \
_EXTERN_INLINE int \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
@ -117,7 +118,8 @@ __SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
__SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
__SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
#undef __SIGSETFN
# undef __SIGSETFN
# endif
#endif /* ! _SIGSET_H_fns. */

View File

@ -48,9 +48,10 @@ typedef struct
#define __SSELT(s) ((s) / __NSSBITS)
#define __SSMASK(s) (1 << ((s) % __NSSBITS))
#ifndef _EXTERN_INLINE
#define _EXTERN_INLINE extern __inline
#endif
#ifdef __USE_EXTERN_INLINES
# ifndef _EXTERN_INLINE
# define _EXTERN_INLINE extern __inline
# endif
_EXTERN_INLINE int
__sigemptyset (__sigset_t *__set)
@ -92,5 +93,6 @@ __sigismember (__const __sigset_t *__set, int __sig)
return 1;
return 0;
}
#endif /* use extern inlines. */
#endif /* ! _SIGSET_H_fns */

View File

@ -204,7 +204,7 @@ extern intmax_t wcstoimax __P ((__const wchar_t * __restrict __nptr,
extern uintmax_t wcstoumax __P ((__const wchar_t * __restrict __nptr,
wchar_t ** __restrict __endptr, int __base));
#if defined __GNUC__ && __GNUC__ >= 2 && defined __OPTIMIZE__
#ifdef __USE_EXTERN_INLINES
/* Like `strtol' but convert to `intmax_t'. */
# ifndef __strtoll_internal_defined
@ -267,7 +267,7 @@ wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
{
return __wcstoull_internal (nptr, endptr, base, 0);
}
#endif /* GCC and Optimization. */
#endif /* Use extern inlines. */
__END_DECLS

View File

@ -210,7 +210,7 @@ extern intmax_t wcstoimax __P ((__const wchar_t * __restrict __nptr,
extern uintmax_t wcstoumax __P ((__const wchar_t * __restrict __nptr,
wchar_t ** __restrict __endptr, int __base));
#if defined __GNUC__ && __GNUC__ >= 2 && defined __OPTIMIZE__
#ifdef __USE_EXTERN_INLINES
/* Like `strtol' but convert to `intmax_t'. */
# ifndef __strtol_internal_defined
@ -269,7 +269,7 @@ wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
{
return __wcstoul_internal (nptr, endptr, base, 0);
}
#endif /* GCC and Optimization. */
#endif /* Use extern inlines. */
__END_DECLS

View File

@ -234,7 +234,7 @@ extern size_t mbrlen __P ((__const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps));
#if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ \
&& (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
&& defined __USE_EXTERN_INLINES
/* Define inline function as optimization. */
extern __inline size_t mbrlen (__const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps)