File: qmail-hier.c

package info (click to toggle)
qmail 1.01-5
  • links: PTS
  • area: non-free
  • in suites: hamm
  • size: 2,188 kB
  • ctags: 1,711
  • sloc: ansic: 13,993; makefile: 1,914; perl: 448; sh: 377
file content (248 lines) | stat: -rw-r--r-- 9,404 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#include "subfd.h"
#include "substdio.h"
#include "auto_split.h"
#include "auto_uids.h"
#include "fmt.h"

char strnum[FMT_ULONG];

void uidgid(uid)
int uid;
{
  substdio_put(subfdout,strnum,fmt_ulong(strnum,(unsigned long) uid));
  substdio_puts(subfdout,":");
  substdio_put(subfdout,strnum,fmt_ulong(strnum,(unsigned long) auto_gidq));
  substdio_puts(subfdout,":");
}

void copy(uid,mode,sub,fn)
int uid;
char *mode;
char *sub;
char *fn;
{
  substdio_puts(subfdout,"c:");
  uidgid(uid);
  substdio_puts(subfdout,mode);
  substdio_puts(subfdout,":");
  substdio_puts(subfdout,sub);
  substdio_puts(subfdout,":");
  substdio_puts(subfdout,fn);
  substdio_puts(subfdout,":\n");
}

void dir(uid,mode,fn)
int uid;
char *mode;
char *fn;
{
  substdio_puts(subfdout,"d:");
  uidgid(uid);
  substdio_puts(subfdout,mode);
  substdio_puts(subfdout,":");
  substdio_puts(subfdout,fn);
  substdio_puts(subfdout,"::\n");
}

void dirsplit(uid,mode,fn)
int uid;
char *mode;
char *fn;
{
  unsigned long i;
  dir(uid,mode,fn);
  for (i = 0;i < auto_split;++i) {
    substdio_puts(subfdout,"d:");
    uidgid(uid);
    substdio_puts(subfdout,mode);
    substdio_puts(subfdout,":");
    substdio_puts(subfdout,fn);
    substdio_puts(subfdout,":/");
    substdio_put(subfdout,strnum,fmt_ulong(strnum,i));
    substdio_puts(subfdout,":\n");
  }
}

void main()
{
  dir(auto_uido,"755","");
  dir(auto_uido,"755","/control");
  dir(auto_uido,"755","/users");
  dir(auto_uido,"755","/bin");
  dir(auto_uido,"755","/man");
  dir(auto_uido,"755","/man/cat1");
  dir(auto_uido,"755","/man/cat5");
  dir(auto_uido,"755","/man/cat7");
  dir(auto_uido,"755","/man/cat8");
  dir(auto_uido,"755","/man/man1");
  dir(auto_uido,"755","/man/man5");
  dir(auto_uido,"755","/man/man7");
  dir(auto_uido,"755","/man/man8");

  dir(auto_uida,"755","/alias");
  dir(auto_uidq,"750","/queue");
  dir(auto_uidq,"700","/queue/pid");
  dir(auto_uidq,"700","/queue/intd");
  dir(auto_uidq,"750","/queue/todo");
  dir(auto_uidq,"750","/queue/lock");
  dir(auto_uids,"700","/queue/bounce");

  substdio_puts(subfdout,"z0:");
  uidgid(auto_uids);
  substdio_puts(subfdout,"600:/queue/lock/:sendmutex:\n");

  substdio_puts(subfdout,"z1024:");
  uidgid(auto_uidr);
  substdio_puts(subfdout,"644:/queue/lock/:tcpto:\n");

  substdio_puts(subfdout,"p:");
  uidgid(auto_uids);
  substdio_puts(subfdout,"622:/queue/lock/:trigger:\n");

  dirsplit(auto_uidq,"750","/queue/mess");
  dirsplit(auto_uids,"700","/queue/info");
  dirsplit(auto_uids,"700","/queue/local");
  dirsplit(auto_uids,"700","/queue/remote");

  copy(auto_uidq,"4711","/bin/","qmail-queue");
  copy(auto_uido,"700","/bin/","qmail-lspawn");
  copy(auto_uido,"700","/bin/","qmail-start");
  copy(auto_uido,"711","/bin/","qmail-getpw");
  copy(auto_uido,"711","/bin/","qmail-local");
  copy(auto_uido,"711","/bin/","qmail-remote");
  copy(auto_uido,"711","/bin/","qmail-rspawn");
  copy(auto_uido,"711","/bin/","qmail-clean");
  copy(auto_uido,"711","/bin/","qmail-send");
  copy(auto_uido,"711","/bin/","splogger");
  copy(auto_uido,"700","/bin/","qmail-newu");
  copy(auto_uido,"711","/bin/","qmail-pw2u");
  copy(auto_uido,"755","/bin/","qmail-inject");
  copy(auto_uido,"755","/bin/","predate");
  copy(auto_uido,"755","/bin/","datemail");
  copy(auto_uido,"755","/bin/","mailsubj");
  copy(auto_uido,"755","/bin/","qmail-showctl");
  copy(auto_uido,"755","/bin/","qmail-qread");
  copy(auto_uido,"755","/bin/","qmail-qstat");
  copy(auto_uido,"755","/bin/","qmail-tcpto");
  copy(auto_uido,"755","/bin/","qmail-pop3d");
  copy(auto_uido,"700","/bin/","qmail-popup");
  copy(auto_uido,"755","/bin/","qmail-qmtpd");
  copy(auto_uido,"755","/bin/","qmail-smtpd");
  copy(auto_uido,"755","/bin/","sendmail");
  copy(auto_uido,"755","/bin/","tcp-env");
  copy(auto_uido,"755","/bin/","qlist");
  copy(auto_uido,"755","/bin/","qlist2");
  copy(auto_uido,"755","/bin/","qreceipt");
  copy(auto_uido,"755","/bin/","qsmhook");
  copy(auto_uido,"755","/bin/","qbiff");
  copy(auto_uido,"755","/bin/","forward");
  copy(auto_uido,"755","/bin/","preline");
  copy(auto_uido,"755","/bin/","condredirect");
  copy(auto_uido,"755","/bin/","maildirmake");
  copy(auto_uido,"755","/bin/","maildir2mbox");
  copy(auto_uido,"755","/bin/","maildirwatch");
  copy(auto_uido,"755","/bin/","qail");
  copy(auto_uido,"755","/bin/","elq");
  copy(auto_uido,"755","/bin/","pinq");

  copy(auto_uido,"644","/man/man5/","addresses.5");
  copy(auto_uido,"644","/man/cat5/","addresses.0");
  copy(auto_uido,"644","/man/man5/","envelopes.5");
  copy(auto_uido,"644","/man/cat5/","envelopes.0");
  copy(auto_uido,"644","/man/man5/","maildir.5");
  copy(auto_uido,"644","/man/cat5/","maildir.0");
  copy(auto_uido,"644","/man/man5/","mbox.5");
  copy(auto_uido,"644","/man/cat5/","mbox.0");
  copy(auto_uido,"644","/man/man5/","dot-qmail.5");
  copy(auto_uido,"644","/man/cat5/","dot-qmail.0");
  copy(auto_uido,"644","/man/man5/","qmail-control.5");
  copy(auto_uido,"644","/man/cat5/","qmail-control.0");
  copy(auto_uido,"644","/man/man5/","qmail-header.5");
  copy(auto_uido,"644","/man/cat5/","qmail-header.0");
  copy(auto_uido,"644","/man/man5/","qmail-log.5");
  copy(auto_uido,"644","/man/cat5/","qmail-log.0");
  copy(auto_uido,"644","/man/man5/","qmail-users.5");
  copy(auto_uido,"644","/man/cat5/","qmail-users.0");
  copy(auto_uido,"644","/man/man5/","tcp-environ.5");
  copy(auto_uido,"644","/man/cat5/","tcp-environ.0");

  copy(auto_uido,"644","/man/man7/","forgeries.7");
  copy(auto_uido,"644","/man/cat7/","forgeries.0");
  copy(auto_uido,"644","/man/man7/","qmail-limits.7");
  copy(auto_uido,"644","/man/cat7/","qmail-limits.0");
  copy(auto_uido,"644","/man/man7/","qmail-upgrade.7");
  copy(auto_uido,"644","/man/cat7/","qmail-upgrade.0");
  copy(auto_uido,"644","/man/man7/","qmail.7");
  copy(auto_uido,"644","/man/cat7/","qmail.0");

  copy(auto_uido,"644","/man/man1/","forward.1");
  copy(auto_uido,"644","/man/cat1/","forward.0");
  copy(auto_uido,"644","/man/man1/","condredirect.1");
  copy(auto_uido,"644","/man/cat1/","condredirect.0");
  copy(auto_uido,"644","/man/man1/","maildirmake.1");
  copy(auto_uido,"644","/man/cat1/","maildirmake.0");
  copy(auto_uido,"644","/man/man1/","maildir2mbox.1");
  copy(auto_uido,"644","/man/cat1/","maildir2mbox.0");
  copy(auto_uido,"644","/man/man1/","maildirwatch.1");
  copy(auto_uido,"644","/man/cat1/","maildirwatch.0");
  copy(auto_uido,"644","/man/man1/","mailsubj.1");
  copy(auto_uido,"644","/man/cat1/","mailsubj.0");
  copy(auto_uido,"644","/man/man1/","qlist.1");
  copy(auto_uido,"644","/man/cat1/","qlist.0");
  copy(auto_uido,"644","/man/man1/","qreceipt.1");
  copy(auto_uido,"644","/man/cat1/","qreceipt.0");
  copy(auto_uido,"644","/man/man1/","qbiff.1");
  copy(auto_uido,"644","/man/cat1/","qbiff.0");
  copy(auto_uido,"644","/man/man1/","preline.1");
  copy(auto_uido,"644","/man/cat1/","preline.0");
  copy(auto_uido,"644","/man/man1/","tcp-env.1");
  copy(auto_uido,"644","/man/cat1/","tcp-env.0");

  copy(auto_uido,"644","/man/man8/","qmail-local.8");
  copy(auto_uido,"644","/man/cat8/","qmail-local.0");
  copy(auto_uido,"644","/man/man8/","qmail-lspawn.8");
  copy(auto_uido,"644","/man/cat8/","qmail-lspawn.0");
  copy(auto_uido,"644","/man/man8/","qmail-getpw.8");
  copy(auto_uido,"644","/man/cat8/","qmail-getpw.0");
  copy(auto_uido,"644","/man/man8/","qmail-remote.8");
  copy(auto_uido,"644","/man/cat8/","qmail-remote.0");
  copy(auto_uido,"644","/man/man8/","qmail-rspawn.8");
  copy(auto_uido,"644","/man/cat8/","qmail-rspawn.0");
  copy(auto_uido,"644","/man/man8/","qmail-clean.8");
  copy(auto_uido,"644","/man/cat8/","qmail-clean.0");
  copy(auto_uido,"644","/man/man8/","qmail-send.8");
  copy(auto_uido,"644","/man/cat8/","qmail-send.0");
  copy(auto_uido,"644","/man/man8/","qmail-start.8");
  copy(auto_uido,"644","/man/cat8/","qmail-start.0");
  copy(auto_uido,"644","/man/man8/","splogger.8");
  copy(auto_uido,"644","/man/cat8/","splogger.0");
  copy(auto_uido,"644","/man/man8/","qmail-queue.8");
  copy(auto_uido,"644","/man/cat8/","qmail-queue.0");
  copy(auto_uido,"644","/man/man8/","qmail-inject.8");
  copy(auto_uido,"644","/man/cat8/","qmail-inject.0");
  copy(auto_uido,"644","/man/man8/","qmail-showctl.8");
  copy(auto_uido,"644","/man/cat8/","qmail-showctl.0");
  copy(auto_uido,"644","/man/man8/","qmail-newu.8");
  copy(auto_uido,"644","/man/cat8/","qmail-newu.0");
  copy(auto_uido,"644","/man/man8/","qmail-pw2u.8");
  copy(auto_uido,"644","/man/cat8/","qmail-pw2u.0");
  copy(auto_uido,"644","/man/man8/","qmail-qread.8");
  copy(auto_uido,"644","/man/cat8/","qmail-qread.0");
  copy(auto_uido,"644","/man/man8/","qmail-qstat.8");
  copy(auto_uido,"644","/man/cat8/","qmail-qstat.0");
  copy(auto_uido,"644","/man/man8/","qmail-tcpto.8");
  copy(auto_uido,"644","/man/cat8/","qmail-tcpto.0");
  copy(auto_uido,"644","/man/man8/","qmail-pop3d.8");
  copy(auto_uido,"644","/man/cat8/","qmail-pop3d.0");
  copy(auto_uido,"644","/man/man8/","qmail-popup.8");
  copy(auto_uido,"644","/man/cat8/","qmail-popup.0");
  copy(auto_uido,"644","/man/man8/","qmail-qmtpd.8");
  copy(auto_uido,"644","/man/cat8/","qmail-qmtpd.0");
  copy(auto_uido,"644","/man/man8/","qmail-smtpd.8");
  copy(auto_uido,"644","/man/cat8/","qmail-smtpd.0");
  copy(auto_uido,"644","/man/man8/","qmail-command.8");
  copy(auto_uido,"644","/man/cat8/","qmail-command.0");

  substdio_flush(subfdout);
  _exit(0);
}