gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r12655 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r12655 - gnunet/src/transport
Date: Wed, 18 Aug 2010 22:18:16 +0200

Author: nevans
Date: 2010-08-18 22:18:16 +0200 (Wed, 18 Aug 2010)
New Revision: 12655

Modified:
   gnunet/src/transport/gnunet-nat-server-windows.c
Log:
yes, windows still sucks

Modified: gnunet/src/transport/gnunet-nat-server-windows.c
===================================================================
--- gnunet/src/transport/gnunet-nat-server-windows.c    2010-08-18 20:10:32 UTC 
(rev 12654)
+++ gnunet/src/transport/gnunet-nat-server-windows.c    2010-08-18 20:18:16 UTC 
(rev 12655)
@@ -406,6 +406,13 @@
   const int one = 1;
   Socket ret;
 
+#ifdef WIN32
+  BOOL bOptVal = TRUE;
+  int bOptLen = sizeof(BOOL);
+  int iOptVal;
+  int iOptLen = sizeof(int);
+#endif
+
   ret = socket (AF_INET, SOCK_RAW, IPPROTO_RAW);
   if (-1 == ret)
     {
@@ -413,7 +420,21 @@
               "Error opening RAW socket: %s\n",
               strerror (errno));
       return -1;
-    }  
+    }
+#ifdef WIN32
+  if (setsockopt(ret, SOL_SOCKET, SO_BROADCAST, (char*)&bOptVal, bOptLen) != 
SOCKET_ERROR)
+  {
+    fprintf(stderr, "Set SO_BROADCAST: ON\n");
+  }
+  if (setsockopt(ret, IPPROTO_IP, IP_HDRINCL, (char*)&bOptVal, bOptLen) != 
SOCKET_ERROR)
+  {
+    fprintf(stderr, "Set IP_HDRINCL: ON\n");
+  }
+  else
+  {
+    fprintf(stderr, "Error setting IP_HDRINCL: ON\n");
+  }
+#else
   if (setsockopt(ret, SOL_SOCKET, SO_BROADCAST,
                 (char *)&one, sizeof(one)) == -1)
     fprintf(stderr,
@@ -424,6 +445,7 @@
     fprintf(stderr,
            "setsockopt failed: %s\n",
            strerror (errno));
+#endif
   return ret;
 }
 
@@ -441,7 +463,7 @@
 #ifdef WIN32
   // WSA startup
   WSADATA wsaData;
-  if (WSAStartup (MAKEWORD (2, 1), &wsaData) != 0)
+  if (WSAStartup (MAKEWORD (2, 2), &wsaData) != 0)
   {
       fprintf (stderr, "Failed to find Winsock 2.1 or better.\n");
       return 4;                       // ERROR




reply via email to

[Prev in Thread] Current Thread [Next in Thread]