--- icmp.c.sav Mon Mar 18 10:43:24 2002
+++ icmp.c Mon Mar 18 12:29:48 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) {
--- tcp_ipv4.c.sav Mon Mar 18 10:43:03 2002
+++ tcp_ipv4.c Mon Mar 18 11:54:16 2002
@@ -64,7 +64,7 @@
#include <linux/ipsec.h>
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);