static bool interface_handler(const char *ifname, const struct sa *addr, void *arg) { struct agent *ag = arg; int err = 0; /* Skip loopback and link-local addresses */ if (ag->cli->param.skip_local) { if (sa_is_loopback(addr) || sa_is_linklocal(addr)) return false; } if (str_isset(ag->cli->param.ifname) && str_casecmp(ag->cli->param.ifname, ifname)) { return false; } switch (sa_af(addr)) { case AF_INET: if (!ag->cli->param.use_ipv4) return false; break; case AF_INET6: if (!ag->cli->param.use_ipv6) return false; break; } /* NOTE: on some machines an interface is listed twice. */ if (interface_find(ag, addr)) { re_printf("ignoring duplicated interface (%s %j)\n", ifname, addr); return false; } ag->interfacev[ag->interfacec++] = *addr; re_printf("interface: %s %j\n", ifname, addr); if (ag->cli->param.use_udp) err |= add_candidate(ag, addr, IPPROTO_UDP, 0, ifname); if (ag->cli->param.use_tcp) { err |= add_candidate(ag, addr, IPPROTO_TCP, ICE_TCP_SO, ifname); err |= add_candidate(ag, addr, IPPROTO_TCP, ag->client ? ICE_TCP_ACTIVE : ICE_TCP_PASSIVE, ifname); } return err != 0; }
void AirspaceRoute::add_nearby_airspace(const RouteAirspaceIntersection &inx, const RouteLink &e) { const SearchPointVector& fat = inx.first->get_clearance(); const ClearingPair p = get_pairs(fat, e.first, e.second); const ClearingPair pb = get_backup_pairs(fat, e.first, inx.second); // process all options add_candidate(RouteLinkBase(e.first, p.first)); add_candidate(RouteLinkBase(e.first, p.second)); add_candidate(RouteLinkBase(e.first, pb.first)); add_candidate(RouteLinkBase(e.first, pb.second)); }
bool AirspaceRoute::check_secondary(const RouteLink &e) { if (!rpolars_route.airspace_enabled()) return true; // trivial m_inx = first_intersecting(e); if (m_inx.first!=NULL) { add_candidate(e); return false; }; return true; }
/* DDS3.2.20: Add Preference */ void add_preference(void) { struct cursor cursor; /* SIPL 2011-06-28 No longer needed because of new translate function. const struct ballot_contents *ballot; unsigned int num_candidates; */ unsigned int dbci; const struct rotation *rotation; bool candidate_found; rotation = get_current_rotation(); cursor = get_cursor_position(); /* If cursor is on a group heading, then ignore selection */ if (cursor.screen_candidate_index >= 0) { /* SIPL 2011-06-28 No longer needed because of new translate function. ballot = get_ballot_contents(); num_candidates = ballot->num_candidates[cursor.group_index]; */ /* SIPL 2011-06-28 Use updated translate function. */ dbci = translate_group_sci_to_dbci(cursor.group_index, cursor.screen_candidate_index, rotation); /* Check if this candidate has already been added to the Vote in Progress */ candidate_found = search_vip(cursor.group_index, dbci); if (!candidate_found) { add_candidate(cursor.group_index, dbci); /* Interrupt audio */ draw_group_entry(cursor, YES, true); } } }