summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_return.c
diff options
context:
space:
mode:
authoroxpa <iippolitov@gmail.com>2024-09-17 14:21:10 +0100
committeroxpa <iippolitov@gmail.com>2024-09-17 14:21:10 +0100
commit2417826d8bebf921ee1be102ef8ce702f0683d66 (patch)
tree76d29a1705415ed7368870826dbb2f04942ee794 /src/nxt_http_return.c
parent0e79d961bb1ea68674961da1703ffedb1ddf6e43 (diff)
parent24ed91f40634372d99f67f0e4e3c2ac0abde81bd (diff)
downloadunit-2417826d8bebf921ee1be102ef8ce702f0683d66.tar.gz
unit-2417826d8bebf921ee1be102ef8ce702f0683d66.tar.bz2
Merge tag '1.33.0' into packaging.
Unit 1.33.0 release.
Diffstat (limited to 'src/nxt_http_return.c')
-rw-r--r--src/nxt_http_return.c41
1 files changed, 13 insertions, 28 deletions
diff --git a/src/nxt_http_return.c b/src/nxt_http_return.c
index b50e4ad0..a3551683 100644
--- a/src/nxt_http_return.c
+++ b/src/nxt_http_return.c
@@ -24,8 +24,8 @@ static nxt_http_action_t *nxt_http_return(nxt_task_t *task,
nxt_http_request_t *r, nxt_http_action_t *action);
static nxt_int_t nxt_http_return_encode(nxt_mp_t *mp, nxt_str_t *encoded,
const nxt_str_t *location);
-static void nxt_http_return_send_ready(nxt_task_t *task, void *obj, void *data);
-static void nxt_http_return_send_error(nxt_task_t *task, void *obj, void *data);
+static void nxt_http_return_send(nxt_task_t *task, nxt_http_request_t *r,
+ nxt_http_return_ctx_t *ctx);
static const nxt_http_request_state_t nxt_http_return_send_state;
@@ -120,8 +120,6 @@ nxt_http_return(nxt_task_t *task, nxt_http_request_t *r,
ctx->encoded = conf->encoded;
}
- nxt_http_return_send_ready(task, r, ctx);
-
} else {
rtcf = r->conf->socket_conf->router_conf;
@@ -131,13 +129,15 @@ nxt_http_return(nxt_task_t *task, nxt_http_request_t *r,
goto fail;
}
- nxt_tstr_query(task, r->tstr_query, conf->location, &ctx->location);
-
- nxt_tstr_query_resolve(task, r->tstr_query, ctx,
- nxt_http_return_send_ready,
- nxt_http_return_send_error);
+ ret = nxt_tstr_query(task, r->tstr_query, conf->location,
+ &ctx->location);
+ if (nxt_slow_path(ret != NXT_OK)) {
+ goto fail;
+ }
}
+ nxt_http_return_send(task, r, ctx);
+
return NULL;
fail:
@@ -174,15 +174,11 @@ nxt_http_return_encode(nxt_mp_t *mp, nxt_str_t *encoded,
static void
-nxt_http_return_send_ready(nxt_task_t *task, void *obj, void *data)
+nxt_http_return_send(nxt_task_t *task, nxt_http_request_t *r,
+ nxt_http_return_ctx_t *ctx)
{
- nxt_int_t ret;
- nxt_http_field_t *field;
- nxt_http_request_t *r;
- nxt_http_return_ctx_t *ctx;
-
- r = obj;
- ctx = data;
+ nxt_int_t ret;
+ nxt_http_field_t *field;
if (ctx != NULL) {
if (ctx->location.length > 0) {
@@ -216,17 +212,6 @@ fail:
}
-static void
-nxt_http_return_send_error(nxt_task_t *task, void *obj, void *data)
-{
- nxt_http_request_t *r;
-
- r = obj;
-
- nxt_http_request_error(task, r, NXT_HTTP_INTERNAL_SERVER_ERROR);
-}
-
-
static const nxt_http_request_state_t nxt_http_return_send_state
nxt_aligned(64) =
{