aboutsummaryrefslogtreecommitdiffstats
path: root/libglouglou/libggnet_traceroute.h
diff options
context:
space:
mode:
Diffstat (limited to 'libglouglou/libggnet_traceroute.h')
-rw-r--r--libglouglou/libggnet_traceroute.h29
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 *);