diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-11-29 11:47:40 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-11-29 11:47:40 +0000 |
commit | d155690a24d645e746d7cd12e5c1d47646d96558 (patch) | |
tree | 657f47d48cf70950ba240ebc0414a71f6cac6bed /src/include | |
parent | ba232c9d203303cd2beb2994fc49c5d5b700d85c (diff) | |
download | gnunet-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.h | 27 |
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 | |||
211 | struct 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 | ||