diff --git a/src/interface.c b/src/interface.c index 4d0c1f8..55218fa 100644 --- a/src/interface.c +++ b/src/interface.c @@ -304,7 +304,7 @@ ipx_interface_t *copy_ipx_interface(const ipx_interface_t *src) *dest = *src; dest->ipaddr = NULL; - dest->prev = NULL; + dest->prev = dest; dest->next = NULL; ipx_interface_ip_t *ip; diff --git a/src/router.c b/src/router.c index 21b5be2..ddc7579 100644 --- a/src/router.c +++ b/src/router.c @@ -401,7 +401,7 @@ static void _handle_udp_recv(ipx_packet *packet, size_t packet_size, struct sock } else{ allow_interfaces = ipx_interface_by_addr( - addr32_in(packet->dest_net), addr32_in(packet->dest_node)); + addr32_in(packet->dest_net), addr48_in(packet->dest_node)); } ipx_interface_t *i; @@ -421,6 +421,7 @@ static void _handle_udp_recv(ipx_packet *packet, size_t packet_size, struct sock if(!source_ok) { + log_printf(LOG_DEBUG, "Packet did not come from an expected subnet, dropping"); return; }