• Home
  • Raw
  • Download

Lines Matching refs:TT

114   struct payload_s *send_data4 = (struct payload_s *)(TT.packet);  in send_probe4()
115 struct icmp *send_icmp4 = (struct icmp *)(TT.packet); in send_probe4()
119 send_data4->ident = TT.ident; in send_probe4()
120 ((struct sockaddr_in *)&dest)->sin_port = TT.port + seq; in send_probe4()
124 send_icmp4->icmp_id = htons(TT.ident); in send_probe4()
127 send_icmp4->icmp_cksum = in_cksum((uint16_t *) send_icmp4, TT.msg_len); in send_probe4()
132 res = setsockopt(TT.snd_sock, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl)); in send_probe4()
135 len = TT.msg_len; in send_probe4()
136 res = sendto(TT.snd_sock, out, len, 0, (struct sockaddr *) &dest, in send_probe4()
145 struct payload_s *send_data6 = (struct payload_s *) (TT.packet); in send_probe6()
148 send_data6->ident = TT.ident; in send_probe6()
149 ((struct sockaddr_in6 *)&dest)->sin6_port = TT.port; in send_probe6()
151 if (setsockopt(TT.snd_sock, SOL_IPV6, IPV6_UNICAST_HOPS, &ttl, in send_probe6()
156 if (sendto(TT.snd_sock, out, TT.msg_len, 0, in send_probe6()
175 snprintf(ifr.ifr_name, IFNAMSIZ, "%s", TT.iface); in bind_to_interface()
177 perror_msg("can't bind to interface %s", TT.iface); in bind_to_interface()
199 int seq, fexit, ttl, tv = TT.wait_time * 1000; in do_trace()
204 pfd[0].fd = TT.recv_sock; in do_trace()
207 for (ttl = TT.first_ttl; ttl <= TT.max_ttl; ++ttl) { in do_trace()
216 for (probe = 0, seq = 0; probe < TT.ttl_probes; ++probe) { in do_trace()
220 if (!TT.istraceroute6) in do_trace()
221 if (probe && (toys.optflags & FLAG_z)) msleep(TT.pause_time); in do_trace()
223 if (!TT.istraceroute6) send_probe4(++seq, ttl); in do_trace()
248 rcv_len = recvfrom(TT.recv_sock, toybuf, sizeof(toybuf), in do_trace()
252 if (!TT.istraceroute6) { in do_trace()
274 && hudp->dest == (TT.port + seq)) in do_trace()
280 && ricmp->icmp_id == ntohs(TT.ident) in do_trace()
286 && hicmp->icmp_id == htons(TT.ident) in do_trace()
402 if ((pkt->ident == TT.ident) && (pkt->seq == seq)) in do_trace()
469 if(!TT.istraceroute6) { in do_trace()
472 || dest_reach || (fexit && fexit >= TT.ttl_probes -1)) in do_trace()
474 } else if (dest_reach || (fexit > 0 && fexit >= TT.ttl_probes -1)) break; in do_trace()
488 if (toys.optflags & FLAG_6) TT.istraceroute6 = 1; in traceroute_main()
489 else TT.istraceroute6 = toys.which->name[10] == '6'; in traceroute_main()
491 if(!TT.istraceroute6 && (toys.optflags & FLAG_g)) { in traceroute_main()
494 for (node = TT.loose_source; node; node = node->next, lsrr++) { in traceroute_main()
500 TT.gw_list[lsrr] = sin.sin_addr.s_addr; in traceroute_main()
502 } else TT.first_ttl = 1; in traceroute_main()
504 TT.msg_len = pack_size = ICMP_HD_SIZE4; //udp payload is also 8bytes in traceroute_main()
506 TT.msg_len = atolx_range(toys.optargs[1], pack_size, 32768);//max packet size in traceroute_main()
508 TT.recv_sock = xsocket((TT.istraceroute6 ? AF_INET6 : AF_INET), SOCK_RAW, in traceroute_main()
509 (TT.istraceroute6 ? IPPROTO_ICMPV6 : IPPROTO_ICMP)); in traceroute_main()
511 if (TT.istraceroute6) { in traceroute_main()
514 setsockopt(TT.recv_sock, SOL_IPV6, IPV6_RECVPKTINFO, &set, in traceroute_main()
516 setsockopt(TT.recv_sock, SOL_IPV6, IPV6_2292PKTINFO, &set, in traceroute_main()
519 setsockopt(TT.recv_sock, SOL_IPV6, IPV6_PKTINFO, &set, sizeof(set)); in traceroute_main()
522 if (setsockopt(TT.recv_sock, SOL_RAW, IPV6_CHECKSUM, &two, in traceroute_main()
526 set_flag_dr(TT.recv_sock); in traceroute_main()
528 if (!TT.istraceroute6) { in traceroute_main()
530 TT.snd_sock = xsocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); in traceroute_main()
531 else TT.snd_sock = xsocket(AF_INET, SOCK_RAW, IPPROTO_ICMP); in traceroute_main()
533 if (toys.optflags & FLAG_i) bind_to_interface(TT.snd_sock); in traceroute_main()
542 TT.gw_list[lsrr] = ((struct sockaddr_in *)&dest)->sin_addr.s_addr; in traceroute_main()
547 size = lsrr * sizeof(TT.gw_list[0]); in traceroute_main()
550 memcpy(optlist + 4, TT.gw_list, size); in traceroute_main()
552 if (setsockopt(TT.snd_sock, IPPROTO_IP, IP_OPTIONS, in traceroute_main()
553 (char *)optlist, size + sizeof(TT.gw_list[0])) < 0) in traceroute_main()
556 } else TT.snd_sock = xsocket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP); in traceroute_main()
558 if (setsockopt(TT.snd_sock, SOL_SOCKET, SO_SNDBUF, &TT.msg_len, in traceroute_main()
559 sizeof(TT.msg_len)) < 0) perror_exit("SO_SNDBUF failed "); in traceroute_main()
561 if (!TT.istraceroute6) { in traceroute_main()
563 setsockopt(TT.snd_sock, IPPROTO_IP, IP_TOS, &tyser, sizeof(tyser)) < 0) in traceroute_main()
564 perror_exit("IP_TOS %ld failed ", TT.tos); in traceroute_main()
568 (setsockopt(TT.snd_sock, IPPROTO_IP, IP_DONTFRAG, &set, in traceroute_main()
571 } else if (setsockopt(TT.snd_sock, IPPROTO_IPV6, IPV6_TCLASS, &TT.tos, in traceroute_main()
572 sizeof(TT.tos)) < 0) perror_exit("IPV6_TCLASS %ld failed ", TT.tos); in traceroute_main()
574 set_flag_dr(TT.snd_sock); in traceroute_main()
575 TT.packet = xzalloc(TT.msg_len); in traceroute_main()
576 TT.ident = getpid(); in traceroute_main()
578 if (!TT.istraceroute6) { in traceroute_main()
579 if (!(toys.optflags & FLAG_U)) TT.ident |= 0x8000; in traceroute_main()
584 if (!inet_aton(TT.src_ip, &(source.sin_addr))) in traceroute_main()
585 error_exit("bad address: %s", TT.src_ip); in traceroute_main()
586 if (setsockopt(TT.snd_sock, IPPROTO_IP, IP_MULTICAST_IF, in traceroute_main()
589 xbind(TT.snd_sock,(struct sockaddr*)&source, sizeof(struct sockaddr_in)); in traceroute_main()
592 if(TT.first_ttl > TT.max_ttl) in traceroute_main()
593 error_exit("ERROR :Range for -f is 1 to %ld (max ttl)", TT.max_ttl); in traceroute_main()
598 if (toys.optflags & FLAG_i) bind_to_interface(TT.snd_sock); in traceroute_main()
605 if(inet_pton(AF_INET6, TT.src_ip, &(source.sin6_addr)) <= 0) in traceroute_main()
606 error_exit("bad address: %s", TT.src_ip); in traceroute_main()
608 xbind(TT.snd_sock,(struct sockaddr*)&source, sizeof(struct sockaddr_in6)); in traceroute_main()
621 xbind(TT.snd_sock, (struct sockaddr*)&prb, sizeof(struct sockaddr_in6)); in traceroute_main()
622 xbind(TT.recv_sock, (struct sockaddr*)&prb, sizeof(struct sockaddr_in6)); in traceroute_main()
630 if (toys.optflags & FLAG_s) xprintf(" from %s",TT.src_ip); in traceroute_main()
631 xprintf(", %ld hops max, %u byte packets\n", TT.max_ttl, TT.msg_len); in traceroute_main()