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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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;