diff options
Diffstat (limited to 'libglouglou/libggnet_traceroute.h')
-rw-r--r-- | libglouglou/libggnet_traceroute.h | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/libglouglou/libggnet_traceroute.h b/libglouglou/libggnet_traceroute.h index 24aea02..0c19bea 100644 --- a/libglouglou/libggnet_traceroute.h +++ b/libglouglou/libggnet_traceroute.h @@ -1,6 +1,6 @@ -#include <event2/dns.h> -#include <event2/util.h> -#include <event2/event.h> +#include <event.h> +#include <dnet.h> +#include <pcap.h> #if defined(__OpenBSD__) #include <sys/queue.h> @@ -17,7 +17,11 @@ struct ggnet_traceroute_hop { struct ggnet_traceroute_req { LIST_ENTRY(ggnet_traceroute_req) entry; - struct event *ev; + struct event *ev_recv; + struct event *ev_send; + struct addr ip; + struct addr srcip; + int hops_count; LIST_HEAD(, ggnet_traceroute_hop) hops; void (*cb_usr)(struct in_addr *, char *, void *); void *data; @@ -25,15 +29,20 @@ struct ggnet_traceroute_req { struct ggnet_traceroute { struct event_base *ev_base; + pcap_t *pcap; + ip_t *pkt_ip; + rand_t *pkt_rand; + int pcap_fd; + int pcap_dllen; /* datalink layer hdr len */ int req_pending; - LIST_HEAD(, ggnet_traceroute_req) req_list; /* XXX for now unused. remove ? */ + LIST_HEAD(, ggnet_traceroute_req) req_list; }; -struct ggnet_traceroute *ggnet_traceroute_new(struct event_base *); -void ggnet_traceroute_free(struct ggnet_dns *); -struct ggnet_traceroute_req *ggnet_traceroute_trace(struct ggnet_traceroute *ggtr, - struct in_iddr *ip, +struct ggnet_traceroute *ggnet_traceroute_new(struct event_base *, char *); +void ggnet_traceroute_free(struct ggnet_traceroute *); +struct ggnet_traceroute_req *ggnet_traceroute_trace(struct ggnet_traceroute *, + struct in_addr *ip, void (*cb_usr)(struct in_addr *, struct ggnet_traceroute_req *, void *), - void *data) + void *); void ggnet_traceroute_cancel(struct ggnet_traceroute *, struct ggnet_traceroute_req *); |