diff options
| -rw-r--r-- | src/sp/transport/socket/sockfd.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/sp/transport/socket/sockfd.c b/src/sp/transport/socket/sockfd.c index ca013077..45927d19 100644 --- a/src/sp/transport/socket/sockfd.c +++ b/src/sp/transport/socket/sockfd.c @@ -1,5 +1,5 @@ // -// Copyright 2023 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // Copyright 2019 Devolutions <info@devolutions.net> // @@ -60,8 +60,8 @@ struct sfd_tran_ep { nng_sockaddr src; int refcnt; // active pipes nni_aio *useraio; - nni_aio *connaio; - nni_aio *timeaio; + nni_aio connaio; + nni_aio timeaio; nni_list busypipes; // busy pipes -- ones passed to socket nni_list waitpipes; // pipes waiting to match to socket nni_list negopipes; // pipes busy negotiating @@ -666,11 +666,11 @@ sfd_tran_ep_fini(void *arg) return; } nni_mtx_unlock(&ep->mtx); - nni_aio_stop(ep->timeaio); - nni_aio_stop(ep->connaio); + nni_aio_stop(&ep->timeaio); + nni_aio_stop(&ep->connaio); nng_stream_listener_free(ep->listener); - nni_aio_free(ep->timeaio); - nni_aio_free(ep->connaio); + nni_aio_fini(&ep->timeaio); + nni_aio_fini(&ep->connaio); nni_mtx_fini(&ep->mtx); NNI_FREE_STRUCT(ep); @@ -685,7 +685,7 @@ sfd_tran_ep_close(void *arg) nni_mtx_lock(&ep->mtx); ep->closed = true; - nni_aio_close(ep->timeaio); + nni_aio_close(&ep->timeaio); if (ep->listener != NULL) { nng_stream_listener_close(ep->listener); } @@ -710,8 +710,8 @@ static void sfd_tran_timer_cb(void *arg) { sfd_tran_ep *ep = arg; - if (nni_aio_result(ep->timeaio) == 0) { - nng_stream_listener_accept(ep->listener, ep->connaio); + if (nni_aio_result(&ep->timeaio) == 0) { + nng_stream_listener_accept(ep->listener, &ep->connaio); } } @@ -719,7 +719,7 @@ static void sfd_tran_accept_cb(void *arg) { sfd_tran_ep *ep = arg; - nni_aio *aio = ep->connaio; + nni_aio *aio = &ep->connaio; sfd_tran_pipe *p; int rv; nng_stream *conn; @@ -743,7 +743,7 @@ sfd_tran_accept_cb(void *arg) goto error; } sfd_tran_pipe_start(p, conn, ep); - nng_stream_listener_accept(ep->listener, ep->connaio); + nng_stream_listener_accept(ep->listener, &ep->connaio); nni_mtx_unlock(&ep->mtx); return; @@ -758,12 +758,12 @@ error: case NNG_ENOMEM: case NNG_ENOFILES: - nng_sleep_aio(10, ep->timeaio); + nng_sleep_aio(10, &ep->timeaio); break; default: if (!ep->closed) { - nng_stream_listener_accept(ep->listener, ep->connaio); + nng_stream_listener_accept(ep->listener, &ep->connaio); } break; } @@ -819,13 +819,14 @@ sfd_tran_listener_init(void **lp, nng_url *url, nni_listener *nlistener) return (rv); } - if (((rv = nni_aio_alloc(&ep->connaio, sfd_tran_accept_cb, ep)) != - 0) || - ((rv = nni_aio_alloc(&ep->timeaio, sfd_tran_timer_cb, ep)) != 0) || - ((rv = nng_stream_listener_alloc_url(&ep->listener, url)) != 0)) { + nni_aio_init(&ep->connaio, sfd_tran_accept_cb, ep); + nni_aio_init(&ep->timeaio, sfd_tran_timer_cb, ep); + + if ((rv = nng_stream_listener_alloc_url(&ep->listener, url)) != 0) { sfd_tran_ep_fini(ep); return (rv); } + #ifdef NNG_ENABLE_STATS nni_listener_add_stat(nlistener, &ep->st_rcv_max); #endif @@ -911,7 +912,7 @@ sfd_tran_ep_accept(void *arg, nni_aio *aio) ep->useraio = aio; if (!ep->started) { ep->started = true; - nng_stream_listener_accept(ep->listener, ep->connaio); + nng_stream_listener_accept(ep->listener, &ep->connaio); } else { sfd_tran_ep_match(ep); } |
