From 0ce8ad7a2bce2c82668ed07af1d29a6315429ca6 Mon Sep 17 00:00:00 2001 From: Daiyuu Nobori Date: Mon, 8 Oct 2018 11:13:48 +0900 Subject: [PATCH 1/5] At first, restore "Ham" project. This reverts commit 24d23feacf43dc583b742c2e8413e8a8b9d870d2. --- src/BuildUtil/UnixBuildSoftwares.cs | 1 + src/Cedar/WinUi.c | 3 + src/Ham/Cert.ico | Bin 0 -> 1078 bytes src/Ham/Ham.c | 7 + src/Ham/Ham.h | 1 + src/Ham/Ham.rc | 72 +++++ src/Ham/Ham.vcproj | 475 ++++++++++++++++++++++++++++ src/Ham/Mon.c | 1 + src/Ham/Mon.h | 1 + src/Ham/NIC.ico | Bin 0 -> 111650 bytes src/Ham/Scan.c | 1 + src/Ham/Scan.h | 1 + src/Ham/resource.h | 19 ++ src/SEVPN.sln | 7 + 14 files changed, 589 insertions(+) create mode 100644 src/Ham/Cert.ico create mode 100644 src/Ham/Ham.c create mode 100644 src/Ham/Ham.h create mode 100644 src/Ham/Ham.rc create mode 100644 src/Ham/Ham.vcproj create mode 100644 src/Ham/Mon.c create mode 100644 src/Ham/Mon.h create mode 100644 src/Ham/NIC.ico create mode 100644 src/Ham/Scan.c create mode 100644 src/Ham/Scan.h create mode 100644 src/Ham/resource.h diff --git a/src/BuildUtil/UnixBuildSoftwares.cs b/src/BuildUtil/UnixBuildSoftwares.cs index f11063c3..75e259f4 100644 --- a/src/BuildUtil/UnixBuildSoftwares.cs +++ b/src/BuildUtil/UnixBuildSoftwares.cs @@ -143,6 +143,7 @@ namespace BuildUtil @"bin\BuiltHamcoreFiles", @"bin\hamcore", "Cedar", + "Ham", "Mayaqua", "Neo", "vpnbridge", diff --git a/src/Cedar/WinUi.c b/src/Cedar/WinUi.c index 5ba696fc..ff84e76f 100644 --- a/src/Cedar/WinUi.c +++ b/src/Cedar/WinUi.c @@ -1964,6 +1964,9 @@ void RegistWindowsFirewallAllEx(char *dir) MsRegistWindowsFirewallEx2(CEDAR_CUI_STR, "vpncmd.exe", dir); MsRegistWindowsFirewallEx2(CEDAR_CUI_STR, "vpncmd_x64.exe", dir); + + MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "ham.exe", dir); + MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "ham_x64.exe", dir); } // Check whether the notification service is already running diff --git a/src/Ham/Cert.ico b/src/Ham/Cert.ico new file mode 100644 index 0000000000000000000000000000000000000000..ec86d51a2d2f3b82d23a6872edae98c35fb82605 GIT binary patch literal 1078 zcmb_by-ve05WWC2>LZ*y5N{nA(ya`Z7&`b}0Lk4Fk)e+STlzSNky>)4499m)(o%#F zQu%xr-;e#}Vqb^~x*+BmDc&xKZZOYggKrC>>q{bw7(?%%1zq6@VC@85J?zj(lZBc_ zEhq+z?RJY9@v!O3k=(YswSj8&x1%Oy{L4l z#(s$|!#kf6m*tqlfuNB+kuiWBd>%lv6^TRZP! zkM}A6u5Fjf?neIC#bSw<$LPDvpW3!YS~1kWuBHlJa{WUt=M&qL@3(B~+RP7<*lhM8 z9ORi#kJs?I*LN&tu$prTf8Sqxf1mcb_Ax`JK5tH{Jw@Exu8mS7o+|Vv;+=H8APyGgnRroV#`N9I_~+^0 K_b1IK_D-KTYj(8& literal 0 HcmV?d00001 diff --git a/src/Ham/Ham.c b/src/Ham/Ham.c new file mode 100644 index 00000000..faf24a80 --- /dev/null +++ b/src/Ham/Ham.c @@ -0,0 +1,7 @@ +#include + +int main() +{ + printf("Hello, VPN Hamster !!\n"); + return 0; +} diff --git a/src/Ham/Ham.h b/src/Ham/Ham.h new file mode 100644 index 00000000..d3f5a12f --- /dev/null +++ b/src/Ham/Ham.h @@ -0,0 +1 @@ + diff --git a/src/Ham/Ham.rc b/src/Ham/Ham.rc new file mode 100644 index 00000000..f39cbd95 --- /dev/null +++ b/src/Ham/Ham.rc @@ -0,0 +1,72 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Japanese resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) +#ifdef _WIN32 +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT +#pragma code_page(932) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON2 ICON "NIC.ico" +#endif // Japanese resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/Ham/Ham.vcproj b/src/Ham/Ham.vcproj new file mode 100644 index 00000000..5400b8c6 --- /dev/null +++ b/src/Ham/Ham.vcproj @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Ham/Mon.c b/src/Ham/Mon.c new file mode 100644 index 00000000..d3f5a12f --- /dev/null +++ b/src/Ham/Mon.c @@ -0,0 +1 @@ + diff --git a/src/Ham/Mon.h b/src/Ham/Mon.h new file mode 100644 index 00000000..d3f5a12f --- /dev/null +++ b/src/Ham/Mon.h @@ -0,0 +1 @@ + diff --git a/src/Ham/NIC.ico b/src/Ham/NIC.ico new file mode 100644 index 0000000000000000000000000000000000000000..0310b26588b58d117c8af009cbb289b9b58006c0 GIT binary patch literal 111650 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 Date: Mon, 8 Oct 2018 11:19:39 +0900 Subject: [PATCH 2/5] Next, change the project name "Ham" to "vpntest" so every programmer will recognize easily it is a test program. --- src/BuildUtil/UnixBuildSoftwares.cs | 4 +- src/Cedar/WinUi.c | 4 +- src/Ham/Cert.ico | Bin 1078 -> 0 bytes src/Ham/Mon.c | 1 - src/Ham/Mon.h | 1 - src/Ham/Scan.c | 1 - src/Ham/Scan.h | 1 - src/SEVPN.sln | 2 +- src/{Ham => vpntest}/resource.h | 0 src/{Ham/Ham.c => vpntest/vpntest.c} | 0 src/{Ham/Ham.h => vpntest/vpntest.h} | 0 src/{Ham/NIC.ico => vpntest/vpntest.ico} | Bin src/{Ham/Ham.rc => vpntest/vpntest.rc} | 2 +- .../Ham.vcproj => vpntest/vpntest.vcproj} | 44 ++++-------------- 14 files changed, 16 insertions(+), 44 deletions(-) delete mode 100644 src/Ham/Cert.ico delete mode 100644 src/Ham/Mon.c delete mode 100644 src/Ham/Mon.h delete mode 100644 src/Ham/Scan.c delete mode 100644 src/Ham/Scan.h rename src/{Ham => vpntest}/resource.h (100%) rename src/{Ham/Ham.c => vpntest/vpntest.c} (100%) rename src/{Ham/Ham.h => vpntest/vpntest.h} (100%) rename src/{Ham/NIC.ico => vpntest/vpntest.ico} (100%) rename src/{Ham/Ham.rc => vpntest/vpntest.rc} (91%) rename src/{Ham/Ham.vcproj => vpntest/vpntest.vcproj} (92%) diff --git a/src/BuildUtil/UnixBuildSoftwares.cs b/src/BuildUtil/UnixBuildSoftwares.cs index 75e259f4..b5ecebe7 100644 --- a/src/BuildUtil/UnixBuildSoftwares.cs +++ b/src/BuildUtil/UnixBuildSoftwares.cs @@ -143,7 +143,7 @@ namespace BuildUtil @"bin\BuiltHamcoreFiles", @"bin\hamcore", "Cedar", - "Ham", + "vpntest", "Mayaqua", "Neo", "vpnbridge", @@ -732,7 +732,7 @@ namespace BuildUtil { string[] programNames = { - "Ham", + "vpntest", "vpnserver", "vpnbridge", "vpnclient", diff --git a/src/Cedar/WinUi.c b/src/Cedar/WinUi.c index ff84e76f..7ea05e0c 100644 --- a/src/Cedar/WinUi.c +++ b/src/Cedar/WinUi.c @@ -1965,8 +1965,8 @@ void RegistWindowsFirewallAllEx(char *dir) MsRegistWindowsFirewallEx2(CEDAR_CUI_STR, "vpncmd.exe", dir); MsRegistWindowsFirewallEx2(CEDAR_CUI_STR, "vpncmd_x64.exe", dir); - MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "ham.exe", dir); - MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "ham_x64.exe", dir); + MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "vpntest.exe", dir); + MsRegistWindowsFirewallEx2(CEDAR_PRODUCT_STR, "vpntest_x64.exe", dir); } // Check whether the notification service is already running diff --git a/src/Ham/Cert.ico b/src/Ham/Cert.ico deleted file mode 100644 index ec86d51a2d2f3b82d23a6872edae98c35fb82605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmb_by-ve05WWC2>LZ*y5N{nA(ya`Z7&`b}0Lk4Fk)e+STlzSNky>)4499m)(o%#F zQu%xr-;e#}Vqb^~x*+BmDc&xKZZOYggKrC>>q{bw7(?%%1zq6@VC@85J?zj(lZBc_ zEhq+z?RJY9@v!O3k=(YswSj8&x1%Oy{L4l z#(s$|!#kf6m*tqlfuNB+kuiWBd>%lv6^TRZP! zkM}A6u5Fjf?neIC#bSw<$LPDvpW3!YS~1kWuBHlJa{WUt=M&qL@3(B~+RP7<*lhM8 z9ORi#kJs?I*LN&tu$prTf8Sqxf1mcb_Ax`JK5tH{Jw@Exu8mS7o+|Vv;+=H8APyGgnRroV#`N9I_~+^0 K_b1IK_D-KTYj(8& diff --git a/src/Ham/Mon.c b/src/Ham/Mon.c deleted file mode 100644 index d3f5a12f..00000000 --- a/src/Ham/Mon.c +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/Ham/Mon.h b/src/Ham/Mon.h deleted file mode 100644 index d3f5a12f..00000000 --- a/src/Ham/Mon.h +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/Ham/Scan.c b/src/Ham/Scan.c deleted file mode 100644 index d3f5a12f..00000000 --- a/src/Ham/Scan.c +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/Ham/Scan.h b/src/Ham/Scan.h deleted file mode 100644 index d3f5a12f..00000000 --- a/src/Ham/Scan.h +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/SEVPN.sln b/src/SEVPN.sln index 5435d06a..1c4a3124 100644 --- a/src/SEVPN.sln +++ b/src/SEVPN.sln @@ -90,7 +90,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cedar", "Cedar\Cedar.vcproj {384815C3-333C-4CEC-9DCD-B6AB2602EBB9} = {384815C3-333C-4CEC-9DCD-B6AB2602EBB9} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ham", "Ham\Ham.vcproj", "{1ED5782B-1734-4FC6-AA9E-F7181CDBA8A7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vpntest", "vpntest\vpntest.vcproj", "{1ED5782B-1734-4FC6-AA9E-F7181CDBA8A7}" ProjectSection(ProjectDependencies) = postProject {DB2A0C4F-D685-41DD-91BA-06E9EEA381CF} = {DB2A0C4F-D685-41DD-91BA-06E9EEA381CF} {2928D768-DEC3-40D3-8E51-26E364497C9B} = {2928D768-DEC3-40D3-8E51-26E364497C9B} diff --git a/src/Ham/resource.h b/src/vpntest/resource.h similarity index 100% rename from src/Ham/resource.h rename to src/vpntest/resource.h diff --git a/src/Ham/Ham.c b/src/vpntest/vpntest.c similarity index 100% rename from src/Ham/Ham.c rename to src/vpntest/vpntest.c diff --git a/src/Ham/Ham.h b/src/vpntest/vpntest.h similarity index 100% rename from src/Ham/Ham.h rename to src/vpntest/vpntest.h diff --git a/src/Ham/NIC.ico b/src/vpntest/vpntest.ico similarity index 100% rename from src/Ham/NIC.ico rename to src/vpntest/vpntest.ico diff --git a/src/Ham/Ham.rc b/src/vpntest/vpntest.rc similarity index 91% rename from src/Ham/Ham.rc rename to src/vpntest/vpntest.rc index f39cbd95..6d048626 100644 --- a/src/Ham/Ham.rc +++ b/src/vpntest/vpntest.rc @@ -54,7 +54,7 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_ICON2 ICON "NIC.ico" +IDI_ICON2 ICON "vpntest.ico" #endif // Japanese resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/Ham/Ham.vcproj b/src/vpntest/vpntest.vcproj similarity index 92% rename from src/Ham/Ham.vcproj rename to src/vpntest/vpntest.vcproj index 5400b8c6..e8533dc5 100644 --- a/src/Ham/Ham.vcproj +++ b/src/vpntest/vpntest.vcproj @@ -2,9 +2,9 @@ @@ -72,7 +72,7 @@ - - - - @@ -435,19 +427,7 @@ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > - - - - - - @@ -457,15 +437,11 @@ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" > - - From ee208dd6f0165efb7170919e22ccc2b644cb45f3 Mon Sep 17 00:00:00 2001 From: Daiyuu Nobori Date: Mon, 8 Oct 2018 11:50:11 +0900 Subject: [PATCH 3/5] Finally, the implementation of test code is completed! Ha ha ha --- src/Mayaqua/Mayaqua.c | 5 + src/Mayaqua/Tracking.c | 10 +- src/vpntest/vpntest.c | 242 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 253 insertions(+), 4 deletions(-) diff --git a/src/Mayaqua/Mayaqua.c b/src/Mayaqua/Mayaqua.c index a452ac91..cd8708cb 100644 --- a/src/Mayaqua/Mayaqua.c +++ b/src/Mayaqua/Mayaqua.c @@ -1151,6 +1151,11 @@ void PrintKernelStatus() Print(" !!! MEMORY LEAKS DETECTED !!!\n\n"); if (g_memcheck == false) { + if (IsHamMode()) + { + Print(" Enable /memcheck startup option to see the leaking memory heap.\n"); + Print(" Press Enter key to exit the process.\n"); + } GetLine(NULL, 0); } } diff --git a/src/Mayaqua/Tracking.c b/src/Mayaqua/Tracking.c index 3dda6c0a..ae0bd1f6 100644 --- a/src/Mayaqua/Tracking.c +++ b/src/Mayaqua/Tracking.c @@ -157,7 +157,15 @@ void MemoryDebugMenu() TOKEN_LIST *t; char *cmd; Print("Mayaqua Kernel Memory Debug Tools\n" - "Copyright (c) SoftEther Corporation. All Rights Reserved.\n\n"); + "Copyright (c) SoftEther VPN Project. All Rights Reserved.\n\n"); + +#ifndef OS_WIN32 + Print("Unfortunately The call stack is not recorded on non-Windows systems\n"); + Print("since UnixGetCallStack() and UnixGetCallStackSymbolInfo() is not implemented.\n"); + Print("Therefore please use valgrind or other memory leak check tools\n"); + Print("to get the actual call stacks of memory leak causes.\n\n"); +#endif // OS_WIN32 + g_memcheck = false; while (true) { diff --git a/src/vpntest/vpntest.c b/src/vpntest/vpntest.c index faf24a80..7ba5ef67 100644 --- a/src/vpntest/vpntest.c +++ b/src/vpntest/vpntest.c @@ -1,7 +1,243 @@ -#include +// vpntest.c +// VPN Server / VPN Client / VPN Bridge test program -int main() +#include +#define VPN_EXE + +#include +#include +#include +#include +#include +#include +#include +#include +#include "vpntest.h" + + + +void client_test(UINT num, char **arg) { - printf("Hello, VPN Hamster !!\n"); + Print("VPN Client Test. Press Enter key to stop the VPN Client .\n"); + CtStartClient(); + GetLine(NULL, 0); + CtStopClient(); +} + +void server_test(UINT num, char **arg) +{ + Print("VPN Server Test. Press Enter key to stop the VPN Server .\n"); + + StInit(); + + StStartServer(false); + + GetLine(NULL, 0); + + StStopServer(); + + StFree(); +} + +void bridge_test(UINT num, char **arg) +{ + Print("VPN Bridge Test. Press Enter key to stop the VPN Bridge .\n"); + + StInit(); + + StStartServer(true); + + GetLine(NULL, 0); + + StStopServer(); + + StFree(); +} + +void memory_leak_test(UINT num, char **arg) +{ + char *a = Malloc(1); + + Print("Hello, I am the great dictator of this kingdom!\n"); + Print("Just now I called Malloc(1) and never free! Ha ha ha !!\n"); +} + + +// The list of test functions +// Test function definition list +typedef void (TEST_PROC)(UINT num, char **arg); + +typedef struct TEST_LIST +{ + char *command_str; + TEST_PROC *proc; + char *help; +} TEST_LIST; + +TEST_LIST test_list[] = +{ + {"c", client_test, "VPN Client in Test Mode, enter key to graceful stop."}, + {"s", server_test, "VPN Server in Test Mode, enter key to graceful stop."}, + {"b", bridge_test, "VPN Bridge in Test Mode, enter key to graceful stop."}, + {"memory_leak", memory_leak_test, "Memory leak test: Try to leak one byte by malloc()."}, +}; + +// Test function +void TestMain(char *cmd) +{ + char tmp[MAX_SIZE]; + bool first = true; + bool exit_now = false; + + Print("SoftEther VPN Project\n"); + Print("vpntest: VPN Server / VPN Client / VPN Bridge test program\n"); + Print("Usage: vpntest [/memcheck] [command]\n\n"); + Print("Enter '?' or 'help' to show the command list.\n"); + Print("Enter 'q' or 'exit' to exit the process.\n\n"); + Print(" - In Jurassic Park: \"It's a UNIX system! I know this!\"\n\n"); + +#ifdef OS_WIN32 + MsSetEnableMinidump(false); +#endif // OS_WIN32 + + while (true) + { + Print("TEST>"); + if (first && StrLen(cmd) != 0 && g_memcheck == false) + { + first = false; + StrCpy(tmp, sizeof(tmp), cmd); + exit_now = true; + Print("%s\n", cmd); + } + else + { + GetLine(tmp, sizeof(tmp)); + } + Trim(tmp); + if (StrLen(tmp) != 0) + { + UINT i, num; + bool b = false; + TOKEN_LIST *token = ParseCmdLine(tmp); + char *cmd = token->Token[0]; + if (!StrCmpi(cmd, "exit") || !StrCmpi(cmd, "quit") || !StrCmpi(cmd, "q")) + { + FreeToken(token); + break; + } + else if (StrCmpi(cmd, "?") == 0 || StrCmpi(cmd, "help") == 0) + { + UINT max_len = 0; + Print("Available commands:\n\n"); + num = sizeof(test_list) / sizeof(TEST_LIST); + for (i = 0;i < num;i++) + { + TEST_LIST *t = &test_list[i]; + max_len = MAX(max_len, StrLen(t->command_str)); + } + for (i = 0;i < num;i++) + { + TEST_LIST *t = &test_list[i]; + UINT len = StrLen(t->command_str); + char *pad = NULL; + if (len < max_len) + { + UINT padlen = max_len - len; + pad = MakeCharArray(' ', padlen); + } + Print(" '%s'%s : %s\n", t->command_str, pad == NULL ? "" : pad, t->help); + if (pad != NULL) + { + Free(pad); + } + } + Print("\n"); + } + else if (StartWith(tmp, "vpncmd")) + { + wchar_t *s = CopyStrToUni(tmp); + CommandMain(s); + Free(s); + } + else + { + num = sizeof(test_list) / sizeof(TEST_LIST); + for (i = 0;i < num;i++) + { + if (!StrCmpi(test_list[i].command_str, cmd)) + { + char **arg = Malloc(sizeof(char *) * (token->NumTokens - 1)); + UINT j; + for (j = 0;j < token->NumTokens - 1;j++) + { + arg[j] = CopyStr(token->Token[j + 1]); + } + test_list[i].proc(token->NumTokens - 1, arg); + for (j = 0;j < token->NumTokens - 1;j++) + { + Free(arg[j]); + } + Free(arg); + b = true; + Print("\n"); + break; + } + } + if (b == false) + { + Print("Invalid Command: %s\n\n", cmd); + } + } + FreeToken(token); + + if (exit_now) + { + break; + } + } + } + Print("Exiting...\n\n"); +} + +// Main function +int main(int argc, char *argv[]) +{ + bool memchk = false; + UINT i; + char cmd[MAX_SIZE]; + char *s; + + InitProcessCallOnce(); + + cmd[0] = 0; + if (argc >= 2) + { + for (i = 1;i < (UINT)argc;i++) + { + s = argv[i]; + if (s[0] == '/') + { + if (!StrCmpi(s, "/memcheck")) + { + memchk = true; + } + } + else + { + StrCpy(cmd, sizeof(cmd), &s[0]); + } + } + } + + InitMayaqua(memchk, true, argc, argv); + EnableProbe(true); + InitCedar(); + SetHamMode(); + TestMain(cmdline); + FreeCedar(); + FreeMayaqua(); + return 0; } + From 97d7f3fb057c322b344ed3420eee965e49551bcf Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Mon, 8 Oct 2018 05:10:54 +0200 Subject: [PATCH 4/5] Add "vpntest" to CMake --- src/CMakeLists.txt | 10 ++++++++++ src/vpntest/CMakeLists.txt | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 src/vpntest/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8842cab4..61905e3b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -115,6 +115,10 @@ get_target_property(VPNBRIDGE_RUNTIME_OUTPUT_DIRECTORY vpnbridge RUNTIME_OUTPUT_ add_subdirectory(vpncmd) get_target_property(VPNCMD_RUNTIME_OUTPUT_DIRECTORY vpncmd RUNTIME_OUTPUT_DIRECTORY) +# vpntest +add_subdirectory(vpntest) +get_target_property(VPNTEST_RUNTIME_OUTPUT_DIRECTORY vpntest RUNTIME_OUTPUT_DIRECTORY) + # hamcore.se2 archive file add_custom_target(hamcore-archive-build ALL @@ -148,6 +152,12 @@ add_custom_command(TARGET hamcore-archive-build COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNCMD_RUNTIME_OUTPUT_DIRECTORY} ) +# Copy hamcore.se2 to vpntest's directory +add_custom_command(TARGET hamcore-archive-build + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tmp/hamcore.se2 ${VPNTEST_RUNTIME_OUTPUT_DIRECTORY} +) + # Copy "vpnserver" directory to /usr/lib(exec)/softether/, install launch script and systemd service install(DIRECTORY ${VPNSERVER_RUNTIME_OUTPUT_DIRECTORY} COMPONENT "vpnserver" diff --git a/src/vpntest/CMakeLists.txt b/src/vpntest/CMakeLists.txt new file mode 100644 index 00000000..b8914254 --- /dev/null +++ b/src/vpntest/CMakeLists.txt @@ -0,0 +1,10 @@ +add_executable(vpntest vpntest.c vpntest.h) + +set_target_properties(vpntest + PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest" + LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest" + RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}/vpntest" +) + +target_link_libraries(vpntest cedar mayaqua) From ff85841dab2a7df4bf36f39f591abf3fb073c5fd Mon Sep 17 00:00:00 2001 From: Daiyuu Nobori Date: Mon, 8 Oct 2018 13:15:51 +0900 Subject: [PATCH 5/5] Fix MSBuild error. --- src/SEVPN.sln | 1 - 1 file changed, 1 deletion(-) diff --git a/src/SEVPN.sln b/src/SEVPN.sln index 1c4a3124..fdf9b32f 100644 --- a/src/SEVPN.sln +++ b/src/SEVPN.sln @@ -92,7 +92,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cedar", "Cedar\Cedar.vcproj EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vpntest", "vpntest\vpntest.vcproj", "{1ED5782B-1734-4FC6-AA9E-F7181CDBA8A7}" ProjectSection(ProjectDependencies) = postProject - {DB2A0C4F-D685-41DD-91BA-06E9EEA381CF} = {DB2A0C4F-D685-41DD-91BA-06E9EEA381CF} {2928D768-DEC3-40D3-8E51-26E364497C9B} = {2928D768-DEC3-40D3-8E51-26E364497C9B} {384815C3-333C-4CEC-9DCD-B6AB2602EBB9} = {384815C3-333C-4CEC-9DCD-B6AB2602EBB9} EndProjectSection