示例#1
0
enum clnt_stat 
nfs3_commit(COMMIT3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv, 
		int64_t callflag)
{
	return nfs3_call(NFS3_COMMIT, args, (xdrproc_t)xdr_COMMIT3args, ctx, u_cb,
			priv, callflag);
}
示例#2
0
enum clnt_stat 
nfs3_fsinfo(FSINFOargs *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_FSINFO, args, (xdrproc_t)xdr_FSINFOargs, ctx, u_cb,
			priv, callflag);
}
示例#3
0
enum clnt_stat 
nfs3_pathconf(PATHCONF3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_PATHCONF, args, (xdrproc_t)xdr_PATHCONF3args, ctx,
			u_cb, priv, callflag);
}
示例#4
0
enum clnt_stat 
nfs3_link(LINK3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv, 
		int64_t callflag)
{
	return nfs3_call(NFS3_LINK, args, (xdrproc_t)xdr_LINK3args, ctx, u_cb,
			priv, callflag);
}
示例#5
0
enum clnt_stat 
nfs3_readdirplus(READDIRPLUS3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_READDIRPLUS, args, (xdrproc_t)xdr_READDIRPLUS3args, 
			ctx, u_cb, priv, callflag);
}
示例#6
0
enum clnt_stat 
nfs3_remove(REMOVE3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_REMOVE, args, (xdrproc_t)xdr_REMOVE3args, ctx, u_cb,
			priv, callflag);
}
示例#7
0
enum clnt_stat 
nfs3_rmdir(RMDIR3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_RMDIR, args, (xdrproc_t)xdr_RMDIR3args, ctx, u_cb,
			priv, callflag);
}
示例#8
0
enum clnt_stat 
nfs3_create(CREATE3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_CREATE, args, (xdrproc_t)xdr_CREATE3args, ctx, u_cb,
			priv, callflag);
}
示例#9
0
enum clnt_stat 
nfs3_mknod(MKNOD3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv,
		int64_t callflag)
{
	return nfs3_call(NFS3_MKNOD, args, (xdrproc_t)xdr_MKNOD3args, ctx, u_cb,
			priv, callflag);
}
示例#10
0
enum clnt_stat 
nfs3_access(ACCESS3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv, 
		int64_t callflag)
{
	return nfs3_call(NFS3_ACCESS, args, (xdrproc_t)xdr_ACCESS3args, ctx, u_cb,
			priv, callflag);
}
示例#11
0
//#define NFS3_SETATTR 2
enum clnt_stat 
nfs3_setattr(SETATTR3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv, 
		int64_t callflag)
{
	return nfs3_call(NFS3_SETATTR, args, (xdrproc_t)xdr_SETATTR3args, ctx,
			u_cb, priv, callflag);
}
示例#12
0
enum clnt_stat 
nfs3_lookup(LOOKUP3args *args, nfs_ctx *ctx, user_cb u_cb, void * priv, 
		int64_t callflag)
{
	return nfs3_call(NFS3_LOOKUP, args, (xdrproc_t)xdr_LOOKUP3args, ctx, u_cb,
			priv, callflag);
}
示例#13
0
文件: filesnarf.c 项目: IFGHou/dsniff
void
decode_nfs(struct tuple4 *addr, u_char *buf, int len)
{
	struct rpc_msg msg;
	struct xid_map *xm;
	int hdrlen;
	
	memset(&msg, 0, sizeof(msg));
	
	if ((hdrlen = rpc_decode(buf, len, &msg)) == 0)
		return;

	buf += hdrlen;
	len -= hdrlen;
	
	if (msg.rm_direction == CALL && msg.rm_call.cb_prog == NFS_PROGRAM) {
		if (msg.rm_call.cb_vers == NFS_VERSION)
			nfs2_call(msg.rm_xid, msg.rm_call.cb_proc, buf, len);
		else if (msg.rm_call.cb_vers == NFS_V3)
			nfs3_call(msg.rm_xid, msg.rm_call.cb_proc, buf, len);
	}
	else if ((xm = xid_map_find(msg.rm_xid)) != NULL &&
		 msg.rm_direction == REPLY &&
		 msg.rm_reply.rp_stat == MSG_ACCEPTED &&
		 msg.acpted_rply.ar_stat == SUCCESS) {
		
		if (xm->vers == NFS_VERSION)
			nfs2_reply(xm, addr, buf, len);
		else if (xm->vers == NFS_V3)
			nfs3_reply(xm, addr, buf, len);
		
		free(xm->data);
		memset(xm, 0, sizeof(*xm));
	}
}
示例#14
0
enum clnt_stat 
nfs3_null(nfs_ctx *ctx, user_cb u_cb, void * priv, int64_t callflag)
{
	return nfs3_call(NFS3_NULL, NULL, (xdrproc_t)xdr_void, ctx, u_cb, priv,
			callflag);
}