aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental
diff options
context:
space:
mode:
Diffstat (limited to 'src/supplemental')
-rw-r--r--src/supplemental/http/http_client.c3
-rw-r--r--src/supplemental/http/http_conn.c6
-rw-r--r--src/supplemental/http/http_public.c28
-rw-r--r--src/supplemental/http/http_server.c4
-rw-r--r--src/supplemental/tls/mbedtls/tls.c13
-rw-r--r--src/supplemental/websocket/websocket.c60
6 files changed, 57 insertions, 57 deletions
diff --git a/src/supplemental/http/http_client.c b/src/supplemental/http/http_client.c
index c62a3c56..2a9be4bb 100644
--- a/src/supplemental/http/http_client.c
+++ b/src/supplemental/http/http_client.c
@@ -241,10 +241,11 @@ http_connect_cancel(nni_aio *aio, int rv)
void
nni_http_client_connect(nni_http_client *c, nni_aio *aio)
{
- if (nni_aio_start(aio, http_connect_cancel, aio) != 0) {
+ if (nni_aio_begin(aio) != 0) {
return;
}
nni_mtx_lock(&c->mtx);
+ nni_aio_schedule(aio, http_connect_cancel, aio);
nni_list_append(&c->aios, aio);
if (nni_list_first(&c->aios) == aio) {
http_conn_start(c);
diff --git a/src/supplemental/http/http_conn.c b/src/supplemental/http/http_conn.c
index d37c9a2f..a3039d0d 100644
--- a/src/supplemental/http/http_conn.c
+++ b/src/supplemental/http/http_conn.c
@@ -360,13 +360,14 @@ http_rd_cancel(nni_aio *aio, int rv)
static void
http_rd_submit(nni_http_conn *conn, nni_aio *aio)
{
- if (nni_aio_start(aio, http_rd_cancel, conn) != 0) {
+ if (nni_aio_begin(aio) != 0) {
return;
}
if (conn->closed) {
nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
+ nni_aio_schedule(aio, http_rd_cancel, conn);
nni_list_append(&conn->rdq, aio);
if (conn->rd_uaio == NULL) {
http_rd_start(conn);
@@ -473,7 +474,7 @@ http_wr_cancel(nni_aio *aio, int rv)
static void
http_wr_submit(nni_http_conn *conn, nni_aio *aio)
{
- if (nni_aio_start(aio, http_wr_cancel, conn) != 0) {
+ if (nni_aio_begin(aio) != 0) {
return;
}
if (conn->closed) {
@@ -481,6 +482,7 @@ http_wr_submit(nni_http_conn *conn, nni_aio *aio)
return;
}
nni_list_append(&conn->wrq, aio);
+ nni_aio_schedule(aio, http_wr_cancel, conn);
if (conn->wr_uaio == NULL) {
http_wr_start(conn);
}
diff --git a/src/supplemental/http/http_public.c b/src/supplemental/http/http_public.c
index 7107c029..7aae45b2 100644
--- a/src/supplemental/http/http_public.c
+++ b/src/supplemental/http/http_public.c
@@ -9,9 +9,9 @@
//
#include "core/nng_impl.h"
-#include "supplemental/tls/tls.h"
#include "http.h"
#include "http_api.h"
+#include "supplemental/tls/tls.h"
// Symbols in this file are "public" versions of the HTTP API.
// These are suitable for exposure to applications.
@@ -382,7 +382,7 @@ nng_http_conn_read(nng_http_conn *conn, nng_aio *aio)
nni_http_read(conn, aio);
#else
NNI_ARG_UNUSED(conn);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -395,7 +395,7 @@ nng_http_conn_read_all(nng_http_conn *conn, nng_aio *aio)
nni_http_read_full(conn, aio);
#else
NNI_ARG_UNUSED(conn);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -408,7 +408,7 @@ nng_http_conn_write(nng_http_conn *conn, nng_aio *aio)
nni_http_write(conn, aio);
#else
NNI_ARG_UNUSED(conn);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -433,7 +433,7 @@ nng_http_conn_write_req(nng_http_conn *conn, nng_http_req *req, nng_aio *aio)
#else
NNI_ARG_UNUSED(conn);
NNI_ARG_UNUSED(req);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -447,7 +447,7 @@ nng_http_conn_write_res(nng_http_conn *conn, nng_http_res *res, nng_aio *aio)
#else
NNI_ARG_UNUSED(conn);
NNI_ARG_UNUSED(res);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -461,7 +461,7 @@ nng_http_conn_read_req(nng_http_conn *conn, nng_http_req *req, nng_aio *aio)
#else
NNI_ARG_UNUSED(conn);
NNI_ARG_UNUSED(req);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -475,7 +475,7 @@ nng_http_conn_read_res(nng_http_conn *conn, nng_http_res *res, nng_aio *aio)
#else
NNI_ARG_UNUSED(conn);
NNI_ARG_UNUSED(res);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
@@ -574,7 +574,8 @@ nng_http_handler_set_host(nng_http_handler *h, const char *host)
#endif
}
-int nng_http_handler_set_tree(nng_http_handler *h)
+int
+nng_http_handler_set_tree(nng_http_handler *h)
{
#ifdef NNG_SUPP_HTTP
return (nni_http_handler_set_tree(h));
@@ -698,12 +699,13 @@ nng_http_server_get_tls(nng_http_server *srv, nng_tls_config **cfgp)
#endif
}
-int nng_http_hijack(nng_http_conn * conn)
+int
+nng_http_hijack(nng_http_conn *conn)
{
#ifdef NNG_SUPP_HTTP
- return (nni_http_hijack(conn));
+ return (nni_http_hijack(conn));
#else
- NNI_ARG_UNUSED(conn);
+ NNI_ARG_UNUSED(conn);
return (NNG_ENOTSUP);
#endif
}
@@ -762,7 +764,7 @@ nng_http_client_connect(nng_http_client *cli, nng_aio *aio)
nni_http_client_connect(cli, aio);
#else
NNI_ARG_UNUSED(cli);
- if (nni_aio_start(aio, NULL, NULL)) {
+ if (nni_aio_begin(aio) == 0) {
nni_aio_finish_error(aio, NNG_ENOTSUP);
}
#endif
diff --git a/src/supplemental/http/http_server.c b/src/supplemental/http/http_server.c
index 7feadc96..c92de586 100644
--- a/src/supplemental/http/http_server.c
+++ b/src/supplemental/http/http_server.c
@@ -590,8 +590,8 @@ http_sconn_rxdone(void *arg)
// Technically, probably callback should initialize this with
// start, but we do it instead.
-
- if (nni_aio_start(sc->cbaio, NULL, NULL) != 0) {
+ // This operation cannot at present canceled or timed out.
+ if (nni_aio_begin(sc->cbaio) != 0) {
nni_mtx_unlock(&s->mtx);
return;
}
diff --git a/src/supplemental/tls/mbedtls/tls.c b/src/supplemental/tls/mbedtls/tls.c
index 8faf4e46..c2a0fb52 100644
--- a/src/supplemental/tls/mbedtls/tls.c
+++ b/src/supplemental/tls/mbedtls/tls.c
@@ -13,7 +13,6 @@
#include <stdlib.h>
#include <string.h>
-
#include "mbedtls/version.h" // Must be first in order to pick up version
#include "mbedtls/error.h"
@@ -562,16 +561,16 @@ nni_tls_net_recv(void *ctx, unsigned char *buf, size_t len)
void
nni_tls_send(nni_tls *tp, nni_aio *aio)
{
- nni_mtx_lock(&tp->lk);
- if (nni_aio_start(aio, nni_tls_cancel, tp) != 0) {
- nni_mtx_unlock(&tp->lk);
+ if (nni_aio_begin(aio) != 0) {
return;
}
+ nni_mtx_lock(&tp->lk);
if (tp->tls_closed) {
nni_mtx_unlock(&tp->lk);
nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
+ nni_aio_schedule(aio, nni_tls_cancel, tp);
nni_list_append(&tp->sends, aio);
nni_tls_do_send(tp);
nni_mtx_unlock(&tp->lk);
@@ -580,16 +579,16 @@ nni_tls_send(nni_tls *tp, nni_aio *aio)
void
nni_tls_recv(nni_tls *tp, nni_aio *aio)
{
- nni_mtx_lock(&tp->lk);
- if (nni_aio_start(aio, nni_tls_cancel, tp) != 0) {
- nni_mtx_unlock(&tp->lk);
+ if (nni_aio_begin(aio) != 0) {
return;
}
+ nni_mtx_lock(&tp->lk);
if (tp->tls_closed) {
nni_mtx_unlock(&tp->lk);
nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
+ nni_aio_schedule(aio, nni_tls_cancel, tp);
nni_list_append(&tp->recvs, aio);
nni_tls_do_recv(tp);
nni_mtx_unlock(&tp->lk);
diff --git a/src/supplemental/websocket/websocket.c b/src/supplemental/websocket/websocket.c
index 7bd698bd..74b56437 100644
--- a/src/supplemental/websocket/websocket.c
+++ b/src/supplemental/websocket/websocket.c
@@ -655,9 +655,7 @@ ws_send_close(nni_ws *ws, uint16_t code)
ws->closed = true;
aio = ws->closeaio;
- // We don't care about cancellation here. If this times out,
- // we will still shut all the physical I/O down in the callback.
- if (nni_aio_start(aio, ws_cancel_close, ws) != 0) {
+ if (nni_aio_begin(aio) != 0) {
return;
}
ws->wclose = true;
@@ -669,6 +667,7 @@ ws_send_close(nni_ws *ws, uint16_t code)
}
// Close frames get priority!
nni_list_prepend(&ws->txmsgs, wm);
+ nni_aio_schedule(aio, ws_cancel_close, ws);
ws_start_write(ws);
}
@@ -722,26 +721,22 @@ nni_ws_send_msg(nni_ws *ws, nni_aio *aio)
msg = nni_aio_get_msg(aio);
+ if (nni_aio_begin(aio) != 0) {
+ return;
+ }
if ((rv = ws_msg_init_tx(&wm, ws, msg, aio)) != 0) {
- if (nni_aio_start(aio, NULL, NULL) == 0) {
- nni_aio_finish_error(aio, rv);
- }
+ nni_aio_finish_error(aio, rv);
return;
}
nni_mtx_lock(&ws->mtx);
-
- if (nni_aio_start(aio, ws_write_cancel, ws) != 0) {
- nni_mtx_unlock(&ws->mtx);
- ws_msg_fini(wm);
- return;
- }
if (ws->closed) {
nni_mtx_unlock(&ws->mtx);
nni_aio_finish_error(aio, NNG_ECLOSED);
ws_msg_fini(wm);
return;
}
+ nni_aio_schedule(aio, ws_write_cancel, ws);
nni_aio_set_prov_extra(aio, 0, wm);
nni_list_append(&ws->sendq, aio);
nni_list_append(&ws->txmsgs, wm);
@@ -1056,19 +1051,20 @@ nni_ws_recv_msg(nni_ws *ws, nni_aio *aio)
ws_msg *wm;
int rv;
+ if (nni_aio_begin(aio) != 0) {
+ return;
+ }
if ((rv = ws_msg_init_rx(&wm, ws, aio)) != 0) {
- if (nni_aio_start(aio, NULL, NULL)) {
- nni_aio_finish_error(aio, rv);
- }
+ nni_aio_finish_error(aio, rv);
return;
}
nni_mtx_lock(&ws->mtx);
- if (nni_aio_start(aio, ws_read_cancel, ws) == 0) {
- nni_aio_set_prov_extra(aio, 0, wm);
- nni_list_append(&ws->recvq, aio);
- nni_list_append(&ws->rxmsgs, wm);
- ws_start_read(ws);
- }
+ nni_aio_schedule(aio, ws_read_cancel, ws);
+ nni_aio_set_prov_extra(aio, 0, wm);
+ nni_list_append(&ws->recvq, aio);
+ nni_list_append(&ws->rxmsgs, wm);
+ ws_start_read(ws);
+
nni_mtx_unlock(&ws->mtx);
}
@@ -1651,11 +1647,10 @@ nni_ws_listener_accept(nni_ws_listener *l, nni_aio *aio)
{
nni_ws *ws;
- nni_mtx_lock(&l->mtx);
- if (nni_aio_start(aio, ws_accept_cancel, l) != 0) {
- nni_mtx_unlock(&l->mtx);
+ if (nni_aio_begin(aio) != 0) {
return;
}
+ nni_mtx_lock(&l->mtx);
if (l->closed) {
nni_aio_finish_error(aio, NNG_ECLOSED);
nni_mtx_unlock(&l->mtx);
@@ -1668,11 +1663,13 @@ nni_ws_listener_accept(nni_ws_listener *l, nni_aio *aio)
}
if ((ws = nni_list_first(&l->pend)) != NULL) {
nni_list_remove(&l->pend, ws);
+ nni_mtx_unlock(&l->mtx);
nni_aio_set_output(aio, 0, ws);
nni_aio_finish(aio, 0, 0);
- } else {
- nni_list_append(&l->aios, aio);
+ return;
}
+ nni_aio_schedule(aio, ws_accept_cancel, l);
+ nni_list_append(&l->aios, aio);
nni_mtx_unlock(&l->mtx);
}
@@ -1983,19 +1980,17 @@ nni_ws_dialer_dial(nni_ws_dialer *d, nni_aio *aio)
nni_ws *ws;
int rv;
+ if (nni_aio_begin(aio) != 0) {
+ return;
+ }
if ((rv = ws_init(&ws)) != 0) {
nni_aio_finish_error(aio, rv);
return;
}
nni_mtx_lock(&d->mtx);
if (d->closed) {
- nni_aio_finish_error(aio, NNG_ECLOSED);
- nni_mtx_unlock(&d->mtx);
- ws_fini(ws);
- return;
- }
- if (nni_aio_start(aio, ws_dial_cancel, ws) != 0) {
nni_mtx_unlock(&d->mtx);
+ nni_aio_finish_error(aio, NNG_ECLOSED);
ws_fini(ws);
return;
}
@@ -2003,6 +1998,7 @@ nni_ws_dialer_dial(nni_ws_dialer *d, nni_aio *aio)
ws->useraio = aio;
ws->mode = NNI_EP_MODE_DIAL;
nni_list_append(&d->wspend, ws);
+ nni_aio_schedule(aio, ws_dial_cancel, ws);
nni_http_client_connect(d->client, ws->connaio);
nni_mtx_unlock(&d->mtx);
}