- for (i = flx_interface_monitor_get_first(s->monitor); i; i = i->interface_next)
- flx_interface_post_query(i, protocol, k);
+void flx_server_post_response(flxServer *s, gint interface, guchar protocol, flxRecord *record) {
+ g_assert(s);
+ g_assert(record);
+
+ if (interface > 0) {
+ if (protocol != AF_UNSPEC) {
+ flxInterface *i;
+
+ if ((i = flx_interface_monitor_get_interface(s->monitor, interface, protocol)))
+ flx_interface_post_response(i, record);
+ } else {
+ flxHwInterface *hw;
+ flxInterface *i;
+
+ if ((hw = flx_interface_monitor_get_hw_interface(s->monitor, interface)))
+ for (i = hw->interfaces; i; i = i->by_hardware_next)
+ if (flx_interface_match(i, interface, protocol))
+ flx_interface_post_response(i, record);
+ }