Esempio n. 1
0
GList *bu_dns_seed_addrs(void)
{
	unsigned int i;
	GList *l = NULL;

	for (i = 0; i < ARRAY_SIZE(dns_seeds); i++)
		l = bu_dns_lookup(l, dns_seeds[i], 8333);

	return l;
}
Esempio n. 2
0
void peerman_addstr(struct peer_manager *peers,
		    const char *addr_str)
{
	char hoststr[64] = {};
	char portstr[16] = {};
	char *space = strchr(addr_str, ' ');
	int port;

	if (space) {
		unsigned int hlen = (space - addr_str);
		if (hlen > (sizeof(hoststr) - 1))
			hlen = sizeof(hoststr) - 1;

		memcpy(hoststr, addr_str, hlen);
		hoststr[hlen] = 0;

		strncpy(portstr, space + 1, sizeof(portstr) - 1);
	} else {
		strncpy(hoststr, addr_str, sizeof(hoststr) - 1);
		strcpy(portstr, "8333");
	}

	port = atoi(portstr);
	if (port < 1 || port > 65535)
		port = 8333;

	clist *tmp, *seedlist = bu_dns_lookup(NULL, hoststr, port);

	if (debugging)
		fprintf(stderr, "peerman: DNS lookup '%s' returned %zu addresses\n",
			addr_str, clist_length(seedlist));

	/* import seed data into peerman */
	tmp = seedlist;
	while (tmp) {
		struct bp_address *addr = tmp->data;
		tmp = tmp->next;

		peerman_add_addr(peers, addr, true);
	}
	clist_free(seedlist);
}