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.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/libglouglou/libggnet_traceroute.h b/libglouglou/libggnet_traceroute.h
index 9cd64ad..5b172a9 100644
--- a/libglouglou/libggnet_traceroute.h
+++ b/libglouglou/libggnet_traceroute.h
@@ -31,18 +31,23 @@ struct ggnet_traceroute_hop {
int asn;
};
-struct ggnet_traceroute_req {
- LIST_ENTRY(ggnet_traceroute_req) entry;
- struct ggnet_traceroute_hop *target;
- struct addr srcip;
+struct ggnet_traceroute_req_params {
enum tracemode mode;
union {
struct {
int dport;
+ int sport;
} tcp;
struct icmp {
} icmp;
- } params;
+ };
+};
+
+struct ggnet_traceroute_req {
+ LIST_ENTRY(ggnet_traceroute_req) entry;
+ struct ggnet_traceroute_hop *target;
+ struct addr srcip;
+ struct ggnet_traceroute_req_params *params;
TAILQ_HEAD(tailhead, ggnet_traceroute_hop) hops_list;
struct {
struct event *ev_recv;
@@ -74,8 +79,22 @@ struct ggnet_traceroute *
ggnet_traceroute_new(struct event_base *, char *);
void ggnet_traceroute_free(struct ggnet_traceroute *);
struct ggnet_traceroute_req *
+ ggnet_traceroute_trace_tcp(struct ggnet_traceroute *,
+ struct addr *ip, int dport,
+ void (*cb_done)(struct ggnet_traceroute_req *, void *),
+ void (*cb_hop)(struct ggnet_traceroute_req *,
+ struct ggnet_traceroute_hop *, void *),
+ void *);
+struct ggnet_traceroute_req *
+ ggnet_traceroute_trace_tcp_intrace(struct ggnet_traceroute *,
+ struct addr *ip, int dport, int sport,
+ void (*cb_done)(struct ggnet_traceroute_req *, void *),
+ void (*cb_hop)(struct ggnet_traceroute_req *,
+ struct ggnet_traceroute_hop *, void *),
+ void *);
+struct ggnet_traceroute_req *
ggnet_traceroute_trace(struct ggnet_traceroute *,
- struct addr *ip, enum tracemode,
+ struct addr *ip, struct ggnet_traceroute_req_params *,
void (*cb_done)(struct ggnet_traceroute_req *, void *),
void (*cb_hop)(struct ggnet_traceroute_req *,
struct ggnet_traceroute_hop *, void *),