summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_variables.c
diff options
context:
space:
mode:
authorAndrei Belov <defan@nginx.com>2020-08-13 19:28:27 +0300
committerAndrei Belov <defan@nginx.com>2020-08-13 19:28:27 +0300
commitaff76e4f90b4e948c327ce2b021dc3203c33cbcd (patch)
tree5bd6ac3aa92683777548472984c209bf26d8a971 /src/nxt_http_variables.c
parent04ce9f997e0e49e57ce4b5fc4aa98134232a1974 (diff)
parent6473d4b65a99aa10d509220fb99d8c4f65631ed0 (diff)
downloadunit-1.19.0-1.tar.gz
unit-1.19.0-1.tar.bz2
Merged with the default branch.1.19.0-1
Diffstat (limited to 'src/nxt_http_variables.c')
-rw-r--r--src/nxt_http_variables.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/nxt_http_variables.c b/src/nxt_http_variables.c
new file mode 100644
index 00000000..222d717c
--- /dev/null
+++ b/src/nxt_http_variables.c
@@ -0,0 +1,59 @@
+
+/*
+ * Copyright (C) NGINX, Inc.
+ */
+
+#include <nxt_router.h>
+#include <nxt_http.h>
+
+
+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_uri(nxt_task_t *task, nxt_var_query_t *query,
+ nxt_str_t *str, void *ctx);
+
+
+static nxt_var_decl_t nxt_http_vars[] = {
+ { nxt_string("method"),
+ &nxt_http_var_method,
+ 0 },
+
+ { nxt_string("uri"),
+ &nxt_http_var_uri,
+ 0 },
+};
+
+
+nxt_int_t
+nxt_http_register_variables(void)
+{
+ return nxt_var_register(nxt_http_vars, nxt_nitems(nxt_http_vars));
+}
+
+
+static nxt_int_t
+nxt_http_var_method(nxt_task_t *task, nxt_var_query_t *query, nxt_str_t *str,
+ void *ctx)
+{
+ nxt_http_request_t *r;
+
+ r = ctx;
+
+ *str = *r->method;
+
+ 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)
+{
+ nxt_http_request_t *r;
+
+ r = ctx;
+
+ *str = *r->path;
+
+ return NXT_OK;
+}