missing changes to headers
[oweals/gnunet.git] / src / include / winproc.h
index 1c7703799f65a76835f26a99a231a31232791ae6..3fbe13328f3f83e9cdc3a1f62738c9771a1eee8c 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other contributing authors)
 
      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
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -34,6 +34,9 @@
 #include <sys/timeb.h>
 #include <time.h>
 #include <dirent.h>
+#ifndef FD_SETSIZE
+#define FD_SETSIZE 1024
+#endif
 #include <winsock2.h>
 #include <ws2tcpip.h>
 #include <windows.h>
@@ -62,6 +65,10 @@ extern "C"
                                            PULONG pdwSize, BOOL bOrder);
   typedef DWORD WINAPI (*TGetIfTable) (PMIB_IFTABLE pIfTable, PULONG pdwSize,
                                        BOOL bOrder);
+  typedef DWORD WINAPI (*TGetBestInterfaceEx) (struct sockaddr *, PDWORD);
+  /* TODO: Explicitly import -A variants (i.e. TCreateHardLinkA) or -W
+   * variants (TCreateHardLinkW), etc.
+   */
   typedef DWORD WINAPI (*TCreateHardLink) (LPCTSTR lpFileName,
                                            LPCTSTR lpExistingFileName,
                                            LPSECURITY_ATTRIBUTES
@@ -99,22 +106,19 @@ extern "C"
   typedef SC_HANDLE WINAPI (*TOpenService) (SC_HANDLE hSCManager,
                                             LPCTSTR lpServiceName,
                                             DWORD dwDesiredAccess);
-  typedef DWORD WINAPI (*TGetBestInterface) (IPAddr dwDestAddr,
-                                             PDWORD pdwBestIfIndex);
   typedef DWORD WINAPI (*TGetAdaptersInfo) (PIP_ADAPTER_INFO pAdapterInfo,
                                             PULONG pOutBufLen);
   typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, PDWORD);
   typedef NET_API_STATUS WINAPI (*TNetUserSetInfo) (LPCWSTR servername,
                                                     LPCWSTR username,
                                                     DWORD level, LPBYTE buf,
-                                                    LPDWORD parm_err);
+                                                    LPDWORD param_err);
   typedef NTSTATUS NTAPI (*TLsaOpenPolicy) (PLSA_UNICODE_STRING,
-                                            PLSA_OBJECT_ATTRIBUTES,
-                                            ACCESS_MASK, PLSA_HANDLE);
+                                            PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK,
+                                            PLSA_HANDLE);
   typedef NTSTATUS NTAPI (*TLsaAddAccountRights) (LSA_HANDLE, PSID,
                                                   PLSA_UNICODE_STRING, ULONG);
-  typedef NTSTATUS NTAPI (*TLsaRemoveAccountRights) (LSA_HANDLE, PSID,
-                                                     BOOLEAN,
+  typedef NTSTATUS NTAPI (*TLsaRemoveAccountRights) (LSA_HANDLE, PSID, BOOLEAN,
                                                      PLSA_UNICODE_STRING,
                                                      ULONG);
   typedef NTSTATUS NTAPI (*TLsaClose) (LSA_HANDLE);
@@ -139,8 +143,7 @@ extern "C"
                                                      LPBOOL lpbDaclPresent,
                                                      PACL * pDacl,
                                                      LPBOOL lpbDaclDefaulted);
-  typedef BOOL WINAPI (*TGetAclInformation) (PACL pAcl,
-                                             LPVOID pAclInformation,
+  typedef BOOL WINAPI (*TGetAclInformation) (PACL pAcl, LPVOID pAclInformation,
                                              DWORD nAclInformationLength,
                                              ACL_INFORMATION_CLASS
                                              dwAclInformationClass);
@@ -160,6 +163,7 @@ extern "C"
                                                 PSID psidGroup, PACL pDacl,
                                                 PACL pSacl);
 
+  extern TGetBestInterfaceEx GNGetBestInterfaceEx;
   extern TNtQuerySystemInformation GNNtQuerySystemInformation;
   extern TGetIfEntry GNGetIfEntry;
   extern TGetIpAddrTable GNGetIpAddrTable;
@@ -174,8 +178,7 @@ extern "C"
   extern TStartServiceCtrlDispatcher GNStartServiceCtrlDispatcher;
   extern TControlService GNControlService;
   extern TOpenService GNOpenService;
-  extern TGetBestInterface GNGetBestInterface;
-  extern TGetAdaptersInfo GGetAdaptersInfo;
+  extern TGetAdaptersInfo GNGetAdaptersInfo;
   extern TNetUserAdd GNNetUserAdd;
   extern TNetUserSetInfo GNNetUserSetInfo;
   extern TLsaOpenPolicy GNLsaOpenPolicy;
@@ -204,9 +207,27 @@ extern "C"
                             DWORD dwAccessMask);
   char *winErrorStr (const char *prefix, int dwErr);
   void EnumNICs (PMIB_IFTABLE * pIfTable, PMIB_IPADDRTABLE * pAddrTable);
+
+#define ENUMNICS3_MASK_OK 0x01
+#define ENUMNICS3_BCAST_OK 0x02
+
+  struct EnumNICs3_results
+  {
+    unsigned char flags;
+    int is_default;
+    char pretty_name[1001];
+    size_t addr_size;
+    SOCKADDR_STORAGE address;
+    SOCKADDR_STORAGE mask;
+    SOCKADDR_STORAGE broadcast;
+  };
+
+  int EnumNICs3 (struct EnumNICs3_results **, int *EnumNICs3_results_count);
+  void EnumNICs3_free (struct EnumNICs3_results *);
   int GNInitWinEnv ();
   void GNShutdownWinEnv ();
 
+  BOOL SafeTerminateProcess (HANDLE hProcess, UINT uExitCode, DWORD dwTimeout);
 #ifdef __cplusplus
 }
 #endif