djbdnscurve6
46
djbdnscurve6
Loading...
Searching...
No Matches
djbdnscurve6-46
src
axfrdns-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 "axfrdns-conf"
9
10
void
usage
(
void
)
11
{
12
logmsg(
WHO
,100,USAGE,
"axfrdns-conf acct logacct /axfrdns /tinydns myip"
);
13
}
14
15
char
*
dir
;
16
char
*
user
;
17
char
*
loguser
;
18
struct
passwd *
pw
;
19
char
*
myip
;
20
char
*
tinydns
;
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
tinydns
= argv[4];
32
if
(!
tinydns
)
usage
();
33
if
(
tinydns
[0] !=
'/'
)
usage
();
34
myip
= argv[5];
35
if
(!
myip
)
usage
();
36
37
pw
= getpwnam(
loguser
);
38
if
(!
pw
)
39
logmsg(
WHO
,111,FATAL,B(
"unknown account: "
,
loguser
));
40
41
init(
dir
,
WHO
);
42
makelog
(
loguser
,
pw
->pw_uid,
pw
->pw_gid);
43
44
makedir
(
"env"
);
45
perm
(02755);
46
start
(
"env/ROOT"
);
outs
(
tinydns
);
outs
(
"/root\n"
);
finish
();
47
perm
(0644);
48
start
(
"env/IP"
);
outs
(
myip
);
outs
(
"\n"
);
finish
();
49
perm
(0644);
50
51
start
(
"run"
);
52
outs
(
"#!/bin/sh\nexec 2>&1\nexec envdir ./env sh -c '\n exec envuidgid "
);
outs
(
user
);
53
outs
(
" softlimit -d300000 tcpserver -vDRHl0 -x tcp.cdb -- \"$IP\" 53 "
);
54
outs
(
auto_home
);
outs
(
"/bin/axfrdns\n'\n"
);
55
finish
();
56
perm
(0755);
57
58
start
(
"Makefile"
);
59
outs
(
"tcp.cdb: tcp\n"
);
60
outs
(
"\ttcprules tcp.cdb tcp.tmp < tcp\n"
);
61
finish
();
62
perm
(0644);
63
64
start
(
"tcp"
);
65
outs
(
"# sample line: 1.2.3.4:allow,AXFR=\"heaven.af.mil/3.2.1.in-addr.arpa\"\n"
);
66
outs
(
":deny\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
tinydns
char * tinydns
Definition
axfrdns-conf.c:20
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
usage
void usage(void)
Definition
axfrdns-conf.c:10
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
Generated on
for djbdnscurve6 by
1.14.0