aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_variables.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/ngx_http_variables.h')
-rw-r--r--src/http/ngx_http_variables.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/http/ngx_http_variables.h b/src/http/ngx_http_variables.h
new file mode 100644
index 000000000..c7ccdc12e
--- /dev/null
+++ b/src/http/ngx_http_variables.h
@@ -0,0 +1,61 @@
+
+/*
+ * Copyright (C) Igor Sysoev
+ */
+
+
+#ifndef _NGX_HTTP_VARIABLES_H_INCLUDED_
+#define _NGX_HTTP_VARIABLES_H_INCLUDED_
+
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+#include <ngx_event.h>
+#include <ngx_http.h>
+
+
+#define NGX_HTTP_VARIABLE_NOT_FOUND (ngx_http_variable_value_t *) -1
+
+
+typedef struct {
+ ngx_uint_t value;
+ ngx_str_t text;
+} ngx_http_variable_value_t;
+
+
+typedef struct ngx_http_variable_s ngx_http_variable_t;
+
+typedef ngx_http_variable_value_t *
+ (*ngx_http_get_variable_pt) (ngx_http_request_t *r, void *var);
+
+
+struct ngx_http_variable_s {
+ ngx_str_t name;
+ ngx_uint_t index;
+ ngx_http_get_variable_pt handler;
+ void *data;
+ ngx_uint_t uses;
+};
+
+
+typedef ngx_http_variable_value_t *
+ (*ngx_http_get_core_variable_pt) (ngx_http_request_t *r, uintptr_t data);
+
+typedef struct {
+ ngx_str_t name;
+ ngx_http_get_core_variable_pt handler;
+ uintptr_t data;
+} ngx_http_core_variable_t;
+
+
+ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf);
+ngx_int_t ngx_http_get_variable_index(ngx_http_core_main_conf_t *cmcf,
+ ngx_str_t *name);
+ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r,
+ ngx_uint_t index);
+ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r,
+ ngx_str_t *name);
+ngx_int_t ngx_http_core_variables_init(ngx_cycle_t *cycle);
+
+
+#endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */