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:
Ulrich Drepper 1998-11-30 16:42:19 +00:00
parent 348ed5157b
commit 5713a71e1a
10 changed files with 204 additions and 57 deletions

View File

@ -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>
* nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes.

19
INSTALL
View File

@ -247,7 +247,7 @@ build the GNU C library:
bugs which only show up in big projects like GNU `libc'. Version
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
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
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
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
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.8.1.0.23 may or may not work. Older versions definitely don't.
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.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
@ -305,6 +315,7 @@ Supported Configurations
following patterns:
alpha-*-linux
arm-*-linux
arm-*-linuxaout
arm-*-none
iX86-*-gnu

View File

@ -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.
@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.
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,
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
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
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
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.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
GNU @code{texinfo} 3.11

1
nis/Depend Normal file
View File

@ -0,0 +1 @@
nss

View File

@ -29,10 +29,10 @@
#include "nss-nis.h"
/* The parser is defined in a different module. */
extern int _nss_files_parse_servent (char *line, struct servent *result,
char *data, size_t datalen, int *errnop);
/* Get the declaration of the parser function. */
#define ENTNAME servent
#define EXTERN_PARSER
#include <nss/nss_files/files-parse.c>
__libc_lock_define_initialized (static, lock)
@ -156,6 +156,7 @@ static enum nss_status
internal_nis_getservent_r (struct servent *serv, char *buffer,
size_t buflen, int *errnop, intern_t *data)
{
struct parser_data *pdata = (void *) buffer;
int parse_res;
char *p;
@ -174,7 +175,7 @@ internal_nis_getservent_r (struct servent *serv, char *buffer,
while (isspace (*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)
return NSS_STATUS_TRYAGAIN;
data->next = data->next->next;

View File

@ -67,7 +67,7 @@ routines := auth_none auth_unix authuxprot bindrsvprt \
xdr_rec xdr_ref xdr_stdio publickey xdr_sizeof \
auth_des authdes_prot des_crypt des_impl des_soft \
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
install-bin := rpcgen

View File

@ -96,8 +96,8 @@ libc {
# x*
xdecrypt; xdr_authdes_cred; xdr_authdes_verf;
xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block;
xdr_getcredres; xdr_int32_t; xdr_key_netstarg; xdr_key_netstres;
xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; xdr_uint32_t;
xdr_unixcred;
xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; xdr_key_netstarg;
xdr_key_netstres; xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof;
xdr_uint16_t; xdr_uint32_t; xdr_uint8_t; xdr_unixcred;
}
}

View File

@ -271,12 +271,16 @@ struct xdr_discrim
extern bool_t xdr_void __P ((void));
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_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_u_long __P ((XDR *__xdrs, u_long *__ulp));
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_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_enum __P ((XDR *__xdrs, enum_t *__ep));
extern bool_t xdr_array __P ((XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,

View File

@ -151,45 +151,6 @@ xdr_u_int (XDR *xdrs, u_int *up)
#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
* same as xdr_u_long - open coded to save a proc call!

147
sunrpc/xdr_intXX_t.c Normal file
View File

@ -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;
}
}