summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-lib/src/rpc-clnt.c
diff options
context:
space:
mode:
authorJeff Darcy <jdarcy@redhat.com>2014-01-14 17:00:14 +0000
committerJeff Darcy <jdarcy@redhat.com>2014-01-14 17:00:14 +0000
commit455791f265e6e581fa4ebddd5dc4642b2201f8ce (patch)
treeebd5cad9534291822f8c47dbbc8162525f8fe92e /rpc/rpc-lib/src/rpc-clnt.c
parent92eaa72ea4cd0d06c2161842c548008db0eee01c (diff)
parent7d89ec77763dc5076379753c736f7fce2bedd9ec (diff)
Merge branch 'upstream' into merge
Diffstat (limited to 'rpc/rpc-lib/src/rpc-clnt.c')
-rw-r--r--rpc/rpc-lib/src/rpc-clnt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c
index ac98a5c91..1e9f307be 100644
--- a/rpc/rpc-lib/src/rpc-clnt.c
+++ b/rpc/rpc-lib/src/rpc-clnt.c
@@ -416,7 +416,7 @@ rpc_clnt_reconnect (void *trans_ptr)
conn->reconnect);
conn->reconnect = 0;
- if (conn->connected == 0) {
+ if ((conn->connected == 0) && !clnt->disabled) {
ts.tv_sec = 3;
ts.tv_nsec = 0;
@@ -834,6 +834,7 @@ rpc_clnt_notify (rpc_transport_t *trans, void *mydata,
rpc_request_info_t *req_info = NULL;
rpc_transport_pollin_t *pollin = NULL;
struct timespec ts = {0, };
+ void *clnt_mydata = NULL;
conn = mydata;
if (conn == NULL) {
@@ -870,6 +871,12 @@ rpc_clnt_notify (rpc_transport_t *trans, void *mydata,
}
case RPC_TRANSPORT_CLEANUP:
+ if (clnt->notifyfn) {
+ clnt_mydata = clnt->mydata;
+ clnt->mydata = NULL;
+ ret = clnt->notifyfn (clnt, clnt_mydata,
+ RPC_CLNT_DESTROY, NULL);
+ }
rpc_clnt_destroy (clnt);
ret = 0;
break;