Improved Solaris support
diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 0728261..b75b01d 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -47,6 +47,8 @@
 
 #include <time.h>
 
+#include "config.h"
+
 #include "tun.h"
 #include "ippool.h"
 #include "syserr.h"
@@ -328,7 +330,7 @@
   }
 
   /* DNS1 and DNS2 */
-#ifndef HAVE_INET_ATON
+#ifdef HAVE_INET_ATON
   dns1.s_addr = 0;
   if (args_info.pcodns1_arg) {
     if (0 == inet_aton(args_info.pcodns1_arg, &dns1)) {
@@ -346,11 +348,10 @@
     }
   }
 #else
-#ifndef HAVE_INET_ADDR
   dns1.s_addr = 0;
   if (args_info.pcodns1_arg) {
-    dns1 = inet_addr(args_info.pcodns1_arg);
-    if (dns1.s_addr == INADDR_NONE)  {
+    dns1.s_addr = inet_addr(args_info.pcodns1_arg);
+    if (dns1.s_addr == -1)  {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Failed to convert pcodns1!");
       exit(1);
@@ -358,16 +359,13 @@
   }
   dns2.s_addr = 0;
   if (args_info.pcodns2_arg) {
-    dns2 = inet_addr(args_info.pcodns2_arg);
-    if (dns2.s_addr == INADDR_NONE) {
+    dns2.s_addr = inet_addr(args_info.pcodns2_arg);
+    if (dns2.s_addr == -1) {
       sys_err(LOG_ERR, __FILE__, __LINE__, 0,
 	      "Failed to convert pcodns2!");
       exit(1);
     }
   }
-#else
-#error Function missing!
-#endif
 #endif