void perf_net_parseserver(int family, const char *name, unsigned int port, isc_sockaddr_t *addr) { isc_sockaddr_t addrs[8]; int count, i; isc_result_t result; if (port == 0) { fprintf(stderr, "server port cannot be 0\n"); perf_opt_usage(); exit(1); } count = 0; result = bind9_getaddresses(name, port, addrs, 8, &count); if (result == ISC_R_SUCCESS) { for (i = 0; i < count; i++) { if (isc_sockaddr_pf(&addrs[i]) == family || family == AF_UNSPEC) { *addr = addrs[i]; return; } } } fprintf(stderr, "invalid server address %s\n", name); perf_opt_usage(); exit(1); }
static void get_addresses(const char *host, in_port_t port) { isc_result_t result; isc_app_block(); result = bind9_getaddresses(servername, port, serveraddrs, SERVERADDRS, &nserveraddrs); isc_app_unblock(); if (result != ISC_R_SUCCESS) fatal("couldn't get address for '%s': %s", host, isc_result_totext(result)); INSIST(nserveraddrs > 0); }
static void get_addresses(const char *host, in_port_t port) { isc_result_t result; int found = 0, count; if (*host == '/') { result = isc_sockaddr_frompath(&serveraddrs[nserveraddrs], host); if (result == ISC_R_SUCCESS) nserveraddrs++; } else { count = SERVERADDRS - nserveraddrs; result = bind9_getaddresses(host, port, &serveraddrs[nserveraddrs], count, &found); nserveraddrs += found; } if (result != ISC_R_SUCCESS) fatal("couldn't get address for '%s': %s", host, isc_result_totext(result)); INSIST(nserveraddrs > 0); }
static void getaddresses(dig_lookup_t *lookup, const char *host) { isc_result_t result; isc_sockaddr_t sockaddrs[DIG_MAX_ADDRESSES]; isc_netaddr_t netaddr; int count, i; dig_server_t *srv; char tmp[ISC_NETADDR_FORMATSIZE]; result = bind9_getaddresses(host, 0, sockaddrs, DIG_MAX_ADDRESSES, &count); if (result != ISC_R_SUCCESS) fatal("couldn't get address for '%s': %s", host, isc_result_totext(result)); for (i = 0; i < count; i++) { isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]); isc_netaddr_format(&netaddr, tmp, sizeof(tmp)); srv = make_server(tmp, host); ISC_LIST_APPEND(lookup->my_server_list, srv, link); } addresscount = count; }