diff options
| -rw-r--r-- | src/core/endpt.c | 4 | ||||
| -rw-r--r-- | src/core/pipe.c | 6 | ||||
| -rw-r--r-- | src/core/pipe.h | 2 |
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 *); |
