annotate src/auth/auth-settings.c @ 11285:1a3c9bd45b11 HEAD

auth: Separate auth and login connections. Non-login requests are freed immediately after auth finished. The login connections are used by Dovecot internally, while the auth connections are for SMTP AUTH etc.
author Timo Sirainen <tss@iki.fi>
date Wed, 12 May 2010 16:40:22 +0200
parents 6243376eff60
children f15b3aac5443
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10582
615eef3139c2 Updated copyright notices to include year 2010.
Timo Sirainen <tss@iki.fi>
parents: 10578
diff changeset
1 /* Copyright (c) 2005-2010 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"
10953
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
6 #include "master-service-private.h"
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
7 #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
8 #include "service-settings.h"
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 #include "auth-settings.h"
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 #include <stddef.h>
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
13 static bool auth_settings_check(void *_set, pool_t pool, const char **error_r);
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
14 static bool auth_passdb_settings_check(void *_set, pool_t pool, const char **error_r);
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
15 static bool auth_userdb_settings_check(void *_set, pool_t pool, const char **error_r);
9261
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[] = {
11285
1a3c9bd45b11 auth: Separate auth and login connections. Non-login requests are freed immediately after auth finished.
Timo Sirainen <tss@iki.fi>
parents: 11251
diff changeset
19 { "login/login", 0666, "", "" },
10889
653ae02bf8cf Create auth-client socket by default.
Timo Sirainen <tss@iki.fi>
parents: 10587
diff changeset
20 { "auth-client", 0600, "", "" },
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
21 { "auth-userdb", 0600, "", "" },
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
22 { "auth-master", 0600, "", "" }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
23 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
24 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
25 &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
26 &auth_unix_listeners_array[1],
10889
653ae02bf8cf Create auth-client socket by default.
Timo Sirainen <tss@iki.fi>
parents: 10587
diff changeset
27 &auth_unix_listeners_array[2],
653ae02bf8cf Create auth-client socket by default.
Timo Sirainen <tss@iki.fi>
parents: 10587
diff changeset
28 &auth_unix_listeners_array[3]
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
29 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
30 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
31 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
32 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
33 /* </settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
34
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
35 struct service_settings auth_service_settings = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
36 .name = "auth",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
37 .protocol = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
38 .type = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
39 .executable = "auth",
10910
858ad8aa7f8b auth: Auth master process is now running as default_internal_user by default.
Timo Sirainen <tss@iki.fi>
parents: 10905
diff changeset
40 .user = "$default_internal_user",
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
41 .group = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
42 .privileged_group = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
43 .extra_groups = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
44 .chroot = "",
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
45
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
46 .drop_priv_before_exec = FALSE,
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
47
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
48 .process_min_avail = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
49 .process_limit = 1,
10978
7d7540af8446 auth: Increased default client_limit to 4096.
Timo Sirainen <tss@iki.fi>
parents: 10953
diff changeset
50 .client_limit = 4096,
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
51 .service_count = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
52 .vsz_limit = -1U,
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
53
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
54 .unix_listeners = { { &auth_unix_listeners_buf,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
55 sizeof(auth_unix_listeners[0]) } },
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
56 .fifo_listeners = ARRAY_INIT,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
57 .inet_listeners = ARRAY_INIT
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
58 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
59
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
60 /* <settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
61 static struct file_listener_settings auth_worker_unix_listeners_array[] = {
10910
858ad8aa7f8b auth: Auth master process is now running as default_internal_user by default.
Timo Sirainen <tss@iki.fi>
parents: 10905
diff changeset
62 { "auth-worker", 0600, "$default_internal_user", "" }
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
63 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
64 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
65 &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
66 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
67 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
68 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
69 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
70 /* </settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
71
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
72 struct service_settings auth_worker_service_settings = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
73 .name = "auth-worker",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
74 .protocol = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
75 .type = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
76 .executable = "auth -w",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
77 .user = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
78 .group = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
79 .privileged_group = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
80 .extra_groups = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
81 .chroot = "",
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
82
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
83 .drop_priv_before_exec = FALSE,
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
84
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
85 .process_min_avail = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
86 .process_limit = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
87 .client_limit = 1,
10921
87c462c463cc auth: Changed worker process to die after auth server closes its connection.
Timo Sirainen <tss@iki.fi>
parents: 10910
diff changeset
88 .service_count = 1,
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
89 .vsz_limit = -1U,
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
90
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
91 .unix_listeners = { { &auth_worker_unix_listeners_buf,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
92 sizeof(auth_worker_unix_listeners[0]) } },
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
93 .fifo_listeners = ARRAY_INIT,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
94 .inet_listeners = ARRAY_INIT
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
95 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
96
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
97 #undef DEF
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
98 #define DEF(type, name) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
99 { type, #name, offsetof(struct auth_passdb_settings, name), NULL }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
100
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
101 static const struct setting_define auth_passdb_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
102 DEF(SET_STR, driver),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
103 DEF(SET_STR, args),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
104 DEF(SET_BOOL, deny),
10576
9c80cc65def8 auth: passdb { pass and master } settings weren't working.
Timo Sirainen <tss@iki.fi>
parents: 10410
diff changeset
105 DEF(SET_BOOL, pass),
9c80cc65def8 auth: passdb { pass and master } settings weren't working.
Timo Sirainen <tss@iki.fi>
parents: 10410
diff changeset
106 DEF(SET_BOOL, master),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
107
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
108 SETTING_DEFINE_LIST_END
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
109 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
110
10905
cb26518a7e51 auth: Fixed compiling config binary.
Timo Sirainen <tss@iki.fi>
parents: 10903
diff changeset
111 static const struct auth_passdb_settings auth_passdb_default_settings = {
10897
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
112 .driver = "",
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
113 .args = "",
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
114 .deny = FALSE,
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
115 .pass = FALSE,
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
116 .master = FALSE
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
117 };
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
118
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
119 const struct setting_parser_info auth_passdb_setting_parser_info = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
120 .defines = auth_passdb_setting_defines,
10905
cb26518a7e51 auth: Fixed compiling config binary.
Timo Sirainen <tss@iki.fi>
parents: 10903
diff changeset
121 .defaults = &auth_passdb_default_settings,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
122
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
123 .type_offset = (size_t)-1,
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
124 .struct_size = sizeof(struct auth_passdb_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
125
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
126 .parent_offset = (size_t)-1,
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
127 .parent = &auth_setting_parser_info,
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
128
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
129 .check_func = auth_passdb_settings_check
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
130 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
131
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
132 #undef DEF
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
133 #define DEF(type, name) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
134 { type, #name, offsetof(struct auth_userdb_settings, name), NULL }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
135
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
136 static const struct setting_define auth_userdb_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
137 DEF(SET_STR, driver),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
138 DEF(SET_STR, args),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
139
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
140 SETTING_DEFINE_LIST_END
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
141 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
142
10905
cb26518a7e51 auth: Fixed compiling config binary.
Timo Sirainen <tss@iki.fi>
parents: 10903
diff changeset
143 static const struct auth_userdb_settings auth_userdb_default_settings = {
10897
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
144 .driver = "",
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
145 .args = ""
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
146 };
52eb8317514f auth: Cleaned up struct auth_passdb/auth_userdb.
Timo Sirainen <tss@iki.fi>
parents: 10896
diff changeset
147
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
148 const struct setting_parser_info auth_userdb_setting_parser_info = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
149 .defines = auth_userdb_setting_defines,
10905
cb26518a7e51 auth: Fixed compiling config binary.
Timo Sirainen <tss@iki.fi>
parents: 10903
diff changeset
150 .defaults = &auth_userdb_default_settings,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
151
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
152 .type_offset = (size_t)-1,
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
153 .struct_size = sizeof(struct auth_userdb_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
154
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
155 .parent_offset = (size_t)-1,
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
156 .parent = &auth_setting_parser_info,
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
157
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
158 .check_func = auth_userdb_settings_check
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
159 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
160
9834
3f4d796db5fd config: Auth settings now require the "auth_" prefix also inside auth blocks.
Timo Sirainen <tss@iki.fi>
parents: 9451
diff changeset
161 /* 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
162 #undef DEF
11251
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
163 #undef DEF_NOPREFIX
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
164 #undef DEFLIST
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
165 #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
166 { type, "auth_"#name, offsetof(struct auth_settings, name), NULL }
11251
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
167 #define DEF_NOPREFIX(type, name) \
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
168 { type, #name, offsetof(struct auth_settings, name), NULL }
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
169 #define DEFLIST(field, name, defines) \
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
170 { SET_DEFLIST, name, offsetof(struct auth_settings, field), defines }
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
171
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
172 static const struct setting_define auth_setting_defines[] = {
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
173 DEF(SET_STR, mechanisms),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
174 DEF(SET_STR, realms),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
175 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
176 DEF(SET_SIZE, cache_size),
10282
7215f4142901 Added "time" (interval) setting type, which supports s/m/h/d/w suffixes.
Timo Sirainen <tss@iki.fi>
parents: 10281
diff changeset
177 DEF(SET_TIME, cache_ttl),
7215f4142901 Added "time" (interval) setting type, which supports s/m/h/d/w suffixes.
Timo Sirainen <tss@iki.fi>
parents: 10281
diff changeset
178 DEF(SET_TIME, cache_negative_ttl),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
179 DEF(SET_STR, username_chars),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
180 DEF(SET_STR, username_translation),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
181 DEF(SET_STR, username_format),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
182 DEF(SET_STR, master_user_separator),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
183 DEF(SET_STR, anonymous_username),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
184 DEF(SET_STR, krb5_keytab),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
185 DEF(SET_STR, gssapi_hostname),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
186 DEF(SET_STR, winbind_helper_path),
10282
7215f4142901 Added "time" (interval) setting type, which supports s/m/h/d/w suffixes.
Timo Sirainen <tss@iki.fi>
parents: 10281
diff changeset
187 DEF(SET_TIME, failure_delay),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
188
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
189 DEF(SET_BOOL, verbose),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
190 DEF(SET_BOOL, debug),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
191 DEF(SET_BOOL, debug_passwords),
10585
941511db13c3 Added auth_verbose_passwords = no|plain|sha1.
Timo Sirainen <tss@iki.fi>
parents: 10582
diff changeset
192 DEF(SET_ENUM, verbose_passwords),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
193 DEF(SET_BOOL, ssl_require_client_cert),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
194 DEF(SET_BOOL, ssl_username_from_cert),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
195 DEF(SET_BOOL, use_winbind),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
196
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
197 DEF(SET_UINT, worker_max_count),
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 DEFLIST(passdbs, "passdb", &auth_passdb_setting_parser_info),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
200 DEFLIST(userdbs, "userdb", &auth_userdb_setting_parser_info),
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
201
11251
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
202 DEF_NOPREFIX(SET_BOOL, verbose_proctitle),
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
203
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
204 SETTING_DEFINE_LIST_END
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
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
207 static const struct auth_settings auth_default_settings = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
208 .mechanisms = "plain",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
209 .realms = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
210 .default_realm = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
211 .cache_size = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
212 .cache_ttl = 60*60,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
213 .cache_negative_ttl = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
214 .username_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
215 .username_translation = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
216 .username_format = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
217 .master_user_separator = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
218 .anonymous_username = "anonymous",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
219 .krb5_keytab = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
220 .gssapi_hostname = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
221 .winbind_helper_path = "/usr/bin/ntlm_auth",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
222 .failure_delay = 2,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
223
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
224 .verbose = FALSE,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
225 .debug = FALSE,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
226 .debug_passwords = FALSE,
10585
941511db13c3 Added auth_verbose_passwords = no|plain|sha1.
Timo Sirainen <tss@iki.fi>
parents: 10582
diff changeset
227 .verbose_passwords = "no:plain:sha1",
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
228 .ssl_require_client_cert = FALSE,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
229 .ssl_username_from_cert = FALSE,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
230 .use_winbind = FALSE,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
231
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
232 .worker_max_count = 30,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
233
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
234 .passdbs = ARRAY_INIT,
11251
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
235 .userdbs = ARRAY_INIT,
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
236
6243376eff60 auth: If verbose_proctitle=yes, show auth request counts in ps.
Timo Sirainen <tss@iki.fi>
parents: 10978
diff changeset
237 .verbose_proctitle = FALSE
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
238 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
239
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
240 const struct setting_parser_info auth_setting_parser_info = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
241 .module_name = "auth",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
242 .defines = auth_setting_defines,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
243 .defaults = &auth_default_settings,
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
244
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
245 .type_offset = (size_t)-1,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
246 .struct_size = sizeof(struct auth_settings),
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
247
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
248 .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
249
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10282
diff changeset
250 .check_func = auth_settings_check
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
251 };
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
252
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
253 /* <settings checks> */
10892
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
254 static bool auth_settings_check(void *_set, pool_t pool,
9846
cf27080f3fcf config: Removed auth sections completely for now.
Timo Sirainen <tss@iki.fi>
parents: 9834
diff changeset
255 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
256 {
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
257 struct auth_settings *set = _set;
10892
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
258 const char *p;
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
259
9451
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
260 if (set->debug_passwords)
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
261 set->debug = TRUE;
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
262 if (set->debug)
d86490ef27bd auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading.
Timo Sirainen <tss@iki.fi>
parents: 9267
diff changeset
263 set->verbose = TRUE;
10892
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
264
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
265 if (*set->username_chars == '\0') {
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
266 /* all chars are allowed */
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
267 memset(set->username_chars_map, 1,
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
268 sizeof(set->username_chars_map));
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
269 } else {
10896
f93195ae4bed auth: Recent changes broke auth_username_chars checking.
Timo Sirainen <tss@iki.fi>
parents: 10893
diff changeset
270 for (p = set->username_chars; *p != '\0'; p++)
10892
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
271 set->username_chars_map[(int)(uint8_t)*p] = 1;
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
272 }
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
273
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
274 if (*set->username_translation != '\0') {
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
275 p = set->username_translation;
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
276 for (; *p != '\0' && p[1] != '\0'; p += 2)
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
277 set->username_translation_map[(int)(uint8_t)*p] = p[1];
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
278 }
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
279 set->realms_arr =
9675d9a54ac9 auth: Moved some variables generated from settings to struct auth_settings.
Timo Sirainen <tss@iki.fi>
parents: 10889
diff changeset
280 (const char *const *)p_strsplit_spaces(pool, set->realms, " ");
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
281 return TRUE;
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
282 }
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
283
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
284 static bool
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
285 auth_passdb_settings_check(void *_set, pool_t pool ATTR_UNUSED,
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
286 const char **error_r)
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
287 {
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
288 struct auth_passdb_settings *set = _set;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
289
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
290 if (set->driver == NULL || *set->driver == '\0') {
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
291 *error_r = "passdb is missing driver";
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
292 return FALSE;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
293 }
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
294 return TRUE;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
295 }
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
296
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
297 static bool
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
298 auth_userdb_settings_check(void *_set, pool_t pool ATTR_UNUSED,
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
299 const char **error_r)
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
300 {
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
301 struct auth_userdb_settings *set = _set;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
302
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
303 if (set->driver == NULL || *set->driver == '\0') {
10587
bea4b2d1f27f auth: Fixed "userdb is missing driver" error.
Timo Sirainen <tss@iki.fi>
parents: 10585
diff changeset
304 *error_r = "userdb is missing driver";
10578
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
305 return FALSE;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
306 }
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
307 return TRUE;
a2ed5c020cfa auth: Don't use section names for passdb/userdb driver names.
Timo Sirainen <tss@iki.fi>
parents: 10576
diff changeset
308 }
9261
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
309 /* </settings checks> */
5e80d667a827 auth settings: Make sure we have a section name defined.
Timo Sirainen <tss@iki.fi>
parents: 9244
diff changeset
310
10893
1a4c2e4bff75 auth: auth_userdb and auth_passdb no longer has pointer to struct auth.
Timo Sirainen <tss@iki.fi>
parents: 10892
diff changeset
311 struct auth_settings *global_auth_settings;
1a4c2e4bff75 auth: auth_userdb and auth_passdb no longer has pointer to struct auth.
Timo Sirainen <tss@iki.fi>
parents: 10892
diff changeset
312
10953
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
313 struct auth_settings *
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
314 auth_settings_read(const char *service, pool_t pool,
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
315 struct master_service_settings_output *output_r)
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
316 {
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
317 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
318 &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
319 NULL
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
320 };
10903
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
321 struct master_service_settings_input input;
10953
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
322 struct setting_parser_context *set_parser;
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 9057
diff changeset
323 const char *error;
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
324
10903
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
325 memset(&input, 0, sizeof(input));
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
326 input.roots = set_roots;
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
327 input.module = "auth";
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
328 input.service = service;
6e639833c3fc auth: Initial support for per-protocol auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10897
diff changeset
329 if (master_service_settings_read(master_service, &input,
10953
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
330 output_r, &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
331 i_fatal("Error reading configuration: %s", error);
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
332
10953
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
333 set_parser = settings_parser_dup(master_service->set_parser, pool);
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
334 if (!settings_parser_check(set_parser, pool, &error))
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
335 i_unreached();
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
336
bdef690d41d5 auth: Fixed support for per-service auth settings.
Timo Sirainen <tss@iki.fi>
parents: 10921
diff changeset
337 return settings_parser_get_list(set_parser)[1];
9002
9d0037a997f4 Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
338 }