*/\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
\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
/**\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
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
* @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
* @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
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
* @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
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