1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#ifndef _NGX_HTTP_CONF_FILE_H_INCLUDED_
#define _NGX_HTTP_CONF_FILE_H_INCLUDED_
#include <ngx_config.h>
#include <ngx_files.h>
#include <ngx_log.h>
#include <ngx_file.h>
#include <ngx_string.h>
#include <ngx_alloc.h>
#include <ngx_hunk.h>
#include <ngx_array.h>
/*
* AAAA number of agruments
* TT command flags
* LL command location
*/
#define NGX_CONF_NOARGS 1
#define NGX_CONF_TAKE1 2
#define NGX_CONF_TAKE2 4
#define NGX_CONF_ARGS_NUMBER 0x00ffff
#define NGX_CONF_ANY 0x010000
#define NGX_CONF_BLOCK 0x020000
#define NGX_CONF_FLAG 0x040000
#define NGX_MAIN_CONF 0x1000000
#define NGX_CONF_UNSET -1
#define NGX_CONF_OK NULL
#define NGX_CONF_ERROR (void *) -1
#define NGX_CONF_BLOCK_DONE 1
#define NGX_CONF_FILE_DONE 2
#define NGX_CORE_MODULE_TYPE 0x45524F43 /* "CORE" */
#define NGX_CONF_MODULE_TYPE 0x464E4F43 /* "CONF" */
typedef struct ngx_conf_s ngx_conf_t;
typedef struct ngx_command_s ngx_command_t;
struct ngx_command_s {
ngx_str_t name;
int type;
char *(*set)(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
int conf;
int offset;
void *bounds;
};
typedef struct {
int index;
void *ctx;
ngx_command_t *commands;
int type;
int (*init_module)(ngx_pool_t *p);
} ngx_module_t;
typedef struct {
ngx_file_t file;
ngx_hunk_t *hunk;
int line;
} ngx_conf_file_t;
typedef char *(*ngx_conf_handler_pt)(ngx_conf_t *cf,
ngx_command_t *dummy, char *conf);
struct ngx_conf_s {
char *name;
ngx_array_t *args;
ngx_pool_t *pool;
ngx_conf_file_t *conf_file;
ngx_log_t *log;
void *ctx;
int module_type;
int cmd_type;
ngx_conf_handler_pt handler;
char *handler_conf;
};
#define ngx_conf_merge(conf, prev, default) \
if (conf == NGX_CONF_UNSET) { \
conf = (prev == NGX_CONF_UNSET) ? default : prev; \
}
#define ngx_conf_msec_merge(conf, prev, default) \
if (conf == NGX_CONF_UNSET) { \
conf = (prev == NGX_CONF_UNSET) ? default : prev; \
}
#define ngx_conf_size_merge(conf, prev, default) \
if (conf == (size_t) NGX_CONF_UNSET) { \
conf = (prev == (size_t) NGX_CONF_UNSET) ? default : prev; \
}
#define addressof(addr) ((int) &addr)
char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename);
char *ngx_conf_set_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
char *ngx_conf_set_str_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
char *ngx_conf_set_size_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
char *ngx_conf_set_msec_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
char *ngx_conf_set_time_slot(ngx_conf_t *cf, ngx_command_t *cmd, char *conf);
extern ngx_module_t *ngx_modules[];
#endif /* _NGX_HTTP_CONF_FILE_H_INCLUDED_ */
|