djbdnscurve6
46
djbdnscurve6
Loading...
Searching...
No Matches
djbdnscurve6-46
src
rbldns-conf.c
Go to the documentation of this file.
1
#include <unistd.h>
2
#include <pwd.h>
3
#include "logmsg.h"
4
#include "exit.h"
5
#include "
auto_home.h
"
6
#include "
generic-conf.h
"
7
8
#define WHO "rbldns-conf"
9
10
void
usage
(
void
)
11
{
12
logmsg(
WHO
,100,USAGE,
"rbldns-conf acct logacct /rbldns myip base"
);
13
}
14
15
char
*
dir
;
16
char
*
user
;
17
char
*
loguser
;
18
struct
passwd *
pw
;
19
char
*
myip
;
20
char
*
base
;
21
22
int
main
(
int
argc,
char
**argv)
23
{
24
user
= argv[1];
25
if
(!
user
)
usage
();
26
loguser
= argv[2];
27
if
(!
loguser
)
usage
();
28
dir
= argv[3];
29
if
(!
dir
)
usage
();
30
if
(
dir
[0] !=
'/'
)
usage
();
31
myip
= argv[4];
32
if
(!
myip
)
usage
();
33
base
= argv[5];
34
if
(!
base
)
usage
();
35
36
pw
= getpwnam(
loguser
);
37
if
(!
pw
)
38
logmsg(
WHO
,111,FATAL,B(
"unknown account: "
,
loguser
));
39
40
init(
dir
,
WHO
);
41
makelog
(
loguser
,
pw
->pw_uid,
pw
->pw_gid);
42
43
makedir
(
"env"
);
44
perm
(02755);
45
start
(
"env/ROOT"
);
outs
(
dir
);
outs
(
"/root\n"
);
finish
();
46
perm
(0644);
47
start
(
"env/IP"
);
outs
(
myip
);
outs
(
"\n"
);
finish
();
48
perm
(0644);
49
start
(
"env/BASE"
);
outs
(
base
);
outs
(
"\n"
);
finish
();
50
perm
(0644);
51
52
start
(
"run"
);
53
outs
(
"#!/bin/sh\nexec 2>&1\nexec envuidgid "
);
outs
(
user
);
54
outs
(
" envdir ./env softlimit -d2500000 "
);
// 2.500 kbyte memory
55
outs
(
auto_home
);
outs
(
"/bin/rbldns\n"
);
56
finish
();
57
perm
(0755);
58
59
makedir
(
"root"
);
60
perm
(02755);
61
start
(
"root/data"
);
62
finish
();
63
perm
(0644);
64
start
(
"root/Makefile"
);
65
outs
(
"data.cdb: data\n"
);
66
outs
(
"\t"
);
outs
(
auto_home
);
outs
(
"/bin/rbldns-data\n"
);
67
finish
();
68
perm
(0644);
69
70
_exit(0);
71
}
auto_home.h
auto_home
const char auto_home[]
WHO
#define WHO
Definition
axfr-get.c:16
user
char * user
Definition
axfrdns-conf.c:16
myip
char * myip
Definition
axfrdns-conf.c:19
dir
char * dir
Definition
axfrdns-conf.c:15
pw
struct passwd * pw
Definition
axfrdns-conf.c:18
loguser
char * loguser
Definition
axfrdns-conf.c:17
main
int main()
Definition
axfrdns.c:323
outs
void outs(const char *s)
Definition
generic-conf.c:49
start
void start(const char *s)
Definition
generic-conf.c:41
makedir
void makedir(const char *s)
Definition
generic-conf.c:35
perm
void perm(int mode)
Definition
generic-conf.c:71
finish
void finish(void)
Definition
generic-conf.c:64
makelog
void makelog(const char *user, int uid, int gid)
Definition
generic-conf.c:81
generic-conf.h
base
char * base
Definition
rbldns-conf.c:20
usage
void usage(void)
Definition
rbldns-conf.c:10
Generated on
for djbdnscurve6 by
1.14.0