summaryrefslogtreecommitdiff
path: root/src/supplemental/http/http_conn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/supplemental/http/http_conn.c')
-rw-r--r--src/supplemental/http/http_conn.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/supplemental/http/http_conn.c b/src/supplemental/http/http_conn.c
index 0de40e10..f3b16370 100644
--- a/src/supplemental/http/http_conn.c
+++ b/src/supplemental/http/http_conn.c
@@ -365,6 +365,8 @@ http_rd_cancel(nni_aio *aio, int rv)
static void
http_rd_submit(nni_http_conn *conn, nni_aio *aio)
{
+ int rv;
+
if (nni_aio_begin(aio) != 0) {
return;
}
@@ -372,7 +374,10 @@ http_rd_submit(nni_http_conn *conn, nni_aio *aio)
nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
- nni_aio_schedule(aio, http_rd_cancel, conn);
+ if ((rv = nni_aio_schedule(aio, http_rd_cancel, conn)) != 0) {
+ nni_aio_finish_error(aio, rv);
+ return;
+ }
nni_list_append(&conn->rdq, aio);
if (conn->rd_uaio == NULL) {
http_rd_start(conn);
@@ -479,6 +484,8 @@ http_wr_cancel(nni_aio *aio, int rv)
static void
http_wr_submit(nni_http_conn *conn, nni_aio *aio)
{
+ int rv;
+
if (nni_aio_begin(aio) != 0) {
return;
}
@@ -486,8 +493,12 @@ http_wr_submit(nni_http_conn *conn, nni_aio *aio)
nni_aio_finish_error(aio, NNG_ECLOSED);
return;
}
+ if ((rv = nni_aio_schedule(aio, http_wr_cancel, conn)) != 0) {
+ nni_aio_finish_error(aio, rv);
+ return;
+ }
nni_list_append(&conn->wrq, aio);
- nni_aio_schedule(aio, http_wr_cancel, conn);
+
if (conn->wr_uaio == NULL) {
http_wr_start(conn);
}