Simplified NFS proxy based on own NFS/XDR implementation
This commit is contained in:
@@ -0,0 +1,253 @@
|
||||
/*
|
||||
* Please do not edit this file.
|
||||
* It was generated using rpcgen.
|
||||
*/
|
||||
|
||||
#include "rpc.h"
|
||||
#include "xdr_impl_inline.h"
|
||||
|
||||
bool_t
|
||||
xdr_rpc_auth_flavor (XDR *xdrs, rpc_auth_flavor *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_msg_type (XDR *xdrs, rpc_msg_type *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_reply_stat (XDR *xdrs, rpc_reply_stat *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_accept_stat (XDR *xdrs, rpc_accept_stat *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_reject_stat (XDR *xdrs, rpc_reject_stat *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_auth_stat (XDR *xdrs, rpc_auth_stat *objp)
|
||||
{
|
||||
|
||||
if (!xdr_enum (xdrs, (enum_t *) objp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_opaque_auth (XDR *xdrs, rpc_opaque_auth *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_auth_flavor (xdrs, &objp->flavor))
|
||||
return FALSE;
|
||||
if (!xdr_bytes(xdrs, &objp->body, 400))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_call_body (XDR *xdrs, rpc_call_body *objp)
|
||||
{
|
||||
|
||||
|
||||
if (xdrs->x_op == XDR_ENCODE) {
|
||||
if (1) {
|
||||
if (!xdr_u_int (xdrs, &objp->rpcvers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->prog))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->vers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->proc))
|
||||
return FALSE;
|
||||
|
||||
} else {
|
||||
IXDR_PUT_U_LONG(buf, objp->rpcvers);
|
||||
IXDR_PUT_U_LONG(buf, objp->prog);
|
||||
IXDR_PUT_U_LONG(buf, objp->vers);
|
||||
IXDR_PUT_U_LONG(buf, objp->proc);
|
||||
}
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
} else if (xdrs->x_op == XDR_DECODE) {
|
||||
if (1) {
|
||||
if (!xdr_u_int (xdrs, &objp->rpcvers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->prog))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->vers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->proc))
|
||||
return FALSE;
|
||||
|
||||
} else {
|
||||
objp->rpcvers = IXDR_GET_U_LONG(buf);
|
||||
objp->prog = IXDR_GET_U_LONG(buf);
|
||||
objp->vers = IXDR_GET_U_LONG(buf);
|
||||
objp->proc = IXDR_GET_U_LONG(buf);
|
||||
}
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (!xdr_u_int (xdrs, &objp->rpcvers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->prog))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->vers))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->proc))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->cred))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_mismatch_info (XDR *xdrs, rpc_mismatch_info *objp)
|
||||
{
|
||||
|
||||
if (!xdr_u_int (xdrs, &objp->min_version))
|
||||
return FALSE;
|
||||
if (!xdr_u_int (xdrs, &objp->max_version))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_accepted_reply_body (XDR *xdrs, rpc_accepted_reply_body *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_accept_stat (xdrs, &objp->stat))
|
||||
return FALSE;
|
||||
switch (objp->stat) {
|
||||
case RPC_SUCCESS:
|
||||
break;
|
||||
case RPC_PROG_MISMATCH:
|
||||
if (!xdr_rpc_mismatch_info (xdrs, &objp->mismatch_info))
|
||||
return FALSE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_accepted_reply (XDR *xdrs, rpc_accepted_reply *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_opaque_auth (xdrs, &objp->verf))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_accepted_reply_body (xdrs, &objp->reply_data))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_rejected_reply (XDR *xdrs, rpc_rejected_reply *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_reject_stat (xdrs, &objp->stat))
|
||||
return FALSE;
|
||||
switch (objp->stat) {
|
||||
case RPC_MISMATCH:
|
||||
if (!xdr_rpc_mismatch_info (xdrs, &objp->mismatch_info))
|
||||
return FALSE;
|
||||
break;
|
||||
case RPC_AUTH_ERROR:
|
||||
if (!xdr_rpc_auth_stat (xdrs, &objp->auth_stat))
|
||||
return FALSE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_reply_body (XDR *xdrs, rpc_reply_body *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_reply_stat (xdrs, &objp->stat))
|
||||
return FALSE;
|
||||
switch (objp->stat) {
|
||||
case RPC_MSG_ACCEPTED:
|
||||
if (!xdr_rpc_accepted_reply (xdrs, &objp->areply))
|
||||
return FALSE;
|
||||
break;
|
||||
case RPC_MSG_DENIED:
|
||||
if (!xdr_rpc_rejected_reply (xdrs, &objp->rreply))
|
||||
return FALSE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_msg_body (XDR *xdrs, rpc_msg_body *objp)
|
||||
{
|
||||
|
||||
if (!xdr_rpc_msg_type (xdrs, &objp->dir))
|
||||
return FALSE;
|
||||
switch (objp->dir) {
|
||||
case RPC_CALL:
|
||||
if (!xdr_rpc_call_body (xdrs, &objp->cbody))
|
||||
return FALSE;
|
||||
break;
|
||||
case RPC_REPLY:
|
||||
if (!xdr_rpc_reply_body (xdrs, &objp->rbody))
|
||||
return FALSE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t
|
||||
xdr_rpc_msg (XDR *xdrs, rpc_msg *objp)
|
||||
{
|
||||
|
||||
if (!xdr_u_int (xdrs, &objp->xid))
|
||||
return FALSE;
|
||||
if (!xdr_rpc_msg_body (xdrs, &objp->body))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
Reference in New Issue
Block a user