summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/changes.xml6
-rw-r--r--src/nxt_http_variables.c20
2 files changed, 26 insertions, 0 deletions
diff --git a/docs/changes.xml b/docs/changes.xml
index db352022..c1cf96d2 100644
--- a/docs/changes.xml
+++ b/docs/changes.xml
@@ -57,6 +57,12 @@ variables support in the "location" option of the "return" action.
<change type="feature">
<para>
+added new variable $request_uri with the same meaning as in NGINX.
+</para>
+</change>
+
+<change type="feature">
+<para>
compatibility with GCC 12.
</para>
</change>
diff --git a/src/nxt_http_variables.c b/src/nxt_http_variables.c
index 1c0b561d..b765e177 100644
--- a/src/nxt_http_variables.c
+++ b/src/nxt_http_variables.c
@@ -9,6 +9,8 @@
static nxt_int_t nxt_http_var_method(nxt_task_t *task, nxt_var_query_t *query,
nxt_str_t *str, void *ctx);
+static nxt_int_t nxt_http_var_request_uri(nxt_task_t *task,
+ nxt_var_query_t *query, nxt_str_t *str, void *ctx);
static nxt_int_t nxt_http_var_uri(nxt_task_t *task, nxt_var_query_t *query,
nxt_str_t *str, void *ctx);
static nxt_int_t nxt_http_var_host(nxt_task_t *task, nxt_var_query_t *query,
@@ -20,6 +22,10 @@ static nxt_var_decl_t nxt_http_vars[] = {
&nxt_http_var_method,
0 },
+ { nxt_string("request_uri"),
+ &nxt_http_var_request_uri,
+ 0 },
+
{ nxt_string("uri"),
&nxt_http_var_uri,
0 },
@@ -52,6 +58,20 @@ nxt_http_var_method(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
static nxt_int_t
+nxt_http_var_request_uri(nxt_task_t *task, nxt_var_query_t *query,
+ nxt_str_t *str, void *ctx)
+{
+ nxt_http_request_t *r;
+
+ r = ctx;
+
+ *str = r->target;
+
+ return NXT_OK;
+}
+
+
+static nxt_int_t
nxt_http_var_uri(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
void *ctx)
{