/* $OpenBSD: startup.c,v 1.3 2004/06/20 20:46:27 itojun Exp $ */ /* * Command line option parsing. */ #include "params.h" #if POP_OPTIONS #include #include #include #include #include /* version.c */ extern char popa3d_version[]; extern char popa3d_date[]; /* standalone.c */ extern int do_standalone(void); /* pop_root.c */ extern int do_pop_startup(void); extern int do_pop_session(void); #ifdef HAVE_PROGNAME extern char *__progname; #define progname __progname #else static char *progname; #endif int af = PF_UNSPEC; static void usage(void) { fprintf(stderr, "Usage: %s [-D] [-V]\n", progname); exit(1); } static void version(void) { printf("popa3d version %s (%.10s)\n", popa3d_version, popa3d_date + 7); exit(0); } int main(int argc, char **argv) { int c; int standalone = 0; #ifndef HAVE_PROGNAME if (!(progname = argv[0])) progname = POP_SERVER; #endif while ((c = getopt(argc, argv, "DV46")) != -1) { switch (c) { case 'D': standalone++; break; case '4': af = AF_INET; break; case '6': af = AF_INET6; break; case 'V': version(); default: usage(); } } if (optind != argc) usage(); if (standalone) return do_standalone(); if (do_pop_startup()) return 1; return do_pop_session(); } #endif