19#define WHO "dnscache-conf"
23 logmsg(
WHO,100,USAGE,
"dnscache-conf acct logacct /dnscache [ myip ]");
45 for (i = 0; i < 32; ++i) {
46 u = ((
u ^
seed[i]) + 0x9e3779b9) ^ (
u << 7) ^ (
u >> 25);
56 char tpack[TAIA_PACK];
61 for (i = 0; i < TAIA_PACK; ++i)
65int main(
int argc,
char **argv)
86 logmsg(
WHO,111,FATAL,B(
"unknown account: ",
loguser));
89 logmsg(
WHO,111,FATAL,B(
"unable to switch to: ",
auto_home));
94 logmsg(
WHO,111,FATAL,
"unable to open /etc/dnsroots.local");
97 logmsg(
WHO,111,FATAL,
"unable to open /etc/dnsroots.global");
129 outs(
"#!/bin/sh\nexec 2>&1\nexec <seed\nexec envdir ./env sh -c '\n exec envuidgid ");
outs(
user);
130 outs(
" softlimit -o250 -d \"$DATALIMIT\" ");
160 start(
"root/etc/netconfig");
161 outs(
"tcp tpi_cots_ord v inet tcp /dev/tcp -\n");
162 outs(
"udp tpi_clts v inet udp /dev/udp -\n");
166 if (mknod(
"root/dev/tcp",S_IFCHR | 0667,makedev(11,42)) == -1)
167 logmsg(
WHO,111,FATAL,B(
"unable to create device ",
dir,
"/root/dev/tcp"));
168 if (mknod(
"root/dev/udp",S_IFCHR | 0667,makedev(11,41)) == -1)
169 logmsg(
WHO,111,FATAL,B(
"unable to create device ",
dir,
"/root/dev/udp"));
void seed_adduint32(uint32 u)
struct tcpclient t[QUERY_MAXTCP]
void owner(int uid, int gid)
void init(const char *d, const char *f)
void start(const char *s)
void makedir(const char *s)
void out(const char *s, unsigned int len)