10 #include "auto_qmail.h"
26 if ((ch
< 32) || (ch
> 126)) ch
= '?';
27 substdio_put(subfdout
,&ch
,1);
33 void do_int(fn
,def
,pre
,post
)
40 substdio_puts(subfdout
,"\n");
41 substdio_puts(subfdout
,fn
);
42 substdio_puts(subfdout
,": ");
43 switch(control_readint(&i
,fn
)) {
45 substdio_puts(subfdout
,"(Default.) ");
46 substdio_puts(subfdout
,pre
);
47 substdio_puts(subfdout
,def
);
48 substdio_puts(subfdout
,post
);
49 substdio_puts(subfdout
,".\n");
53 substdio_puts(subfdout
,pre
);
54 substdio_put(subfdout
,num
,fmt_uint(num
,i
));
55 substdio_puts(subfdout
,post
);
56 substdio_puts(subfdout
,".\n");
59 substdio_puts(subfdout
,"Oops! Trouble reading this file.\n");
64 void do_str(fn
,flagme
,def
,pre
)
70 substdio_puts(subfdout
,"\n");
71 substdio_puts(subfdout
,fn
);
72 substdio_puts(subfdout
,": ");
73 switch(control_readline(&line
,fn
)) {
75 substdio_puts(subfdout
,"(Default.) ");
76 if (!stralloc_copys(&line
,def
)) {
77 substdio_puts(subfdout
,"Oops! Out of memory.\n");
81 if (!stralloc_copy(&line
,&me
)) {
82 substdio_puts(subfdout
,"Oops! Out of memory.\n");
86 substdio_puts(subfdout
,pre
);
87 safeput(line
.s
,line
.len
);
88 substdio_puts(subfdout
,".\n");
91 substdio_puts(subfdout
,"Oops! Trouble reading this file.\n");
96 void do_lst(fn
,def
,pre
,post
)
105 substdio_puts(subfdout
,"\n");
106 substdio_puts(subfdout
,fn
);
107 substdio_puts(subfdout
,": ");
108 switch(control_readfile(&line
,fn
)) {
110 substdio_puts(subfdout
,"(Default.) ");
111 substdio_puts(subfdout
,def
);
112 substdio_puts(subfdout
,"\n");
115 substdio_puts(subfdout
,"\n");
117 for (j
= 0;j
< line
.len
;++j
)
119 substdio_puts(subfdout
,pre
);
120 safeput(line
.s
+ i
,j
- i
);
121 substdio_puts(subfdout
,post
);
122 substdio_puts(subfdout
,"\n");
127 substdio_puts(subfdout
,"Oops! Trouble reading this file.\n");
137 substdio_puts(subfdout
,"The qmail control files are stored in ");
138 substdio_puts(subfdout
,auto_qmail
);
139 substdio_puts(subfdout
,"/control.\n");
141 if (chdir(auto_qmail
) == -1) {
142 substdio_puts(subfdout
,"Oops! Unable to chdir to ");
143 substdio_puts(subfdout
,auto_qmail
);
144 substdio_puts(subfdout
,".\n");
145 substdio_flush(subfdout
);
148 if (chdir("control") == -1) {
149 substdio_puts(subfdout
,"Oops! Unable to chdir to control.\n");
150 substdio_flush(subfdout
);
156 substdio_puts(subfdout
,"Oops! Unable to open current directory.\n");
157 substdio_flush(subfdout
);
161 meok
= control_readline(&me
,"me");
163 substdio_puts(subfdout
,"Oops! Trouble reading control/me.");
164 substdio_flush(subfdout
);
168 do_lst("badmailfrom","Any MAIL FROM is allowed.",""," not accepted in MAIL FROM.");
169 do_str("bouncefrom",0,"MAILER-DAEMON","Bounce user name is ");
170 do_str("bouncehost",1,"bouncehost","Bounce host name is ");
171 do_int("concurrencylocal","10","Local concurrency is ","");
172 do_int("concurrencyremote","20","Remote concurrency is ","");
173 do_str("defaultdomain",1,"defaultdomain","Default domain name is ");
174 do_str("defaulthost",1,"defaulthost","Default host name is ");
175 do_str("doublebouncehost",1,"doublebouncehost","2B recipient host: ");
176 do_str("doublebounceto",0,"postmaster","2B recipient user: ");
177 do_str("envnoathost",1,"envnoathost","Presumed domain name is ");
178 do_str("helohost",1,"helohost","SMTP client HELO host name is ");
179 do_str("idhost",1,"idhost","Message-ID host name is ");
180 do_str("localiphost",1,"localiphost","Local IP address becomes ");
181 do_lst("locals","Messages for me are delivered locally.","Messages for "," are delivered locally.");
182 do_str("me",0,"undefined! Uh-oh","My name is ");
183 do_lst("percenthack","The percent hack is not allowed.","The percent hack is allowed for user%host@",".");
184 do_str("plusdomain",1,"plusdomain","Plus domain name is ");
185 do_int("queuelifetime","604800","Message lifetime in the queue is "," seconds");
186 do_lst("rcpthosts","SMTP clients may send messages to any recipient.","SMTP clients may send messages to recipients at ",".");
187 do_lst("recipientmap","No redirections.","Redirection: ","");
188 do_str("smtpgreeting",1,"smtpgreeting","SMTP greeting: 220 ");
189 do_lst("smtproutes","No artificial SMTP routes.","SMTP route: ","");
190 do_int("timeoutconnect","60","SMTP client connection timeout is "," seconds");
191 do_int("timeoutremote","1200","SMTP client data timeout is "," seconds");
192 do_int("timeoutsmtpd","1200","SMTP server data timeout is "," seconds");
193 do_lst("virtualdomains","No virtual domains.","Virtual domain: ","");
195 while (d
= readdir(dir
)) {
196 if (str_equal(d
->d_name
,".")) continue;
197 if (str_equal(d
->d_name
,"..")) continue;
198 if (str_equal(d
->d_name
,"bouncefrom")) continue;
199 if (str_equal(d
->d_name
,"bouncehost")) continue;
200 if (str_equal(d
->d_name
,"badmailfrom")) continue;
201 if (str_equal(d
->d_name
,"bouncefrom")) continue;
202 if (str_equal(d
->d_name
,"bouncehost")) continue;
203 if (str_equal(d
->d_name
,"concurrencylocal")) continue;
204 if (str_equal(d
->d_name
,"concurrencyremote")) continue;
205 if (str_equal(d
->d_name
,"defaultdomain")) continue;
206 if (str_equal(d
->d_name
,"defaulthost")) continue;
207 if (str_equal(d
->d_name
,"doublebouncehost")) continue;
208 if (str_equal(d
->d_name
,"doublebounceto")) continue;
209 if (str_equal(d
->d_name
,"envnoathost")) continue;
210 if (str_equal(d
->d_name
,"helohost")) continue;
211 if (str_equal(d
->d_name
,"idhost")) continue;
212 if (str_equal(d
->d_name
,"localiphost")) continue;
213 if (str_equal(d
->d_name
,"locals")) continue;
214 if (str_equal(d
->d_name
,"me")) continue;
215 if (str_equal(d
->d_name
,"percenthack")) continue;
216 if (str_equal(d
->d_name
,"plusdomain")) continue;
217 if (str_equal(d
->d_name
,"queuelifetime")) continue;
218 if (str_equal(d
->d_name
,"rcpthosts")) continue;
219 if (str_equal(d
->d_name
,"recipientmap")) continue;
220 if (str_equal(d
->d_name
,"smtpgreeting")) continue;
221 if (str_equal(d
->d_name
,"smtproutes")) continue;
222 if (str_equal(d
->d_name
,"timeoutconnect")) continue;
223 if (str_equal(d
->d_name
,"timeoutremote")) continue;
224 if (str_equal(d
->d_name
,"timeoutsmtpd")) continue;
225 if (str_equal(d
->d_name
,"virtualdomains")) continue;
226 substdio_puts(subfdout
,"\n");
227 substdio_puts(subfdout
,d
->d_name
);
228 substdio_puts(subfdout
,": I have no idea what this file does.\n");
231 substdio_flush(subfdout
);