Move superuser check to common.c

This commit is contained in:
Erik Ekman 2009-01-24 15:50:54 +00:00
parent 31b2958b28
commit 86ee760e8b
4 changed files with 14 additions and 9 deletions

View File

@ -82,6 +82,17 @@ int setgroups(int count, int *groups)
} }
#endif #endif
void
check_superuser(void (*usage_fn)(void))
{
if (geteuid() != 0) {
warnx("Run as root and you'll be happy.\n");
usage_fn();
/* NOTREACHED */
}
}
int int
open_dns(int localport, in_addr_t listen_ip) open_dns(int localport, in_addr_t listen_ip)
{ {

View File

@ -58,6 +58,7 @@ struct query {
int fromlen; int fromlen;
}; };
void check_superuser(void (*usage_fn)(void));
int open_dns(int, in_addr_t); int open_dns(int, in_addr_t);
void close_dns(int); void close_dns(int);

View File

@ -945,11 +945,7 @@ main(int argc, char **argv)
} }
} }
if (geteuid() != 0) { check_superuser(usage);
warnx("Run as root and you'll be happy.\n");
usage();
/* NOTREACHED */
}
argc -= optind; argc -= optind;
argv += optind; argv += optind;

View File

@ -1002,10 +1002,7 @@ main(int argc, char **argv)
argc -= optind; argc -= optind;
argv += optind; argv += optind;
if (geteuid() != 0) { check_superuser(usage);
warnx("Run as root and you'll be happy.\n");
usage();
}
if (argc != 2) if (argc != 2)
usage(); usage();