*/
void rpc_set_next_xid(struct rpc_context *rpc, uint32_t xid);
+/* This function can be used to set the file descriptor used for
+ * the RPC context. It is primarily useful when emulating dup2()
+ * and similar or where you want full control of the filedescriptor numbers
+ * used by the rpc socket.
+ *
+ * ...
+ * oldfd = rpc_get_fd(rpc);
+ * dup2(oldfd, newfd);
+ * rpc_set_fd(rpc, newfd);
+ * close(oldfd);
+ * ...
+ */
+void rpc_set_fd(struct rpc_context *rpc, int fd);
+
#define RPC_STATUS_SUCCESS 0
#define RPC_STATUS_ERROR 1
#define RPC_STATUS_CANCEL 2
int rpc_disconnect(struct rpc_context *rpc, char *error);
-/*
+/*
* PORTMAP FUNCTIONS
*/
*/
EXTERN int rpc_pmap_callit_async(struct rpc_context *rpc, int program, int version, int procedure, char *data, int datalen, rpc_cb cb, void *private_data);
-/*
+/*
* MOUNT v3 FUNCTIONS
*/
char *mountstat3_to_str(int stat);
EXTERN int rpc_mount3_export_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
EXTERN int rpc_mount_export_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
-/*
+/*
* MOUNT v1 FUNCTIONS (Used with NFSv2)
*/
/*
EXTERN int rpc_mount1_export_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
-/*
+/*
* NFS v3 FUNCTIONS
*/
struct nfs_fh3;
EXTERN int rpc_nfs3_link_async(struct rpc_context *rpc, rpc_cb cb, struct LINK3args *args, void *private_data);
EXTERN int rpc_nfs_link_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *file, struct nfs_fh3 *newdir, char *newname, void *private_data);
-/*
+/*
* NFS v2 FUNCTIONS
*/
struct STATFS2args;
EXTERN int rpc_nfs2_statfs_async(struct rpc_context *rpc, rpc_cb cb, struct STATFS2args *args, void *private_data);
-/*
+/*
* RQUOTA FUNCTIONS
*/
char *rquotastat_to_str(int error);
/*
- * NFSACL functions
+ * NFSACL functions
*/
/*
* NLM functions
*/
char *nlmstat4_to_str(int stat);
-
+
/*
* Call NLM/NULL
* Call the NULL procedure for the NLM protocol
* NSM functions
*/
char *nsmstat1_to_str(int stat);
-
+
/*
* Call NSM/NULL
* Call the NULL procedure for the NSM protocol