cname: fix cname recursive query issue
This commit is contained in:
11
src/Makefile
11
src/Makefile
@@ -20,7 +20,12 @@ OBJS=smartdns.o fast_ping.o dns_client.o dns_server.o dns.o util.o tlog.o dns_co
|
|||||||
|
|
||||||
# cflags
|
# cflags
|
||||||
ifndef CFLAGS
|
ifndef CFLAGS
|
||||||
CFLAGS =-g -Wall -Wstrict-prototypes -fno-omit-frame-pointer -Wstrict-aliasing -funwind-tables -Wmissing-prototypes -Wshadow -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough
|
ifdef DEBUG
|
||||||
|
CFLAGS = -g
|
||||||
|
else
|
||||||
|
CFLAGS = -O2 -g
|
||||||
|
endif
|
||||||
|
CFLAGS +=-Wall -Wstrict-prototypes -fno-omit-frame-pointer -Wstrict-aliasing -funwind-tables -Wmissing-prototypes -Wshadow -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough
|
||||||
endif
|
endif
|
||||||
override CFLAGS +=-Iinclude
|
override CFLAGS +=-Iinclude
|
||||||
override CFLAGS += -DBASE_FILE_NAME='"$(notdir $<)"'
|
override CFLAGS += -DBASE_FILE_NAME='"$(notdir $<)"'
|
||||||
@@ -34,9 +39,9 @@ override CXXFLAGS +=-Iinclude
|
|||||||
|
|
||||||
# ldflags
|
# ldflags
|
||||||
ifeq ($(STATIC), yes)
|
ifeq ($(STATIC), yes)
|
||||||
override LDFLAGS += -lssl -lcrypto -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -ldl -static
|
override LDFLAGS += -lssl -lcrypto -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -ldl -static
|
||||||
else
|
else
|
||||||
override LDFLAGS += -lssl -lcrypto -lpthread -ldl
|
override LDFLAGS += -lssl -lcrypto -lpthread -ldl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: all clean
|
||||||
|
|||||||
@@ -1588,6 +1588,7 @@ static int _dns_result_child_post(struct dns_server_post_context *context)
|
|||||||
parent_context.reply_ttl = context->reply_ttl;
|
parent_context.reply_ttl = context->reply_ttl;
|
||||||
parent_context.skip_notify_count = context->skip_notify_count;
|
parent_context.skip_notify_count = context->skip_notify_count;
|
||||||
parent_context.select_all_best_ip = 1;
|
parent_context.select_all_best_ip = 1;
|
||||||
|
parent_context.no_release_parent = context->no_release_parent;
|
||||||
|
|
||||||
_dns_request_post(&parent_context);
|
_dns_request_post(&parent_context);
|
||||||
ret = _dns_server_reply_all_pending_list(parent_request, &parent_context);
|
ret = _dns_server_reply_all_pending_list(parent_request, &parent_context);
|
||||||
@@ -1721,13 +1722,13 @@ static int _dns_server_reply_all_pending_list(struct dns_request *request, struc
|
|||||||
struct dns_server_post_context context_pending;
|
struct dns_server_post_context context_pending;
|
||||||
_dns_server_post_context_init_from(&context_pending, req, context->packet, context->inpacket,
|
_dns_server_post_context_init_from(&context_pending, req, context->packet, context->inpacket,
|
||||||
context->inpacket_len);
|
context->inpacket_len);
|
||||||
_dns_server_get_answer(&context_pending);
|
|
||||||
req->dualstack_selection = request->dualstack_selection;
|
req->dualstack_selection = request->dualstack_selection;
|
||||||
req->dualstack_selection_query = request->dualstack_selection_query;
|
req->dualstack_selection_query = request->dualstack_selection_query;
|
||||||
req->dualstack_selection_force_soa = request->dualstack_selection_force_soa;
|
req->dualstack_selection_force_soa = request->dualstack_selection_force_soa;
|
||||||
req->dualstack_selection_has_ip = request->dualstack_selection_has_ip;
|
req->dualstack_selection_has_ip = request->dualstack_selection_has_ip;
|
||||||
req->dualstack_selection_ping_time = request->dualstack_selection_ping_time;
|
req->dualstack_selection_ping_time = request->dualstack_selection_ping_time;
|
||||||
req->ping_time = request->ping_time;
|
req->ping_time = request->ping_time;
|
||||||
|
_dns_server_get_answer(&context_pending);
|
||||||
|
|
||||||
context_pending.do_cache = 0;
|
context_pending.do_cache = 0;
|
||||||
context_pending.do_audit = context->do_audit;
|
context_pending.do_audit = context->do_audit;
|
||||||
@@ -1735,6 +1736,7 @@ static int _dns_server_reply_all_pending_list(struct dns_request *request, struc
|
|||||||
context_pending.do_force_soa = context->do_force_soa;
|
context_pending.do_force_soa = context->do_force_soa;
|
||||||
context_pending.do_ipset = 0;
|
context_pending.do_ipset = 0;
|
||||||
context_pending.reply_ttl = request->ip_ttl;
|
context_pending.reply_ttl = request->ip_ttl;
|
||||||
|
context_pending.no_release_parent = context->no_release_parent;
|
||||||
_dns_server_reply_passthrough(&context_pending);
|
_dns_server_reply_passthrough(&context_pending);
|
||||||
|
|
||||||
req->request_pending_list = NULL;
|
req->request_pending_list = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user