summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_route.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nxt_http_route.c')
-rw-r--r--src/nxt_http_route.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/nxt_http_route.c b/src/nxt_http_route.c
index 0935dd4a..4a64d5c1 100644
--- a/src/nxt_http_route.c
+++ b/src/nxt_http_route.c
@@ -584,6 +584,11 @@ static nxt_conf_map_t nxt_http_route_action_conf[] = {
offsetof(nxt_http_action_conf_t, rewrite)
},
{
+ nxt_string("response_headers"),
+ NXT_CONF_MAP_PTR,
+ offsetof(nxt_http_action_conf_t, set_headers)
+ },
+ {
nxt_string("pass"),
NXT_CONF_MAP_PTR,
offsetof(nxt_http_action_conf_t, pass)
@@ -671,6 +676,13 @@ nxt_http_action_init(nxt_task_t *task, nxt_router_temp_conf_t *tmcf,
}
}
+ if (acf.set_headers != NULL) {
+ ret = nxt_http_set_headers_init(rtcf, action, &acf);
+ if (nxt_slow_path(ret != NXT_OK)) {
+ return ret;
+ }
+ }
+
if (acf.ret != NULL) {
return nxt_http_return_init(rtcf, action, &acf);
}
@@ -1573,6 +1585,11 @@ nxt_http_route_handler(nxt_task_t *task, nxt_http_request_t *r,
}
if (action != NULL) {
+
+ if (action != NXT_HTTP_ACTION_ERROR) {
+ r->action = action;
+ }
+
return action;
}
}