summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBas van Sisseren <bas@quarantainenet.nl>2013-06-03 15:11:49 +0200
committerJan Kiszka <jan.kiszka@siemens.com>2013-06-19 12:44:38 +0200
commit68756ba8be2127b6ea30a466af9f78a5c97bc15f (patch)
treee149482469b82d471b74c92d36fcefe3d9175584
parentc1990468d5a13c8f1d9111fcca0a78a6adad062b (diff)
downloadfocaccia-qemu-68756ba8be2127b6ea30a466af9f78a5c97bc15f.tar.gz
focaccia-qemu-68756ba8be2127b6ea30a466af9f78a5c97bc15f.zip
fix -net user checks by reordering checks
reorder slirp config options. first check the dns-server-address,
then check the first-dhcp-address. the original code was comparing
the first-dhcp-address with the default dns-server-address, not
the configured dns-server-address.

Signed-off-by: Bas van Sisseren <bas@quarantainenet.nl>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
-rw-r--r--net/slirp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/slirp.c b/net/slirp.c
index b3f35d5861..124e953d9c 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -212,19 +212,19 @@ static int net_slirp_init(NetClientState *peer, const char *model,
         return -1;
     }
 
-    if (vdhcp_start && !inet_aton(vdhcp_start, &dhcp)) {
+    if (vnameserver && !inet_aton(vnameserver, &dns)) {
         return -1;
     }
-    if ((dhcp.s_addr & mask.s_addr) != net.s_addr ||
-        dhcp.s_addr == host.s_addr || dhcp.s_addr == dns.s_addr) {
+    if ((dns.s_addr & mask.s_addr) != net.s_addr ||
+        dns.s_addr == host.s_addr) {
         return -1;
     }
 
-    if (vnameserver && !inet_aton(vnameserver, &dns)) {
+    if (vdhcp_start && !inet_aton(vdhcp_start, &dhcp)) {
         return -1;
     }
-    if ((dns.s_addr & mask.s_addr) != net.s_addr ||
-        dns.s_addr == host.s_addr) {
+    if ((dhcp.s_addr & mask.s_addr) != net.s_addr ||
+        dhcp.s_addr == host.s_addr || dhcp.s_addr == dns.s_addr) {
         return -1;
     }