aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transport/inproc/inproc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/transport/inproc/inproc.c b/src/transport/inproc/inproc.c
index aeb3ff1a..88cf96b9 100644
--- a/src/transport/inproc/inproc.c
+++ b/src/transport/inproc/inproc.c
@@ -234,7 +234,7 @@ nni_inproc_ep_close(void *arg)
if (ep->mode == NNI_INPROC_EP_LISTEN) {
nni_list_remove(&nni_inproc.servers, ep);
for (;;) {
- // Notify our clients that we are closed.
+ // Notify waiting clients that we are closed.
nni_inproc_ep *client;
client = nni_list_first(&ep->clients);
if (client == NULL) {
@@ -284,6 +284,9 @@ nni_inproc_ep_connect(void *arg, void **pipep)
nni_mtx_unlock(&nni_inproc.mx);
return (NNG_ECONNREFUSED);
}
+
+ // XXX check protocol peer validity...
+
ep->mode = NNI_INPROC_EP_DIAL;
nni_list_append(&server->clients, ep);
nni_cv_wake(&server->cv);
@@ -294,6 +297,7 @@ nni_inproc_ep_connect(void *arg, void **pipep)
}
}
*pipep = ep->cpipe;
+ ep->cpipe = NULL;
nni_mtx_unlock(&nni_inproc.mx);
return (0);
}