Set TTL on outbound ICMP echo reply packets to make Windows tracert work
This commit is contained in:
parent
245558fd56
commit
d407fe2e9f
1 changed files with 7 additions and 6 deletions
|
@ -41,7 +41,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the uIP TCP/IP stack.
|
* This file is part of the uIP TCP/IP stack.
|
||||||
*
|
*
|
||||||
* $Id: uip.c,v 1.10 2008/01/24 23:08:58 adamdunkels Exp $
|
* $Id: uip.c,v 1.11 2008/02/07 01:34:25 adamdunkels Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ const uip_ipaddr_t uip_broadcast_addr =
|
||||||
#else /* UIP_CONF_IPV6 */
|
#else /* UIP_CONF_IPV6 */
|
||||||
{ { 0xff, 0xff, 0xff, 0xff } };
|
{ { 0xff, 0xff, 0xff, 0xff } };
|
||||||
#endif /* UIP_CONF_IPV6 */
|
#endif /* UIP_CONF_IPV6 */
|
||||||
const uip_ipaddr_t all_zeroes_addr = { { 0x0, /* rest is 0 */ } };
|
const uip_ipaddr_t uip_all_zeroes_addr = { { 0x0, /* rest is 0 */ } };
|
||||||
|
|
||||||
#if UIP_FIXEDETHADDR
|
#if UIP_FIXEDETHADDR
|
||||||
const struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,
|
const struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,
|
||||||
|
@ -877,7 +877,7 @@ uip_process(u8_t flag)
|
||||||
}
|
}
|
||||||
#endif /* UIP_CONF_IPV6 */
|
#endif /* UIP_CONF_IPV6 */
|
||||||
|
|
||||||
if(uip_ipaddr_cmp(&uip_hostaddr, &all_zeroes_addr)) {
|
if(uip_ipaddr_cmp(&uip_hostaddr, &uip_all_zeroes_addr)) {
|
||||||
/* If we are configured to use ping IP address configuration and
|
/* If we are configured to use ping IP address configuration and
|
||||||
hasn't been assigned an IP address yet, we accept all ICMP
|
hasn't been assigned an IP address yet, we accept all ICMP
|
||||||
packets. */
|
packets. */
|
||||||
|
@ -975,7 +975,7 @@ uip_process(u8_t flag)
|
||||||
the destination IP address of this ping packet and assign it to
|
the destination IP address of this ping packet and assign it to
|
||||||
ourself. */
|
ourself. */
|
||||||
#if UIP_PINGADDRCONF
|
#if UIP_PINGADDRCONF
|
||||||
if(uip_ipaddr_cmp(&uip_hostaddr, &all_zeroes_addr)) {
|
if(uip_ipaddr_cmp(&uip_hostaddr, &uip_all_zeroes_addr)) {
|
||||||
uip_hostaddr = BUF->destipaddr;
|
uip_hostaddr = BUF->destipaddr;
|
||||||
}
|
}
|
||||||
#endif /* UIP_PINGADDRCONF */
|
#endif /* UIP_PINGADDRCONF */
|
||||||
|
@ -993,7 +993,8 @@ uip_process(u8_t flag)
|
||||||
uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
|
uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
|
||||||
|
|
||||||
UIP_STAT(++uip_stat.icmp.sent);
|
UIP_STAT(++uip_stat.icmp.sent);
|
||||||
goto send;
|
BUF->ttl = UIP_TTL;
|
||||||
|
goto ip_send_nolen;
|
||||||
|
|
||||||
/* End of IPv4 input header processing code. */
|
/* End of IPv4 input header processing code. */
|
||||||
#else /* !UIP_CONF_IPV6 */
|
#else /* !UIP_CONF_IPV6 */
|
||||||
|
@ -1100,7 +1101,7 @@ uip_process(u8_t flag)
|
||||||
UDPBUF->destport == uip_udp_conn->lport &&
|
UDPBUF->destport == uip_udp_conn->lport &&
|
||||||
(uip_udp_conn->rport == 0 ||
|
(uip_udp_conn->rport == 0 ||
|
||||||
UDPBUF->srcport == uip_udp_conn->rport) &&
|
UDPBUF->srcport == uip_udp_conn->rport) &&
|
||||||
(uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &all_zeroes_addr) ||
|
(uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &uip_all_zeroes_addr) ||
|
||||||
uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &uip_broadcast_addr) ||
|
uip_ipaddr_cmp(&uip_udp_conn->ripaddr, &uip_broadcast_addr) ||
|
||||||
uip_ipaddr_cmp(&BUF->srcipaddr, &uip_udp_conn->ripaddr))) {
|
uip_ipaddr_cmp(&BUF->srcipaddr, &uip_udp_conn->ripaddr))) {
|
||||||
goto udp_found;
|
goto udp_found;
|
||||||
|
|
Loading…
Reference in a new issue