aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/endpt.c4
-rw-r--r--src/core/pipe.c6
-rw-r--r--src/core/pipe.h2
3 files changed, 5 insertions, 7 deletions
diff --git a/src/core/endpt.c b/src/core/endpt.c
index 9411c220..362af82c 100644
--- a/src/core/endpt.c
+++ b/src/core/endpt.c
@@ -206,7 +206,7 @@ nni_ep_connect(nni_ep *ep, nni_pipe **pp)
nni_pipe *pipe;
int rv;
- if ((rv = nni_pipe_create(&pipe, ep)) != 0) {
+ if ((rv = nni_pipe_create(&pipe, ep, ep->ep_sock, ep->ep_tran)) != 0) {
return (rv);
}
rv = ep->ep_ops.ep_connect(ep->ep_data, &pipe->p_tran_data);
@@ -358,7 +358,7 @@ nni_ep_accept(nni_ep *ep, nni_pipe **pp)
if (ep->ep_close) {
return (NNG_ECLOSED);
}
- if ((rv = nni_pipe_create(&pipe, ep)) != 0) {
+ if ((rv = nni_pipe_create(&pipe, ep, ep->ep_sock, ep->ep_tran)) != 0) {
return (rv);
}
rv = ep->ep_ops.ep_accept(ep->ep_data, &pipe->p_tran_data);
diff --git a/src/core/pipe.c b/src/core/pipe.c
index dd3b2984..8eb6c376 100644
--- a/src/core/pipe.c
+++ b/src/core/pipe.c
@@ -121,11 +121,9 @@ nni_pipe_peer(nni_pipe *p)
int
-nni_pipe_create(nni_pipe **pp, nni_ep *ep)
+nni_pipe_create(nni_pipe **pp, nni_ep *ep, nni_sock *sock, nni_tran *tran)
{
nni_pipe *p;
- nni_sock *sock = ep->ep_sock;
- const nni_proto_pipe_ops *ops = &sock->s_pipe_ops;
void *pdata;
int rv;
@@ -145,7 +143,7 @@ nni_pipe_create(nni_pipe **pp, nni_ep *ep)
// Make a copy of the transport ops. We can override entry points
// and we avoid an extra dereference on hot code paths.
- p->p_tran_ops = *ep->ep_tran->tran_pipe;
+ p->p_tran_ops = *tran->tran_pipe;
if ((rv = nni_sock_pipe_add(sock, p)) != 0) {
nni_mtx_fini(&p->p_mtx);
diff --git a/src/core/pipe.h b/src/core/pipe.h
index 55246388..08d7893e 100644
--- a/src/core/pipe.h
+++ b/src/core/pipe.h
@@ -46,7 +46,7 @@ extern void nni_pipe_decref(nni_pipe *);
// Used only by the socket core - as we don't wish to expose the details
// of the pipe structure outside of pipe.c.
-extern int nni_pipe_create(nni_pipe **, nni_ep *);
+extern int nni_pipe_create(nni_pipe **, nni_ep *, nni_sock *, nni_tran *);
extern void nni_pipe_destroy(nni_pipe *);