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 *
#endif
static int tcp_conn_serv(struct server *serv, time_t now,
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);
/* 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
* > 0 DNS message length received from upstream server */
static int tcp_conn_serv(struct server *serv, time_t now,
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)
{
unsigned char *payload = packet + 2; /* skip msg length field */
......@@ -1687,7 +1687,7 @@ static int tcp_conn_serv(struct server *serv, time_t now,
#endif
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,
sizeof (unsigned int));
}
......@@ -1701,9 +1701,6 @@ static int tcp_conn_serv(struct server *serv, time_t now,
return -1;
}
#ifdef HAVE_DNSSEC
if (option_bool (OPT_DNSSEC_VALID))
{
......@@ -1723,8 +1720,6 @@ static int tcp_conn_serv(struct server *serv, time_t now,
}
#endif
}
/* get query name again for logging - may have been overwritten */
......@@ -1979,7 +1974,8 @@ unsigned char *tcp_request(int confd, time_t now,
{
/* --server=/example.org/1.2.3.4 */
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);
}
else
......@@ -2010,7 +2006,8 @@ unsigned char *tcp_request(int confd, time_t now,
continue;
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);
/* something wrong with tcp connect/read/write */
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