Exemple #1
0
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);
}
Exemple #2
0
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);
}
Exemple #3
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);
}
Exemple #4
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;
}