dns_client: avoid false re-creation of udp sockets causing retries.

This commit is contained in:
Nick Peng
2023-07-14 20:44:10 +08:00
parent 2576fdb02f
commit 89e958abfa
2 changed files with 12 additions and 2 deletions

View File

@@ -4131,7 +4131,12 @@ static void _dns_client_period_run(unsigned int msec)
{
/* free timed out query, and notify caller */
list_del_init(&query->period_list);
_dns_client_check_udp_nat(query);
/* check udp nat after retrying. */
if (atomic_read(&query->retry_count) == 1) {
_dns_client_check_udp_nat(query);
}
if (atomic_dec_and_test(&query->retry_count) || (query->has_result != 0)) {
_dns_client_query_remove(query);
if (query->has_result == 0) {

View File

@@ -460,8 +460,13 @@ static int _smartdns_init(void)
const char *logfile = _smartdns_log_path();
int i = 0;
char logdir[PATH_MAX] = {0};
int logbuffersize = 0;
ret = tlog_init(logfile, dns_conf_log_size, dns_conf_log_num, 0, 0);
if (get_system_mem_size() > 1024 * 1024 * 1024) {
logbuffersize = 1024 * 1024;
}
ret = tlog_init(logfile, dns_conf_log_size, dns_conf_log_num, logbuffersize, TLOG_NONBLOCK);
if (ret != 0) {
tlog(TLOG_ERROR, "start tlog failed.\n");
goto errout;