|
|
1.1 ! root 1: /* ! 2: * Sun RPC is a product of Sun Microsystems, Inc. and is provided for ! 3: * unrestricted use provided that this legend is included on all tape ! 4: * media and as a part of the software program in whole or part. Users ! 5: * may copy or modify Sun RPC without charge, but are not authorized ! 6: * to license or distribute it to anyone else except as part of a product or ! 7: * program developed by the user. ! 8: * ! 9: * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE ! 10: * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR ! 11: * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. ! 12: * ! 13: * Sun RPC is provided with no support and without any obligation on the ! 14: * part of Sun Microsystems, Inc. to assist in its use, correction, ! 15: * modification or enhancement. ! 16: * ! 17: * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE ! 18: * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC ! 19: * OR ANY PART THEREOF. ! 20: * ! 21: * In no event will Sun Microsystems, Inc. be liable for any lost revenue ! 22: * or profits or other special, indirect and consequential damages, even if ! 23: * Sun has been advised of the possibility of such damages. ! 24: * ! 25: * Sun Microsystems, Inc. ! 26: * 2550 Garcia Avenue ! 27: * Mountain View, California 94043 ! 28: */ ! 29: #ifndef lint ! 30: static char sccsid[] = "@(#)auth_none.c 1.4 85/03/17 Copyr 1984 Sun Micro"; ! 31: #endif ! 32: ! 33: /* ! 34: * auth_none.c ! 35: * Creates a client authentication handle for passing "null" ! 36: * credentials and verifiers to remote systems. ! 37: * ! 38: * Copyright (C) 1984, Sun Microsystems, Inc. ! 39: */ ! 40: ! 41: #include "types.h" ! 42: #include "xdr.h" ! 43: #include "auth.h" ! 44: #define NULL ((caddr_t)0) ! 45: #define MAX_MARSHEL_SIZE 20 ! 46: ! 47: /* ! 48: * Authenticator operations routines ! 49: */ ! 50: static void authnone_verf(); ! 51: static void authnone_destroy(); ! 52: static bool_t authnone_marshal(); ! 53: static bool_t authnone_validate(); ! 54: static bool_t authnone_refresh(); ! 55: ! 56: static struct auth_ops ops = { ! 57: authnone_verf, ! 58: authnone_marshal, ! 59: authnone_validate, ! 60: authnone_refresh, ! 61: authnone_destroy ! 62: }; ! 63: ! 64: static AUTH no_client; ! 65: static char marshalled_client[MAX_MARSHEL_SIZE]; ! 66: static u_int mcnt = 0; ! 67: ! 68: AUTH * ! 69: authnone_create() ! 70: { ! 71: XDR xdr_stream; ! 72: register XDR *xdrs; ! 73: ! 74: if (! mcnt) { ! 75: no_client.ah_cred = no_client.ah_verf = _null_auth; ! 76: no_client.ah_ops = &ops; ! 77: xdrs = &xdr_stream; ! 78: xdrmem_create(xdrs, marshalled_client, (u_int)MAX_MARSHEL_SIZE, ! 79: XDR_ENCODE); ! 80: if ((! xdr_opaque_auth(xdrs, &no_client.ah_cred)) || ! 81: (! xdr_opaque_auth(xdrs, &no_client.ah_verf))) { ! 82: } else { ! 83: mcnt = XDR_GETPOS(xdrs); ! 84: } ! 85: XDR_DESTROY(xdrs); ! 86: } ! 87: return (&no_client); ! 88: } ! 89: ! 90: static bool_t ! 91: /* ARGSUSED */ ! 92: authnone_marshal(client, xdrs) ! 93: AUTH *client; ! 94: XDR *xdrs; ! 95: { ! 96: ! 97: return ((*xdrs->x_ops->x_putbytes)(xdrs, marshalled_client, mcnt)); ! 98: } ! 99: ! 100: static void ! 101: authnone_verf() ! 102: { ! 103: } ! 104: ! 105: static bool_t ! 106: authnone_validate() ! 107: { ! 108: ! 109: return (TRUE); ! 110: } ! 111: ! 112: static bool_t ! 113: authnone_refresh() ! 114: { ! 115: ! 116: return (FALSE); ! 117: } ! 118: ! 119: static void ! 120: authnone_destroy() ! 121: { ! 122: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.