Mercurial > dovecot > core-2.2
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 |
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 | 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 | 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 } |