#define NFS3_CREATEVERFSIZE 8
#define NFS3_WRITEVERFSIZE 8
+extern char nfsd_instance_verf_cookie[NFS3_WRITEVERFSIZE];
+
typedef char *filename3;
typedef char *nfspath3;
/* If frag_len is zero: the number of bytes of the fragment header that
* have been read so far. */
int frag_hdr_bytes;
+
+ /* Mutex protecting send operations on the socket (to ensure that replies
+ * are not accidentally interleaved). */
+ GMutex *send_lock;
+
+ /* Is this a UDP connection? */
+ gboolean udp_transport;
+
+ /* For UDP connections only, the address of the sender. */
+ struct sockaddr_in peer;
+
+ /* For UDP only, a buffer for accumulating the full contents of a message
+ * before it is sent */
+ GString *sendbuf;
} RPCConnection;
/* Linked list of cleanup functions to call when a request is completed. */
struct cleanup_list *next;
};
+struct BlueSkyProfile;
+
/* Used to track a single outstanding RPC request. Not all of the fields are
* initially filled in, but more are filled in as the request is processed. */
typedef struct {
/* The corresponding connection on which the request was made. */
RPCConnection *connection;
- /* Timining information for generating statistics about response times. */
- int64_t time_start;
+ /* To track the time to complete this request and a timing breakdown. */
+ struct BlueSkyProfile *profile;
/* Transaction ID of the request, in host byte order. */
uint32_t xid;
extern bool_t xdr_commit3resok (XDR *, commit3resok*);
extern bool_t xdr_commit3res (XDR *, commit3res*);
+extern void xdr_string_create(XDR *xdrs, GString *string, enum xdr_op op);
+
#ifdef __cplusplus
}
#endif