diff --git a/src/netif/ethernet.c b/src/netif/ethernet.c index b84fcdc7..73a5a4e8 100644 --- a/src/netif/ethernet.c +++ b/src/netif/ethernet.c @@ -209,16 +209,14 @@ ethernet_input(struct pbuf *p, struct netif *netif) default: #ifdef LWIP_HOOK_UNKNOWN_ETH_PROTOCOL - if(LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(p, netif) != ERR_OK) { -#endif - ETHARP_STATS_INC(etharp.proterr); - ETHARP_STATS_INC(etharp.drop); - MIB2_STATS_NETIF_INC(netif, ifinunknownprotos); - goto free_and_return; -#ifdef LWIP_HOOK_UNKNOWN_ETH_PROTOCOL + if(LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(p, netif) == ERR_OK) { + break; } - break; #endif + ETHARP_STATS_INC(etharp.proterr); + ETHARP_STATS_INC(etharp.drop); + MIB2_STATS_NETIF_INC(netif, ifinunknownprotos); + goto free_and_return; } /* This means the pbuf is freed or consumed,