-fix time assertion introduce in last patch
[oweals/gnunet.git] / src / util / win.c
index 6a2da93390af5c7744db69fbbb76b8f0ff441a76..a9c6b439fec42482ddf1bb794484de4d083f442b 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 
 #include "winproc.h"
 #include "platform.h"
+#include "gnunet_crypto_lib.h"
 #include "gnunet_common.h"
 #include "gnunet_connection_lib.h"
 
 #include <ntdef.h>
-
 #ifndef INHERITED_ACE
 #define INHERITED_ACE 0x10
 #endif
@@ -46,7 +46,7 @@ int plibc_conv_to_win_path(const char *pszUnix, char *pszWindows);
       ULONG Length; \
       DWORD Flags; \
     }; \
-  }; \
+  };
 
 #define _IP_ADAPTER_UNICAST_ADDRESS_BASE \
   SOCKET_ADDRESS                     Address; \
@@ -73,6 +73,7 @@ typedef struct _IP_ADAPTER_UNICAST_ADDRESS##suffix { \
 _IP_ADAPTER_UNICAST_ADDRESS_DEFINE(_VISTA,_IP_ADAPTER_UNICAST_ADDRESS_ADD_VISTA)
 
 
+#ifndef __MINGW64_VERSION_MAJOR
 typedef struct _IP_ADAPTER_WINS_SERVER_ADDRESS {
   union {
     ULONGLONG Alignment;
@@ -96,15 +97,17 @@ typedef struct _IP_ADAPTER_GATEWAY_ADDRESS {
   struct _IP_ADAPTER_GATEWAY_ADDRESS  *Next;
   SOCKET_ADDRESS                     Address;
 } IP_ADAPTER_GATEWAY_ADDRESS, *PIP_ADAPTER_GATEWAY_ADDRESS, *PIP_ADAPTER_GATEWAY_ADDRESS_LH;
+#endif
 
 typedef UINT32 NET_IF_COMPARTMENT_ID;
 typedef GUID NET_IF_NETWORK_GUID;
 
+#ifndef __MINGW64_VERSION_MAJOR
 typedef enum _NET_IF_CONNECTION_TYPE {
   NET_IF_CONNECTION_DEDICATED   = 1,
   NET_IF_CONNECTION_PASSIVE,
   NET_IF_CONNECTION_DEMAND,
-  NET_IF_CONNECTION_MAXIMUM 
+  NET_IF_CONNECTION_MAXIMUM
 } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
 
 typedef enum  {
@@ -114,8 +117,9 @@ typedef enum  {
   TUNNEL_TYPE_6TO4,
   TUNNEL_TYPE_ISATAP,
   TUNNEL_TYPE_TEREDO,
-  TUNNEL_TYPE_IPHTTPS 
+  TUNNEL_TYPE_IPHTTPS
 } TUNNEL_TYPE, *PTUNNEL_TYPE;
+#endif
 
 /*
 A DUID consists of a two-octet type code represented in network byte
@@ -125,6 +129,7 @@ A DUID consists of a two-octet type code represented in network byte
 */
 #define MAX_DHCPV6_DUID_LENGTH 130
 
+#ifndef __MINGW64_VERSION_MAJOR
 typedef union _NET_LUID {
   ULONG64 Value;
   struct {
@@ -140,6 +145,7 @@ typedef struct _IP_ADAPTER_DNS_SUFFIX {
   struct _IP_ADAPTER_DNS_SUFFIX  *Next;
   WCHAR                         String[MAX_DNS_SUFFIX_STRING_LENGTH];
 } IP_ADAPTER_DNS_SUFFIX, *PIP_ADAPTER_DNS_SUFFIX;
+#endif
 
 
 
@@ -204,7 +210,7 @@ typedef struct _IP_ADAPTER_ADDRESSES##suffix { \
   _IP_ADAPTER_ADDRESSES_BASE \
   addition \
 } IP_ADAPTER_ADDRESSES##suffix, *PIP_ADAPTER_ADDRESSES##suffix;
-  
+
 
 /* _IP_ADAPTER_ADDRESSES_DEFINE(,) defined in w32api headers */
 _IP_ADAPTER_ADDRESSES_DEFINE(_XPSP1,_IP_ADAPTER_ADDRESSES_ADD_XPSP1)
@@ -712,10 +718,12 @@ int UninstallService(char *servicename)
     return 2;
 
   if (! (hService = GNOpenService(hManager, (LPCTSTR) servicename, DELETE)))
+  {
     if (GetLastError() != ERROR_SERVICE_DOES_NOT_EXIST)
       return 3;
-     else
-       goto closeSCM;
+    else
+      goto closeSCM;
+  }
 
   if (! GNDeleteService(hService))
     if (GetLastError() != ERROR_SERVICE_MARKED_FOR_DELETE)
@@ -877,6 +885,7 @@ NTSTATUS _SetPrivilegeOnAccount(LSA_HANDLE PolicyHandle,/* open policy handle */
                                &PrivilegeString,        /* privileges */
                                1                                                                                       /* privilege count */
       );
+    return i;
   }
   else
   {
@@ -925,13 +934,12 @@ int CreateServiceAccount(const char *pszName, const char *pszDesc)
   ui2.usri1008_flags = UF_PASSWD_CANT_CHANGE | UF_DONT_EXPIRE_PASSWD;
   GNNetUserSetInfo(NULL, wszName, 1008, (LPBYTE)&ui2, NULL);
 
-  if (_OpenPolicy(NULL, POLICY_ALL_ACCESS, &hPolicy) !=
-                                                                               STATUS_SUCCESS)
+  if (!NT_SUCCESS(_OpenPolicy(NULL, POLICY_ALL_ACCESS, &hPolicy)))
        return 3;
 
   _GetAccountSid(NULL, (LPCTSTR) pszName, &pSID);
 
-  if (_SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeServiceLogonRight", TRUE) != STATUS_SUCCESS)
+  if (!NT_SUCCESS(_SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeServiceLogonRight", TRUE)))
        return 4;
 
   _SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeDenyInteractiveLogonRight", TRUE);