summaryrefslogtreecommitdiffstats
path: root/contrib/amd/libamu/xdr_func.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/amd/libamu/xdr_func.c')
-rw-r--r--contrib/amd/libamu/xdr_func.c466
1 files changed, 260 insertions, 206 deletions
diff --git a/contrib/amd/libamu/xdr_func.c b/contrib/amd/libamu/xdr_func.c
index 1592a0e..6bd0254 100644
--- a/contrib/amd/libamu/xdr_func.c
+++ b/contrib/amd/libamu/xdr_func.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997-2004 Erez Zadok
+ * Copyright (c) 1997-2006 Erez Zadok
* Copyright (c) 1990 Jan-Simon Pendry
* Copyright (c) 1990 Imperial College of Science, Technology & Medicine
* Copyright (c) 1990 The Regents of the University of California.
@@ -36,9 +36,8 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * %W% (Berkeley) %G%
*
- * $Id: xdr_func.c,v 1.4.2.8 2004/01/06 03:15:24 ezk Exp $
+ * File: am-utils/libamu/xdr_func.c
*
*/
@@ -51,10 +50,24 @@
#include <am_defs.h>
#include <amu.h>
+#ifdef __RPCSVC_MOUNT_H__
+# error IRIX6 should not include rpcsvc/mount.h
+#endif /* __RPCSVC_MOUNT_H__ */
/*
* MACROS:
*/
+#ifdef HAVE_FS_AUTOFS
+# ifndef AUTOFS_MAXCOMPONENTLEN
+# define AUTOFS_MAXCOMPONENTLEN 255
+# endif /* not AUTOFS_MAXCOMPONENTLEN */
+# ifndef AUTOFS_MAXOPTSLEN
+# define AUTOFS_MAXOPTSLEN 255
+# endif /* not AUTOFS_MAXOPTSLEN */
+# ifndef AUTOFS_MAXPATHLEN
+# define AUTOFS_MAXPATHLEN 1024
+# endif /* not AUTOFS_MAXPATHLEN */
+#endif /* HAVE_FS_AUTOFS */
/* forward definitions, are they needed? */
extern bool_t xdr_exportnode(XDR *xdrs, exportnode *objp);
@@ -66,10 +79,8 @@ extern bool_t xdr_name(XDR *xdrs, name *objp);
bool_t
xdr_attrstat(XDR *xdrs, nfsattrstat *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_attrstat:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->ns_status)) {
return (FALSE);
@@ -92,10 +103,8 @@ xdr_attrstat(XDR *xdrs, nfsattrstat *objp)
bool_t
xdr_createargs(XDR *xdrs, nfscreateargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_createargs:");
-#endif /* DEBUG */
if (!xdr_diropargs(xdrs, &objp->ca_where)) {
return (FALSE);
@@ -112,10 +121,8 @@ xdr_createargs(XDR *xdrs, nfscreateargs *objp)
bool_t
xdr_dirlist(XDR *xdrs, nfsdirlist *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_dirlist:");
-#endif /* DEBUG */
if (!xdr_pointer(xdrs, (char **) &objp->dl_entries, sizeof(nfsentry), (XDRPROC_T_TYPE) xdr_entry)) {
return (FALSE);
@@ -132,10 +139,8 @@ xdr_dirlist(XDR *xdrs, nfsdirlist *objp)
bool_t
xdr_diropargs(XDR *xdrs, nfsdiropargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_diropargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->da_fhandle)) {
return (FALSE);
@@ -152,10 +157,8 @@ xdr_diropargs(XDR *xdrs, nfsdiropargs *objp)
bool_t
xdr_diropokres(XDR *xdrs, nfsdiropokres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_diropokres:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->drok_fhandle)) {
return (FALSE);
@@ -172,10 +175,8 @@ xdr_diropokres(XDR *xdrs, nfsdiropokres *objp)
bool_t
xdr_diropres(XDR *xdrs, nfsdiropres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_diropres:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->dr_status)) {
return (FALSE);
@@ -198,10 +199,8 @@ xdr_diropres(XDR *xdrs, nfsdiropres *objp)
bool_t
xdr_dirpath(XDR *xdrs, dirpath *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_dirpath:");
-#endif /* DEBUG */
if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
return (FALSE);
@@ -215,10 +214,8 @@ xdr_dirpath(XDR *xdrs, dirpath *objp)
bool_t
xdr_entry(XDR *xdrs, nfsentry *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_entry:");
-#endif /* DEBUG */
if (!xdr_u_int(xdrs, &objp->ne_fileid)) {
return (FALSE);
@@ -241,10 +238,8 @@ xdr_entry(XDR *xdrs, nfsentry *objp)
bool_t
xdr_exportnode(XDR *xdrs, exportnode *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_exportnode:");
-#endif /* DEBUG */
if (!xdr_dirpath(xdrs, &objp->ex_dir)) {
return (FALSE);
@@ -264,10 +259,8 @@ xdr_exportnode(XDR *xdrs, exportnode *objp)
bool_t
xdr_exports(XDR *xdrs, exports *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_exports:");
-#endif /* DEBUG */
if (!xdr_pointer(xdrs, (char **) objp, sizeof(exportnode), (XDRPROC_T_TYPE) xdr_exportnode)) {
return (FALSE);
@@ -281,10 +274,8 @@ xdr_exports(XDR *xdrs, exports *objp)
bool_t
xdr_fattr(XDR *xdrs, nfsfattr *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_fattr:");
-#endif /* DEBUG */
if (!xdr_ftype(xdrs, &objp->na_type)) {
return (FALSE);
@@ -337,10 +328,8 @@ xdr_fattr(XDR *xdrs, nfsfattr *objp)
bool_t
xdr_fhandle(XDR *xdrs, fhandle objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_fhandle:");
-#endif /* DEBUG */
if (!xdr_opaque(xdrs, objp, NFS_FHSIZE)) {
return (FALSE);
@@ -354,10 +343,8 @@ xdr_fhandle(XDR *xdrs, fhandle objp)
bool_t
xdr_fhstatus(XDR *xdrs, fhstatus *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_fhstatus:");
-#endif /* DEBUG */
if (!xdr_u_int(xdrs, &objp->fhs_status)) {
return (FALSE);
@@ -374,10 +361,8 @@ xdr_fhstatus(XDR *xdrs, fhstatus *objp)
bool_t
xdr_filename(XDR *xdrs, filename *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_filename:");
-#endif /* DEBUG */
if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN)) {
return (FALSE);
@@ -391,12 +376,12 @@ xdr_filename(XDR *xdrs, filename *objp)
bool_t
xdr_ftype(XDR *xdrs, nfsftype *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ enum_t local_obj = *objp;
+
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_ftype:");
-#endif /* DEBUG */
- if (!xdr_enum(xdrs, (enum_t *) objp)) {
+ if (!xdr_enum(xdrs, &local_obj)) {
return (FALSE);
}
return (TRUE);
@@ -408,10 +393,8 @@ xdr_ftype(XDR *xdrs, nfsftype *objp)
bool_t
xdr_groupnode(XDR *xdrs, groupnode *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_groupnode:");
-#endif /* DEBUG */
if (!xdr_name(xdrs, &objp->gr_name)) {
return (FALSE);
@@ -428,10 +411,8 @@ xdr_groupnode(XDR *xdrs, groupnode *objp)
bool_t
xdr_groups(XDR *xdrs, groups *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_groups:");
-#endif /* DEBUG */
if (!xdr_pointer(xdrs, (char **) objp, sizeof(groupnode), (XDRPROC_T_TYPE) xdr_groupnode)) {
return (FALSE);
@@ -445,10 +426,8 @@ xdr_groups(XDR *xdrs, groups *objp)
bool_t
xdr_linkargs(XDR *xdrs, nfslinkargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_linkargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->la_fhandle)) {
return (FALSE);
@@ -465,10 +444,8 @@ xdr_linkargs(XDR *xdrs, nfslinkargs *objp)
bool_t
xdr_mountbody(XDR *xdrs, mountbody *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_mountbody:");
-#endif /* DEBUG */
if (!xdr_name(xdrs, &objp->ml_hostname)) {
return (FALSE);
@@ -488,10 +465,8 @@ xdr_mountbody(XDR *xdrs, mountbody *objp)
bool_t
xdr_mountlist(XDR *xdrs, mountlist *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_mountlist:");
-#endif /* DEBUG */
if (!xdr_pointer(xdrs, (char **) objp, sizeof(mountbody), (XDRPROC_T_TYPE) xdr_mountbody)) {
return (FALSE);
@@ -501,94 +476,12 @@ xdr_mountlist(XDR *xdrs, mountlist *objp)
#endif /* not HAVE_XDR_MOUNTLIST */
-#if defined(HAVE_FS_NFS3) && !defined(HAVE_XDR_MOUNTRES3)
-/*
- * This ifdef is a hack: this whole file needs to be compiled
- * only if the system has NFS V3 and does not have the xdr_mountres3
- * function. Autoconf should pick this source file to compile only
- * if these two conditions apply.
- */
-
-bool_t
-xdr_fhandle3(XDR *xdrs, fhandle3 *objp)
-{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
- plog(XLOG_DEBUG, "xdr_fhandle3:");
-#endif /* DEBUG */
-
- if (!xdr_bytes(xdrs,
- (char **) &objp->fhandle3_val,
- (u_int *) &objp->fhandle3_len,
- FHSIZE3))
- return (FALSE);
- return (TRUE);
-}
-
-
-bool_t
-xdr_mountstat3(XDR *xdrs, mountstat3 *objp)
-{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
- plog(XLOG_DEBUG, "xdr_mountstat3:");
-#endif /* DEBUG */
-
- if (!xdr_enum(xdrs, (enum_t *)objp))
- return (FALSE);
- return (TRUE);
-}
-
-
-bool_t
-xdr_mountres3_ok(XDR *xdrs, mountres3_ok *objp)
-{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
- plog(XLOG_DEBUG, "xdr_mountres3_ok:");
-#endif /* DEBUG */
-
- if (!xdr_fhandle3(xdrs, &objp->fhandle))
- return (FALSE);
- if (!xdr_array(xdrs,
- (char **)&objp->auth_flavors.auth_flavors_val,
- (u_int *) &objp->auth_flavors.auth_flavors_len,
- ~0,
- sizeof (int),
- (xdrproc_t) xdr_int))
- return (FALSE);
- return (TRUE);
-}
-
-
-bool_t
-xdr_mountres3(XDR *xdrs, mountres3 *objp)
-{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
- plog(XLOG_DEBUG, "xdr_mountres3:");
-#endif /* DEBUG */
-
- if (!xdr_mountstat3(xdrs, &objp->fhs_status))
- return (FALSE);
-
- if (objp->fhs_status == 0) { /* 0 == MNT_OK or MNT3_OK */
- if (!xdr_mountres3_ok(xdrs, &objp->mountres3_u.mountinfo))
- return (FALSE);
- }
- return (TRUE);
-}
-#endif /* defined(HAVE_FS_NFS3) && !defined(HAVE_XDR_MOUNTRES3) */
-
-
#ifndef HAVE_XDR_NAME
bool_t
xdr_name(XDR *xdrs, name *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_name:");
-#endif /* DEBUG */
if (!xdr_string(xdrs, objp, MNTNAMLEN)) {
return (FALSE);
@@ -602,10 +495,8 @@ xdr_name(XDR *xdrs, name *objp)
bool_t
xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_nfs_fh:");
-#endif /* DEBUG */
if (!xdr_opaque(xdrs, (caddr_t) objp->fh_data, NFS_FHSIZE)) {
return (FALSE);
@@ -619,10 +510,8 @@ xdr_nfs_fh(XDR *xdrs, am_nfs_fh *objp)
bool_t
xdr_nfscookie(XDR *xdrs, nfscookie objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_nfscookie:");
-#endif /* DEBUG */
if (!xdr_opaque(xdrs, objp, NFS_COOKIESIZE)) {
return (FALSE);
@@ -636,10 +525,8 @@ xdr_nfscookie(XDR *xdrs, nfscookie objp)
bool_t
xdr_nfspath(XDR *xdrs, nfspath *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_nfspath:");
-#endif /* DEBUG */
if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN)) {
return (FALSE);
@@ -653,12 +540,12 @@ xdr_nfspath(XDR *xdrs, nfspath *objp)
bool_t
xdr_nfsstat(XDR *xdrs, nfsstat *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ enum_t local_obj = *objp;
+
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_nfsstat:");
-#endif /* DEBUG */
- if (!xdr_enum(xdrs, (enum_t *) objp)) {
+ if (!xdr_enum(xdrs, &local_obj)) {
return (FALSE);
}
return (TRUE);
@@ -670,10 +557,8 @@ xdr_nfsstat(XDR *xdrs, nfsstat *objp)
bool_t
xdr_nfstime(XDR *xdrs, nfstime *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_nfstime:");
-#endif /* DEBUG */
if (!xdr_u_int(xdrs, (u_int *) &objp->nt_seconds)) {
return (FALSE);
@@ -690,11 +575,8 @@ xdr_nfstime(XDR *xdrs, nfstime *objp)
bool_t
xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr_obj)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_pointer:");
-#endif /* DEBUG */
-
bool_t more_data;
@@ -716,10 +598,8 @@ xdr_pointer(register XDR *xdrs, char **objpp, u_int obj_size, XDRPROC_T_TYPE xdr
bool_t
xdr_readargs(XDR *xdrs, nfsreadargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->ra_fhandle)) {
return (FALSE);
@@ -742,10 +622,8 @@ xdr_readargs(XDR *xdrs, nfsreadargs *objp)
bool_t
xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readdirargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->rda_fhandle)) {
return (FALSE);
@@ -765,10 +643,8 @@ xdr_readdirargs(XDR *xdrs, nfsreaddirargs *objp)
bool_t
xdr_readdirres(XDR *xdrs, nfsreaddirres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readdirres:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->rdr_status)) {
return (FALSE);
@@ -791,10 +667,8 @@ xdr_readdirres(XDR *xdrs, nfsreaddirres *objp)
bool_t
xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readlinkres:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->rlr_status)) {
return (FALSE);
@@ -817,10 +691,8 @@ xdr_readlinkres(XDR *xdrs, nfsreadlinkres *objp)
bool_t
xdr_readokres(XDR *xdrs, nfsreadokres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readokres:");
-#endif /* DEBUG */
if (!xdr_fattr(xdrs, &objp->raok_attributes)) {
return (FALSE);
@@ -840,10 +712,8 @@ xdr_readokres(XDR *xdrs, nfsreadokres *objp)
bool_t
xdr_readres(XDR *xdrs, nfsreadres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_readres:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->rr_status)) {
return (FALSE);
@@ -866,10 +736,8 @@ xdr_readres(XDR *xdrs, nfsreadres *objp)
bool_t
xdr_renameargs(XDR *xdrs, nfsrenameargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_renameargs:");
-#endif /* DEBUG */
if (!xdr_diropargs(xdrs, &objp->rna_from)) {
return (FALSE);
@@ -886,10 +754,8 @@ xdr_renameargs(XDR *xdrs, nfsrenameargs *objp)
bool_t
xdr_sattr(XDR *xdrs, nfssattr *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_sattr:");
-#endif /* DEBUG */
if (!xdr_u_int(xdrs, &objp->sa_mode)) {
return (FALSE);
@@ -918,10 +784,8 @@ xdr_sattr(XDR *xdrs, nfssattr *objp)
bool_t
xdr_sattrargs(XDR *xdrs, nfssattrargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_sattrargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->sag_fhandle)) {
return (FALSE);
@@ -938,10 +802,8 @@ xdr_sattrargs(XDR *xdrs, nfssattrargs *objp)
bool_t
xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_statfsokres:");
-#endif /* DEBUG */
if (!xdr_u_int(xdrs, &objp->sfrok_tsize)) {
return (FALSE);
@@ -967,10 +829,8 @@ xdr_statfsokres(XDR *xdrs, nfsstatfsokres *objp)
bool_t
xdr_statfsres(XDR *xdrs, nfsstatfsres *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_statfsres:");
-#endif /* DEBUG */
if (!xdr_nfsstat(xdrs, &objp->sfr_status)) {
return (FALSE);
@@ -993,10 +853,8 @@ xdr_statfsres(XDR *xdrs, nfsstatfsres *objp)
bool_t
xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_symlinkargs:");
-#endif /* DEBUG */
if (!xdr_diropargs(xdrs, &objp->sla_from)) {
return (FALSE);
@@ -1016,10 +874,8 @@ xdr_symlinkargs(XDR *xdrs, nfssymlinkargs *objp)
bool_t
xdr_writeargs(XDR *xdrs, nfswriteargs *objp)
{
-#ifdef DEBUG
- amuDebug(D_XDRTRACE)
+ if (amuDebug(D_XDRTRACE))
plog(XLOG_DEBUG, "xdr_writeargs:");
-#endif /* DEBUG */
if (!xdr_nfs_fh(xdrs, &objp->wra_fhandle)) {
return (FALSE);
@@ -1042,3 +898,201 @@ xdr_writeargs(XDR *xdrs, nfswriteargs *objp)
return (TRUE);
}
#endif /* not HAVE_XDR_WRITEARGS */
+
+
+/*
+ * NFS V3 XDR FUNCTIONS:
+ */
+#ifdef HAVE_FS_NFS3
+bool_t
+xdr_am_fhandle3(XDR *xdrs, am_fhandle3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_fhandle3:");
+
+ if (!xdr_bytes(xdrs,
+ (char **) &objp->fhandle3_val,
+ (u_int *) &objp->fhandle3_len,
+ AM_FHSIZE3))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_mountstat3(XDR *xdrs, am_mountstat3 *objp)
+{
+ enum_t local_obj = *objp;
+
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_mountstat3:");
+
+ if (!xdr_enum(xdrs, &local_obj))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_mountres3_ok(XDR *xdrs, am_mountres3_ok *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_mountres3_ok:");
+
+ if (!xdr_am_fhandle3(xdrs, &objp->fhandle))
+ return (FALSE);
+ if (!xdr_array(xdrs,
+ (char **) ((voidp) &objp->auth_flavors.auth_flavors_val),
+ (u_int *) &objp->auth_flavors.auth_flavors_len,
+ ~0,
+ sizeof(int),
+ (XDRPROC_T_TYPE) xdr_int))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_mountres3(XDR *xdrs, am_mountres3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_mountres3:");
+
+ if (!xdr_am_mountstat3(xdrs, &objp->fhs_status))
+ return (FALSE);
+
+ if (objp->fhs_status == AM_MNT3_OK) {
+ if (!xdr_am_mountres3_ok(xdrs, &objp->mountres3_u.mountinfo))
+ return (FALSE);
+ }
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_diropargs3(XDR *xdrs, am_diropargs3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_diropargs3:");
+
+ if (!xdr_am_nfs_fh3(xdrs, &objp->dir))
+ return (FALSE);
+ if (!xdr_am_filename3(xdrs, &objp->name))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_filename3(XDR *xdrs, am_filename3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_filename3:");
+
+ if (!xdr_string(xdrs, objp, ~0))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_LOOKUP3args(XDR *xdrs, am_LOOKUP3args *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_LOOKUP3args:");
+
+ if (!xdr_am_diropargs3(xdrs, &objp->what))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_LOOKUP3res(XDR *xdrs, am_LOOKUP3res *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_LOOKUP3res:");
+
+ if (!xdr_am_nfsstat3(xdrs, &objp->status))
+ return (FALSE);
+ switch (objp->status) {
+ case AM_NFS3_OK:
+ if (!xdr_am_LOOKUP3resok(xdrs, &objp->res_u.ok))
+ return (FALSE);
+ break;
+ default:
+ if (!xdr_am_LOOKUP3resfail(xdrs, &objp->res_u.fail))
+ return (FALSE);
+ break;
+ }
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_LOOKUP3resfail(XDR *xdrs, am_LOOKUP3resfail *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_LOOKUP3resfail:");
+
+ /*
+ * Don't xdr post_op_attr: amd doesn't need them, but they require many
+ * additional xdr functions.
+ */
+#if 0
+ if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
+ return (FALSE);
+#endif
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_LOOKUP3resok(XDR *xdrs, am_LOOKUP3resok *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_LOOKUP3resok:");
+
+ if (!xdr_am_nfs_fh3(xdrs, &objp->object))
+ return (FALSE);
+ /*
+ * Don't xdr post_op_attr: amd doesn't need them, but they require many
+ * additional xdr functions.
+ */
+#if 0
+ if (!xdr_post_op_attr(xdrs, &objp->obj_attributes))
+ return (FALSE);
+ if (!xdr_post_op_attr(xdrs, &objp->dir_attributes))
+ return (FALSE);
+#endif
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_nfs_fh3(XDR *xdrs, am_nfs_fh3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_nfs_fh3:");
+
+ if (!xdr_u_int(xdrs, &objp->am_fh3_length))
+ return (FALSE);
+ if (objp->am_fh3_length > AM_FHSIZE3)
+ return (FALSE);
+ if (!xdr_opaque(xdrs, objp->am_fh3_data, objp->am_fh3_length))
+ return (FALSE);
+ return (TRUE);
+}
+
+
+bool_t
+xdr_am_nfsstat3(XDR *xdrs, am_nfsstat3 *objp)
+{
+ if (amuDebug(D_XDRTRACE))
+ plog(XLOG_DEBUG, "xdr_am_nfsstat3:");
+
+ if (!xdr_enum(xdrs, (enum_t *)objp))
+ return (FALSE);
+ return (TRUE);
+}
+#endif /* not HAVE_FS_NFS3 */
OpenPOWER on IntegriCloud