[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]

FreeBSD/Linux Kernel Cross Reference
sys/rpc/auth_none.c

Version: -  FREEBSD  -  FREEBSD7  -  FREEBSD70  -  FREEBSD6  -  FREEBSD63  -  FREEBSD62  -  FREEBSD61  -  FREEBSD60  -  FREEBSD5  -  FREEBSD55  -  FREEBSD54  -  FREEBSD53  -  FREEBSD52  -  FREEBSD51  -  FREEBSD50  -  FREEBSD4  -  FREEBSD3  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  OPENSOLARIS  -  minix-3-1-1  -  TRUSTEDBSD-SEBSD  -  FREEBSD-LIBC  -  FREEBSD7-LIBC  -  FREEBSD6-LIBC  -  GLIBC27 
SearchContext: -  none  -  excerpts  -  bigexcerpts 

  1 /*      $NetBSD: auth_none.c,v 1.13 2000/01/22 22:19:17 mycroft Exp $   */
  2 
  3 /*
  4  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
  5  * unrestricted use provided that this legend is included on all tape
  6  * media and as a part of the software program in whole or part.  Users
  7  * may copy or modify Sun RPC without charge, but are not authorized
  8  * to license or distribute it to anyone else except as part of a product or
  9  * program developed by the user.
 10  *
 11  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
 12  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
 13  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
 14  *
 15  * Sun RPC is provided with no support and without any obligation on the
 16  * part of Sun Microsystems, Inc. to assist in its use, correction,
 17  * modification or enhancement.
 18  *
 19  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
 20  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
 21  * OR ANY PART THEREOF.
 22  *
 23  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
 24  * or profits or other special, indirect and consequential damages, even if
 25  * Sun has been advised of the possibility of such damages.
 26  *
 27  * Sun Microsystems, Inc.
 28  * 2550 Garcia Avenue
 29  * Mountain View, California  94043
 30  */
 31 
 32 #if defined(LIBC_SCCS) && !defined(lint)
 33 static char *sccsid2 = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
 34 static char *sccsid = "@(#)auth_none.c  2.1 88/07/29 4.0 RPCSRC";
 35 #endif
 36 #include <sys/cdefs.h>
 37 __FBSDID("$FreeBSD: src/sys/rpc/auth_none.c,v 1.2 2008/11/03 10:38:00 dfr Exp $");
 38 
 39 /*
 40  * auth_none.c
 41  * Creates a client authentication handle for passing "null"
 42  * credentials and verifiers to remote systems.
 43  *
 44  * Copyright (C) 1984, Sun Microsystems, Inc.
 45  */
 46 
 47 #include <sys/param.h>
 48 #include <sys/systm.h>
 49 #include <sys/kernel.h>
 50 #include <sys/lock.h>
 51 #include <sys/malloc.h>
 52 #include <sys/mutex.h>
 53 
 54 #include <rpc/types.h>
 55 #include <rpc/xdr.h>
 56 #include <rpc/auth.h>
 57 #include <rpc/clnt.h>
 58 
 59 #define MAX_MARSHAL_SIZE 20
 60 
 61 /*
 62  * Authenticator operations routines
 63  */
 64 
 65 static bool_t authnone_marshal (AUTH *, uint32_t, XDR *, struct mbuf *);
 66 static void authnone_verf (AUTH *);
 67 static bool_t authnone_validate (AUTH *, uint32_t, struct opaque_auth *,
 68     struct mbuf **);
 69 static bool_t authnone_refresh (AUTH *, void *);
 70 static void authnone_destroy (AUTH *);
 71 
 72 static struct auth_ops authnone_ops = {
 73         .ah_nextverf =          authnone_verf,
 74         .ah_marshal =           authnone_marshal,
 75         .ah_validate =          authnone_validate,
 76         .ah_refresh =           authnone_refresh,
 77         .ah_destroy =           authnone_destroy,
 78 };
 79 
 80 struct authnone_private {
 81         AUTH    no_client;
 82         char    mclient[MAX_MARSHAL_SIZE];
 83         u_int   mcnt;
 84 };
 85 
 86 static struct authnone_private authnone_private;
 87 
 88 static void
 89 authnone_init(void *dummy)
 90 {
 91         struct authnone_private *ap = &authnone_private;
 92         XDR xdrs;
 93 
 94         ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
 95         ap->no_client.ah_ops = &authnone_ops;
 96         xdrmem_create(&xdrs, ap->mclient, MAX_MARSHAL_SIZE, XDR_ENCODE);
 97         xdr_opaque_auth(&xdrs, &ap->no_client.ah_cred);
 98         xdr_opaque_auth(&xdrs, &ap->no_client.ah_verf);
 99         ap->mcnt = XDR_GETPOS(&xdrs);
100         XDR_DESTROY(&xdrs);
101 }
102 SYSINIT(authnone_init, SI_SUB_KMEM, SI_ORDER_ANY, authnone_init, NULL);
103 
104 AUTH *
105 authnone_create()
106 {
107         struct authnone_private *ap = &authnone_private;
108 
109         return (&ap->no_client);
110 }
111 
112 /*ARGSUSED*/
113 static bool_t
114 authnone_marshal(AUTH *client, uint32_t xid, XDR *xdrs, struct mbuf *args)
115 {
116         struct authnone_private *ap = &authnone_private;
117 
118         KASSERT(xdrs != NULL, ("authnone_marshal: xdrs is null"));
119 
120         if (!XDR_PUTBYTES(xdrs, ap->mclient, ap->mcnt))
121                 return (FALSE);
122 
123         xdrmbuf_append(xdrs, args);
124 
125         return (TRUE);
126 }
127 
128 /* All these unused parameters are required to keep ANSI-C from grumbling */
129 /*ARGSUSED*/
130 static void
131 authnone_verf(AUTH *client)
132 {
133 }
134 
135 /*ARGSUSED*/
136 static bool_t
137 authnone_validate(AUTH *client, uint32_t xid, struct opaque_auth *opaque,
138     struct mbuf **mrepp)
139 {
140 
141         return (TRUE);
142 }
143 
144 /*ARGSUSED*/
145 static bool_t
146 authnone_refresh(AUTH *client, void *dummy)
147 {
148 
149         return (FALSE);
150 }
151 
152 /*ARGSUSED*/
153 static void
154 authnone_destroy(AUTH *client)
155 {
156 }
157 

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.