X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=nfs%2Flibnfs-raw-nfs.c;h=04e914d74e3b24411cdaa92c6ecc43ef2817636e;hb=f38aacf8c9cf23e2f4e9cc76a8bc61e3f6e8f47f;hp=ce319ec7601e5826f3dfa5f3829f5762b7171068;hpb=463d59bf8e5ff1a3ac27ab4fedf77b237394d1a6;p=deb_libnfs.git diff --git a/nfs/libnfs-raw-nfs.c b/nfs/libnfs-raw-nfs.c index ce319ec..04e914d 100644 --- a/nfs/libnfs-raw-nfs.c +++ b/nfs/libnfs-raw-nfs.c @@ -2094,6 +2094,960 @@ zdr_SETATTR3res (ZDR *zdrs, SETATTR3res *objp) return TRUE; } +bool_t +zdr_fhandle2 (ZDR *zdrs, fhandle2 objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_opaque (zdrs, objp, FHSIZE2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_ftype2 (ZDR *zdrs, ftype2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_enum (zdrs, (enum_t *) objp)) + return FALSE; + return TRUE; +} + +bool_t +zdr_fattr2 (ZDR *zdrs, fattr2 *objp) +{ + register int32_t *buf; + buf = NULL; + + + if (zdrs->x_op == ZDR_ENCODE) { + if (!zdr_ftype2 (zdrs, &objp->type)) + return FALSE; + buf = ZDR_INLINE (zdrs, 10 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->nlink)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocksize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->rdev)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fsid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fileid)) + return FALSE; + + } else { + IZDR_PUT_U_LONG(buf, objp->mode); + IZDR_PUT_U_LONG(buf, objp->nlink); + IZDR_PUT_U_LONG(buf, objp->uid); + IZDR_PUT_U_LONG(buf, objp->gid); + IZDR_PUT_U_LONG(buf, objp->size); + IZDR_PUT_U_LONG(buf, objp->blocksize); + IZDR_PUT_U_LONG(buf, objp->rdev); + IZDR_PUT_U_LONG(buf, objp->blocks); + IZDR_PUT_U_LONG(buf, objp->fsid); + IZDR_PUT_U_LONG(buf, objp->fileid); + } + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->ctime)) + return FALSE; + return TRUE; + } else if (zdrs->x_op == ZDR_DECODE) { + if (!zdr_ftype2 (zdrs, &objp->type)) + return FALSE; + buf = ZDR_INLINE (zdrs, 10 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->nlink)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocksize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->rdev)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fsid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fileid)) + return FALSE; + + } else { + objp->mode = IZDR_GET_U_LONG(buf); + objp->nlink = IZDR_GET_U_LONG(buf); + objp->uid = IZDR_GET_U_LONG(buf); + objp->gid = IZDR_GET_U_LONG(buf); + objp->size = IZDR_GET_U_LONG(buf); + objp->blocksize = IZDR_GET_U_LONG(buf); + objp->rdev = IZDR_GET_U_LONG(buf); + objp->blocks = IZDR_GET_U_LONG(buf); + objp->fsid = IZDR_GET_U_LONG(buf); + objp->fileid = IZDR_GET_U_LONG(buf); + } + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->ctime)) + return FALSE; + return TRUE; + } + + if (!zdr_ftype2 (zdrs, &objp->type)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->nlink)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocksize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->rdev)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fsid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->fileid)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->ctime)) + return FALSE; + return TRUE; +} + +bool_t +zdr_sattr2 (ZDR *zdrs, sattr2 *objp) +{ + register int32_t *buf; + buf = NULL; + + + if (zdrs->x_op == ZDR_ENCODE) { + buf = ZDR_INLINE (zdrs, 4 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + + } else { + IZDR_PUT_U_LONG(buf, objp->mode); + IZDR_PUT_U_LONG(buf, objp->uid); + IZDR_PUT_U_LONG(buf, objp->gid); + IZDR_PUT_U_LONG(buf, objp->size); + } + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + return TRUE; + } else if (zdrs->x_op == ZDR_DECODE) { + buf = ZDR_INLINE (zdrs, 4 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + + } else { + objp->mode = IZDR_GET_U_LONG(buf); + objp->uid = IZDR_GET_U_LONG(buf); + objp->gid = IZDR_GET_U_LONG(buf); + objp->size = IZDR_GET_U_LONG(buf); + } + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + return TRUE; + } + + if (!zdr_u_int (zdrs, &objp->mode)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->uid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->gid)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->size)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->atime)) + return FALSE; + if (!zdr_nfstime3 (zdrs, &objp->mtime)) + return FALSE; + return TRUE; +} + +bool_t +zdr_filename2 (ZDR *zdrs, filename2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_string (zdrs, objp, MAXNAMLEN2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_path2 (ZDR *zdrs, path2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_string (zdrs, objp, MAXPATHLEN2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_nfsdata2 (ZDR *zdrs, nfsdata2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_bytes (zdrs, (char **)&objp->nfsdata2_val, (u_int *) &objp->nfsdata2_len, NFSMAXDATA2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_nfscookie2 (ZDR *zdrs, nfscookie2 objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_opaque (zdrs, objp, NFSCOOKIESIZE2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_entry2 (ZDR *zdrs, entry2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_u_int (zdrs, &objp->fileid)) + return FALSE; + if (!zdr_filename2 (zdrs, &objp->name)) + return FALSE; + if (!zdr_nfscookie2 (zdrs, objp->cookie)) + return FALSE; + if (!zdr_pointer (zdrs, (char **)&objp->nextentry, sizeof (entry2), (zdrproc_t) zdr_entry2)) + return FALSE; + return TRUE; +} + +bool_t +zdr_diropargs2 (ZDR *zdrs, diropargs2 *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->dir)) + return FALSE; + if (!zdr_filename2 (zdrs, &objp->name)) + return FALSE; + return TRUE; +} + +bool_t +zdr_GETATTR2args (ZDR *zdrs, GETATTR2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->fhandle)) + return FALSE; + return TRUE; +} + +bool_t +zdr_GETATTR2resok (ZDR *zdrs, GETATTR2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_GETATTR2res (ZDR *zdrs, GETATTR2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_GETATTR2resok (zdrs, &objp->GETATTR2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_SETATTR2args (ZDR *zdrs, SETATTR2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->fhandle)) + return FALSE; + if (!zdr_sattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_SETATTR2resok (ZDR *zdrs, SETATTR2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_SETATTR2res (ZDR *zdrs, SETATTR2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_SETATTR2resok (zdrs, &objp->SETATTR2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_LOOKUP2args (ZDR *zdrs, LOOKUP2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->what)) + return FALSE; + return TRUE; +} + +bool_t +zdr_LOOKUP2resok (ZDR *zdrs, LOOKUP2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_LOOKUP2res (ZDR *zdrs, LOOKUP2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_LOOKUP2resok (zdrs, &objp->LOOKUP2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_READLINK2args (ZDR *zdrs, READLINK2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READLINK2resok (ZDR *zdrs, READLINK2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_path2 (zdrs, &objp->data)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READLINK2res (ZDR *zdrs, READLINK2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_READLINK2resok (zdrs, &objp->READLINK2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_READ2args (ZDR *zdrs, READ2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->offset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->count)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->totalcount)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READ2resok (ZDR *zdrs, READ2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + if (!zdr_nfsdata2 (zdrs, &objp->data)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READ2res (ZDR *zdrs, READ2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_READ2resok (zdrs, &objp->READ2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_WRITE2args (ZDR *zdrs, WRITE2args *objp) +{ + register int32_t *buf; + buf = NULL; + + + if (zdrs->x_op == ZDR_ENCODE) { + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->beginoffset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->offset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->totalcount)) + return FALSE; + + } else { + IZDR_PUT_U_LONG(buf, objp->beginoffset); + IZDR_PUT_U_LONG(buf, objp->offset); + IZDR_PUT_U_LONG(buf, objp->totalcount); + } + if (!zdr_nfsdata2 (zdrs, &objp->data)) + return FALSE; + return TRUE; + } else if (zdrs->x_op == ZDR_DECODE) { + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + buf = ZDR_INLINE (zdrs, 3 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->beginoffset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->offset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->totalcount)) + return FALSE; + + } else { + objp->beginoffset = IZDR_GET_U_LONG(buf); + objp->offset = IZDR_GET_U_LONG(buf); + objp->totalcount = IZDR_GET_U_LONG(buf); + } + if (!zdr_nfsdata2 (zdrs, &objp->data)) + return FALSE; + return TRUE; + } + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->beginoffset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->offset)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->totalcount)) + return FALSE; + if (!zdr_nfsdata2 (zdrs, &objp->data)) + return FALSE; + return TRUE; +} + +bool_t +zdr_WRITE2resok (ZDR *zdrs, WRITE2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_WRITE2res (ZDR *zdrs, WRITE2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_WRITE2resok (zdrs, &objp->WRITE2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_CREATE2args (ZDR *zdrs, CREATE2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->where)) + return FALSE; + if (!zdr_sattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_CREATE2resok (ZDR *zdrs, CREATE2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_CREATE2res (ZDR *zdrs, CREATE2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_CREATE2resok (zdrs, &objp->CREATE2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_REMOVE2args (ZDR *zdrs, REMOVE2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->what)) + return FALSE; + return TRUE; +} + +bool_t +zdr_REMOVE2res (ZDR *zdrs, REMOVE2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + return TRUE; +} + +bool_t +zdr_RENAME2args (ZDR *zdrs, RENAME2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->from)) + return FALSE; + if (!zdr_diropargs2 (zdrs, &objp->to)) + return FALSE; + return TRUE; +} + +bool_t +zdr_RENAME2res (ZDR *zdrs, RENAME2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + return TRUE; +} + +bool_t +zdr_LINK2args (ZDR *zdrs, LINK2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->from)) + return FALSE; + if (!zdr_diropargs2 (zdrs, &objp->to)) + return FALSE; + return TRUE; +} + +bool_t +zdr_LINK2res (ZDR *zdrs, LINK2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + return TRUE; +} + +bool_t +zdr_SYMLINK2args (ZDR *zdrs, SYMLINK2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->from)) + return FALSE; + if (!zdr_path2 (zdrs, &objp->to)) + return FALSE; + if (!zdr_sattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_SYMLINK2res (ZDR *zdrs, SYMLINK2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + return TRUE; +} + +bool_t +zdr_MKDIR2args (ZDR *zdrs, MKDIR2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->where)) + return FALSE; + if (!zdr_sattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_MKDIR2resok (ZDR *zdrs, MKDIR2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->file)) + return FALSE; + if (!zdr_fattr2 (zdrs, &objp->attributes)) + return FALSE; + return TRUE; +} + +bool_t +zdr_MKDIR2res (ZDR *zdrs, MKDIR2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_MKDIR2resok (zdrs, &objp->MKDIR2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_RMDIR2args (ZDR *zdrs, RMDIR2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_diropargs2 (zdrs, &objp->what)) + return FALSE; + return TRUE; +} + +bool_t +zdr_RMDIR2res (ZDR *zdrs, RMDIR2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READDIR2args (ZDR *zdrs, READDIR2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->dir)) + return FALSE; + if (!zdr_nfscookie2 (zdrs, objp->cookie)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->count)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READDIR2resok (ZDR *zdrs, READDIR2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_pointer (zdrs, (char **)&objp->entries, sizeof (entry2), (zdrproc_t) zdr_entry2)) + return FALSE; + if (!zdr_bool (zdrs, &objp->eof)) + return FALSE; + return TRUE; +} + +bool_t +zdr_READDIR2res (ZDR *zdrs, READDIR2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_READDIR2resok (zdrs, &objp->READDIR2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + +bool_t +zdr_STATFS2args (ZDR *zdrs, STATFS2args *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_fhandle2 (zdrs, objp->dir)) + return FALSE; + return TRUE; +} + +bool_t +zdr_STATFS2resok (ZDR *zdrs, STATFS2resok *objp) +{ + register int32_t *buf; + buf = NULL; + + + if (zdrs->x_op == ZDR_ENCODE) { + buf = ZDR_INLINE (zdrs, 5 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->tsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bfree)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bavail)) + return FALSE; + } else { + IZDR_PUT_U_LONG(buf, objp->tsize); + IZDR_PUT_U_LONG(buf, objp->bsize); + IZDR_PUT_U_LONG(buf, objp->blocks); + IZDR_PUT_U_LONG(buf, objp->bfree); + IZDR_PUT_U_LONG(buf, objp->bavail); + } + return TRUE; + } else if (zdrs->x_op == ZDR_DECODE) { + buf = ZDR_INLINE (zdrs, 5 * BYTES_PER_ZDR_UNIT); + if (buf == NULL) { + if (!zdr_u_int (zdrs, &objp->tsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bfree)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bavail)) + return FALSE; + } else { + objp->tsize = IZDR_GET_U_LONG(buf); + objp->bsize = IZDR_GET_U_LONG(buf); + objp->blocks = IZDR_GET_U_LONG(buf); + objp->bfree = IZDR_GET_U_LONG(buf); + objp->bavail = IZDR_GET_U_LONG(buf); + } + return TRUE; + } + + if (!zdr_u_int (zdrs, &objp->tsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bsize)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->blocks)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bfree)) + return FALSE; + if (!zdr_u_int (zdrs, &objp->bavail)) + return FALSE; + return TRUE; +} + +bool_t +zdr_STATFS2res (ZDR *zdrs, STATFS2res *objp) +{ + register int32_t *buf; + buf = NULL; + + if (!zdr_nfsstat3 (zdrs, &objp->status)) + return FALSE; + switch (objp->status) { + case NFS3_OK: + if (!zdr_STATFS2resok (zdrs, &objp->STATFS2res_u.resok)) + return FALSE; + break; + default: + break; + } + return TRUE; +} + bool_t zdr_nfsacl_type (ZDR *zdrs, nfsacl_type *objp) {