summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-02-17 01:09:52 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-17 01:14:19 +0100
commit49c570129806b102596572f4d27a29ccfd6ab492 (patch)
tree1105f0c64e295a7b7cbb66b4789397dc9425f2bd /src
parent6b8df1f6608749abb20f7a17758e27ff34cb4619 (diff)
downloadconnman-49c570129806b102596572f4d27a29ccfd6ab492.tar.gz
connman-49c570129806b102596572f4d27a29ccfd6ab492.tar.bz2
connman-49c570129806b102596572f4d27a29ccfd6ab492.zip
dnsproxy: Add domains to the query only when it has no dot
Diffstat (limited to 'src')
-rw-r--r--src/dnsproxy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index 201c3657..0b2ff228 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -317,6 +317,7 @@ static int ns_resolv(struct server_data *server, struct request_data *req,
{
GList *list;
int sk, err;
+ char *dot, *lookup = (char *) name;
sk = g_io_channel_unix_get_fd(server->channel);
@@ -324,6 +325,11 @@ static int ns_resolv(struct server_data *server, struct request_data *req,
req->numserv++;
+ /* If we have more than one dot, we don't add domains */
+ dot = strchr(lookup, '.');
+ if (dot != NULL && dot != lookup + strlen(lookup) - 1)
+ return 0;
+
for (list = server->domains; list; list = list->next) {
char *domain;
unsigned char alt[1024];