aboutsummaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-10-31 11:55:26 +0100
committerSimon Rozman <simon@rozman.si>2020-10-31 19:11:51 +0100
commit937eb447278c2bc1b30852905c7740bcdedb534d (patch)
treebec9edcff4b45ae2a076f7cb218d1f98caa36da1 /api
parentapi: simplify build settings (diff)
downloadwintun-937eb447278c2bc1b30852905c7740bcdedb534d.tar.xz
wintun-937eb447278c2bc1b30852905c7740bcdedb534d.zip
api: get rid of pch and make headers sane
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'api')
-rw-r--r--api/adapter.c23
-rw-r--r--api/adapter.h2
-rw-r--r--api/api.vcxproj12
-rw-r--r--api/api.vcxproj.filters18
-rw-r--r--api/elevate.c5
-rw-r--r--api/elevate.h2
-rw-r--r--api/entry.c (renamed from api/api.c)16
-rw-r--r--api/entry.h (renamed from api/api.h)0
-rw-r--r--api/logger.c3
-rw-r--r--api/logger.h1
-rw-r--r--api/namespace.c7
-rw-r--r--api/nci.c3
-rw-r--r--api/ntldr.h3
-rw-r--r--api/pch.h43
-rw-r--r--api/registry.c6
-rw-r--r--api/registry.h1
-rw-r--r--api/resource.c5
-rw-r--r--api/rundll32.c6
-rw-r--r--api/session.c7
19 files changed, 89 insertions, 74 deletions
diff --git a/api/adapter.c b/api/adapter.c
index c0df8e9..bc166c6 100644
--- a/api/adapter.c
+++ b/api/adapter.c
@@ -3,7 +3,28 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "adapter.h"
+#include "elevate.h"
+#include "entry.h"
+#include "logger.h"
+#include "namespace.h"
+#include "nci.h"
+#include "ntldr.h"
+#include "registry.h"
+#include "resource.h"
+
+#include <Windows.h>
+#include <winternl.h>
+#define _NTDEF_ //TODO: figure out how to include ntsecapi and winternal together without requiring this
+#include <cfgmgr32.h>
+#include <devguid.h>
+#include <iphlpapi.h>
+#include <ndisguid.h>
+#include <newdev.h>
+#include <NTSecAPI.h>
+#include <SetupAPI.h>
+#include <Shlwapi.h>
+#include <wchar.h>
#pragma warning(disable : 4221) /* nonstandard: address of automatic in initializer */
diff --git a/api/adapter.h b/api/adapter.h
index e7480c6..628299a 100644
--- a/api/adapter.h
+++ b/api/adapter.h
@@ -6,7 +6,9 @@
#pragma once
#include "wintun.h"
+#include <IPExport.h>
#include <SetupAPI.h>
+#include <Windows.h>
#define MAX_INSTANCE_ID MAX_PATH /* TODO: Is MAX_PATH always enough? */
#define WINTUN_HWID L"Wintun"
diff --git a/api/api.vcxproj b/api/api.vcxproj
index 3c1f58d..0883de8 100644
--- a/api/api.vcxproj
+++ b/api/api.vcxproj
@@ -104,8 +104,6 @@
<ClCompile>
<PreprocessorDefinitions>_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="Exists('$(OutDir)whql\')">HAVE_WHQL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalOptions>/volatile:iso %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
@@ -153,28 +151,24 @@
<None Include="exports.def" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="api.h" />
+ <ClInclude Include="entry.h" />
<ClInclude Include="adapter.h" />
<ClInclude Include="elevate.h" />
<ClInclude Include="logger.h" />
<ClInclude Include="namespace.h" />
<ClInclude Include="nci.h" />
<ClInclude Include="ntldr.h" />
- <ClInclude Include="pch.h" />
<ClInclude Include="registry.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="wintun.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="api.c" />
+ <ClCompile Include="entry.c" />
<ClCompile Include="adapter.c" />
<ClCompile Include="elevate.c" />
<ClCompile Include="logger.c" />
<ClCompile Include="namespace.c" />
<ClCompile Include="nci.c" />
- <ClCompile Include="pch.c">
- <PrecompiledHeader>Create</PrecompiledHeader>
- </ClCompile>
<ClCompile Include="registry.c" />
<ClCompile Include="resource.c" />
<ClCompile Include="session.c" />
@@ -197,4 +191,4 @@
<Target Name="CleanSignTarget">
<Delete Files="$(IntermediateOutputPath)$(TargetName).sign" />
</Target>
-</Project>
+</Project> \ No newline at end of file
diff --git a/api/api.vcxproj.filters b/api/api.vcxproj.filters
index c65b099..90061fb 100644
--- a/api/api.vcxproj.filters
+++ b/api/api.vcxproj.filters
@@ -25,12 +25,6 @@
</None>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="api.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="pch.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="nci.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -58,11 +52,11 @@
<ClInclude Include="elevate.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="entry.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
- <ClCompile Include="api.c">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="namespace.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -75,9 +69,6 @@
<ClCompile Include="registry.c">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="pch.c">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="logger.c">
<Filter>Source Files</Filter>
</ClCompile>
@@ -93,5 +84,8 @@
<ClCompile Include="elevate.c">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="entry.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/api/elevate.c b/api/elevate.c
index 9baaa97..e9bab7f 100644
--- a/api/elevate.c
+++ b/api/elevate.c
@@ -3,7 +3,10 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "elevate.h"
+
+#include <Windows.h>
+#include <TlHelp32.h>
BOOL
ElevateToSystem(void)
diff --git a/api/elevate.h b/api/elevate.h
index 5a3b70c..ec054ba 100644
--- a/api/elevate.h
+++ b/api/elevate.h
@@ -5,5 +5,7 @@
#pragma once
+#include <Windows.h>
+
BOOL
ElevateToSystem(void);
diff --git a/api/api.c b/api/entry.c
index 7f820ae..df24ff9 100644
--- a/api/api.c
+++ b/api/entry.c
@@ -3,7 +3,21 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "adapter.h"
+#include "entry.h"
+#include "logger.h"
+#include "registry.h"
+#include "namespace.h"
+#include "nci.h"
+#include "wintun.h"
+
+#include <Windows.h>
+#pragma warning(push)
+#pragma warning(disable : 4201)
+/* nonstandard extension used: nameless struct/union */
+#include <delayimp.h>
+#pragma warning(pop)
+#include <sddl.h>
HINSTANCE ResourceModule;
HANDLE ModuleHeap;
diff --git a/api/api.h b/api/entry.h
index 0e0e3a6..0e0e3a6 100644
--- a/api/api.h
+++ b/api/entry.h
diff --git a/api/logger.c b/api/logger.c
index 468e22d..6de25c8 100644
--- a/api/logger.c
+++ b/api/logger.c
@@ -3,7 +3,8 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "logger.h"
+#include <Windows.h>
static BOOL CALLBACK
NopLogger(_In_ WINTUN_LOGGER_LEVEL Level, _In_z_ const WCHAR *LogLine)
diff --git a/api/logger.h b/api/logger.h
index 76d98f8..e126748 100644
--- a/api/logger.h
+++ b/api/logger.h
@@ -6,6 +6,7 @@
#pragma once
#include "wintun.h"
+#include <Windows.h>
extern WINTUN_LOGGER_FUNC Logger;
diff --git a/api/namespace.c b/api/namespace.c
index 6eff910..baee8a2 100644
--- a/api/namespace.c
+++ b/api/namespace.c
@@ -3,7 +3,12 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "entry.h"
+#include "logger.h"
+#include "namespace.h"
+
+#include <Windows.h>
+#include <bcrypt.h>
static BOOL HasInitialized = FALSE;
static CRITICAL_SECTION Initializing;
diff --git a/api/nci.c b/api/nci.c
index 48bab92..e4dea9d 100644
--- a/api/nci.c
+++ b/api/nci.c
@@ -3,7 +3,8 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "nci.h"
+#include <Windows.h>
static HMODULE NciModule;
diff --git a/api/ntldr.h b/api/ntldr.h
index dca0e78..3511fd8 100644
--- a/api/ntldr.h
+++ b/api/ntldr.h
@@ -31,3 +31,6 @@ typedef struct _RTL_PROCESS_MODULES
ULONG NumberOfModules;
RTL_PROCESS_MODULE_INFORMATION Modules[1];
} RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
+
+
+#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) //TODO: #include <ntstatus.h> instead of this
diff --git a/api/pch.h b/api/pch.h
deleted file mode 100644
index 4defd82..0000000
--- a/api/pch.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0
- *
- * Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
- */
-
-#pragma once
-
-#include "adapter.h"
-#include "api.h"
-#include "elevate.h"
-#include "logger.h"
-#include "namespace.h"
-#include "nci.h"
-#include "ntldr.h"
-#include "registry.h"
-#include "resource.h"
-#include "wintun.h"
-
-#pragma warning(push)
-#pragma warning(disable: 4201) /* nonstandard extension used: nameless struct/union */
-#include <bcrypt.h>
-#include <cfgmgr32.h>
-#include <delayimp.h>
-#include <devguid.h>
-#include <IPExport.h>
-#include <iphlpapi.h>
-#include <locale.h>
-#include <ndisguid.h>
-#include <newdev.h>
-#include <objbase.h>
-#include <Psapi.h>
-#include <sddl.h>
-#include <SetupAPI.h>
-#include <Shlwapi.h>
-#include <string.h>
-#include <TlHelp32.h>
-#include <wchar.h>
-#include <Windows.h>
-#include <winternl.h>
-#define _NTDEF_ //TODO: find a better way to include both ntsecapi.h and winternl.h or include ntdef.h for real somehow
-#include <NTSecAPI.h>
-#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) //TODO: #include <ntstatus.h> instead of this
-#pragma warning(pop) \ No newline at end of file
diff --git a/api/registry.c b/api/registry.c
index c0ebe93..1428165 100644
--- a/api/registry.c
+++ b/api/registry.c
@@ -3,7 +3,11 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "entry.h"
+#include "logger.h"
+#include "registry.h"
+#include <Windows.h>
+#include <wchar.h>
static WINTUN_STATUS
OpenKeyWait(_In_ HKEY Key, _Inout_z_ WCHAR *Path, _In_ DWORD Access, _In_ ULONGLONG Deadline, _Out_ HKEY *KeyOut)
diff --git a/api/registry.h b/api/registry.h
index a8e5f5f..0ba7279 100644
--- a/api/registry.h
+++ b/api/registry.h
@@ -6,6 +6,7 @@
#pragma once
#include "wintun.h"
+#include <Windows.h>
#define MAX_REG_PATH \
256 /* Maximum registry path length \
diff --git a/api/resource.c b/api/resource.c
index 17bed6a..94dc80b 100644
--- a/api/resource.c
+++ b/api/resource.c
@@ -3,7 +3,10 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "entry.h"
+#include "logger.h"
+#include "resource.h"
+#include <Windows.h>
WINTUN_STATUS
ResourceGetAddress(_In_z_ const WCHAR *ResourceName, _Out_ const void **Address, _Out_ DWORD *Size)
diff --git a/api/rundll32.c b/api/rundll32.c
index bdec3b6..40ec3fe 100644
--- a/api/rundll32.c
+++ b/api/rundll32.c
@@ -3,7 +3,11 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "adapter.h"
+#include "logger.h"
+#include "wintun.h"
+
+#include <Windows.h>
#define EXPORT comment(linker, "/EXPORT:" __FUNCTION__ "=" __FUNCDNAME__)
diff --git a/api/session.c b/api/session.c
index eb71147..67772f0 100644
--- a/api/session.c
+++ b/api/session.c
@@ -3,7 +3,12 @@
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
-#include "pch.h"
+#include "adapter.h"
+#include "elevate.h"
+#include "entry.h"
+#include "logger.h"
+#include "wintun.h"
+#include <Windows.h>
#pragma warning(disable : 4200) /* nonstandard: zero-sized array in struct/union */