annotate src/lmtp/lmtp-settings.c @ 17397:f373df52082a

treewide - mass cleanup of 0 used to end a settings list This also includes a change to the perl script which generates the all-settings.c file. Signed-off-by: Phil Carmody <phil@dovecot.fi>
author Phil Carmody <phil@dovecot.fi>
date Tue, 27 May 2014 21:17:34 +0300
parents add8c00fb3cc
children 3009a1a6f6d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17130
add8c00fb3cc Updated copyright notices to include year 2014.
Timo Sirainen <tss@iki.fi>
parents: 15715
diff changeset
1 /* Copyright (c) 2009-2014 Dovecot authors, see the included COPYING file */
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
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"
12480
77d582b2dc51 lmtp: Recent change broke accessing mail_temp_dir.
Timo Sirainen <tss@iki.fi>
parents: 12375
diff changeset
5 #include "var-expand.h"
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #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
7 #include "service-settings.h"
10342
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
8 #include "master-service.h"
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 #include "master-service-settings.h"
10134
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
10 #include "lda-settings.h"
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 #include "lmtp-settings.h"
11822
7a6cf8dae9bf Added mail_temp_dir setting, used by deliver and lmtp for creating temp mail files.
Timo Sirainen <tss@iki.fi>
parents: 11631
diff changeset
12 #include "mail-storage-settings.h"
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 #include <stddef.h>
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 #include <unistd.h>
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
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> */
12375
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
18 static struct file_listener_settings lmtp_unix_listeners_array[] = {
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
19 { "lmtp", 0666, "", "" }
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
20 };
12375
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
21 static struct file_listener_settings *lmtp_unix_listeners[] = {
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
22 &lmtp_unix_listeners_array[0]
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
23 };
12375
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
24 static buffer_t lmtp_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
25 lmtp_unix_listeners, sizeof(lmtp_unix_listeners), { NULL, }
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
26 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
27 /* </settings checks> */
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
28
12375
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
29 struct service_settings lmtp_service_settings = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
30 .name = "lmtp",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
31 .protocol = "lmtp",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
32 .type = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
33 .executable = "lmtp",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
34 .user = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
35 .group = "",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
36 .privileged_group = "",
12019
a8397390075d Reverted previous commit. It's a stupid feature: mail_access_groups already exists.
Timo Sirainen <tss@iki.fi>
parents: 12018
diff changeset
37 .extra_groups = "",
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
38 .chroot = "",
10179
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
39
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
40 .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
41
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
42 .process_min_avail = 0,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
43 .process_limit = 0,
13654
b5d4b4e43840 lmtp: Changed default client_limit to 1.
Timo Sirainen <tss@iki.fi>
parents: 12782
diff changeset
44 .client_limit = 1,
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
45 .service_count = 0,
11631
d41694c931d0 Added support for per-service idle kill timeout.
Timo Sirainen <tss@iki.fi>
parents: 10793
diff changeset
46 .idle_kill = 0,
13685
011f10758702 lmtp: Default vsz_limit wasn't used for lmtp service.
Timo Sirainen <tss@iki.fi>
parents: 13654
diff changeset
47 .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
48
12375
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
49 .unix_listeners = { { &lmtp_unix_listeners_buf,
d3d07da70102 lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents: 12019
diff changeset
50 sizeof(lmtp_unix_listeners[0]) } },
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
51 .fifo_listeners = ARRAY_INIT,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
52 .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
53 };
afe52d60989c Moved default service settings from master.conf to source code.
Timo Sirainen <tss@iki.fi>
parents: 10177
diff changeset
54
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
55 #undef DEF
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
56 #define DEF(type, name) \
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 { type, #name, offsetof(struct lmtp_settings, name), NULL }
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
58
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10134
diff changeset
59 static const struct setting_define lmtp_setting_defines[] = {
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
60 DEF(SET_BOOL, lmtp_proxy),
12486
d7886c6d9ba5 lmtp: Added lmtp_save_to_detail_mailbox setting.
Timo Sirainen <tss@iki.fi>
parents: 12480
diff changeset
61 DEF(SET_BOOL, lmtp_save_to_detail_mailbox),
15158
cc7906697d19 lmtp: Added lmtp_rcpt_check_quota setting to check quota already on RCPT TO.
Timo Sirainen <tss@iki.fi>
parents: 14773
diff changeset
62 DEF(SET_BOOL, lmtp_rcpt_check_quota),
14840
6a0954d0ce09 Merged changes from v2.1 tree.
Timo Sirainen <tss@iki.fi>
parents: 14726 14773
diff changeset
63 DEF(SET_STR, lmtp_address_translate),
13943
05434bef2492 lmtp: Get banner text from login_greeting setting.
Timo Sirainen <tss@iki.fi>
parents: 13685
diff changeset
64 DEF(SET_STR_VARS, login_greeting),
14149
1af2a0497f3f lmtp: Implemented Postfix-compatible XCLIENT extension for changing client's ip/port.
Timo Sirainen <tss@iki.fi>
parents: 14133
diff changeset
65 DEF(SET_STR, login_trusted_networks),
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
66
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
67 SETTING_DEFINE_LIST_END
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
68 };
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
69
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10134
diff changeset
70 static const struct lmtp_settings lmtp_default_settings = {
12486
d7886c6d9ba5 lmtp: Added lmtp_save_to_detail_mailbox setting.
Timo Sirainen <tss@iki.fi>
parents: 12480
diff changeset
71 .lmtp_proxy = FALSE,
13943
05434bef2492 lmtp: Get banner text from login_greeting setting.
Timo Sirainen <tss@iki.fi>
parents: 13685
diff changeset
72 .lmtp_save_to_detail_mailbox = FALSE,
15158
cc7906697d19 lmtp: Added lmtp_rcpt_check_quota setting to check quota already on RCPT TO.
Timo Sirainen <tss@iki.fi>
parents: 14773
diff changeset
73 .lmtp_rcpt_check_quota = FALSE,
14840
6a0954d0ce09 Merged changes from v2.1 tree.
Timo Sirainen <tss@iki.fi>
parents: 14726 14773
diff changeset
74 .lmtp_address_translate = "",
14773
f1509d8eb2c1 lmtp: Added lmtp_address_translate setting.
Timo Sirainen <tss@iki.fi>
parents: 14133
diff changeset
75 .login_greeting = PACKAGE_NAME" ready.",
14149
1af2a0497f3f lmtp: Implemented Postfix-compatible XCLIENT extension for changing client's ip/port.
Timo Sirainen <tss@iki.fi>
parents: 14133
diff changeset
76 .login_trusted_networks = ""
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
77 };
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
78
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10134
diff changeset
79 static const struct setting_parser_info *lmtp_setting_dependencies[] = {
10134
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
80 &lda_setting_parser_info,
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
81 NULL
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
82 };
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
83
10177
d589d568a19d Changed all settings related structs to const and changed APIs to make it work.
Timo Sirainen <tss@iki.fi>
parents: 10134
diff changeset
84 const struct setting_parser_info lmtp_setting_parser_info = {
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
85 .module_name = "lmtp",
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
86 .defines = lmtp_setting_defines,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
87 .defaults = &lmtp_default_settings,
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
88
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
89 .type_offset = (size_t)-1,
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
90 .struct_size = sizeof(struct lmtp_settings),
10106
5a25b4ec5694 Reordered struct setting_parser_info fields to make using them easier.
Timo Sirainen <tss@iki.fi>
parents: 10039
diff changeset
91
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
92 .parent_offset = (size_t)-1,
10134
545bdb7670d2 lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents: 10107
diff changeset
93
10410
b757dab45756 Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents: 10342
diff changeset
94 .dependencies = lmtp_setting_dependencies
10039
ddcc3391adf9 lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
95 };
10342
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
96
10793
bf4822f0846b lib-master: Added support for caching config lookups.
Timo Sirainen <tss@iki.fi>
parents: 10582
diff changeset
97 void lmtp_settings_dup(const struct setting_parser_context *set_parser,
11822
7a6cf8dae9bf Added mail_temp_dir setting, used by deliver and lmtp for creating temp mail files.
Timo Sirainen <tss@iki.fi>
parents: 11631
diff changeset
98 pool_t pool,
13978
e9f68fdf6967 lmtp: Fixed assert-crashing on 3rd client connection.
Timo Sirainen <tss@iki.fi>
parents: 13943
diff changeset
99 struct lmtp_settings **lmtp_set_r,
e9f68fdf6967 lmtp: Fixed assert-crashing on 3rd client connection.
Timo Sirainen <tss@iki.fi>
parents: 13943
diff changeset
100 struct lda_settings **lda_set_r)
10342
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
101 {
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
102 void **sets;
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
103
15088
14df6be0111f Read SSL settings only if service has SSL sockets or MASTER_SERVICE_FLAG_USE_SSL_SETTINGS.
Timo Sirainen <tss@iki.fi>
parents: 14840
diff changeset
104 sets = master_service_settings_parser_get_others(master_service,
14df6be0111f Read SSL settings only if service has SSL sockets or MASTER_SERVICE_FLAG_USE_SSL_SETTINGS.
Timo Sirainen <tss@iki.fi>
parents: 14840
diff changeset
105 set_parser);
10342
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
106 *lda_set_r = settings_dup(&lda_setting_parser_info, sets[1], pool);
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
107 *lmtp_set_r = settings_dup(&lmtp_setting_parser_info, sets[2], pool);
6431c35a9670 lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents: 10179
diff changeset
108 }