Commit 824b0c6a authored by Chen Wei's avatar Chen Wei

fix tcp_conn_serv ipv6 error

variable for IPV6 was ignored until test build a full feature debian package
found the problem.
parent 6ba392a9
...@@ -32,7 +32,7 @@ static int send_check_sign(struct frec *forward, time_t now, struct dns_header * ...@@ -32,7 +32,7 @@ static int send_check_sign(struct frec *forward, time_t now, struct dns_header *
#endif #endif
static int tcp_conn_serv(struct server *serv, time_t now, static int tcp_conn_serv(struct server *serv, time_t now,
unsigned char *packet, size_t payload_size, unsigned char *packet, size_t payload_size,
union mysockaddr *peer_addr, union mysockaddr *peer_addr, union mysockaddr *local_addr,
int *added_pheader, int *no_cache_dnssec, int *cache_secure); int *added_pheader, int *no_cache_dnssec, int *cache_secure);
/* Send a UDP packet with its source address set as "source" /* Send a UDP packet with its source address set as "source"
...@@ -1645,7 +1645,7 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si ...@@ -1645,7 +1645,7 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si
* > 0 DNS message length received from upstream server */ * > 0 DNS message length received from upstream server */
static int tcp_conn_serv(struct server *serv, time_t now, static int tcp_conn_serv(struct server *serv, time_t now,
unsigned char *packet, size_t payload_size, unsigned char *packet, size_t payload_size,
union mysockaddr *peer_addr, union mysockaddr *peer_addr, union mysockaddr *local_addr,
int *added_pheader, int *no_cache_dnssec, int *cache_secure) int *added_pheader, int *no_cache_dnssec, int *cache_secure)
{ {
unsigned char *payload = packet + 2; /* skip msg length field */ unsigned char *payload = packet + 2; /* skip msg length field */
...@@ -1687,7 +1687,7 @@ static int tcp_conn_serv(struct server *serv, time_t now, ...@@ -1687,7 +1687,7 @@ static int tcp_conn_serv(struct server *serv, time_t now,
#endif #endif
local.addr.addr4 = local_addr->in.sin_addr; local.addr.addr4 = local_addr->in.sin_addr;
if (get_incoming_mark (&peer_addr, &local, 1, &mark)) if (get_incoming_mark (peer_addr, &local, 1, &mark))
setsockopt (serv->tcpfd, SOL_SOCKET, SO_MARK, &mark, setsockopt (serv->tcpfd, SOL_SOCKET, SO_MARK, &mark,
sizeof (unsigned int)); sizeof (unsigned int));
} }
...@@ -1701,9 +1701,6 @@ static int tcp_conn_serv(struct server *serv, time_t now, ...@@ -1701,9 +1701,6 @@ static int tcp_conn_serv(struct server *serv, time_t now,
return -1; return -1;
} }
#ifdef HAVE_DNSSEC #ifdef HAVE_DNSSEC
if (option_bool (OPT_DNSSEC_VALID)) if (option_bool (OPT_DNSSEC_VALID))
{ {
...@@ -1723,8 +1720,6 @@ static int tcp_conn_serv(struct server *serv, time_t now, ...@@ -1723,8 +1720,6 @@ static int tcp_conn_serv(struct server *serv, time_t now,
} }
#endif #endif
} }
/* get query name again for logging - may have been overwritten */ /* get query name again for logging - may have been overwritten */
...@@ -1979,7 +1974,8 @@ unsigned char *tcp_request(int confd, time_t now, ...@@ -1979,7 +1974,8 @@ unsigned char *tcp_request(int confd, time_t now,
{ {
/* --server=/example.org/1.2.3.4 */ /* --server=/example.org/1.2.3.4 */
serv = fwdserv; serv = fwdserv;
ret = tcp_conn_serv (serv, now, packet, size, &peer_addr, ret = tcp_conn_serv (serv, now, packet, size,
&peer_addr, local_addr,
&added_pheader, &no_cache_dnssec, &cache_secure); &added_pheader, &no_cache_dnssec, &cache_secure);
} }
else else
...@@ -2010,7 +2006,8 @@ unsigned char *tcp_request(int confd, time_t now, ...@@ -2010,7 +2006,8 @@ unsigned char *tcp_request(int confd, time_t now,
continue; continue;
serv = last_server; serv = last_server;
ret = tcp_conn_serv (serv, now, packet, size, &peer_addr, ret = tcp_conn_serv (serv, now, packet, size,
&peer_addr, local_addr,
&added_pheader, &no_cache_dnssec, &cache_secure); &added_pheader, &no_cache_dnssec, &cache_secure);
/* something wrong with tcp connect/read/write */ /* something wrong with tcp connect/read/write */
if (ret <= 0) if (ret <= 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment