summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--astraceroute.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/astraceroute.c b/astraceroute.c
index ddf352b..45b4550 100644
--- a/astraceroute.c
+++ b/astraceroute.c
@@ -49,7 +49,8 @@
struct ctx {
char *host, *port, *dev, *payload;
- int init_ttl, max_ttl, dns_resolv, queries, timeout, totlen, rcvlen;
+ size_t totlen, rcvlen;
+ int init_ttl, max_ttl, dns_resolv, queries, timeout;
int syn, ack, ecn, fin, psh, rst, urg, tos, nofrag, proto, show;
int sd_len, dport, latitude;
};
@@ -60,7 +61,7 @@ struct proto_ops {
const struct sockaddr *src);
const struct sock_filter *filter;
unsigned int flen;
- unsigned int min_len_tcp, min_len_icmp;
+ size_t min_len_tcp, min_len_icmp;
int (*check)(uint8_t *packet, size_t len, int ttl, int id,
const struct sockaddr *src);
void (*handler)(uint8_t *packet, size_t len, int dns_resolv,
@@ -566,7 +567,7 @@ static void show_trace_info(struct ctx *ctx, const struct sockaddr_storage *ss,
getnameinfo((struct sockaddr *) ss, sizeof(*ss),
hbuffs, sizeof(hbuffs), NULL, 0, NI_NUMERICHOST);
- printf("AS path IPv%d TCP trace from %s to %s:%s (%s) with len %d "
+ printf("AS path IPv%d TCP trace from %s to %s:%s (%s) with len %zu "
"Bytes, %u max hops\n", ctx->proto == IPPROTO_IP ? 4 : 6,
hbuffs, hbuffd, ctx->port, ctx->host, ctx->totlen, ctx->max_ttl);
@@ -1021,8 +1022,8 @@ int main(int argc, char **argv)
ctx.payload = xstrdup(optarg);
break;
case 'l':
- ctx.totlen = atoi(optarg);
- if (ctx.totlen <= 0)
+ ctx.totlen = strtoul(optarg, NULL, 10);
+ if (ctx.totlen == 0)
help();
break;
case '?':