~ubuntu-branches/ubuntu/natty/lighttpd/natty

« back to all changes in this revision

Viewing changes to src/configfile.c

  • Committer: Bazaar Package Importer
  • Author(s): Krzysztof Krzyżaniak (eloy)
  • Date: 2009-10-30 17:37:29 UTC
  • mto: (6.1.4 squeeze)
  • mto: This revision was merged to the branch mainline in revision 50.
  • Revision ID: james.westby@ubuntu.com-20091030173729-ehmsdiba9nkcd0j7
Tags: upstream-1.4.24
Import upstream version 1.4.24

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "server.h"
 
2
#include "log.h"
 
3
#include "stream.h"
 
4
#include "plugin.h"
 
5
 
 
6
#include "configparser.h"
 
7
#include "configfile.h"
 
8
#include "proc_open.h"
 
9
 
1
10
#include <sys/stat.h>
2
11
 
3
12
#include <stdlib.h>
10
19
#include <limits.h>
11
20
#include <assert.h>
12
21
 
13
 
#include "server.h"
14
 
#include "log.h"
15
 
#include "stream.h"
16
 
#include "plugin.h"
17
 
#ifdef USE_LICENSE
18
 
#include "license.h"
19
 
#endif
20
 
 
21
 
#include "configparser.h"
22
 
#include "configfile.h"
23
 
#include "proc_open.h"
24
 
 
25
22
 
26
23
static int config_insert(server *srv) {
27
24
        size_t i;
42
39
 
43
40
                { "server.event-handler",        NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER },      /* 10 */
44
41
                { "server.pid-file",             NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER },      /* 11 */
45
 
                { "server.max-request-size",     NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },   /* 12 */
 
42
                { "server.max-request-size",     NULL, T_CONFIG_INT, T_CONFIG_SCOPE_CONNECTION },     /* 12 */
46
43
                { "server.max-worker",           NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_SERVER },       /* 13 */
47
44
                { "server.document-root",        NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION },  /* 14 */
48
 
                { "server.force-lowercase-filenames", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },   /* 15 */
 
45
                { "server.force-lowercase-filenames", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },/* 15 */
49
46
                { "debug.log-condition-handling", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },    /* 16 */
50
 
                { "server.max-keep-alive-requests", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 17 */
 
47
                { "server.max-keep-alive-requests", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },/* 17 */
51
48
                { "server.name",                 NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION },  /* 18 */
52
49
                { "server.max-keep-alive-idle",  NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },   /* 19 */
53
50
 
91
88
                { "server.core-files",           NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 46 */
92
89
                { "ssl.cipher-list",             NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER },      /* 47 */
93
90
                { "ssl.use-sslv2",               NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 48 */
94
 
                { "etag.use-inode",              NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 49 */
95
 
                { "etag.use-mtime",              NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 50 */
96
 
                { "etag.use-size",               NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 51 */
 
91
                { "etag.use-inode",              NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },     /* 49 */
 
92
                { "etag.use-mtime",              NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },     /* 50 */
 
93
                { "etag.use-size",               NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },     /* 51 */
97
94
                { "server.reject-expect-100-with-417",  NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 52 */
98
95
                { "debug.log-timeouts",          NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 53 */
99
 
                { "server.defer-accept",         NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },     /* 54 */
 
96
                { "server.defer-accept",         NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },   /* 54 */
 
97
                { "server.breakagelog",          NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER },      /* 55 */
 
98
                { "ssl.verifyclient.activate",   NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },     /* 56 */
 
99
                { "ssl.verifyclient.enforce",    NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER },     /* 57 */
 
100
                { "ssl.verifyclient.depth",      NULL, T_CONFIG_SHORT,   T_CONFIG_SCOPE_SERVER },     /* 58 */
 
101
                { "ssl.verifyclient.username",   NULL, T_CONFIG_STRING,  T_CONFIG_SCOPE_SERVER },     /* 59 */
100
102
                { "server.host",                 "use server.bind instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
101
103
                { "server.docroot",              "use server.document-root instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
102
104
                { "server.virtual-root",         "load mod_simple_vhost and use simple-vhost.server-root instead", T_CONFIG_DEPRECATED, T_CONFIG_SCOPE_UNSET },
139
141
        cv[43].destination = &(srv->srvconf.max_conns);
140
142
        cv[12].destination = &(srv->srvconf.max_request_size);
141
143
        cv[52].destination = &(srv->srvconf.reject_expect_100_with_417);
 
144
        cv[55].destination = srv->srvconf.breakagelog_file;
 
145
 
142
146
        srv->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
143
147
 
144
148
        assert(srv->config_storage);
179
183
                s->global_kbytes_per_second = 0;
180
184
                s->global_bytes_per_second_cnt = 0;
181
185
                s->global_bytes_per_second_cnt_ptr = &s->global_bytes_per_second_cnt;
 
186
                s->ssl_verifyclient = 0;
 
187
                s->ssl_verifyclient_enforce = 1;
 
188
                s->ssl_verifyclient_username = buffer_init();
 
189
                s->ssl_verifyclient_depth = 9;
182
190
 
183
191
                cv[2].destination = s->errorfile_prefix;
184
192
 
225
233
                cv[50].destination = &(s->etag_use_mtime);
226
234
                cv[51].destination = &(s->etag_use_size);
227
235
 
 
236
                /* ssl.verify */
 
237
                cv[56].destination = &(s->ssl_verifyclient);
 
238
                cv[57].destination = &(s->ssl_verifyclient_enforce);
 
239
                cv[58].destination = &(s->ssl_verifyclient_depth);
 
240
                cv[59].destination = s->ssl_verifyclient_username;
 
241
 
228
242
                srv->config_storage[i] = s;
229
243
 
230
244
                if (0 != (ret = config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv))) {
290
304
        PATCH(log_condition_handling);
291
305
        PATCH(log_file_not_found);
292
306
        PATCH(log_ssl_noise);
 
307
        PATCH(log_timeouts);
293
308
 
294
309
        PATCH(range_requests);
295
310
        PATCH(force_lowercase_filenames);
296
311
        PATCH(is_ssl);
297
312
 
298
313
        PATCH(ssl_pemfile);
 
314
#ifdef USE_OPENSSL
 
315
        PATCH(ssl_ctx);
 
316
#endif
299
317
        PATCH(ssl_ca_file);
300
318
        PATCH(ssl_cipher_list);
301
319
        PATCH(ssl_use_sslv2);
302
320
        PATCH(etag_use_inode);
303
321
        PATCH(etag_use_mtime);
304
322
        PATCH(etag_use_size);
305
 
 
 
323
 
 
324
        PATCH(ssl_verifyclient);
 
325
        PATCH(ssl_verifyclient_enforce);
 
326
        PATCH(ssl_verifyclient_depth);
 
327
        PATCH(ssl_verifyclient_username);
 
328
 
306
329
        return 0;
307
330
}
308
331
 
351
374
                                PATCH(etag_use_size);
352
375
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.pemfile"))) {
353
376
                                PATCH(ssl_pemfile);
 
377
#ifdef USE_OPENSSL
 
378
                                PATCH(ssl_ctx);
 
379
#endif
354
380
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.ca-file"))) {
355
381
                                PATCH(ssl_ca_file);
356
382
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.use-sslv2"))) {
391
417
                                PATCH(global_kbytes_per_second);
392
418
                                PATCH(global_bytes_per_second_cnt);
393
419
                                con->conf.global_bytes_per_second_cnt_ptr = &s->global_bytes_per_second_cnt;
 
420
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.activate"))) {
 
421
                                PATCH(ssl_verifyclient);
 
422
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.enforce"))) {
 
423
                                PATCH(ssl_verifyclient_enforce);
 
424
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.depth"))) {
 
425
                                PATCH(ssl_verifyclient_depth);
 
426
                        } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.verifyclient.username"))) {
 
427
                                PATCH(ssl_verifyclient_username);
394
428
                        }
395
429
                }
396
430
        }
1135
1169
                 * - select works everywhere
1136
1170
                 * - linux-* are experimental
1137
1171
                 */
 
1172
#ifdef USE_LINUX_EPOLL
 
1173
                { FDEVENT_HANDLER_LINUX_SYSEPOLL, "linux-sysepoll" },
 
1174
#endif
1138
1175
#ifdef USE_POLL
1139
1176
                { FDEVENT_HANDLER_POLL,           "poll" },
1140
1177
#endif
1141
1178
#ifdef USE_SELECT
1142
1179
                { FDEVENT_HANDLER_SELECT,         "select" },
1143
1180
#endif
1144
 
#ifdef USE_LINUX_EPOLL
1145
 
                { FDEVENT_HANDLER_LINUX_SYSEPOLL, "linux-sysepoll" },
1146
 
#endif
1147
1181
#ifdef USE_LINUX_SIGIO
1148
1182
                { FDEVENT_HANDLER_LINUX_RTSIG,    "linux-rtsig" },
1149
1183
#endif