if (service->type == type)
break;
- if (!service || !service->basename || !(context = narrow_context(context, mess->ciaddr, tagif_netid)))
- return 0;
+ for (; context; context = context->current)
+ if (match_netid(context->filter, tagif_netid, 1) &&
+ is_same_net(mess->ciaddr, context->start, context->netmask))
+ break;
+ if (!service || !service->basename || !context)
+ return 0;
+
clear_packet(mess, end);
mess->yiaddr = mess->ciaddr;