Honor the TTL.
[icmp-dn.git] / idnlookup.c
index 27b26fd..d47b7de 100644 (file)
@@ -136,14 +136,19 @@ int main(int argc, char **argv)
     struct pollfd pfd;
     struct timeval tvb, tvc;
     struct sockaddr_storage name;
-    int timeout, elapsed;
+    int timeout, dispttl;
+    int elapsed;
     
     timeout = 3000;
-    while((c = getopt(argc, argv, "ht:")) != -1) {
+    dispttl = 0;
+    while((c = getopt(argc, argv, "hTt:")) != -1) {
        switch(c) {
        case 't':
            timeout = atoi(optarg);
            break;
+       case 'T':
+           dispttl = 1;
+           break;
        case 'h':
        case '?':
        case ':':
@@ -191,7 +196,7 @@ int main(int argc, char **argv)
            pfd.events = POLLIN;
            gettimeofday(&tvc, NULL);
            elapsed = ((tvc.tv_sec - tvb.tv_sec) * 1000) + ((tvc.tv_usec - tvb.tv_usec) / 1000);
-           if(elapsed > timeout) {
+           if(elapsed >= timeout) {
                fprintf(stderr, "idnlookup: timeout\n");
                exit(1);
            }
@@ -236,6 +241,8 @@ int main(int argc, char **argv)
            }
        }
        
+       if(dispttl)
+           printf("%i\n", ntohl(rep.ttl));
        printdn(stdout, buf + sizeof(iphdr) + sizeof(rep), ret - sizeof(iphdr) - sizeof(rep));
        
        close(s);