From 54f4f73e2619937c34f169ad6ffcd15b9a57e1e6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 13 Nov 1999 18:04:57 +0000 Subject: Update. 1999-11-13 Thorsten Kukuk * 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. --- sunrpc/key_call.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'sunrpc/key_call.c') 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,6 +1,3 @@ -/* - * 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 @@ -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 + * The Interface to keyserver protocoll 2, RPC over AF_UNIX and Linux/doors + * was added by Thorsten Kukuk + * Since the Linux/doors project was stopped, I doubt that this code will + * ever be useful . */ #include @@ -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 } -- cgit v1.2.3