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; }
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); }