aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-11-29 11:47:40 +0000
committerChristian Grothoff <christian@grothoff.org>2011-11-29 11:47:40 +0000
commitd155690a24d645e746d7cd12e5c1d47646d96558 (patch)
tree657f47d48cf70950ba240ebc0414a71f6cac6bed /src/include
parentba232c9d203303cd2beb2994fc49c5d5b700d85c (diff)
downloadgnunet-d155690a24d645e746d7cd12e5c1d47646d96558.tar.gz
gnunet-d155690a24d645e746d7cd12e5c1d47646d96558.zip
LRN: new code for GNUNET_OS_network_interfaces_list on W32 improving support for IPv6 and subnets/masks, see Mantis 1958
Diffstat (limited to 'src/include')
-rw-r--r--src/include/winproc.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/include/winproc.h b/src/include/winproc.h
index 05c4ac1bf..ac4eecdfb 100644
--- a/src/include/winproc.h
+++ b/src/include/winproc.h
@@ -62,6 +62,10 @@ extern "C"
62 PULONG pdwSize, BOOL bOrder); 62 PULONG pdwSize, BOOL bOrder);
63 typedef DWORD WINAPI (*TGetIfTable) (PMIB_IFTABLE pIfTable, PULONG pdwSize, 63 typedef DWORD WINAPI (*TGetIfTable) (PMIB_IFTABLE pIfTable, PULONG pdwSize,
64 BOOL bOrder); 64 BOOL bOrder);
65 typedef DWORD WINAPI (*TGetBestInterfaceEx) (struct sockaddr *, PDWORD);
66 /* TODO: Explicitly import -A variants (i.e. TCreateHardLinkA) or -W
67 * variants (TCreateHardLinkW), etc.
68 */
65 typedef DWORD WINAPI (*TCreateHardLink) (LPCTSTR lpFileName, 69 typedef DWORD WINAPI (*TCreateHardLink) (LPCTSTR lpFileName,
66 LPCTSTR lpExistingFileName, 70 LPCTSTR lpExistingFileName,
67 LPSECURITY_ATTRIBUTES 71 LPSECURITY_ATTRIBUTES
@@ -99,8 +103,6 @@ extern "C"
99 typedef SC_HANDLE WINAPI (*TOpenService) (SC_HANDLE hSCManager, 103 typedef SC_HANDLE WINAPI (*TOpenService) (SC_HANDLE hSCManager,
100 LPCTSTR lpServiceName, 104 LPCTSTR lpServiceName,
101 DWORD dwDesiredAccess); 105 DWORD dwDesiredAccess);
102 typedef DWORD WINAPI (*TGetBestInterface) (IPAddr dwDestAddr,
103 PDWORD pdwBestIfIndex);
104 typedef DWORD WINAPI (*TGetAdaptersInfo) (PIP_ADAPTER_INFO pAdapterInfo, 106 typedef DWORD WINAPI (*TGetAdaptersInfo) (PIP_ADAPTER_INFO pAdapterInfo,
105 PULONG pOutBufLen); 107 PULONG pOutBufLen);
106 typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, PDWORD); 108 typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, PDWORD);
@@ -158,6 +160,7 @@ extern "C"
158 PSID psidGroup, PACL pDacl, 160 PSID psidGroup, PACL pDacl,
159 PACL pSacl); 161 PACL pSacl);
160 162
163 extern TGetBestInterfaceEx GNGetBestInterfaceEx;
161 extern TNtQuerySystemInformation GNNtQuerySystemInformation; 164 extern TNtQuerySystemInformation GNNtQuerySystemInformation;
162 extern TGetIfEntry GNGetIfEntry; 165 extern TGetIfEntry GNGetIfEntry;
163 extern TGetIpAddrTable GNGetIpAddrTable; 166 extern TGetIpAddrTable GNGetIpAddrTable;
@@ -172,8 +175,7 @@ extern "C"
172 extern TStartServiceCtrlDispatcher GNStartServiceCtrlDispatcher; 175 extern TStartServiceCtrlDispatcher GNStartServiceCtrlDispatcher;
173 extern TControlService GNControlService; 176 extern TControlService GNControlService;
174 extern TOpenService GNOpenService; 177 extern TOpenService GNOpenService;
175 extern TGetBestInterface GNGetBestInterface; 178 extern TGetAdaptersInfo GNGetAdaptersInfo;
176 extern TGetAdaptersInfo GGetAdaptersInfo;
177 extern TNetUserAdd GNNetUserAdd; 179 extern TNetUserAdd GNNetUserAdd;
178 extern TNetUserSetInfo GNNetUserSetInfo; 180 extern TNetUserSetInfo GNNetUserSetInfo;
179 extern TLsaOpenPolicy GNLsaOpenPolicy; 181 extern TLsaOpenPolicy GNLsaOpenPolicy;
@@ -202,6 +204,23 @@ extern "C"
202 DWORD dwAccessMask); 204 DWORD dwAccessMask);
203 char *winErrorStr (const char *prefix, int dwErr); 205 char *winErrorStr (const char *prefix, int dwErr);
204 void EnumNICs (PMIB_IFTABLE * pIfTable, PMIB_IPADDRTABLE * pAddrTable); 206 void EnumNICs (PMIB_IFTABLE * pIfTable, PMIB_IPADDRTABLE * pAddrTable);
207
208#define ENUMNICS3_MASK_OK 0x01
209#define ENUMNICS3_BCAST_OK 0x02
210
211struct EnumNICs3_results
212{
213 unsigned char flags;
214 int is_default;
215 char pretty_name[1001];
216 size_t addr_size;
217 struct sockaddr address;
218 struct sockaddr mask;
219 struct sockaddr broadcast;
220};
221
222 int EnumNICs3 (struct EnumNICs3_results **, int *EnumNICs3_results_count);
223 void EnumNICs3_free (struct EnumNICs3_results *);
205 int GNInitWinEnv (); 224 int GNInitWinEnv ();
206 void GNShutdownWinEnv (); 225 void GNShutdownWinEnv ();
207 226