@ -215,7 +215,9 @@ volatile uchar *NetRxPackets[PKTBUFSRX];
/* Current RX packet handler */
static rxhand_f * packetHandler ;
# ifdef CONFIG_CMD_TFTPPUT
static rxhand_icmp_f * packet_icmp_handler ; /* Current ICMP rx handler */
# endif
/* Current timeout handler */
static thand_f * timeHandler ;
/* Time base value */
@ -576,9 +578,11 @@ restart:
}
done :
# ifdef CONFIG_CMD_TFTPPUT
/* Clear out the handlers */
NetSetHandler ( NULL ) ;
net_set_icmp_handler ( NULL ) ;
# endif
return ret ;
}
@ -653,10 +657,12 @@ NetSetHandler(rxhand_f *f)
packetHandler = f ;
}
# ifdef CONFIG_CMD_TFTPPUT
void net_set_icmp_handler ( rxhand_icmp_f * f )
{
packet_icmp_handler = f ;
}
# endif
void
NetSetTimeout ( ulong iv , thand_f * f )
@ -1397,10 +1403,12 @@ static void receive_icmp(IP_t *ip, int len, IPaddr_t src_ip, Ethernet_t *et)
break ;
# endif
default :
# ifdef CONFIG_CMD_TFTPPUT
if ( packet_icmp_handler )
packet_icmp_handler ( icmph - > type , icmph - > code ,
ntohs ( ip - > udp_dst ) , src_ip , ntohs ( ip - > udp_src ) ,
icmph - > un . data , ntohs ( ip - > udp_len ) ) ;
# endif
break ;
}
}