3
/* NOTE : you will find other conf_set functions in the following files :
13
ndk_conf_set_true_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
18
ngx_conf_post_t *post;
20
fp = (ngx_flag_t*) (p + cmd->offset);
22
if (*fp != NGX_CONF_UNSET) {
23
return "is duplicate";
30
return post->post_handler (cf, post, fp);
39
ndk_conf_set_false_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
44
ngx_conf_post_t *post;
46
fp = (ngx_flag_t*) (p + cmd->offset);
48
if (*fp != NGX_CONF_UNSET) {
49
return "is duplicate";
56
return post->post_handler (cf, post, fp);
66
ndk_conf_set_ptr_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
72
ptr = (void**) (p + cmd->offset);
74
if (*ptr != NGX_CONF_UNSET_PTR) {
75
return "is duplicate";
86
ndk_conf_set_null_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
91
ngx_conf_post_t *post;
93
pp = (void **) (p + cmd->offset);
95
if (*pp != NGX_CONF_UNSET_PTR) {
96
return "is duplicate";
103
return post->post_handler (cf, post, pp);
111
ndk_conf_set_num64_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
117
ngx_conf_post_t *post;
120
np = (int64_t *) (p + cmd->offset);
122
if (*np != NGX_CONF_UNSET) {
123
return "is duplicate";
126
value = cf->args->elts;
127
*np = ndk_atoi64 (value[1].data, value[1].len);
128
if (*np == NGX_ERROR) {
129
return "invalid number";
134
return post->post_handler(cf, post, np);
142
ndk_conf_set_str_array_multi_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
146
ngx_str_t *value, *s;
148
ngx_conf_post_t *post;
151
a = (ngx_array_t **) (p + cmd->offset);
153
if (*a == NGX_CONF_UNSET_PTR) {
154
*a = ngx_array_create(cf->pool, 4, sizeof(ngx_str_t));
156
return NGX_CONF_ERROR;
162
for (i=cf->args->nelts-1; i; i--) {
164
s = ngx_array_push(*a);
166
return NGX_CONF_ERROR;
169
value = cf->args->elts;
176
return post->post_handler(cf, post, s);
185
ndk_conf_set_keyval1_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
191
ngx_conf_post_t *post;
193
kv = (ngx_keyval_t *) (p + cmd->offset);
196
return "is duplicate";
198
value = cf->args->elts;
201
kv->value = value[2];
205
return post->post_handler (cf, post, kv);
214
ndk_conf_set_num_flag_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
220
ngx_conf_post_t *post;
222
np = (ngx_int_t *) (p + cmd->offset);
224
if (*np != NGX_CONF_UNSET) {
225
return "is duplicate";
228
value = cf->args->elts;
230
if (ngx_strcasecmp (value[1].data, (u_char *) "on") == 0) {
231
*np = NDK_CONF_SET_TRUE;
233
} else if (ngx_strcasecmp (value[1].data, (u_char *) "off") == 0) {
234
*np = NDK_CONF_SET_FALSE;
237
*np = ngx_atoi (value[1].data, value[1].len);
238
if (*np == NGX_ERROR) {
239
return "invalid number and not 'on'/'off'";
245
return post->post_handler (cf, post, np);
254
ndk_conf_set_sec_flag_slot (ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
260
ngx_conf_post_t *post;
262
tp = (time_t *) (p + cmd->offset);
264
if (*tp != NGX_CONF_UNSET) {
265
return "is duplicate";
268
value = cf->args->elts;
270
if (ngx_strcasecmp (value[1].data, (u_char *) "on") == 0) {
271
*tp = NDK_CONF_SET_TRUE;
273
} else if (ngx_strcasecmp (value[1].data, (u_char *) "off") == 0) {
274
*tp = NDK_CONF_SET_FALSE;
277
*tp = ngx_parse_time (&value[1], 1);
278
if (*tp == NGX_ERROR) {
279
return "has an invalid time and not 'on'/'off'";
285
return post->post_handler (cf, post, tp);