diff options
author | Laurent Ghigonis <laurent@p1sec.com> | 2012-12-04 13:17:32 +0100 |
---|---|---|
committer | Laurent Ghigonis <laurent@p1sec.com> | 2012-12-04 13:17:32 +0100 |
commit | 7165b548cd57f4d628789f6f9097eb5f43d3ceec (patch) | |
tree | c0e95c44dd09feb7966734ae59a5490843dd8d67 /gg_sniff/gg_sniff.c | |
parent | fix ggnet_conn_find() prototype (diff) | |
download | glouglou-7165b548cd57f4d628789f6f9097eb5f43d3ceec.tar.xz glouglou-7165b548cd57f4d628789f6f9097eb5f43d3ceec.zip |
work on gg_sniff, now it compiles
Diffstat (limited to 'gg_sniff/gg_sniff.c')
-rw-r--r-- | gg_sniff/gg_sniff.c | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/gg_sniff/gg_sniff.c b/gg_sniff/gg_sniff.c index c07a1f4..7b8c08d 100644 --- a/gg_sniff/gg_sniff.c +++ b/gg_sniff/gg_sniff.c @@ -26,6 +26,7 @@ #endif #define GG_SNIFF_USER "_gg_sniff" +#define GG_SNIFF_LOGFILE "/var/log/ggsniff.log" #if defined(__OpenBSD__) void __dead @@ -43,7 +44,7 @@ usage(void) static void sig_handler(int sig, short why, void *data) { - log_info("got signal %d", sig); + gg_log_info("got signal %d", sig); if (sig == SIGINT || sig == SIGTERM) event_loopexit(NULL); } @@ -52,10 +53,14 @@ int main(int argc, char **argv) { struct event_base *ev_base; - struct ggnet *net; + struct gg_client *ggcli = NULL; + struct ggnet *net = NULL; struct event ev_sigint, ev_sigterm, ev_sigchld, ev_sighup; + char ggserv_ip[30] = "127.0.0.1"; + char iface[30] = "lo"; + int ggserv_port = GLOUGLOU_PROBE_DEFAULT_PORT; int pcap_init = 0; - int sniff_init = 0; + int dns_init = 0; int loglevel = 0; int op; @@ -75,6 +80,15 @@ main(int argc, char **argv) /* NOTREACHED */ } } + switch (argc) { + case 3: ggserv_port = atoi(argv[3]); + case 2: strncpy(ggserv_ip, argv[2], sizeof(ggserv_ip)); + case 1: strncpy(iface, argv[1], sizeof(iface)); + break; + default: + usage(); + /* NOTREACHED */ + } gg_log_init(GG_SNIFF_LOGFILE, loglevel); @@ -83,14 +97,14 @@ main(int argc, char **argv) net = ggnet_new(); if (!net) goto quit; - ggcli = gg_client_connect(); + ggcli = gg_client_connect(ev_base, ggserv_ip, ggserv_port, NULL, NULL, NULL); if (!ggcli) goto quit; - pcap_init = ggsniff_pcap_init(ev_base); + pcap_init = ggsniff_pcap_init(ev_base, ggcli, net, iface); if (!pcap_init) goto quit; - sniff_init = ggsniff_dns_init(ev_base); - if (!sniff_init) + dns_init = ggsniff_dns_init(ev_base); + if (!dns_init) goto quit; signal_set(&ev_sigint, SIGINT, sig_handler, NULL); @@ -105,20 +119,20 @@ main(int argc, char **argv) droppriv(GG_SNIFF_USER, 1, NULL); - log_info("entering event loop"); + gg_log_info("entering event loop"); event_base_dispatch(ev_base); quit: if (dns_init) ggsniff_dns_shutdown(); - if (sniff_init) + if (pcap_init) ggsniff_pcap_shutdown(); if (ggcli) gg_client_disconnect(ggcli); if (net) ggnet_free(net); - log_info("exiting"); + gg_log_info("exiting"); gg_log_shutdown(); |