Mercurial > dovecot > core-2.2
annotate src/lmtp/lmtp-settings.c @ 13943:05434bef2492
lmtp: Get banner text from login_greeting setting.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 17 Jan 2012 23:12:26 +0200 |
parents | 011f10758702 |
children | e9f68fdf6967 |
rev | line source |
---|---|
12782
447bce266022
Updated copyright notices to include year 2011.
Timo Sirainen <tss@iki.fi>
parents:
12486
diff
changeset
|
1 /* Copyright (c) 2009-2011 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 = { |
d3d07da70102
lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/
Timo Sirainen <tss@iki.fi>
parents:
12019
diff
changeset
|
25 lmtp_unix_listeners, sizeof(lmtp_unix_listeners), { 0, } |
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), |
13943
05434bef2492
lmtp: Get banner text from login_greeting setting.
Timo Sirainen <tss@iki.fi>
parents:
13685
diff
changeset
|
62 DEF(SET_STR_VARS, login_greeting), |
10039
ddcc3391adf9
lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
63 |
ddcc3391adf9
lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
64 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
|
65 }; |
ddcc3391adf9
lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
66 |
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
|
67 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
|
68 .lmtp_proxy = FALSE, |
13943
05434bef2492
lmtp: Get banner text from login_greeting setting.
Timo Sirainen <tss@iki.fi>
parents:
13685
diff
changeset
|
69 .lmtp_save_to_detail_mailbox = FALSE, |
05434bef2492
lmtp: Get banner text from login_greeting setting.
Timo Sirainen <tss@iki.fi>
parents:
13685
diff
changeset
|
70 .login_greeting = PACKAGE_NAME" ready." |
10039
ddcc3391adf9
lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
71 }; |
ddcc3391adf9
lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes).
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
72 |
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
|
73 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
|
74 &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
|
75 NULL |
545bdb7670d2
lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
76 }; |
545bdb7670d2
lib-storage: Changed APIs to fix reading settings for multiple users.
Timo Sirainen <tss@iki.fi>
parents:
10107
diff
changeset
|
77 |
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
|
78 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
|
79 .module_name = "lmtp", |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
80 .defines = lmtp_setting_defines, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
81 .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
|
82 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
83 .type_offset = (size_t)-1, |
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
84 .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
|
85 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
86 .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
|
87 |
10410
b757dab45756
Removed MEMBER() macro. Require C99 style struct initializer.
Timo Sirainen <tss@iki.fi>
parents:
10342
diff
changeset
|
88 .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
|
89 }; |
10342
6431c35a9670
lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
90 |
10793
bf4822f0846b
lib-master: Added support for caching config lookups.
Timo Sirainen <tss@iki.fi>
parents:
10582
diff
changeset
|
91 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
|
92 pool_t pool, |
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
|
93 const struct lmtp_settings **lmtp_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
|
94 const struct lda_settings **lda_set_r) |
6431c35a9670
lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
95 { |
6431c35a9670
lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
96 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
|
97 |
10793
bf4822f0846b
lib-master: Added support for caching config lookups.
Timo Sirainen <tss@iki.fi>
parents:
10582
diff
changeset
|
98 sets = settings_parser_get_list(set_parser) + 1; |
10342
6431c35a9670
lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them.
Timo Sirainen <tss@iki.fi>
parents:
10179
diff
changeset
|
99 *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
|
100 *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
|
101 } |