diff options
Diffstat (limited to 'glougloud/glougloud.c')
-rw-r--r-- | glougloud/glougloud.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/glougloud/glougloud.c b/glougloud/glougloud.c new file mode 100644 index 0000000..45fca17 --- /dev/null +++ b/glougloud/glougloud.c @@ -0,0 +1,74 @@ +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/wait.h> +#include <sys/ioctl.h> + +#include <net/if.h> +#include <netinet/in.h> + +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <err.h> +#include <errno.h> +#include <unistd.h> +#include <signal.h> +#include <string.h> + +#include <libglouglou.h> + +struct gg_server *ggserv_probes; +struct gg_server *ggserv_clients; +struct event_base *ev_base; + +#if defined(__OPENBSD__) +void __dead +#else +void +#endif +usage(void) +{ + extern char *__progname; + + fprintf(stderr, "usage: %s [-vi]", + __progname); + exit(1); +} + +static void +sig_handler(int sig, short why, void *data) +{ + //log_info("got signal %d", sig); + if (sig == SIGINT || sig == SIGTERM) + event_base_loopexit(ev_base, NULL); +} + +int +main(int argc, char **argv) +{ + int loglevel = 0; + int op; + + while ((op = getopt(argc, argv, "hv")) != -1) { + switch (op) { + case 'h': + usage(); + /* NOTREACHED */ + case 'v': + loglevel++; + break; + default: + usage(); + /* NOTREACHED */ + } + } + + ev_base = event_base_new(); + + ggserv_probes = gg_server_start(ev_base, "127.0.0.1", 4430, NULL, NULL, NULL); + ggserv_clients = gg_server_start(ev_base, "127.0.0.1", 4431, NULL, NULL, NULL); + + event_base_dispatch(ev_base); + + return 0; +} |