- struct netdev *netdev;
-
- if (!netdev_open(agent_device, "system", &netdev)) {
- int error = netdev_get_in4(netdev, &in4, NULL);
- netdev_close(netdev);
- if (!error) {
- goto success;
- }
+ if (!netdev_get_in4_by_name(agent_device, &in4)) {
+ goto success;
+ }
+ }
+
+ SSET_FOR_EACH (target, targets) {
+ struct sockaddr_in sin;
+ char name[IFNAMSIZ];
+
+ if (inet_parse_active(target, SFL_DEFAULT_COLLECTOR_PORT, &sin)
+ && route_table_get_name(sin.sin_addr.s_addr, name)
+ && !netdev_get_in4_by_name(name, &in4)) {
+ goto success;