Update.
1998-11-29 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/Makefile: Add xdr_intXX_t to routines. * sunrpc/Versions: Add xdr_int8_t, xdr_uint8_t, xdr_in16_t and xdr_uint16_t. * sunrpc/rpc/xdr.h: Add prototypes for new xdr_intXX_t functions. * sunrpc/xdr.c: Remove xdr_int32_t and xdr_uint32_t. * sunrpc/xdr_intXX_t.c: New, contains all xdr_intXX_t functions. * nis/Depend: New. * nis/nss_nis/nis-service.c: Include generated prototype for parser.
This commit is contained in:
parent
348ed5157b
commit
5713a71e1a
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
1998-11-29 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
|
||||||
|
|
||||||
|
* sunrpc/Makefile: Add xdr_intXX_t to routines.
|
||||||
|
* sunrpc/Versions: Add xdr_int8_t, xdr_uint8_t, xdr_in16_t and
|
||||||
|
xdr_uint16_t.
|
||||||
|
* sunrpc/rpc/xdr.h: Add prototypes for new xdr_intXX_t functions.
|
||||||
|
* sunrpc/xdr.c: Remove xdr_int32_t and xdr_uint32_t.
|
||||||
|
* sunrpc/xdr_intXX_t.c: New, contains all xdr_intXX_t functions.
|
||||||
|
|
||||||
|
* nis/Depend: New.
|
||||||
|
* nis/nss_nis/nis-service.c: Include generated prototype for parser.
|
||||||
|
|
||||||
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
* nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes.
|
* nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes.
|
||||||
|
|
19
INSTALL
19
INSTALL
|
@ -247,7 +247,7 @@ build the GNU C library:
|
||||||
bugs which only show up in big projects like GNU `libc'. Version
|
bugs which only show up in big projects like GNU `libc'. Version
|
||||||
3.76.1 seems OK but some people have reported problems.
|
3.76.1 seems OK but some people have reported problems.
|
||||||
|
|
||||||
* EGCS 1.1 or 1.0.3
|
* EGCS 1.1.1, 1.1 or 1.0.3
|
||||||
|
|
||||||
The GNU C library can only be compiled with the GNU C compiler
|
The GNU C library can only be compiled with the GNU C compiler
|
||||||
family. We recommend EGCS 1.0.3 or higher. GCC 2.8.1 and older
|
family. We recommend EGCS 1.0.3 or higher. GCC 2.8.1 and older
|
||||||
|
@ -257,7 +257,13 @@ build the GNU C library:
|
||||||
libc, but you may have problems, particularly with the math
|
libc, but you may have problems, particularly with the math
|
||||||
functions.)
|
functions.)
|
||||||
|
|
||||||
* GNU `binutils' 2.8.1.0.23, 2.9.1, or 2.9.0.15
|
On Alpha machines you need at least EGCS 1.1.1. Earlier versions
|
||||||
|
don't work reliably.
|
||||||
|
|
||||||
|
For PPC you might need some patches even on top of the last EGCS
|
||||||
|
version. See the FAQ.
|
||||||
|
|
||||||
|
* GNU `binutils' 2.9.1, or 2.9.1.0.16
|
||||||
|
|
||||||
You must use GNU binutils (as and ld) if you want to build a shared
|
You must use GNU binutils (as and ld) if you want to build a shared
|
||||||
library. Even if you don't, we recommend you use them anyway. No
|
library. Even if you don't, we recommend you use them anyway. No
|
||||||
|
@ -265,8 +271,12 @@ build the GNU C library:
|
||||||
|
|
||||||
The quality of binutils releases has varied a bit recently. The
|
The quality of binutils releases has varied a bit recently. The
|
||||||
bugs are in obscure features, but glibc uses quite a few of those.
|
bugs are in obscure features, but glibc uses quite a few of those.
|
||||||
2.8.1.0.23, 2.9.1, and 2.9.0.15 are known to work. Versions after
|
2.9.1 and 2.9.1.0.16 are known to work. Versions after 2.8.1.0.23
|
||||||
2.8.1.0.23 may or may not work. Older versions definitely don't.
|
may or may not work. Older versions definitely don't. 2.9.1.0.16
|
||||||
|
is required on some platforms, like PPC and Arm.
|
||||||
|
|
||||||
|
For PPC you might need some patches even on top of the last
|
||||||
|
binutils version. See the FAQ.
|
||||||
|
|
||||||
* GNU `texinfo' 3.11
|
* GNU `texinfo' 3.11
|
||||||
|
|
||||||
|
@ -305,6 +315,7 @@ Supported Configurations
|
||||||
following patterns:
|
following patterns:
|
||||||
|
|
||||||
alpha-*-linux
|
alpha-*-linux
|
||||||
|
arm-*-linux
|
||||||
arm-*-linuxaout
|
arm-*-linuxaout
|
||||||
arm-*-none
|
arm-*-none
|
||||||
iX86-*-gnu
|
iX86-*-gnu
|
||||||
|
|
|
@ -277,7 +277,7 @@ have bugs which only show up in big projects like GNU @code{libc}.
|
||||||
Version 3.76.1 seems OK but some people have reported problems.
|
Version 3.76.1 seems OK but some people have reported problems.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
EGCS 1.1 or 1.0.3
|
EGCS 1.1.1, 1.1 or 1.0.3
|
||||||
|
|
||||||
The GNU C library can only be compiled with the GNU C compiler family.
|
The GNU C library can only be compiled with the GNU C compiler family.
|
||||||
We recommend EGCS 1.0.3 or higher. GCC 2.8.1 and older versions of EGCS
|
We recommend EGCS 1.0.3 or higher. GCC 2.8.1 and older versions of EGCS
|
||||||
|
@ -286,8 +286,14 @@ has catastrophic bugs and cannot be used at all. (You can use GCC 2.7.x
|
||||||
to compile programs that use GNU libc, but you may have problems,
|
to compile programs that use GNU libc, but you may have problems,
|
||||||
particularly with the math functions.)
|
particularly with the math functions.)
|
||||||
|
|
||||||
|
On Alpha machines you need at least EGCS 1.1.1. Earlier versions don't
|
||||||
|
work reliably.
|
||||||
|
|
||||||
|
For PPC you might need some patches even on top of the last EGCS version.
|
||||||
|
See the FAQ.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
GNU @code{binutils} 2.8.1.0.23, 2.9.1, or 2.9.0.15
|
GNU @code{binutils} 2.9.1, or 2.9.1.0.16
|
||||||
|
|
||||||
You must use GNU binutils (as and ld) if you want to build a shared
|
You must use GNU binutils (as and ld) if you want to build a shared
|
||||||
library. Even if you don't, we recommend you use them anyway. No one
|
library. Even if you don't, we recommend you use them anyway. No one
|
||||||
|
@ -295,8 +301,12 @@ has tested compilation with non-GNU binutils in a long time.
|
||||||
|
|
||||||
The quality of binutils releases has varied a bit recently. The bugs
|
The quality of binutils releases has varied a bit recently. The bugs
|
||||||
are in obscure features, but glibc uses quite a few of those.
|
are in obscure features, but glibc uses quite a few of those.
|
||||||
2.8.1.0.23, 2.9.1, and 2.9.0.15 are known to work. Versions after
|
2.9.1 and 2.9.1.0.16 are known to work. Versions after
|
||||||
2.8.1.0.23 may or may not work. Older versions definitely don't.
|
2.8.1.0.23 may or may not work. Older versions definitely don't.
|
||||||
|
2.9.1.0.16 is required on some platforms, like PPC and Arm.
|
||||||
|
|
||||||
|
For PPC you might need some patches even on top of the last binutils
|
||||||
|
version. See the FAQ.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
GNU @code{texinfo} 3.11
|
GNU @code{texinfo} 3.11
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
nss
|
|
@ -29,10 +29,10 @@
|
||||||
#include "nss-nis.h"
|
#include "nss-nis.h"
|
||||||
|
|
||||||
|
|
||||||
/* The parser is defined in a different module. */
|
/* Get the declaration of the parser function. */
|
||||||
extern int _nss_files_parse_servent (char *line, struct servent *result,
|
#define ENTNAME servent
|
||||||
char *data, size_t datalen, int *errnop);
|
#define EXTERN_PARSER
|
||||||
|
#include <nss/nss_files/files-parse.c>
|
||||||
|
|
||||||
__libc_lock_define_initialized (static, lock)
|
__libc_lock_define_initialized (static, lock)
|
||||||
|
|
||||||
|
@ -156,6 +156,7 @@ static enum nss_status
|
||||||
internal_nis_getservent_r (struct servent *serv, char *buffer,
|
internal_nis_getservent_r (struct servent *serv, char *buffer,
|
||||||
size_t buflen, int *errnop, intern_t *data)
|
size_t buflen, int *errnop, intern_t *data)
|
||||||
{
|
{
|
||||||
|
struct parser_data *pdata = (void *) buffer;
|
||||||
int parse_res;
|
int parse_res;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
@ -174,7 +175,7 @@ internal_nis_getservent_r (struct servent *serv, char *buffer,
|
||||||
while (isspace (*p))
|
while (isspace (*p))
|
||||||
++p;
|
++p;
|
||||||
|
|
||||||
parse_res = _nss_files_parse_servent (p, serv, buffer, buflen, errnop);
|
parse_res = _nss_files_parse_servent (p, serv, pdata, buflen, errnop);
|
||||||
if (parse_res == -1)
|
if (parse_res == -1)
|
||||||
return NSS_STATUS_TRYAGAIN;
|
return NSS_STATUS_TRYAGAIN;
|
||||||
data->next = data->next->next;
|
data->next = data->next->next;
|
||||||
|
|
|
@ -67,7 +67,7 @@ routines := auth_none auth_unix authuxprot bindrsvprt \
|
||||||
xdr_rec xdr_ref xdr_stdio publickey xdr_sizeof \
|
xdr_rec xdr_ref xdr_stdio publickey xdr_sizeof \
|
||||||
auth_des authdes_prot des_crypt des_impl des_soft \
|
auth_des authdes_prot des_crypt des_impl des_soft \
|
||||||
key_call key_prot netname openchild rtime svcauth_des xcrypt\
|
key_call key_prot netname openchild rtime svcauth_des xcrypt\
|
||||||
clnt_unix svc_unix create_xid
|
clnt_unix svc_unix create_xid xdr_intXX_t
|
||||||
|
|
||||||
others := rpcinfo
|
others := rpcinfo
|
||||||
install-bin := rpcgen
|
install-bin := rpcgen
|
||||||
|
|
|
@ -96,8 +96,8 @@ libc {
|
||||||
# x*
|
# x*
|
||||||
xdecrypt; xdr_authdes_cred; xdr_authdes_verf;
|
xdecrypt; xdr_authdes_cred; xdr_authdes_verf;
|
||||||
xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block;
|
xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block;
|
||||||
xdr_getcredres; xdr_int32_t; xdr_key_netstarg; xdr_key_netstres;
|
xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; xdr_key_netstarg;
|
||||||
xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; xdr_uint32_t;
|
xdr_key_netstres; xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof;
|
||||||
xdr_unixcred;
|
xdr_uint16_t; xdr_uint32_t; xdr_uint8_t; xdr_unixcred;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,12 +271,16 @@ struct xdr_discrim
|
||||||
extern bool_t xdr_void __P ((void));
|
extern bool_t xdr_void __P ((void));
|
||||||
extern bool_t xdr_int __P ((XDR *__xdrs, int *__ip));
|
extern bool_t xdr_int __P ((XDR *__xdrs, int *__ip));
|
||||||
extern bool_t xdr_u_int __P ((XDR *__xdrs, u_int *__up));
|
extern bool_t xdr_u_int __P ((XDR *__xdrs, u_int *__up));
|
||||||
extern bool_t xdr_int32_t __P ((XDR *__xdrs, int32_t *__ip));
|
|
||||||
extern bool_t xdr_uint32_t __P ((XDR *__xdrs, uint32_t *__up));
|
|
||||||
extern bool_t xdr_long __P ((XDR *__xdrs, long *__lp));
|
extern bool_t xdr_long __P ((XDR *__xdrs, long *__lp));
|
||||||
extern bool_t xdr_u_long __P ((XDR *__xdrs, u_long *__ulp));
|
extern bool_t xdr_u_long __P ((XDR *__xdrs, u_long *__ulp));
|
||||||
extern bool_t xdr_short __P ((XDR *__xdrs, short *__sp));
|
extern bool_t xdr_short __P ((XDR *__xdrs, short *__sp));
|
||||||
extern bool_t xdr_u_short __P ((XDR *__xdrs, u_short *__usp));
|
extern bool_t xdr_u_short __P ((XDR *__xdrs, u_short *__usp));
|
||||||
|
extern bool_t xdr_int8_t __P ((XDR *__xdrs, int8_t *__ip));
|
||||||
|
extern bool_t xdr_uint8_t __P ((XDR *__xdrs, uint8_t *__up));
|
||||||
|
extern bool_t xdr_int16_t __P ((XDR *__xdrs, int16_t *__ip));
|
||||||
|
extern bool_t xdr_uint16_t __P ((XDR *__xdrs, uint16_t *__up));
|
||||||
|
extern bool_t xdr_int32_t __P ((XDR *__xdrs, int32_t *__ip));
|
||||||
|
extern bool_t xdr_uint32_t __P ((XDR *__xdrs, uint32_t *__up));
|
||||||
extern bool_t xdr_bool __P ((XDR *__xdrs, bool_t *__bp));
|
extern bool_t xdr_bool __P ((XDR *__xdrs, bool_t *__bp));
|
||||||
extern bool_t xdr_enum __P ((XDR *__xdrs, enum_t *__ep));
|
extern bool_t xdr_enum __P ((XDR *__xdrs, enum_t *__ep));
|
||||||
extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
|
extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
|
||||||
|
|
39
sunrpc/xdr.c
39
sunrpc/xdr.c
|
@ -151,45 +151,6 @@ xdr_u_int (XDR *xdrs, u_int *up)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* XDR 32bit integers
|
|
||||||
*/
|
|
||||||
bool_t
|
|
||||||
xdr_int32_t (XDR *xdrs, int32_t *lp)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (xdrs->x_op == XDR_ENCODE)
|
|
||||||
return XDR_PUTINT32 (xdrs, lp);
|
|
||||||
|
|
||||||
if (xdrs->x_op == XDR_DECODE)
|
|
||||||
return XDR_GETINT32 (xdrs, lp);
|
|
||||||
|
|
||||||
if (xdrs->x_op == XDR_FREE)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* XDR 32bit unsigned integers
|
|
||||||
*/
|
|
||||||
bool_t
|
|
||||||
xdr_uint32_t (XDR *xdrs, uint32_t *ulp)
|
|
||||||
{
|
|
||||||
switch (xdrs->x_op)
|
|
||||||
{
|
|
||||||
case XDR_DECODE:
|
|
||||||
return XDR_GETINT32 (xdrs, (uint32_t *) ulp);
|
|
||||||
|
|
||||||
case XDR_ENCODE:
|
|
||||||
return XDR_PUTINT32 (xdrs, (uint32_t *) ulp);
|
|
||||||
|
|
||||||
case XDR_FREE:
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XDR long integers
|
* XDR long integers
|
||||||
* same as xdr_u_long - open coded to save a proc call!
|
* same as xdr_u_long - open coded to save a proc call!
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
/* Copyright (c) 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#include <rpc/types.h>
|
||||||
|
#include <rpc/xdr.h>
|
||||||
|
|
||||||
|
/* XDR 32bit integers */
|
||||||
|
bool_t
|
||||||
|
xdr_int32_t (XDR *xdrs, int32_t *lp)
|
||||||
|
{
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_ENCODE:
|
||||||
|
return XDR_PUTINT32 (xdrs, lp);
|
||||||
|
case XDR_DECODE:
|
||||||
|
return XDR_GETINT32 (xdrs, lp);
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XDR 32bit unsigned integers */
|
||||||
|
bool_t
|
||||||
|
xdr_uint32_t (XDR *xdrs, uint32_t *ulp)
|
||||||
|
{
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_DECODE:
|
||||||
|
return XDR_GETINT32 (xdrs, (int32_t *) ulp);
|
||||||
|
case XDR_ENCODE:
|
||||||
|
return XDR_PUTINT32 (xdrs, (int32_t *) ulp);
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XDR 16bit integers */
|
||||||
|
bool_t
|
||||||
|
xdr_int16_t (XDR *xdrs, int16_t *ip)
|
||||||
|
{
|
||||||
|
int32_t t;
|
||||||
|
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_ENCODE:
|
||||||
|
t = (int32_t) *ip;
|
||||||
|
return XDR_PUTINT32 (xdrs, &t);
|
||||||
|
case XDR_DECODE:
|
||||||
|
if (!XDR_GETINT32 (xdrs, &t))
|
||||||
|
return FALSE;
|
||||||
|
*ip = (int16_t) t;
|
||||||
|
return TRUE;
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XDR 16bit unsigned integers */
|
||||||
|
bool_t
|
||||||
|
xdr_uint16_t (XDR *xdrs, uint16_t *uip)
|
||||||
|
{
|
||||||
|
uint32_t ut;
|
||||||
|
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_DECODE:
|
||||||
|
ut = (uint32_t) *uip;
|
||||||
|
return XDR_GETINT32 (xdrs, (int32_t *) &ut);
|
||||||
|
case XDR_ENCODE:
|
||||||
|
if (!XDR_PUTINT32 (xdrs, (int32_t *) &ut))
|
||||||
|
return FALSE;
|
||||||
|
*uip = (uint16_t) ut;
|
||||||
|
return TRUE;
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XDR 8bit integers */
|
||||||
|
bool_t
|
||||||
|
xdr_int8_t (XDR *xdrs, int8_t *ip)
|
||||||
|
{
|
||||||
|
int32_t t;
|
||||||
|
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_ENCODE:
|
||||||
|
t = (int32_t) *ip;
|
||||||
|
return XDR_PUTINT32 (xdrs, &t);
|
||||||
|
case XDR_DECODE:
|
||||||
|
if (!XDR_GETINT32 (xdrs, &t))
|
||||||
|
return FALSE;
|
||||||
|
*ip = (int8_t) t;
|
||||||
|
return TRUE;
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* XDR 8bit unsigned integers */
|
||||||
|
bool_t
|
||||||
|
xdr_uint8_t (XDR *xdrs, uint8_t *uip)
|
||||||
|
{
|
||||||
|
uint32_t ut;
|
||||||
|
|
||||||
|
switch (xdrs->x_op)
|
||||||
|
{
|
||||||
|
case XDR_DECODE:
|
||||||
|
ut = (uint32_t) *uip;
|
||||||
|
return XDR_GETINT32 (xdrs, (int32_t *) &ut);
|
||||||
|
case XDR_ENCODE:
|
||||||
|
if (!XDR_PUTINT32 (xdrs, (int32_t *) &ut))
|
||||||
|
return FALSE;
|
||||||
|
*uip = (uint8_t) ut;
|
||||||
|
return TRUE;
|
||||||
|
case XDR_FREE:
|
||||||
|
return TRUE;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue