summaryrefslogtreecommitdiffstats
path: root/rpc/rpc-transport/socket/src/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'rpc/rpc-transport/socket/src/socket.c')
-rw-r--r--rpc/rpc-transport/socket/src/socket.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c
index b043f52ef83..ff6983f813b 100644
--- a/rpc/rpc-transport/socket/src/socket.c
+++ b/rpc/rpc-transport/socket/src/socket.c
@@ -2148,12 +2148,13 @@ socket_poller (void *ctx)
gf_log (this->name, GF_LOG_WARNING,
"asynchronous socket_connect_finish failed");
}
- ret = rpc_transport_notify (this->listener,
- RPC_TRANSPORT_ACCEPT, this);
- if (ret != 0) {
- gf_log (this->name, GF_LOG_WARNING,
- "asynchronous rpc_transport_notify failed");
- }
+ }
+
+ ret = rpc_transport_notify (this->listener,
+ RPC_TRANSPORT_ACCEPT, this);
+ if (ret != 0) {
+ gf_log (this->name, GF_LOG_WARNING,
+ "asynchronous rpc_transport_notify failed");
}
for (;;) {
@@ -2232,7 +2233,7 @@ socket_poller (void *ctx)
err:
/* All (and only) I/O errors should come here. */
__socket_disconnect (this);
- rpc_transport_notify (this, RPC_TRANSPORT_DISCONNECT, this);
+ rpc_transport_notify (this->listener, RPC_TRANSPORT_DISCONNECT, this);
rpc_transport_unref (this);
return NULL;
}
@@ -2632,6 +2633,7 @@ socket_connect (rpc_transport_t *this, int port)
"could not create pipe");
}
+ this->listener = this;
if (pthread_create(&priv->thread,NULL,
socket_poller, this) != 0) {
gf_log(this->name,GF_LOG_ERROR,