patch-2.4.19 linux-2.4.19/net/ipv4/icmp.c
Next file: linux-2.4.19/net/ipv4/ip_gre.c
Previous file: linux-2.4.19/net/ipv4/fib_semantics.c
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
Fri Aug 2 17:39:46 2002
- Orig file:
linux-2.4.18/net/ipv4/icmp.c
- Orig date:
Mon Feb 25 11:38:14 2002
diff -urN linux-2.4.18/net/ipv4/icmp.c linux-2.4.19/net/ipv4/icmp.c
@@ -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) {
@@ -876,7 +880,7 @@
int icmp_rcv(struct sk_buff *skb)
{
- struct icmphdr *icmph = skb->h.icmph;
+ struct icmphdr *icmph;
struct rtable *rt = (struct rtable*)skb->dst;
ICMP_INC_STATS_BH(IcmpInMsgs);
@@ -895,6 +899,8 @@
if (!pskb_pull(skb, sizeof(struct icmphdr)))
goto error;
+ icmph = skb->h.icmph;
+
/*
* 18 is the highest 'known' ICMP type. Anything else is a mystery
*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)