summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-transport/socket
Commit message (Collapse)AuthorAgeFilesLines
* iobuf: use 'iobuf_get2()' to get variable sized buffersAmar Tumballi2012-02-201-2/+13
| | | | | | | | | | | added 'TODO' in places where it is missing. Change-Id: Ia802c94e3bb76930f7c88c990f078525be5459f5 Signed-off-by: Amar Tumballi <amar@gluster.com> BUG: 765264 Reviewed-on: http://review.gluster.com/388 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc-transport/socket: Donot fail reconnect if error is ENOENTshishir gowda2011-12-191-1/+1
| | | | | | | | | | | | | A AF_UNIX family socket should retry connect if error is ENOENT. Signed-off-by: shishir gowda <shishirng@gluster.com> Change-Id: I23b1da12faadc8043d370862bfe29c0c5c223364 BUG: 767932 Reviewed-on: http://review.gluster.com/795 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* glusterfs: An effort to fix all the spell mistakes and typoHarshavardhana2011-11-162-4/+4
| | | | | | | | | | | | | | | in the entire glusterfs codebase. This patch fixes many of spell mistakes and typo in the entire glusterfs codebase and all supported modules. Change-Id: I83238a41aa08118df3cf4d1d605505dd3cda35a1 BUG: 3809 Signed-off-by: Harshavardhana <fharshav@redhat.com> Reviewed-on: http://review.gluster.com/731 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc: fix wrong wiping of state machine's stateAnand Avati2011-09-251-1/+1
| | | | | | | | | | | | | | | The macro __socket_proto_read() is used to read one sub-header in a fragment after another. It also has to 'get out' of the state machine's switch/case construct in two situations - a) finished reading the full header b) after a partial read, (and return in the same state at next pollin) The 'reset' of the state should happen only after a full read of the header and not if there was a partial read of the header. Change-Id: I3650a83e1fae0f317cfd1b549835c72e39dc5253
* socket: provide proper arguments to getaddrinfoAmar Tumballi2011-09-131-1/+1
| | | | | | | | | | | | | | | | | ----- from 'man getaddrinfo' : If hints.ai_flags includes the AI_ADDRCONFIG flag, then IPv4 addresses are returned in the list pointed to by res only if the local system has at least one IPv4 address configured, and IPv6 addresses are only returned if the local system has at least one IPv6 address configured. ----- Change-Id: Ie30344daf1bb9d41ac58741b38e83af35cd8b5e9 BUG: 2456 Reviewed-on: http://review.gluster.com/405 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* modify to the way we used XDR definitions files (.x files)Amar Tumballi2011-09-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Earlier: step 1: copy the existing <xdr>.x files to /tmp step 2: generate '.[ch]' files using 'rpcgen <xdr>.x' step 3: check diff with the to the existing files, add only your part of changes back to the original file. (ignore other changes). step 4: there is another file to write wrapper functions to convert structures to/from XDR buffers, update it with your new structure. step 5: use these wrapper functions in the newly written procedures. step 6: commit :-| Now: step 1: update (mostly adding only) the <xdr>.x file step 2: run '<path-to-src>/extras/generate-xdr-files.sh <xdr>.x' command step 3: implement rpc procedure to handle the request/response. step 4: commit :-) Change-Id: I219f9159fc980438c86e847c6b030be96e595ea2 BUG: 3488 Reviewed-on: http://review.gluster.com/341 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Change Copyright current yearPranith Kumar K2011-08-104-4/+4
| | | | | | | | Change-Id: I2d10f2be44f518f496427f257988f1858e888084 BUG: 3348 Reviewed-on: http://review.gluster.com/200 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* LICENSE: s/GNU Affero General Public/GNU General Public/Pranith Kumar K2011-08-064-12/+12
| | | | | | | | Change-Id: I3914467611e573cccee0d22df93920cf1b2eb79f BUG: 3348 Reviewed-on: http://review.gluster.com/182 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* Variable IOBUF: Use variable iobuf for cli/glusterd/glusterfsd(mgmt)shishir gowda2011-07-311-9/+11
| | | | | | | | | | | | By using variable iobufs, xfer data size is no more limited to 128K (default). This helps in scaling. Change-Id: Iab453db9223d887306d150cd6fe0b1eae9c422cc BUG: 2472 Reviewed-on: http://review.gluster.com/13 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* RPC unify code changekrishna2011-07-292-31/+61
| | | | | | | | | Change-Id: Ibe18a2a63fd023ac57652c4dfc8ac8a69d983b83 BUG: 3112 Signed-off-by: krishna <krishna@gluster.com> Reviewed-on: http://review.gluster.com/116 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com>
* Glusterd: Remove dependency on AI_ADDRCONFIG for AF_UNSPECGaurav2011-07-272-5/+16
| | | | | | | | | Change-Id: I0a22b2cc5a0ea1a57633fddabad54aca7b3d4e86 BUG: 2456 Reviewed-on: http://review.gluster.com/102 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Csaba Henk <csaba@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
* rpc-transport/socket: avoid logging socket read failsRajesh2011-07-252-8/+28
| | | | | | | | | | | | | | An option, transport.socket.read-fail-log was added in glusterd. This can also be added to any translator which uses socket.c. A gf_boolean_t flag(read_fail_log) is added in socket_private_t. Using this, logging of socket read failures can be controlled. The options is set to 'off' in glusterd.vol by default. Change-Id: I85cf4afc1f534f5f51018449d5d84baef18fce23 BUG: 3156 Reviewed-on: http://review.gluster.com/22 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
* glusterd: Add bind-insecure xlator-option for glusterdshishir gowda2011-07-241-1/+1
| | | | | | | | | | | | This is required if the number of connections from the glusterd increases. Change-Id: Iff78773f593a8bfae13ec9eec52c5a67ea936ef2 BUG: 3142 Signed-off-by: shishir gowda <shishirng@gluster.com> Reviewed-on: http://review.gluster.com/11 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Pavan T C <tcp@gluster.com>
* logging: fill proper domain names at places where it is missingAmar Tumballi2011-06-161-6/+6
| | | | | | | | | | also changed some error messages where it was not explicit Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2346 (Log message enhancements in GlusterFS - phase 1) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
* build warning fixesAmar Tumballi2011-06-162-20/+22
| | | | | | | | | | mainly fixes all the sockaddr related 'strict aliasing' warnings Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2550 (build warnings) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2550
* client_bind: When allow-insecure xlator option is set, donot bind.shishir gowda2011-05-311-3/+1
| | | | | | | | | | There is no need to bind a client, as connect will assign a port. Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2868 (Add xlator-option to support insecure-bind for clients) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2868
* rpc: TCP_KEEPALIVE undeclared in NetBSDAnand Avati2011-05-301-1/+1
| | | | | | | | | | | Works around "error: 'TCP_KEEPALIVE' undeclared" on NetBSD Thanks to: Emmanuel Dreyfus <manu@netbsd.org> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2923 (NetBSD port) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2923
* rpc-clnt: consider the (re-)configured port for only one connect() callAmar Tumballi2011-05-301-1/+2
| | | | | | | | | | | this way, if remote_port is set due to queryport, that can fall back to default port (or 'option remote-port' value) when it disconnects. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2709 (issues with port (re-)configuration in client protocol) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2709
* rpc: Introduce option for listen()'s backlogVijay Bellur2011-05-302-1/+15
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2941 (glusterd breaks when starting ~100 volumes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2941
* Introduce client-allow-insecure xlator-option.shishir gowda2011-05-121-1/+5
| | | | | | | | | | | | | | | | | | Allows glusterfs clients to bind to any port and does not restrict it to 1024. This is a xlator-option only, and is not supported in volume set cmd. The reason is, few clients may choose this, and few may not. Hence only supported as a xlator-option during mount time. For this to work with glusterfs, server.allow-insecure should be set to on Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2868 (Add xlator-option to support insecure-bind for clients) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2868
* remove excessive logs due to log enhancementAmar Tumballi2011-04-131-7/+13
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2346 (Log message enhancements in GlusterFS - phase 1) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
* rpc: Don't warn on failure to bind to privileged portPranith K2011-03-261-1/+1
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2582 (allow option to accept messages from insecure ports) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2582
* CLI : Validate options farmework.Gaurav2011-03-231-26/+7
| | | | | | | | Signed-off-by: Gaurav <gaurav@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2064 (NFS options are removed upon glusterd restart) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2064
* spelling errors fixed across the code baseAmar Tumballi2011-03-221-1/+1
| | | | | | | | | | | | | recieve -> receive maintainence -> maintenance verison -> version commited -> committed Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2262 (Spelling errors in source) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2262
* rpc-transport: log enhancementAmar Tumballi2011-03-172-136/+139
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2346 (Log message enhancements in GlusterFS - phase 1) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
* rpc-transport: whitespace cleanupAmar Tumballi2011-03-173-202/+202
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2346 (Log message enhancements in GlusterFS - phase 1) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
* rpc: Changes for handling unix domain sockets avoid racePranith K2011-03-101-0/+16
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1965 (need a cmd to get io-stat details) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1965
* setsockopt should be called with solaris specific arguments for solaris servershishir gowda2010-12-141-0/+5
| | | | | | | | | | | | | | | ----- Original Message ----- From: "Raghavendra Bhat" <raghavendrabhat@gluster.com> To: glusterfs@dev.gluster.com Sent: Tuesday, December 14, 2010 11:56:43 AM Subject: [PATCH BUG:2205 v4] setsockopt should be called with solaris specific arguments for solaris server Looks fine to me. Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 2205 ([glusterfs-3.1.2qa1]: error while setting the keepalive time interval) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2205
* rpc-transport: don't merge payload iobuf and iobuf which holds program ↵Raghavendra G2010-11-251-5/+4
| | | | | | | | | | | | | header into single iobref. - io-cache holds a reference on iobref passed from transport layer. Hence, two iobufs are accounted instead of one in calculated used cache size. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 2135 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2135
* socket: avoid check on lowlat for enabling nodelayVijay Bellur2010-11-021-6/+1
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 2040 (Using 'du' and 'ls' command, it got slow performance) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2040
* socket: Reduce keepalive idle and interval timeVijay Bellur2010-10-271-1/+2
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1956 (NFS client hangs after failover) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1956
* rpc-transport/socket: initialize fragcurrent pointer in correct state while ↵Raghavendra G2010-10-121-3/+3
| | | | | | | | | | | | | | | reading vectored replies. - If fragcurrent is initialized in the same state which reads payload data, there is a possibility of it getting reset during partial reads from socket. Hence it should be initialized just before entering the state which reads payload data. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1929 (different value is logged for read header size for multiple reads) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1929
* Change assert to GF_ASSERTVijay Bellur2010-10-121-2/+2
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 971 (dynamic volume management) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
* migrate from port 69* to 24007Amar Tumballi2010-10-081-1/+2
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1870 (Change the port from 69* to some other ports.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1870
* support for configuring keepalive idle timeVijay Bellur2010-10-082-5/+17
| | | | | | | | Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1802 (Gluster volume creation failed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1802
* mgmt/Glusterd: Volume set enhancementsKaushik BV2010-10-071-0/+61
| | | | | | | | | | | - performance.flush-behind, transport.keepalive added - volume info to display the options reconfigured Signed-off-by: Kaushik BV <kaushikbv@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1159 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1159
* protocol/rpc/transport: bring in one more event for 'TRANSPORT-DESTROY'Amar Tumballi2010-10-071-1/+1
| | | | | | | | | | | | needed because, a RPC disconnect doesn't mean that a RPC transport/listener is dead. With this, the race in server protocol cleaning up the lock table / fd table when some frames are in transit will be handled properly. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1843 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1843
* remove 'gfs_id' field from all protocol xdr structuresAmar Tumballi2010-10-011-1/+1
| | | | | | | | | | | | | It was kept as a debugging requirement/placeholder. Because RPC is mostly bug free with regard to basic xdr structures, it doesn't make sense to carry this forward in release. Saves 8bytes in each request. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc-transport/socket: set keepalive socket option.Raghavendra G2010-09-202-0/+91
| | | | | | | | Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* cli, mgmt/glusterd: disallow probe to a clusterPranith Kumar K2010-09-151-1/+1
| | | | | | | | Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1594 (make probe oneway) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1594
* socket.c: suppress spurious 'dict_get' logs in glusterd debug modeAmar Tumballi2010-09-151-2/+8
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1606 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1606
* rpc-transport.c: handle a double freeAmar Tumballi2010-09-151-3/+0
| | | | | | | | | | * 'this->name' was getting freed in '(transport)->fini()'. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1605 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1605
* socket: add xfer data countsAmar Tumballi2010-09-141-0/+2
| | | | | | | | | | | | * keeping track of data transfered over wire helps to identify the protocol overhead, and also can help us in debugging more on server loads Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 971 (dynamic volume management) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
* socket.c: more detailed info about mismatched msg typeAmar Tumballi2010-09-071-2/+8
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc-transport/socket: fix memory leaks.Raghavendra G2010-09-041-18/+28
| | | | | | | | | | | | | - In the course of reading a single rpc-msg, socket_proto_state_machine may be executed multiple times (since sockets are non-blocking), hence wherever memory is allocated or referenced, checks should be added whether the memory is already allocated or referenced. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1438 (memory leaks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1438
* rpc-transport/socket: use xdr_sizeof instead of sizeof when trying to read ↵Raghavendra G2010-08-311-2/+21
| | | | | | | | | | vectored request/reply Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875
* rpc: server to client callback mechanismAmar Tumballi2010-08-271-0/+2
| | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
* transport/socket: free priv->incoming.request_info if not already freed ↵Raghavendra G2010-08-261-0/+9
| | | | | | | | | | after reading each message. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1438 (memory leaks) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1438
* rpc-transport/socket: proper cleanup and NULL deref checks.Amar Tumballi2010-08-181-76/+126
| | | | | | | | Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 1326 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1326
* rpc - cleanup and changes related to rdmaRaghavendra G2010-08-181-4/+5
| | | | | | | | | | | | - remove rpc_conn_state structure. - add a member to point struct rpc_req in rpc_transport_req structure. This is needed for rdma to store rdma specific per request data. Signed-off-by: Raghavendra G <raghavendra@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875