1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008 OpenWrt.org
16 config_get_bool _loctmp "$section" "$option"
17 [ "$_loctmp" -le 0 ] && return 0
26 config_get _loctmp "$section" "$option"
27 [ -z "$_loctmp" ] && return 0
28 append args "$switch $_loctmp"
34 append_parm "$cfg" mail_root "-Ms"
35 append_bool "$cfg" debug "-Md"
36 append_parm "$cfg" log_rotate "-Mr"
37 append_parm "$cfg" split_level "-Mx"
38 append_parm "$cfg" rx_buffer "-MR"
39 append_parm "$cfg" tx_buffer "-MS"
40 append_bool "$cfg" maildir_delivery "-MM"
41 append_bool "$cfg" mailbox_delivery "-Mm"
42 append_parm "$cfg" dns_cache_dirs "-MD"
43 append_bool "$cfg" ipv4_only "-M4"
44 append_bool "$cfg" ipv6_only "-M6"
45 append_bool "$cfg" ipv4_then_ipv6 "-M5"
46 append_bool "$cfg" ipv6_then_ipv4 "-M7"
48 config_get mail_root $cfg mail_root
49 [ -n "$mail_root" ] || return 0
56 append_bool "$cfg" disable "-P-"
57 append_bool "$cfg" ipv6 "-P6"
58 append_parm "$cfg" server_port "-Pp"
59 append_parm "$cfg" session_timeout "-Pt"
60 append_bool "$cfg" log "-Pl"
61 append_parm "$cfg" delay_timeout "-Pw"
62 append_bool "$cfg" bad_login_hang "-Ph"
63 append_parm "$cfg" local_address "-PI"
64 append_parm "$cfg" num_threads "-PX"
70 append_bool "$cfg" disable "-B-"
71 append_bool "$cfg" ipv6 "-B6"
72 append_parm "$cfg" server_port "-Bp"
73 append_parm "$cfg" local_address "-BI"
79 append_bool "$cfg" disable "-S-"
80 append_bool "$cfg" ipv6 "-S6"
81 append_parm "$cfg" server_port "-Sp"
82 append_parm "$cfg" session_timeout "-St"
83 append_bool "$cfg" log "-Sl"
84 append_parm "$cfg" local_address "-SI"
85 append_parm "$cfg" num_threads "-SX"
86 append_parm "$cfg" max_recipients "-Sr"
87 append_parm "$cfg" expire_timeout "-Se"
93 append_bool "$cfg" disable "-X-"
94 append_bool "$cfg" ipv6 "-X6"
95 append_parm "$cfg" server_port "-Xp"
96 append_parm "$cfg" local_address "-XI"
102 append_parm "$cfg" num_threads "-Qn"
103 append_parm "$cfg" next_try_timeout "-Qt"
104 append_parm "$cfg" ratio "-Qi"
105 append_parm "$cfg" retries "-Qr"
106 append_bool "$cfg" log "-Ql"
107 append_parm "$cfg" filters_timeout "-QT"
108 append_bool "$cfg" filter_log "-Qg"
114 append_bool "$cfg" disable "-Y-"
115 append_parm "$cfg" interval "-Yi"
116 append_parm "$cfg" num_threads "-Yt"
117 append_parm "$cfg" timeout "-Yi"
118 append_bool "$cfg" log "-Yl"
124 append_bool "$cfg" disable "-F-"
125 append_bool "$cfg" ipv6 "-F6"
126 append_parm "$cfg" server_port "-Fp"
127 append_bool "$cfg" log "-Fl"
128 append_parm "$cfg" local_address "-FI"
134 append_bool "$cfg" disable "-C-"
135 append_bool "$cfg" ipv6 "-C6"
136 append_parm "$cfg" server_port "-Cp"
137 append_parm "$cfg" session_timeout "-Ct"
138 append_bool "$cfg" log "-Cl"
139 append_parm "$cfg" local_address "-CI"
140 append_parm "$cfg" num_threads "-CX"
146 append_bool "$cfg" disable "-W-"
147 append_bool "$cfg" ipv6 "-W6"
148 append_parm "$cfg" server_port "-Wp"
149 append_parm "$cfg" session_timeout "-Wt"
155 append_parm "$cfg" num_threads "-Ln"
156 append_parm "$cfg" sleep_timeout "-Lt"
157 append_bool "$cfg" log "-Ll"
161 test -f $DAEMON || exit 0
171 config_foreach xmail xmail
172 config_foreach pop3 pop3
173 config_foreach pop3s pop3s
174 config_foreach smtp smtp
175 config_foreach smtps smtps
176 config_foreach smail smail
177 config_foreach psync psync
178 config_foreach finger finger
179 config_foreach ctrl ctrl
180 config_foreach ctrls ctrls
181 config_foreach lmail lmail
183 [ -z "$MAIL_ROOT" ] && exit 0
184 [ -d $MAIL_ROOT ] || exit 0
188 rm -f /var/run/$NAME.pid
193 while [ ! -f /var/run/$NAME.pid -a $MAX_WAIT -gt 0 ]
196 MAX_WAIT=`expr $MAX_WAIT - 1`
201 if [ -f /var/run/$NAME.pid ]
204 config_foreach xmail xmail
205 [ -z "$MAIL_ROOT" ] || echo `date` > $MAIL_ROOT/.shutdown
206 kill -INT `cat /var/run/$NAME.pid`
209 while [ -f $MAIL_ROOT/.shutdown -a $MAX_WAIT -gt 0 ]
212 MAX_WAIT=`expr $MAX_WAIT - 1`