Returns now GNUNET_SYSERR
[oweals/gnunet.git] / src / util / win.cc
index f3e4bd98cbc8f0634aeb19036e3fd86850f52197..b462033b921dec64a6b0ba087420bdf10b1c3fdd 100644 (file)
 */\r
 \r
 /**\r
- * @file util/win/win.cc\r
+ * @file util/win.cc\r
  * @brief Helper functions for MS Windows in C++\r
  * @author Nils Durner\r
- **/\r
+ */\r
 \r
 #ifndef _WIN_CC\r
 #define _WIN_CC\r
@@ -30,7 +30,7 @@
 #include "winproc.h"\r
 #include "platform.h"\r
 #include "gnunet_common.h"\r
-#include "gnunet_network_lib.h"\r
+#include "gnunet_connection_lib.h"\r
 \r
 #include <list>\r
 using namespace std;\r
@@ -42,21 +42,8 @@ using namespace std;
 \r
 extern "C" {\r
 \r
-typedef list<WSAOVERLAPPED *> TOLList;\r
-\r
-static HANDLE hOLLock;\r
-static TOLList lstOL;\r
-\r
 int plibc_conv_to_win_path(const char *pszUnix, char *pszWindows);\r
 \r
-void __attribute__ ((constructor)) gnunet_win_init() {\r
-  hOLLock = CreateMutex(NULL, FALSE, NULL);\r
-}\r
-\r
-void __attribute__ ((destructor)) gnunet_win_fini() {\r
-  CloseHandle(hOLLock);\r
-}\r
-\r
 /**\r
  * Enumerate all network adapters\r
  */\r
@@ -103,9 +90,11 @@ void EnumNICs(PMIB_IFTABLE *pIfTable, PMIB_IPADDRTABLE *pAddrTable)
 /**\r
  * Lists all network interfaces in a combo box\r
  * Used by the basic GTK configurator\r
- * @param callback\r
+ *\r
+ * @param callback function to call for each NIC\r
+ * @param callback_cls closure for callback\r
  */\r
-  int ListNICs(void (*callback) (const char *, int, void *), void * cls)\r
+  int ListNICs(void (*callback) (void *, const char *, int), void * callback_cls)\r
 {\r
   PMIB_IFTABLE pTable;\r
   PMIB_IPADDRTABLE pAddrTable;\r
@@ -201,7 +190,9 @@ void EnumNICs(PMIB_IFTABLE *pIfTable, PMIB_IPADDRTABLE *pAddrTable)
         if (pszIfName)\r
                free(pszIfName);\r
 \r
-        callback(szEntry, pAddrTable->table[dwIfIdx].dwIndex == dwExternalNIC, cls);\r
+        callback(callback_cls,\r
+                szEntry, \r
+                pAddrTable->table[dwIfIdx].dwIndex == dwExternalNIC);\r
       }\r
     }\r
     GlobalFree(pAddrTable);\r
@@ -355,7 +346,7 @@ NTSTATUS _OpenPolicy(LPWSTR ServerName, DWORD DesiredAccess, PLSA_HANDLE PolicyH
  * @remarks Call GetLastError() to obtain extended error information.\r
  * @see http://support.microsoft.com/?scid=kb;en-us;132958\r
  */\r
-BOOL _GetAccountSid(LPTSTR SystemName, LPTSTR AccountName, PSID * Sid)\r
+BOOL _GetAccountSid(LPCTSTR SystemName, LPCTSTR AccountName, PSID * Sid)\r
 {\r
   LPTSTR ReferencedDomain = NULL;\r
   DWORD cbSid = 128;                                                   /* initial allocation attempt */\r
@@ -461,7 +452,7 @@ NTSTATUS _SetPrivilegeOnAccount(LSA_HANDLE PolicyHandle,/* open policy handle */
  * @param pszName the name of the account\r
  * @param pszDesc description of the account\r
  */\r
-int CreateServiceAccount(char *pszName, char *pszDesc)\r
+int CreateServiceAccount(const char *pszName, const char *pszDesc)\r
 {\r
   USER_INFO_1 ui;\r
   USER_INFO_1008 ui2;\r
@@ -495,14 +486,14 @@ int CreateServiceAccount(char *pszName, char *pszDesc)
                                                                                STATUS_SUCCESS)\r
        return 3;\r
 \r
-  _GetAccountSid(NULL, (LPTSTR) pszName, &pSID);\r
+  _GetAccountSid(NULL, (LPCTSTR) pszName, &pSID);\r
 \r
-  if (_SetPrivilegeOnAccount(hPolicy, pSID, L"SeServiceLogonRight", TRUE) != STATUS_SUCCESS)\r
+  if (_SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeServiceLogonRight", TRUE) != STATUS_SUCCESS)\r
        return 4;\r
 \r
-  _SetPrivilegeOnAccount(hPolicy, pSID, L"SeDenyInteractiveLogonRight", TRUE);\r
-  _SetPrivilegeOnAccount(hPolicy, pSID, L"SeDenyBatchLogonRight", TRUE);\r
-  _SetPrivilegeOnAccount(hPolicy, pSID, L"SeDenyNetworkLogonRight", TRUE);\r
+  _SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeDenyInteractiveLogonRight", TRUE);\r
+  _SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeDenyBatchLogonRight", TRUE);\r
+  _SetPrivilegeOnAccount(hPolicy, pSID, (LPWSTR) L"SeDenyNetworkLogonRight", TRUE);\r
 \r
   GNLsaClose(hPolicy);\r
 \r
@@ -513,7 +504,7 @@ int CreateServiceAccount(char *pszName, char *pszDesc)
  * @brief Grant permission to a file\r
  * @param lpszFileName the name of the file or directory\r
  * @param lpszAccountName the user account\r
- * @param the desired access (e.g. GENERIC_ALL)\r
+ * @param dwAccessMask the desired access (e.g. GENERIC_ALL)\r
  * @return TRUE on success\r
  * @remark based on http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q102102&\r
  */\r
@@ -810,7 +801,7 @@ char *winErrorStr(const char *prefix, int dwErr)
     NULL, (DWORD) dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &err,\r
     0, NULL ))\r
   {\r
-    err = "";\r
+    err = (char *) LocalAlloc (LMEM_FIXED | LMEM_ZEROINIT, 1);\r
   }\r
 \r
   mem = strlen(err) + strlen(prefix) + 20;\r