X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=nfs3%2Fnfs3_prot.h;h=1b8352bc992033a2882791dc6e46db879ec614af;hb=966a43ffed492d387e0d75e56c3984d9001c15b1;hp=01ed7b51f0b114bb45dc2b7d1f0123c25c8a7768;hpb=3c5c5e9b5a8650e0549712e20e007ba2399656bf;p=bluesky.git diff --git a/nfs3/nfs3_prot.h b/nfs3/nfs3_prot.h index 01ed7b5..1b8352b 100644 --- a/nfs3/nfs3_prot.h +++ b/nfs3/nfs3_prot.h @@ -653,6 +653,20 @@ typedef struct { /* 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. */ @@ -830,6 +844,8 @@ extern bool_t xdr_commit3args (XDR *, commit3args*); 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