diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | sunrpc/key_call.c | 25 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/bits/signum.h | 1 |
3 files changed, 27 insertions, 7 deletions
@@ -1,3 +1,11 @@ +1999-11-13 Thorsten Kukuk <kukuk@suse.de> + + * sysdeps/unix/sysv/linux/sparc/bits/signum.h: Add SIGPWR define + from current kernel headers. + + * sunrpc/key_call.c: Use /usr/etc/keyenvoy only if we don't have + SO_PASSCRED defined. + 1999-11-12 Ulrich Drepper <drepper@cygnus.com> * locale/C-ctype.c: Fix typo in char class name. diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c index 2f4ca25d94..895e5a3a4d 100644 --- a/sunrpc/key_call.c +++ b/sunrpc/key_call.c @@ -1,7 +1,4 @@ /* - * Copyright (c) 1988 by Sun Microsystems, Inc. - */ -/* * 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 @@ -29,11 +26,15 @@ * 2550 Garcia Avenue * Mountain View, California 94043 */ - +/* + * Copyright (c) 1988 by Sun Microsystems, Inc. + */ /* * The original source is from the RPCSRC 4.0 package from Sun Microsystems. - * The Interface to keyserver protocoll 2, RPC over AF_UNIX und Linux/doors - * was added by Thorsten Kukuk <kukuk@vt.uni-paderborn.de> + * The Interface to keyserver protocoll 2, RPC over AF_UNIX and Linux/doors + * was added by Thorsten Kukuk <kukuk@suse.de> + * Since the Linux/doors project was stopped, I doubt that this code will + * ever be useful <kukuk@suse.de>. */ #include <stdio.h> @@ -59,8 +60,9 @@ #define debug(msg) /* turn off debugging */ +#ifndef SO_PASSCRED extern int _openchild (const char *command, FILE **fto, FILE **ffrom); - +#endif static int key_call (u_long, xdrproc_t xdr_arg, char *, xdrproc_t xdr_rslt, char *) internal_function; @@ -272,6 +274,7 @@ cryptkeyres *(*__key_encryptsession_pk_LOCAL) (uid_t, char *); cryptkeyres *(*__key_decryptsession_pk_LOCAL) (uid_t, char *); des_block *(*__key_gendes_LOCAL) (uid_t, char *); +#ifndef SO_PASSCRED static int internal_function key_call_keyenvoy (u_long proc, xdrproc_t xdr_arg, char *arg, @@ -349,6 +352,7 @@ key_call_keyenvoy (u_long proc, xdrproc_t xdr_arg, char *arg, return success; } +#endif struct key_call_private { CLIENT *client; /* Client handle */ @@ -556,7 +560,9 @@ internal_function key_call (u_long proc, xdrproc_t xdr_arg, char *arg, xdrproc_t xdr_rslt, char *rslt) { +#ifndef SO_PASSCRED static int use_keyenvoy; +#endif #ifdef HAVE_DOORS static int not_use_doors; #endif @@ -591,6 +597,10 @@ key_call (u_long proc, xdrproc_t xdr_arg, char *arg, not_use_doors = 1; } #endif + +#ifdef SO_PASSCRED + return key_call_socket (proc, xdr_arg, arg, xdr_rslt, rslt); +#else if (!use_keyenvoy) { if (key_call_socket (proc, xdr_arg, arg, xdr_rslt, rslt)) @@ -598,4 +608,5 @@ key_call (u_long proc, xdrproc_t xdr_arg, char *arg, use_keyenvoy = 1; } return key_call_keyenvoy (proc, xdr_arg, arg, xdr_rslt, rslt); +#endif } diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum.h b/sysdeps/unix/sysv/linux/sparc/bits/signum.h index 976eef2758..31a6901b1a 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/signum.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/signum.h @@ -65,6 +65,7 @@ #define SIGPROF 27 #define SIGWINCH 28 #define SIGLOST 29 +#define SIGPWR SIGLOST #define SIGUSR1 30 #define SIGUSR2 31 |