usr/src/cmd/fs.d/nfs/mountd/nfsauth_xdr.c
author Pavan Mettu - Oracle Corporation - Menlo Park United States <Pavan.Mettu@Oracle.COM>
Wed, 11 Aug 2010 17:11:30 -0500
changeset 13092 fcc1e406c13f
parent 2140 043bd360aabc
permissions -rw-r--r--
6975309 PSARC2007_393 Move /etc/default/{nfs/autofs} parameters to SMF PSARC 2007/393 converting /etc/default/{nfs,autofs} to SMF properties
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2140
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     1
/*
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     2
 * CDDL HEADER START
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     3
 *
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     7
 *
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    11
 * and limitations under the License.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    12
 *
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    18
 *
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    19
 * CDDL HEADER END
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    20
 */
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    21
/*
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    22
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    23
 * Use is subject to license terms.
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    24
 */
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    25
#pragma ident	"%Z%%M%	%I%	%E% SMI"
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    26
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    27
#include <stdlib.h>
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    28
#include <nfs/auth.h>
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    29
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    30
bool_t
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    31
xdr_varg(XDR *xdrs, varg_t *vap)
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    32
{
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    33
	if (!xdr_u_int(xdrs, &vap->vers))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    34
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    35
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    36
	switch (vap->vers) {
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    37
	case V_PROTO:
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    38
		if (!xdr_nfsauth_arg(xdrs, &vap->arg_u.arg))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    39
			return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    40
		break;
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    41
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    42
	/* Additional versions of the args go here */
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    43
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    44
	default:
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    45
		vap->vers = V_ERROR;
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    46
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    47
		/* NOTREACHED */
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    48
	}
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    49
	return (TRUE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    50
}
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    51
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    52
bool_t
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    53
xdr_nfsauth_arg(XDR *xdrs, nfsauth_arg_t *argp)
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    54
{
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    55
	if (!xdr_u_int(xdrs, &argp->cmd))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    56
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    57
	if (!xdr_netobj(xdrs, &argp->areq.req_client))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    58
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    59
	if (!xdr_string(xdrs, &argp->areq.req_netid, ~0))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    60
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    61
	if (!xdr_string(xdrs, &argp->areq.req_path, A_MAXPATH))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    62
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    63
	if (!xdr_int(xdrs, &argp->areq.req_flavor))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    64
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    65
	return (TRUE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    66
}
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    67
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    68
bool_t
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    69
xdr_nfsauth_res(XDR *xdrs, nfsauth_res_t *argp)
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    70
{
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    71
	if (!xdr_u_int(xdrs, &argp->stat))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    72
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    73
	if (!xdr_int(xdrs, &argp->ares.auth_perm))
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    74
		return (FALSE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    75
	return (TRUE);
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents:
diff changeset
    76
}