Update code

This commit is contained in:
Nick Peng
2018-06-08 21:57:33 +08:00
parent 4ee70e3eac
commit 4a6b0baddd
5 changed files with 595 additions and 537 deletions

10
dns.c
View File

@@ -35,10 +35,10 @@ short dns_read_short(unsigned char **buffer)
{ {
unsigned short value; unsigned short value;
value = *((unsigned short *)(*buffer)); value = ntohs(*((unsigned short *)(*buffer)));
*buffer += 2; *buffer += 2;
return ntohs(value); return value;
} }
void dns_write_char(unsigned char **buffer, unsigned char value) void dns_write_char(unsigned char **buffer, unsigned char value)
@@ -63,7 +63,7 @@ void dns_write_short(unsigned char **buffer, unsigned short value)
void dns_write_int(unsigned char **buffer, unsigned int value) void dns_write_int(unsigned char **buffer, unsigned int value)
{ {
value = htons(value); value = htonl(value);
*((unsigned int *)(*buffer)) = value; *((unsigned int *)(*buffer)) = value;
*buffer += 4; *buffer += 4;
} }
@@ -72,10 +72,10 @@ unsigned int dns_read_int(unsigned char **buffer)
{ {
unsigned int value; unsigned int value;
value = *((unsigned int *)(*buffer)); value = ntohl(*((unsigned int *)(*buffer)));
*buffer += 4; *buffer += 4;
return ntohs(value); return value;
} }
struct dns_rrs *dns_get_rrs_start(struct dns_packet *packet, dns_rr_type type, int *count) struct dns_rrs *dns_get_rrs_start(struct dns_packet *packet, dns_rr_type type, int *count)

File diff suppressed because it is too large Load Diff

View File

@@ -211,7 +211,7 @@ static int _dns_reply(struct dns_request *request)
head.id = request->id; head.id = request->id;
head.qr = DNS_QR_ANSWER; head.qr = DNS_QR_ANSWER;
head.opcode = DNS_OP_QUERY; head.opcode = DNS_OP_QUERY;
head.rd = 0; head.rd = 1;
head.ra = 0; head.ra = 0;
head.aa = 0; head.aa = 0;
head.tc = 0; head.tc = 0;
@@ -411,13 +411,14 @@ static int _dns_server_process_answer(struct dns_request *request, char *domain,
struct dns_rrs *rrs = NULL; struct dns_rrs *rrs = NULL;
if (packet->head.rcode != DNS_RC_NOERROR) { if (packet->head.rcode != DNS_RC_NOERROR) {
if (request->rcode == (unsigned short)-1) { if (request->rcode == DNS_RC_SERVFAIL) {
request->rcode = packet->head.rcode; request->rcode = packet->head.rcode;
} }
tlog(TLOG_ERROR, "inquery failed, %s, rcode = %d, id = %d\n", domain, packet->head.rcode, packet->head.id); tlog(TLOG_ERROR, "inquery failed, %s, rcode = %d, id = %d\n", domain, packet->head.rcode, packet->head.id);
return -1; return -1;
} }
request->rcode = packet->head.rcode; request->rcode = packet->head.rcode;
for (j = 1; j < DNS_RRS_END; j++) { for (j = 1; j < DNS_RRS_END; j++) {

View File

@@ -116,7 +116,7 @@ int smartdns_init()
} }
tlog_setlogscreen(1); tlog_setlogscreen(1);
tlog_setlevel(TLOG_DEBUG); tlog_setlevel(TLOG_INFO);
if (dns_conf_server_num <= 0) { if (dns_conf_server_num <= 0) {
if (smartdns_load_from_resolv() != 0) { if (smartdns_load_from_resolv() != 0) {

View File

@@ -5,12 +5,13 @@ port 53
cache-size 1024 cache-size 1024
loglevel info loglevel info
#server 192.168.1.1
server 114.114.114.114 server 114.114.114.114
server 123.207.137.88 server 123.207.137.88
server 119.29.29.29 server 119.29.29.29
server 223.5.5.5 server 223.5.5.5
server 208.67.222.222:5353 server 208.67.222.222:5353
server 202.141.178.13:5353 server 202.141.178.13:5353
#server 77.88.8.8:53 server 77.88.8.8:53
server 202.141.162.123:53 server 202.141.162.123:53
server 101.132.183.99:53 server 101.132.183.99:53