chiark / gitweb /
Upstream qmail 1.01
[qmail] / qmail-hier.c
1 #include "subfd.h"
2 #include "substdio.h"
3 #include "auto_split.h"
4 #include "auto_uids.h"
5 #include "fmt.h"
6
7 char strnum[FMT_ULONG];
8
9 void uidgid(uid)
10 int uid;
11 {
12   substdio_put(subfdout,strnum,fmt_ulong(strnum,(unsigned long) uid));
13   substdio_puts(subfdout,":");
14   substdio_put(subfdout,strnum,fmt_ulong(strnum,(unsigned long) auto_gidq));
15   substdio_puts(subfdout,":");
16 }
17
18 void copy(uid,mode,sub,fn)
19 int uid;
20 char *mode;
21 char *sub;
22 char *fn;
23 {
24   substdio_puts(subfdout,"c:");
25   uidgid(uid);
26   substdio_puts(subfdout,mode);
27   substdio_puts(subfdout,":");
28   substdio_puts(subfdout,sub);
29   substdio_puts(subfdout,":");
30   substdio_puts(subfdout,fn);
31   substdio_puts(subfdout,":\n");
32 }
33
34 void dir(uid,mode,fn)
35 int uid;
36 char *mode;
37 char *fn;
38 {
39   substdio_puts(subfdout,"d:");
40   uidgid(uid);
41   substdio_puts(subfdout,mode);
42   substdio_puts(subfdout,":");
43   substdio_puts(subfdout,fn);
44   substdio_puts(subfdout,"::\n");
45 }
46
47 void dirsplit(uid,mode,fn)
48 int uid;
49 char *mode;
50 char *fn;
51 {
52   unsigned long i;
53   dir(uid,mode,fn);
54   for (i = 0;i < auto_split;++i) {
55     substdio_puts(subfdout,"d:");
56     uidgid(uid);
57     substdio_puts(subfdout,mode);
58     substdio_puts(subfdout,":");
59     substdio_puts(subfdout,fn);
60     substdio_puts(subfdout,":/");
61     substdio_put(subfdout,strnum,fmt_ulong(strnum,i));
62     substdio_puts(subfdout,":\n");
63   }
64 }
65
66 void main()
67 {
68   dir(auto_uido,"755","");
69   dir(auto_uido,"755","/control");
70   dir(auto_uido,"755","/users");
71   dir(auto_uido,"755","/bin");
72   dir(auto_uido,"755","/man");
73   dir(auto_uido,"755","/man/cat1");
74   dir(auto_uido,"755","/man/cat5");
75   dir(auto_uido,"755","/man/cat7");
76   dir(auto_uido,"755","/man/cat8");
77   dir(auto_uido,"755","/man/man1");
78   dir(auto_uido,"755","/man/man5");
79   dir(auto_uido,"755","/man/man7");
80   dir(auto_uido,"755","/man/man8");
81
82   dir(auto_uida,"755","/alias");
83   dir(auto_uidq,"750","/queue");
84   dir(auto_uidq,"700","/queue/pid");
85   dir(auto_uidq,"700","/queue/intd");
86   dir(auto_uidq,"750","/queue/todo");
87   dir(auto_uidq,"750","/queue/lock");
88   dir(auto_uids,"700","/queue/bounce");
89
90   substdio_puts(subfdout,"z0:");
91   uidgid(auto_uids);
92   substdio_puts(subfdout,"600:/queue/lock/:sendmutex:\n");
93
94   substdio_puts(subfdout,"z1024:");
95   uidgid(auto_uidr);
96   substdio_puts(subfdout,"644:/queue/lock/:tcpto:\n");
97
98   substdio_puts(subfdout,"p:");
99   uidgid(auto_uids);
100   substdio_puts(subfdout,"622:/queue/lock/:trigger:\n");
101
102   dirsplit(auto_uidq,"750","/queue/mess");
103   dirsplit(auto_uids,"700","/queue/info");
104   dirsplit(auto_uids,"700","/queue/local");
105   dirsplit(auto_uids,"700","/queue/remote");
106
107   copy(auto_uidq,"4711","/bin/","qmail-queue");
108   copy(auto_uido,"700","/bin/","qmail-lspawn");
109   copy(auto_uido,"700","/bin/","qmail-start");
110   copy(auto_uido,"711","/bin/","qmail-getpw");
111   copy(auto_uido,"711","/bin/","qmail-local");
112   copy(auto_uido,"711","/bin/","qmail-remote");
113   copy(auto_uido,"711","/bin/","qmail-rspawn");
114   copy(auto_uido,"711","/bin/","qmail-clean");
115   copy(auto_uido,"711","/bin/","qmail-send");
116   copy(auto_uido,"711","/bin/","splogger");
117   copy(auto_uido,"700","/bin/","qmail-newu");
118   copy(auto_uido,"711","/bin/","qmail-pw2u");
119   copy(auto_uido,"755","/bin/","qmail-inject");
120   copy(auto_uido,"755","/bin/","predate");
121   copy(auto_uido,"755","/bin/","datemail");
122   copy(auto_uido,"755","/bin/","mailsubj");
123   copy(auto_uido,"755","/bin/","qmail-showctl");
124   copy(auto_uido,"755","/bin/","qmail-qread");
125   copy(auto_uido,"755","/bin/","qmail-qstat");
126   copy(auto_uido,"755","/bin/","qmail-tcpto");
127   copy(auto_uido,"755","/bin/","qmail-pop3d");
128   copy(auto_uido,"700","/bin/","qmail-popup");
129   copy(auto_uido,"755","/bin/","qmail-qmtpd");
130   copy(auto_uido,"755","/bin/","qmail-smtpd");
131   copy(auto_uido,"755","/bin/","sendmail");
132   copy(auto_uido,"755","/bin/","tcp-env");
133   copy(auto_uido,"755","/bin/","qlist");
134   copy(auto_uido,"755","/bin/","qlist2");
135   copy(auto_uido,"755","/bin/","qreceipt");
136   copy(auto_uido,"755","/bin/","qsmhook");
137   copy(auto_uido,"755","/bin/","qbiff");
138   copy(auto_uido,"755","/bin/","forward");
139   copy(auto_uido,"755","/bin/","preline");
140   copy(auto_uido,"755","/bin/","condredirect");
141   copy(auto_uido,"755","/bin/","maildirmake");
142   copy(auto_uido,"755","/bin/","maildir2mbox");
143   copy(auto_uido,"755","/bin/","maildirwatch");
144   copy(auto_uido,"755","/bin/","qail");
145   copy(auto_uido,"755","/bin/","elq");
146   copy(auto_uido,"755","/bin/","pinq");
147
148   copy(auto_uido,"644","/man/man5/","addresses.5");
149   copy(auto_uido,"644","/man/cat5/","addresses.0");
150   copy(auto_uido,"644","/man/man5/","envelopes.5");
151   copy(auto_uido,"644","/man/cat5/","envelopes.0");
152   copy(auto_uido,"644","/man/man5/","maildir.5");
153   copy(auto_uido,"644","/man/cat5/","maildir.0");
154   copy(auto_uido,"644","/man/man5/","mbox.5");
155   copy(auto_uido,"644","/man/cat5/","mbox.0");
156   copy(auto_uido,"644","/man/man5/","dot-qmail.5");
157   copy(auto_uido,"644","/man/cat5/","dot-qmail.0");
158   copy(auto_uido,"644","/man/man5/","qmail-control.5");
159   copy(auto_uido,"644","/man/cat5/","qmail-control.0");
160   copy(auto_uido,"644","/man/man5/","qmail-header.5");
161   copy(auto_uido,"644","/man/cat5/","qmail-header.0");
162   copy(auto_uido,"644","/man/man5/","qmail-log.5");
163   copy(auto_uido,"644","/man/cat5/","qmail-log.0");
164   copy(auto_uido,"644","/man/man5/","qmail-users.5");
165   copy(auto_uido,"644","/man/cat5/","qmail-users.0");
166   copy(auto_uido,"644","/man/man5/","tcp-environ.5");
167   copy(auto_uido,"644","/man/cat5/","tcp-environ.0");
168
169   copy(auto_uido,"644","/man/man7/","forgeries.7");
170   copy(auto_uido,"644","/man/cat7/","forgeries.0");
171   copy(auto_uido,"644","/man/man7/","qmail-limits.7");
172   copy(auto_uido,"644","/man/cat7/","qmail-limits.0");
173   copy(auto_uido,"644","/man/man7/","qmail-upgrade.7");
174   copy(auto_uido,"644","/man/cat7/","qmail-upgrade.0");
175   copy(auto_uido,"644","/man/man7/","qmail.7");
176   copy(auto_uido,"644","/man/cat7/","qmail.0");
177
178   copy(auto_uido,"644","/man/man1/","forward.1");
179   copy(auto_uido,"644","/man/cat1/","forward.0");
180   copy(auto_uido,"644","/man/man1/","condredirect.1");
181   copy(auto_uido,"644","/man/cat1/","condredirect.0");
182   copy(auto_uido,"644","/man/man1/","maildirmake.1");
183   copy(auto_uido,"644","/man/cat1/","maildirmake.0");
184   copy(auto_uido,"644","/man/man1/","maildir2mbox.1");
185   copy(auto_uido,"644","/man/cat1/","maildir2mbox.0");
186   copy(auto_uido,"644","/man/man1/","maildirwatch.1");
187   copy(auto_uido,"644","/man/cat1/","maildirwatch.0");
188   copy(auto_uido,"644","/man/man1/","mailsubj.1");
189   copy(auto_uido,"644","/man/cat1/","mailsubj.0");
190   copy(auto_uido,"644","/man/man1/","qlist.1");
191   copy(auto_uido,"644","/man/cat1/","qlist.0");
192   copy(auto_uido,"644","/man/man1/","qreceipt.1");
193   copy(auto_uido,"644","/man/cat1/","qreceipt.0");
194   copy(auto_uido,"644","/man/man1/","qbiff.1");
195   copy(auto_uido,"644","/man/cat1/","qbiff.0");
196   copy(auto_uido,"644","/man/man1/","preline.1");
197   copy(auto_uido,"644","/man/cat1/","preline.0");
198   copy(auto_uido,"644","/man/man1/","tcp-env.1");
199   copy(auto_uido,"644","/man/cat1/","tcp-env.0");
200
201   copy(auto_uido,"644","/man/man8/","qmail-local.8");
202   copy(auto_uido,"644","/man/cat8/","qmail-local.0");
203   copy(auto_uido,"644","/man/man8/","qmail-lspawn.8");
204   copy(auto_uido,"644","/man/cat8/","qmail-lspawn.0");
205   copy(auto_uido,"644","/man/man8/","qmail-getpw.8");
206   copy(auto_uido,"644","/man/cat8/","qmail-getpw.0");
207   copy(auto_uido,"644","/man/man8/","qmail-remote.8");
208   copy(auto_uido,"644","/man/cat8/","qmail-remote.0");
209   copy(auto_uido,"644","/man/man8/","qmail-rspawn.8");
210   copy(auto_uido,"644","/man/cat8/","qmail-rspawn.0");
211   copy(auto_uido,"644","/man/man8/","qmail-clean.8");
212   copy(auto_uido,"644","/man/cat8/","qmail-clean.0");
213   copy(auto_uido,"644","/man/man8/","qmail-send.8");
214   copy(auto_uido,"644","/man/cat8/","qmail-send.0");
215   copy(auto_uido,"644","/man/man8/","qmail-start.8");
216   copy(auto_uido,"644","/man/cat8/","qmail-start.0");
217   copy(auto_uido,"644","/man/man8/","splogger.8");
218   copy(auto_uido,"644","/man/cat8/","splogger.0");
219   copy(auto_uido,"644","/man/man8/","qmail-queue.8");
220   copy(auto_uido,"644","/man/cat8/","qmail-queue.0");
221   copy(auto_uido,"644","/man/man8/","qmail-inject.8");
222   copy(auto_uido,"644","/man/cat8/","qmail-inject.0");
223   copy(auto_uido,"644","/man/man8/","qmail-showctl.8");
224   copy(auto_uido,"644","/man/cat8/","qmail-showctl.0");
225   copy(auto_uido,"644","/man/man8/","qmail-newu.8");
226   copy(auto_uido,"644","/man/cat8/","qmail-newu.0");
227   copy(auto_uido,"644","/man/man8/","qmail-pw2u.8");
228   copy(auto_uido,"644","/man/cat8/","qmail-pw2u.0");
229   copy(auto_uido,"644","/man/man8/","qmail-qread.8");
230   copy(auto_uido,"644","/man/cat8/","qmail-qread.0");
231   copy(auto_uido,"644","/man/man8/","qmail-qstat.8");
232   copy(auto_uido,"644","/man/cat8/","qmail-qstat.0");
233   copy(auto_uido,"644","/man/man8/","qmail-tcpto.8");
234   copy(auto_uido,"644","/man/cat8/","qmail-tcpto.0");
235   copy(auto_uido,"644","/man/man8/","qmail-pop3d.8");
236   copy(auto_uido,"644","/man/cat8/","qmail-pop3d.0");
237   copy(auto_uido,"644","/man/man8/","qmail-popup.8");
238   copy(auto_uido,"644","/man/cat8/","qmail-popup.0");
239   copy(auto_uido,"644","/man/man8/","qmail-qmtpd.8");
240   copy(auto_uido,"644","/man/cat8/","qmail-qmtpd.0");
241   copy(auto_uido,"644","/man/man8/","qmail-smtpd.8");
242   copy(auto_uido,"644","/man/cat8/","qmail-smtpd.0");
243   copy(auto_uido,"644","/man/man8/","qmail-command.8");
244   copy(auto_uido,"644","/man/cat8/","qmail-command.0");
245
246   substdio_flush(subfdout);
247   _exit(0);
248 }