diff options
| author | Amar Tumballi <amar@gluster.com> | 2010-10-08 10:17:55 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-10-08 09:16:24 -0700 | 
| commit | e0cdcbf68ab1dc1cc1af874cd84579d89a3e3747 (patch) | |
| tree | 818d476c245ed05326e077b4c9a82f4a7f23cdaa /rpc/rpc-lib/src | |
| parent | cd5c9df4b67073089a5502d5e4c2e2e7d2141e4a (diff) | |
rpc-clnt: do rpc_transport_destroy() in rpc_clnt_destroy()
handles the case of peer detach properly
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
Diffstat (limited to 'rpc/rpc-lib/src')
| -rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.c | 4 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/rpc-transport.h | 3 | 
2 files changed, 5 insertions, 2 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index fa3bc81ffe8..8cf7f7444b0 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -823,7 +823,7 @@ rpc_clnt_notify (rpc_transport_t *trans, void *mydata,          switch (event) {          case RPC_TRANSPORT_DISCONNECT:          { -                rpc_clnt_connection_cleanup (&clnt->conn); +                rpc_clnt_connection_cleanup (conn);                  pthread_mutex_lock (&conn->lock);                  { @@ -1474,7 +1474,7 @@ rpc_clnt_destroy (struct rpc_clnt *rpc)                  return;          if (rpc->conn.trans) -                rpc_transport_unref (rpc->conn.trans); +                rpc_transport_destroy (rpc->conn.trans);          rpc_clnt_connection_cleanup (&rpc->conn);          rpc_clnt_reconnect_cleanup (&rpc->conn); diff --git a/rpc/rpc-lib/src/rpc-transport.h b/rpc/rpc-lib/src/rpc-transport.h index 560eae45314..c5e7755ff8e 100644 --- a/rpc/rpc-lib/src/rpc-transport.h +++ b/rpc/rpc-lib/src/rpc-transport.h @@ -247,6 +247,9 @@ int32_t  rpc_transport_disconnect (rpc_transport_t *this);  int32_t +rpc_transport_destroy (rpc_transport_t *this); + +int32_t  rpc_transport_notify (rpc_transport_t *this, rpc_transport_event_t event,                        void *data, ...);  | 
