static void address_print(FILE *file, void *data) { ip_address_t *ipaddr = data; char broadcast[INET_ADDRSTRLEN + 5] = ""; /* allow for " brd " */ char addr_str[INET6_ADDRSTRLEN] = ""; if (IP_IS6(ipaddr)) { inet_ntop(AF_INET6, &ipaddr->u.sin6_addr, addr_str, sizeof(addr_str)); } else { inet_ntop(AF_INET, &ipaddr->u.sin.sin_addr, addr_str, sizeof(addr_str)); if (ipaddr->u.sin.sin_brd.s_addr) snprintf(broadcast, sizeof(broadcast) - 1, " brd %s", inet_ntop2(ipaddr->u.sin.sin_brd.s_addr)); } fprintf(file, " %s/%d%s dev %s%s%s%s%s\n" , addr_str , ipaddr->ifa.ifa_prefixlen , broadcast , IF_NAME(ipaddr->ifp) , IP_IS4(ipaddr) ? " scope " : "" , IP_IS4(ipaddr) ? get_rttables_scope(ipaddr->ifa.ifa_scope) : "" , ipaddr->label ? " label " : "" , ipaddr->label ? ipaddr->label : ""); }
void dump_ipaddress(void *if_data) { ip_address_t *ipaddr = if_data; char broadcast[INET_ADDRSTRLEN + 5] = ""; if (!IP_IS6(ipaddr) && ipaddr->u.sin.sin_brd.s_addr) { snprintf(broadcast, 21, " brd %s", inet_ntop2(ipaddr->u.sin.sin_brd.s_addr)); } log_message(LOG_INFO, " %s/%d%s dev %s scope %s%s%s" , ipaddresstos(NULL, ipaddr) , ipaddr->ifa.ifa_prefixlen , broadcast , IF_NAME(ipaddr->ifp) , get_rttables_scope(ipaddr->ifa.ifa_scope) , ipaddr->label ? " label " : "" , ipaddr->label ? ipaddr->label : ""); }