From d6f9b07f1ce9462c7775cd7531db28809b010903 Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Fri, 3 Feb 2023 22:34:57 +0800 Subject: [PATCH] dns_client: use RAND_bytes instead getrandom for compatibility --- src/dns_client.c | 4 ++-- src/dns_server.c | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/dns_client.c b/src/dns_client.c index 820a153..d92afe7 100644 --- a/src/dns_client.c +++ b/src/dns_client.c @@ -42,12 +42,12 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -3524,7 +3524,7 @@ int dns_client_query(const char *domain, int qtype, dns_client_callback callback query->qtype = qtype; query->send_tick = 0; query->has_result = 0; - if (getrandom(&query->sid, sizeof(query->sid), GRND_NONBLOCK) != sizeof(query->sid)) { + if (RAND_bytes((unsigned char *)&query->sid, sizeof(query->sid)) != 1) { query->sid = random(); } query->server_group = _dns_client_get_dnsserver_group(group_name); diff --git a/src/dns_server.c b/src/dns_server.c index 4a84951..4c87744 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -387,6 +387,11 @@ static int _dns_server_is_return_soa(struct dns_request *request) unsigned int flags = 0; if (_dns_server_has_bind_flag(request, BIND_FLAG_NO_RULE_SOA) == 0) { + /* when both has no rule SOA and force AAAA soa, foce AAAA soa has high priority */ + if (request->qtype == DNS_T_AAAA && _dns_server_has_bind_flag(request, BIND_FLAG_FORCE_AAAA_SOA) == 0) { + return 1; + } + return 0; } @@ -4774,7 +4779,7 @@ static int _dns_server_tcp_recv(struct dns_server_conn_tcp_client *tcpclient) if (errno == EAGAIN) { return RECV_ERROR_AGAIN; } - + if (errno == ECONNRESET) { return RECV_ERROR_CLOSE; }