--- linux/net/ipv4/tcp_ipv4.c.sav Wed Mar 20 15:59:03 2002 +++ linux/net/ipv4/tcp_ipv4.c Wed Mar 20 15:59:14 2002 @@ -64,7 +64,7 @@ #include extern int sysctl_ip_dynaddr; - +extern int sysctl_ip_default_ttl; /* Check TCP sequence numbers in ICMP packets. */ #define ICMP_MIN_LENGTH 8 @@ -1072,6 +1072,7 @@ arg.n_iov = 1; arg.csumoffset = offsetof(struct tcphdr, check) / 2; + tcp_socket->sk->protinfo.af_inet.ttl = sysctl_ip_default_ttl; ip_send_reply(tcp_socket->sk, skb, &arg, sizeof rth); TCP_INC_STATS_BH(TcpOutSegs); --- linux/net/ipv4/icmp.c.sav Wed Mar 20 15:58:52 2002 +++ linux/net/ipv4/icmp.c Wed Mar 20 16:04:30 2002 @@ -139,6 +139,8 @@ { EHOSTUNREACH, 1 } /* ICMP_PREC_CUTOFF */ }; +extern int sysctl_ip_default_ttl; + /* Control parameters for ECHO replies. */ int sysctl_icmp_echo_ignore_all; int sysctl_icmp_echo_ignore_broadcasts; @@ -354,6 +356,7 @@ icmp_out_count(icmp_param->data.icmph.type); sk->protinfo.af_inet.tos = skb->nh.iph->tos; + sk->protinfo.af_inet.ttl = sysctl_ip_default_ttl; daddr = ipc.addr = rt->rt_src; ipc.opt = NULL; if (icmp_param->replyopts.optlen) { @@ -498,6 +501,7 @@ icmp_param.offset=skb_in->nh.raw - skb_in->data; icmp_out_count(icmp_param.data.icmph.type); icmp_socket->sk->protinfo.af_inet.tos = tos; + icmp_socket->sk->protinfo.af_inet.ttl = sysctl_ip_default_ttl; ipc.addr = iph->saddr; ipc.opt = &icmp_param.replyopts; if (icmp_param.replyopts.srr) {