Mercurial > dovecot > core-2.2
annotate src/dict/dict-settings.c @ 22656:1789bf2a1e01
director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0
The reset command would just hang in that case. doveadm would never have
sent this, so this is just an extra sanity check.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 05 Nov 2017 23:51:56 +0200 |
parents | 2e2563132d5f |
children | cb108f786fb4 |
rev | line source |
---|---|
21390
2e2563132d5f
Updated copyright notices to include the year 2017.
Stephan Bosch <stephan.bosch@dovecot.fi>
parents:
20200
diff
changeset
|
1 /* Copyright (c) 2009-2017 Dovecot authors, see the included COPYING file */ |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 #include "lib.h" |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
4 #include "buffer.h" |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
5 #include "settings-parser.h" |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
6 #include "service-settings.h" |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
7 #include "dict-settings.h" |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
8 |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
9 /* <settings checks> */ |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
10 static struct file_listener_settings dict_unix_listeners_array[] = { |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
11 { "dict", 0600, "", "" } |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
12 }; |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
13 static struct file_listener_settings *dict_unix_listeners[] = { |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
14 &dict_unix_listeners_array[0] |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
15 }; |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
16 static buffer_t dict_unix_listeners_buf = { |
17397
f373df52082a
treewide - mass cleanup of 0 used to end a settings list
Phil Carmody <phil@dovecot.fi>
parents:
17130
diff
changeset
|
17 dict_unix_listeners, sizeof(dict_unix_listeners), { NULL, } |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
18 }; |
19067
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
19 |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
20 static struct file_listener_settings dict_async_unix_listeners_array[] = { |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
21 { "dict-async", 0600, "", "" } |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
22 }; |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
23 static struct file_listener_settings *dict_async_unix_listeners[] = { |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
24 &dict_async_unix_listeners_array[0] |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
25 }; |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
26 static buffer_t dict_async_unix_listeners_buf = { |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
27 dict_async_unix_listeners, sizeof(dict_async_unix_listeners), { NULL, } |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
28 }; |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
29 /* </settings checks> */ |
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 struct service_settings dict_service_settings = { |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
32 .name = "dict", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
33 .protocol = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
34 .type = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
35 .executable = "dict", |
10705
bf84cb98bd04
Added default_internal_user and default_login_user settings, which services use as default users.
Timo Sirainen <tss@iki.fi>
parents:
10582
diff
changeset
|
36 .user = "$default_internal_user", |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
37 .group = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
38 .privileged_group = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
39 .extra_groups = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
40 .chroot = "", |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
41 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
42 .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
|
43 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
44 .process_min_avail = 0, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
45 .process_limit = 0, |
11161
69894aaab23c
dict: Changed default client_limit to 1.
Timo Sirainen <tss@iki.fi>
parents:
10705
diff
changeset
|
46 .client_limit = 1, |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
47 .service_count = 0, |
11631
d41694c931d0
Added support for per-service idle kill timeout.
Timo Sirainen <tss@iki.fi>
parents:
11161
diff
changeset
|
48 .idle_kill = 0, |
12432
8793036f6de8
Services' default vsz_limit wasn't actually using default_vsz_limit but rather 4 GB.
Timo Sirainen <tss@iki.fi>
parents:
11631
diff
changeset
|
49 .vsz_limit = (uoff_t)-1, |
10179
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
50 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
51 .unix_listeners = { { &dict_unix_listeners_buf, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
52 sizeof(dict_unix_listeners[0]) } }, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
53 .fifo_listeners = ARRAY_INIT, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
54 .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
|
55 }; |
afe52d60989c
Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents:
10177
diff
changeset
|
56 |
19067
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
57 struct service_settings dict_async_service_settings = { |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
58 .name = "dict-async", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
59 .protocol = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
60 .type = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
61 .executable = "dict", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
62 .user = "$default_internal_user", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
63 .group = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
64 .privileged_group = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
65 .extra_groups = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
66 .chroot = "", |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
67 |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
68 .drop_priv_before_exec = FALSE, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
69 |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
70 .process_min_avail = 0, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
71 .process_limit = 0, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
72 .client_limit = 0, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
73 .service_count = 0, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
74 .idle_kill = 0, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
75 .vsz_limit = (uoff_t)-1, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
76 |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
77 .unix_listeners = { { &dict_async_unix_listeners_buf, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
78 sizeof(dict_async_unix_listeners[0]) } }, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
79 .fifo_listeners = ARRAY_INIT, |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
80 .inet_listeners = ARRAY_INIT |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
81 }; |
7378ab8e3b4d
dict: Added dict-async service.
Timo Sirainen <tss@iki.fi>
parents:
18137
diff
changeset
|
82 |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
83 #undef DEF |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
84 #define DEF(type, name) \ |
17750
d91b43496e72
dict: Renamed struct dict_settings to dict_server_settings.
Timo Sirainen <tss@iki.fi>
parents:
17397
diff
changeset
|
85 { type, #name, offsetof(struct dict_server_settings, name), NULL } |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
86 |
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
|
87 static const struct setting_define dict_setting_defines[] = { |
9545
ee99bb70b05f
dict proxy: Use base_dir as the default dict-server location.
Timo Sirainen <tss@iki.fi>
parents:
9405
diff
changeset
|
88 DEF(SET_STR, base_dir), |
20200
7b8c0ca9a67c
dict: Show command statistics in process title.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
89 DEF(SET_BOOL, verbose_proctitle), |
7b8c0ca9a67c
dict: Show command statistics in process title.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
90 |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
91 DEF(SET_STR, dict_db_config), |
17750
d91b43496e72
dict: Renamed struct dict_settings to dict_server_settings.
Timo Sirainen <tss@iki.fi>
parents:
17397
diff
changeset
|
92 { SET_STRLIST, "dict", offsetof(struct dict_server_settings, dicts), NULL }, |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
93 |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
94 SETTING_DEFINE_LIST_END |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
95 }; |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
96 |
17750
d91b43496e72
dict: Renamed struct dict_settings to dict_server_settings.
Timo Sirainen <tss@iki.fi>
parents:
17397
diff
changeset
|
97 const struct dict_server_settings dict_default_settings = { |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
98 .base_dir = PKG_RUNDIR, |
20200
7b8c0ca9a67c
dict: Show command statistics in process title.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
99 .verbose_proctitle = FALSE, |
7b8c0ca9a67c
dict: Show command statistics in process title.
Timo Sirainen <timo.sirainen@dovecot.fi>
parents:
19552
diff
changeset
|
100 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
101 .dict_db_config = "", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
102 .dicts = ARRAY_INIT |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
103 }; |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
104 |
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
|
105 const struct setting_parser_info dict_setting_parser_info = { |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
106 .module_name = "dict", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
107 .defines = dict_setting_defines, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
108 .defaults = &dict_default_settings, |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
109 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
110 .type_offset = (size_t)-1, |
17750
d91b43496e72
dict: Renamed struct dict_settings to dict_server_settings.
Timo Sirainen <tss@iki.fi>
parents:
17397
diff
changeset
|
111 .struct_size = sizeof(struct dict_server_settings), |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
112 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
113 .parent_offset = (size_t)-1 |
9149
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
114 }; |
6d374fc3ae1d
Moved most of the dict settings handling to dict binary.
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
115 |
17750
d91b43496e72
dict: Renamed struct dict_settings to dict_server_settings.
Timo Sirainen <tss@iki.fi>
parents:
17397
diff
changeset
|
116 const struct dict_server_settings *dict_settings; |