Rework query testcase, some dns cleanup

This commit is contained in:
Erik Ekman
2007-01-28 11:52:36 +00:00
parent 89c99f1ddf
commit 1a46808b8a
5 changed files with 61 additions and 13 deletions

View File

@@ -62,7 +62,7 @@ static uint16_t pingid;
int
open_dns(const char *domain, int localport, in_addr_t listen_ip)
open_dns(int localport, in_addr_t listen_ip)
{
int fd;
int flag;
@@ -91,15 +91,19 @@ open_dns(const char *domain, int localport, in_addr_t listen_ip)
return -1;
}
// Save top domain used
strncpy(topdomain, domain, sizeof(topdomain) - 1);
topdomain[sizeof(topdomain) - 1] = '\0';
printf("Opened UDP socket\n");
return fd;
}
void
dns_set_topdomain(const char *domain)
{
strncpy(topdomain, domain, sizeof(topdomain) - 1);
topdomain[sizeof(topdomain) - 1] = '\0';
}
int
dns_settarget(const char *host)
{

View File

@@ -17,8 +17,9 @@
#ifndef _DNS_H_
#define _DNS_H_
int open_dns(const char *, int, in_addr_t);
int open_dns(int, in_addr_t);
int dns_settarget(const char*);
void dns_set_topdomain(const char*);
void close_dns(int);
int dns_sending();

View File

@@ -327,7 +327,8 @@ main(int argc, char **argv)
if ((tun_fd = open_tun(device)) == -1)
goto cleanup1;
if ((dns_fd = open_dns(argv[1], 0, INADDR_ANY)) == -1)
dns_set_topdomain(argv[1]);
if ((dns_fd = open_dns(0, INADDR_ANY)) == -1)
goto cleanup2;
if (dns_settarget(argv[0]) == -1)
goto cleanup2;

View File

@@ -375,7 +375,8 @@ main(int argc, char **argv)
goto cleanup0;
if (tun_setip(argv[0]) != 0 || tun_setmtu(mtu) != 0)
goto cleanup1;
if ((dnsd_fd = open_dns(argv[1], port, listen_ip)) == -1)
dns_set_topdomain(argv[1]);
if ((dnsd_fd = open_dns(port, listen_ip)) == -1)
goto cleanup2;
my_ip = inet_addr(argv[0]);