From b02f501306799bd579134ffe3d74429cfb4bc7ba Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 18 Apr 1999 10:21:47 +0000 Subject: Update. 1999-04-18 Thorsten Kukuk * sunrpc/Makefile: Remove special handling of bootparam.x, add rpcsvc/bootparam.h to headers. * sunrpc/rpcsvc/bootparam.h: New, for backward compatibility. * sunrpc/rpcsvc/bootparam.x: Renamed to... * sunrpc/rpcsvc/bootparam_prot.x: ...this. --- ChangeLog | 8 ++++ sunrpc/Makefile | 16 ++----- sunrpc/rpcsvc/bootparam.h | 25 +++++++++++ sunrpc/rpcsvc/bootparam.x | 97 ------------------------------------------ sunrpc/rpcsvc/bootparam_prot.x | 97 ++++++++++++++++++++++++++++++++++++++++++ sysdeps/unix/bsd/poll.c | 7 ++- 6 files changed, 138 insertions(+), 112 deletions(-) create mode 100644 sunrpc/rpcsvc/bootparam.h delete mode 100644 sunrpc/rpcsvc/bootparam.x create mode 100644 sunrpc/rpcsvc/bootparam_prot.x diff --git a/ChangeLog b/ChangeLog index dff9614c98..2102f54904 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +1999-04-18 Thorsten Kukuk + + * sunrpc/Makefile: Remove special handling of bootparam.x, + add rpcsvc/bootparam.h to headers. + * sunrpc/rpcsvc/bootparam.h: New, for backward compatibility. + * sunrpc/rpcsvc/bootparam.x: Renamed to... + * sunrpc/rpcsvc/bootparam_prot.x: ...this. + 1999-04-18 Ulrich Drepper * sysdeps/unix/bsd/poll.c (__poll): Add more compatiblity code to diff --git a/sunrpc/Makefile b/sunrpc/Makefile index 2176f86f54..a661084014 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -43,16 +43,15 @@ subdir := sunrpc # rpc_dtablesize.c -> rpc_dtable.c # svc_auth_unix.c -> svc_authux.c # xdr_reference.c -> xdr_ref.c -# rpcsvc/bootparam_prot.x -> rpcsvc/bootparam.x -rpcsvc = bootparam.x nlm_prot.x rstat.x \ +rpcsvc = bootparam_prot.x nlm_prot.x rstat.x \ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \ rusers.x spray.x nfs_prot.x rquota.x key_prot.x headers = $(addprefix rpc/,auth.h auth_unix.h clnt.h netdb.h pmap_clnt.h \ pmap_prot.h pmap_rmt.h rpc.h rpc_msg.h svc.h \ svc_auth.h types.h xdr.h auth_des.h \ des_crypt.h key_prot.h rpc_des.h) \ - $(rpcsvc:%=rpcsvc/%) + $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h install-others = $(inst_sysconfdir)/rpc generated = $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ $(rpcsvc:%.x=rpcsvc/%.stmp) rpc-proto.c rpc-proto.d rpcgen @@ -92,7 +91,6 @@ endif ifeq (no,$(cross-compiling)) # We can only build this library if we can run the rpcgen we build. headers += $(rpcsvc:%.x=rpcsvc/%.h) -install-others += $(inst_includedir)/rpcsvc/bootparam_prot.h extra-libs := librpcsvc extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. librpcsvc-routines = $(rpcsvc:%.x=x%) @@ -100,7 +98,7 @@ librpcsvc-inhibit-o = .os # Build no shared rpcsvc library. omit-deps = $(librpcsvc-routines) endif -CFLAGS-xbootparam.c = -Wno-unused +CFLAGS-xbootparam_prot.c = -Wno-unused CFLAGS-xnlm_prot.c = -Wno-unused CFLAGS-xrstat.c = -Wno-unused CFLAGS-xyppasswd.c = -Wno-unused @@ -129,14 +127,6 @@ $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ # preprocessor. rpcgen-cmd = $(built-program-cmd) -# The proper file name is longer than 14 chars, so we install it under -# a shorter name. But if the filesystem can handle it, we want to -# install under the proper name as well. -$(inst_includedir)/rpcsvc/bootparam_prot.h: \ - $(inst_includedir)/rpcsvc/bootparam.h $(+force) - @echo It is safe to ignore an error here if this file name is too long. - -$(do-install) - # Install the rpc data base file. $(inst_sysconfdir)/rpc: etc.rpc $(+force) $(do-install) diff --git a/sunrpc/rpcsvc/bootparam.h b/sunrpc/rpcsvc/bootparam.h new file mode 100644 index 0000000000..f26ab5a4b2 --- /dev/null +++ b/sunrpc/rpcsvc/bootparam.h @@ -0,0 +1,25 @@ +/* Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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. */ + +#ifndef _RPCSVC_BOOTPARAM_H +#define _RPCSVC_BOOTPARAM_H + +#include + +#endif /* _RPCSVC_BOOTPARAM_H */ + diff --git a/sunrpc/rpcsvc/bootparam.x b/sunrpc/rpcsvc/bootparam.x deleted file mode 100644 index 65bc0dcbfb..0000000000 --- a/sunrpc/rpcsvc/bootparam.x +++ /dev/null @@ -1,97 +0,0 @@ -/* @(#)bootparam_prot.x 2.1 88/08/01 4.0 RPCSRC */ -/* @(#)bootparam_prot.x 1.2 87/06/24 Copyr 1987 Sun Micro */ - -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * 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 - */ - -/* - * RPC for bootparms service. - * There are two procedures: - * WHOAMI takes a net address and returns a client name and also a - * likely net address for routing - * GETFILE takes a client name and file identifier and returns the - * server name, server net address and pathname for the file. - * file identifiers typically include root, swap, pub and dump - */ - -#ifdef RPC_HDR -%#include -%#include -%#include -%#include -#endif - -const MAX_MACHINE_NAME = 255; -const MAX_PATH_LEN = 1024; -const MAX_FILEID = 32; -const IP_ADDR_TYPE = 1; - -typedef string bp_machine_name_t; -typedef string bp_path_t; -typedef string bp_fileid_t; - -struct ip_addr_t { - char net; - char host; - char lh; - char impno; -}; - -union bp_address switch (int address_type) { - case IP_ADDR_TYPE: - ip_addr_t ip_addr; -}; - -struct bp_whoami_arg { - bp_address client_address; -}; - -struct bp_whoami_res { - bp_machine_name_t client_name; - bp_machine_name_t domain_name; - bp_address router_address; -}; - -struct bp_getfile_arg { - bp_machine_name_t client_name; - bp_fileid_t file_id; -}; - -struct bp_getfile_res { - bp_machine_name_t server_name; - bp_address server_address; - bp_path_t server_path; -}; - -program BOOTPARAMPROG { - version BOOTPARAMVERS { - bp_whoami_res BOOTPARAMPROC_WHOAMI(bp_whoami_arg) = 1; - bp_getfile_res BOOTPARAMPROC_GETFILE(bp_getfile_arg) = 2; - } = 1; -} = 100026; diff --git a/sunrpc/rpcsvc/bootparam_prot.x b/sunrpc/rpcsvc/bootparam_prot.x new file mode 100644 index 0000000000..65bc0dcbfb --- /dev/null +++ b/sunrpc/rpcsvc/bootparam_prot.x @@ -0,0 +1,97 @@ +/* @(#)bootparam_prot.x 2.1 88/08/01 4.0 RPCSRC */ +/* @(#)bootparam_prot.x 1.2 87/06/24 Copyr 1987 Sun Micro */ + +/* + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * 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 + */ + +/* + * RPC for bootparms service. + * There are two procedures: + * WHOAMI takes a net address and returns a client name and also a + * likely net address for routing + * GETFILE takes a client name and file identifier and returns the + * server name, server net address and pathname for the file. + * file identifiers typically include root, swap, pub and dump + */ + +#ifdef RPC_HDR +%#include +%#include +%#include +%#include +#endif + +const MAX_MACHINE_NAME = 255; +const MAX_PATH_LEN = 1024; +const MAX_FILEID = 32; +const IP_ADDR_TYPE = 1; + +typedef string bp_machine_name_t; +typedef string bp_path_t; +typedef string bp_fileid_t; + +struct ip_addr_t { + char net; + char host; + char lh; + char impno; +}; + +union bp_address switch (int address_type) { + case IP_ADDR_TYPE: + ip_addr_t ip_addr; +}; + +struct bp_whoami_arg { + bp_address client_address; +}; + +struct bp_whoami_res { + bp_machine_name_t client_name; + bp_machine_name_t domain_name; + bp_address router_address; +}; + +struct bp_getfile_arg { + bp_machine_name_t client_name; + bp_fileid_t file_id; +}; + +struct bp_getfile_res { + bp_machine_name_t server_name; + bp_address server_address; + bp_path_t server_path; +}; + +program BOOTPARAMPROG { + version BOOTPARAMVERS { + bp_whoami_res BOOTPARAMPROC_WHOAMI(bp_whoami_arg) = 1; + bp_getfile_res BOOTPARAMPROC_GETFILE(bp_getfile_arg) = 2; + } = 1; +} = 100026; diff --git a/sysdeps/unix/bsd/poll.c b/sysdeps/unix/bsd/poll.c index 5f65e76122..a1dc3e0268 100644 --- a/sysdeps/unix/bsd/poll.c +++ b/sysdeps/unix/bsd/poll.c @@ -104,7 +104,7 @@ __poll (fds, nfds, timeout) tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; - do + while (1) { ready = __select (maxfd + 1, rset, wset, xset, timeout == -1 ? NULL : &tv); @@ -169,9 +169,12 @@ __poll (fds, nfds, timeout) else if (errno == EBADF) f->revents |= POLLNVAL; } + /* Try again. */ + continue; } + + break; } - while (ready == 0); if (ready > 0) for (f = fds; f < &fds[nfds]; ++f) -- cgit v1.2.3