Skip to content

Commit 30e9c00

Browse files
committed
wip: resolve
1 parent afd6e41 commit 30e9c00

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

connectd/connectd.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,8 @@ static void try_connect_one_addr(struct connecting *connect)
788788
bool use_proxy = connect->daemon->always_use_proxy;
789789
const struct wireaddr_internal *addr = &connect->addrs[connect->addrnum];
790790
struct io_conn *conn;
791+
struct addrinfo hints, *ais; //, *aii;
792+
int gai_err;
791793

792794
/* In case we fail without a connection, make destroy_io_conn happy */
793795
connect->conn = NULL;
@@ -836,7 +838,28 @@ static void try_connect_one_addr(struct connecting *connect)
836838
af = AF_INET6;
837839
break;
838840
case ADDR_TYPE_DNS:
839-
// TODO: resolve with getaddrinfo and set af
841+
/* Resolve with getaddrinfo */
842+
memset(&hints, 0, sizeof(hints));
843+
hints.ai_socktype = SOCK_STREAM;
844+
hints.ai_family = AF_UNSPEC;
845+
hints.ai_protocol = 0;
846+
hints.ai_flags = AI_ADDRCONFIG;
847+
gai_err = getaddrinfo((char *)addr->u.wireaddr.addr,
848+
tal_fmt(tmpctx, "%d",
849+
addr->u.wireaddr.port),
850+
&hints, &ais);
851+
if (gai_err != 0)
852+
status_failed(STATUS_FAIL_INTERNAL_ERROR,
853+
gai_strerror(gai_err));
854+
/*for (aii = ais; aii; aii = aii->ai_next) {
855+
if (aii->ai_family == AF_INET6 || aii->ai_family == AF_INET) {
856+
memcpy(&ai, aii, sizeof(struct addrinfo));
857+
freeaddrinfo(ais);
858+
return ai;
859+
}
860+
}
861+
freeaddrinfo(ais);*/
862+
// TODO: handle no suitable ai_family found
840863
break;
841864
}
842865
}

0 commit comments

Comments
 (0)