annotate src/auth/auth-settings.c @ 10281:4b663b9e63af HEAD

Added "size" setting type, which supports B/k/M/G/T suffixes.
author Timo Sirainen <tss@iki.fi>
date Mon, 09 Nov 2009 18:22:37 -0500
parents afe52d60989c
children 7215f4142901
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9047
99659fef12b2 Updated missing copyright years to 2009.
Timo Sirainen <tss@iki.fi>
parents: 9045
diff changeset
1 /* Copyright (c) 2005-2009 Dovecot authors, see the included COPYING file */
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "lib.h"
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 #include "array.h"
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 #include "settings-parser.h"
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
6 #include "master-service-settings.h"
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
7 #include "service-settings.h"
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 #include "auth-settings.h"
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 #include <stddef.h>
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
12 extern const struct setting_parser_info auth_setting_parser_info;
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
13 extern const struct setting_parser_info auth_root_setting_parser_info;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
15 static bool auth_settings_check(void *_set, pool_t pool, const char **error_r);
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
16
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
17 /* <settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
18 static struct file_listener_settings auth_unix_listeners_array[] = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
19 { "login/auth", 0666, "", "" },
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
20 { "auth-userdb", 0600, "", "" },
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
21 { "auth-master", 0600, "", "" }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
22 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
23 static struct file_listener_settings *auth_unix_listeners[] = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
24 &auth_unix_listeners_array[0],
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
25 &auth_unix_listeners_array[1],
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
26 &auth_unix_listeners_array[2]
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
27 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
28 static buffer_t auth_unix_listeners_buf = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
29 auth_unix_listeners, sizeof(auth_unix_listeners), { 0, }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
30 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
31 /* </settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
32
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
33 struct service_settings auth_service_settings = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
34 MEMBER(name) "auth",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
35 MEMBER(protocol) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
36 MEMBER(type) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
37 MEMBER(executable) "auth",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
38 MEMBER(user) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
39 MEMBER(group) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
40 MEMBER(privileged_group) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
41 MEMBER(extra_groups) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
42 MEMBER(chroot) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
43
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
44 MEMBER(drop_priv_before_exec) FALSE,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
45
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
46 MEMBER(process_min_avail) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
47 MEMBER(process_limit) 1,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
48 MEMBER(client_limit) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
49 MEMBER(service_count) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
50 MEMBER(vsz_limit) -1U,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
51
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
52 MEMBER(unix_listeners) { { &auth_unix_listeners_buf,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
53 sizeof(auth_unix_listeners[0]) } },
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
54 MEMBER(fifo_listeners) ARRAY_INIT,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
55 MEMBER(inet_listeners) ARRAY_INIT
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
56 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
57
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
58 /* <settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
59 static struct file_listener_settings auth_worker_unix_listeners_array[] = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
60 { "auth-worker", 0600, "", "" }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
61 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
62 static struct file_listener_settings *auth_worker_unix_listeners[] = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
63 &auth_worker_unix_listeners_array[0]
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
64 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
65 static buffer_t auth_worker_unix_listeners_buf = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
66 auth_worker_unix_listeners, sizeof(auth_worker_unix_listeners), { 0, }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
67 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
68 /* </settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
69
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
70 struct service_settings auth_worker_service_settings = {
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
71 MEMBER(name) "auth-worker",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
72 MEMBER(protocol) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
73 MEMBER(type) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
74 MEMBER(executable) "auth -w",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
75 MEMBER(user) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
76 MEMBER(group) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
77 MEMBER(privileged_group) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
78 MEMBER(extra_groups) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
79 MEMBER(chroot) "",
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
80
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
81 MEMBER(drop_priv_before_exec) FALSE,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
82
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
83 MEMBER(process_min_avail) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
84 MEMBER(process_limit) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
85 MEMBER(client_limit) 1,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
86 MEMBER(service_count) 0,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
87 MEMBER(vsz_limit) -1U,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
88
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
89 MEMBER(unix_listeners) { { &auth_worker_unix_listeners_buf,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
90 sizeof(auth_worker_unix_listeners[0]) } },
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
91 MEMBER(fifo_listeners) ARRAY_INIT,
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
92 MEMBER(inet_listeners) ARRAY_INIT
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
93 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
94
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
95 #undef DEF
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
96 #define DEF(type, name) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
97 { type, #name, offsetof(struct auth_passdb_settings, name), NULL }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
98
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
99 static const struct setting_define auth_passdb_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
100 DEF(SET_STR, driver),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
101 DEF(SET_STR, args),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
102 DEF(SET_BOOL, deny),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
103
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
104 SETTING_DEFINE_LIST_END
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
105 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
106
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
107 const struct setting_parser_info auth_passdb_setting_parser_info = {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 10106
diff changeset
108 MEMBER(module_name) NULL,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
109 MEMBER(defines) auth_passdb_setting_defines,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
110 MEMBER(defaults) NULL,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
111
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
112 MEMBER(type_offset) offsetof(struct auth_passdb_settings, driver),
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
113 MEMBER(struct_size) sizeof(struct auth_passdb_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
114
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
115 MEMBER(parent_offset) (size_t)-1,
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
116 MEMBER(parent) &auth_setting_parser_info
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
117 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
118
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
119 #undef DEF
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
120 #define DEF(type, name) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
121 { type, #name, offsetof(struct auth_userdb_settings, name), NULL }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
122
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
123 static const struct setting_define auth_userdb_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
124 DEF(SET_STR, driver),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
125 DEF(SET_STR, args),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
126
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
127 SETTING_DEFINE_LIST_END
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
128 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
129
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
130 const struct setting_parser_info auth_userdb_setting_parser_info = {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 10106
diff changeset
131 MEMBER(module_name) NULL,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
132 MEMBER(defines) auth_userdb_setting_defines,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
133 MEMBER(defaults) NULL,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
134
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
135 MEMBER(type_offset) offsetof(struct auth_userdb_settings, driver),
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
136 MEMBER(struct_size) sizeof(struct auth_userdb_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
137
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
138 MEMBER(parent_offset) (size_t)-1,
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
139 MEMBER(parent) &auth_setting_parser_info
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
140 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
141
9834
3f4d796db5fd config: Auth settings now require the "auth_" prefix also inside auth blocks.
Timo Sirainen <tss@iki.fi>
parents: 9451
diff changeset
142 /* we're kind of kludging here to avoid "auth_" prefix in the struct fields */
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
143 #undef DEF
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
144 #undef DEFLIST
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
145 #define DEF(type, name) \
9834
3f4d796db5fd config: Auth settings now require the "auth_" prefix also inside auth blocks.
Timo Sirainen <tss@iki.fi>
parents: 9451
diff changeset
146 { type, "auth_"#name, offsetof(struct auth_settings, name), NULL }
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
147 #define DEFLIST(field, name, defines) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
148 { SET_DEFLIST, name, offsetof(struct auth_settings, field), defines }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
149
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
150 static const struct setting_define auth_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
151 DEF(SET_STR, mechanisms),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
152 DEF(SET_STR, realms),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
153 DEF(SET_STR, default_realm),
10281
4b663b9e63af Added "size" setting type, which supports B/k/M/G/T suffixes.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
154 DEF(SET_SIZE, cache_size),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
155 DEF(SET_UINT, cache_ttl),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
156 DEF(SET_UINT, cache_negative_ttl),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
157 DEF(SET_STR, username_chars),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
158 DEF(SET_STR, username_translation),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
159 DEF(SET_STR, username_format),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
160 DEF(SET_STR, master_user_separator),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
161 DEF(SET_STR, anonymous_username),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
162 DEF(SET_STR, krb5_keytab),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
163 DEF(SET_STR, gssapi_hostname),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
164 DEF(SET_STR, winbind_helper_path),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
165 DEF(SET_UINT, failure_delay),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
166
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
167 DEF(SET_BOOL, verbose),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
168 DEF(SET_BOOL, debug),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
169 DEF(SET_BOOL, debug_passwords),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
170 DEF(SET_BOOL, ssl_require_client_cert),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
171 DEF(SET_BOOL, ssl_username_from_cert),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
172 DEF(SET_BOOL, use_winbind),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
173
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
174 DEF(SET_UINT, worker_max_count),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
175
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
176 DEFLIST(passdbs, "passdb", &auth_passdb_setting_parser_info),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
177 DEFLIST(userdbs, "userdb", &auth_userdb_setting_parser_info),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
178
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
179 SETTING_DEFINE_LIST_END
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
180 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
181
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
182 static const struct auth_settings auth_default_settings = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
183 MEMBER(mechanisms) "plain",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
184 MEMBER(realms) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
185 MEMBER(default_realm) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
186 MEMBER(cache_size) 0,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
187 MEMBER(cache_ttl) 3600,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
188 MEMBER(cache_negative_ttl) 0,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
189 MEMBER(username_chars) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
190 MEMBER(username_translation) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
191 MEMBER(username_format) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
192 MEMBER(master_user_separator) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
193 MEMBER(anonymous_username) "anonymous",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
194 MEMBER(krb5_keytab) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
195 MEMBER(gssapi_hostname) "",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
196 MEMBER(winbind_helper_path) "/usr/bin/ntlm_auth",
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
197 MEMBER(failure_delay) 2,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
198
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
199 MEMBER(verbose) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
200 MEMBER(debug) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
201 MEMBER(debug_passwords) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
202 MEMBER(ssl_require_client_cert) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
203 MEMBER(ssl_username_from_cert) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
204 MEMBER(use_winbind) FALSE,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
205
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
206 MEMBER(worker_max_count) 30,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
207
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
208 MEMBER(passdbs) ARRAY_INIT,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
209 MEMBER(userdbs) ARRAY_INIT
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
210 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
211
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
212 const struct setting_parser_info auth_setting_parser_info = {
10107
dcda7c495eb6 struct setting_parser_info now specifies the module name.
Timo Sirainen <tss@iki.fi>
parents: 10106
diff changeset
213 MEMBER(module_name) "auth",
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
214 MEMBER(defines) auth_setting_defines,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
215 MEMBER(defaults) &auth_default_settings,
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
216
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
217 MEMBER(type_offset) (size_t)-1,
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
218 MEMBER(struct_size) sizeof(struct auth_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
219
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
220 MEMBER(parent_offset) (size_t)-1,
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
221 MEMBER(parent) NULL,
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 9846
diff changeset
222
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
223 MEMBER(check_func) auth_settings_check
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
224 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
225
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
226 /* <settings checks> */
9267
269cebf1aad4 Compiler warning fix.
Timo Sirainen <tss@iki.fi>
parents: 9261
diff changeset
227 static bool auth_settings_check(void *_set, pool_t pool ATTR_UNUSED,
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
228 const char **error_r ATTR_UNUSED)
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
229 {
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
230 struct auth_settings *set = _set;
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
231
9451
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
232 if (set->debug_passwords)
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
233 set->debug = TRUE;
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
234 if (set->debug)
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
235 set->verbose = TRUE;
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
236 return TRUE;
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
237 }
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
238 /* </settings checks> */
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
239
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
240 struct auth_settings *
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
241 auth_settings_read(struct master_service *service)
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
242 {
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
243 static const struct setting_parser_info *set_roots[] = {
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
244 &auth_setting_parser_info,
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
245 NULL
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
246 };
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
247 const char *error;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
248 void **sets;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
249
9244
4bf901b4c402 mail processes now specify user/lip/rip in config requests.
Timo Sirainen <tss@iki.fi>
parents: 9159
diff changeset
250 if (master_service_settings_read_simple(service, set_roots, &error) < 0)
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
251 i_fatal("Error reading configuration: %s", error);
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
252
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
253 sets = master_service_settings_get_others(service);
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
254 return sets[0];
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
255 }