Skip to content

Commit 887635f

Browse files
committed
fixup! DNS server refactor
1 parent f10d561 commit 887635f

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/dns_server.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@ static int get_listen_sock(struct addrinfo *listen_addrinfo) {
1616
FLOG("Error creating socket: %s (%d)", strerror(errno), errno);
1717
}
1818

19+
uint16_t port;
1920
char ipstr[INET6_ADDRSTRLEN];
2021
if (listen_addrinfo->ai_family == AF_INET) {
21-
inet_ntop(AF_INET, &((struct sockaddr_in *)listen_addrinfo->ai_addr)->sin_addr, ipstr, sizeof(ipstr));
22+
port = ntohs(((struct sockaddr_in*) listen_addrinfo->ai_addr)->sin_port);
23+
inet_ntop(AF_INET, &((struct sockaddr_in *)listen_addrinfo->ai_addr)->sin_addr, ipstr, sizeof(ipstr));
2224
} else if (listen_addrinfo->ai_family == AF_INET6) {
23-
inet_ntop(AF_INET6, &((struct sockaddr_in6 *)listen_addrinfo->ai_addr)->sin6_addr, ipstr, sizeof(ipstr));
25+
port = ntohs(((struct sockaddr_in6*) listen_addrinfo->ai_addr)->sin6_port);
26+
inet_ntop(AF_INET6, &((struct sockaddr_in6 *)listen_addrinfo->ai_addr)->sin6_addr, ipstr, sizeof(ipstr));
2427
} else {
2528
FLOG("Unknown address family: %d", listen_addrinfo->ai_family);
2629
}
2730

28-
uint16_t port = ntohs(((struct sockaddr_in*) listen_addrinfo->ai_addr)->sin_port);
29-
3031
int res = bind(sock, listen_addrinfo->ai_addr, listen_addrinfo->ai_addrlen);
3132
if (res < 0) {
3233
FLOG("Error binding on %s:%d UDP: %s (%d)", ipstr, port,

src/main.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,12 @@ int main(int argc, char *argv[]) {
354354
https_client_init(&https_client, &opt, (opt.stats_interval ? &stat : NULL), loop);
355355

356356
struct addrinfo *listen_addrinfo = get_listen_address(opt.listen_addr);
357-
((struct sockaddr_in*) listen_addrinfo->ai_addr)->sin_port = htons((uint16_t)opt.listen_port);
357+
358+
if (listen_addrinfo->ai_family == AF_INET) {
359+
((struct sockaddr_in*) listen_addrinfo->ai_addr)->sin_port = htons((uint16_t)opt.listen_port);
360+
} else if (listen_addrinfo->ai_family == AF_INET6) {
361+
((struct sockaddr_in6*) listen_addrinfo->ai_addr)->sin6_port = htons((uint16_t)opt.listen_port);
362+
}
358363

359364
app_state_t app;
360365
app.https_client = &https_client;

0 commit comments

Comments
 (0)