conf: add option resolv-hostname to skip resolve local hostname
This commit is contained in:
@@ -4,6 +4,9 @@
|
|||||||
# server-name smartdns
|
# server-name smartdns
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# whether resolv local hostname to ip address
|
||||||
|
# resolv-hostname yes
|
||||||
|
|
||||||
# dns server run user
|
# dns server run user
|
||||||
# user [username]
|
# user [username]
|
||||||
# example: run as nobody
|
# example: run as nobody
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ int dns_conf_serve_expired_reply_ttl = 3;
|
|||||||
struct dns_servers dns_conf_servers[DNS_MAX_SERVERS];
|
struct dns_servers dns_conf_servers[DNS_MAX_SERVERS];
|
||||||
char dns_conf_server_name[DNS_MAX_SERVER_NAME_LEN];
|
char dns_conf_server_name[DNS_MAX_SERVER_NAME_LEN];
|
||||||
int dns_conf_server_num;
|
int dns_conf_server_num;
|
||||||
|
int dns_conf_resolv_hostname = 1;
|
||||||
|
|
||||||
struct dns_domain_check_orders dns_conf_check_orders = {
|
struct dns_domain_check_orders dns_conf_check_orders = {
|
||||||
.orders =
|
.orders =
|
||||||
@@ -518,7 +519,8 @@ static void _config_address_destroy(radix_node_t *node, void *cbctx)
|
|||||||
node->data = NULL;
|
node->data = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _config_domain_set_rule_add_ext(char *set_name, enum domain_rule type, void *rule, unsigned int flags, int is_clear_flag)
|
static int _config_domain_set_rule_add_ext(char *set_name, enum domain_rule type, void *rule, unsigned int flags,
|
||||||
|
int is_clear_flag)
|
||||||
{
|
{
|
||||||
struct dns_domain_set_rule *set_rule = NULL;
|
struct dns_domain_set_rule *set_rule = NULL;
|
||||||
struct dns_domain_set_rule_list *set_rule_list = NULL;
|
struct dns_domain_set_rule_list *set_rule_list = NULL;
|
||||||
@@ -2136,7 +2138,7 @@ static void _config_setup_smartdns_domain(void)
|
|||||||
safe_strncpy(hostname, "smartdns", DNS_MAX_CNAME_LEN);
|
safe_strncpy(hostname, "smartdns", DNS_MAX_CNAME_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hostname[0] != '\0') {
|
if (dns_conf_resolv_hostname == 1 && hostname[0] != '\0') {
|
||||||
_config_domain_rule_flag_set(hostname, DOMAIN_FLAG_SMARTDNS_DOMAIN, 0);
|
_config_domain_rule_flag_set(hostname, DOMAIN_FLAG_SMARTDNS_DOMAIN, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2149,6 +2151,7 @@ static void _config_setup_smartdns_domain(void)
|
|||||||
|
|
||||||
static struct config_item _config_item[] = {
|
static struct config_item _config_item[] = {
|
||||||
CONF_STRING("server-name", (char *)dns_conf_server_name, DNS_MAX_SERVER_NAME_LEN),
|
CONF_STRING("server-name", (char *)dns_conf_server_name, DNS_MAX_SERVER_NAME_LEN),
|
||||||
|
CONF_YESNO("resolv-hostname", &dns_conf_resolv_hostname),
|
||||||
CONF_CUSTOM("bind", _config_bind_ip_udp, NULL),
|
CONF_CUSTOM("bind", _config_bind_ip_udp, NULL),
|
||||||
CONF_CUSTOM("bind-tcp", _config_bind_ip_tcp, NULL),
|
CONF_CUSTOM("bind-tcp", _config_bind_ip_tcp, NULL),
|
||||||
CONF_CUSTOM("server", _config_server_udp, NULL),
|
CONF_CUSTOM("server", _config_server_udp, NULL),
|
||||||
@@ -2372,8 +2375,6 @@ static int _dns_server_load_conf_init(void)
|
|||||||
hash_init(dns_domain_set_rule_table.rule_list);
|
hash_init(dns_domain_set_rule_table.rule_list);
|
||||||
hash_init(dns_domain_set_name_table.names);
|
hash_init(dns_domain_set_name_table.names);
|
||||||
|
|
||||||
_config_setup_smartdns_domain();
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2456,6 +2457,7 @@ errout:
|
|||||||
|
|
||||||
static int _dns_conf_load_post(void)
|
static int _dns_conf_load_post(void)
|
||||||
{
|
{
|
||||||
|
_config_setup_smartdns_domain();
|
||||||
_dns_conf_speed_check_mode_verify();
|
_dns_conf_speed_check_mode_verify();
|
||||||
|
|
||||||
if (dns_conf_cachesize == 0 && dns_conf_response_mode == DNS_RESPONSE_MODE_FASTEST_RESPONSE) {
|
if (dns_conf_cachesize == 0 && dns_conf_response_mode == DNS_RESPONSE_MODE_FASTEST_RESPONSE) {
|
||||||
|
|||||||
Reference in New Issue
Block a user