1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-22 17:39:53 +03:00

Compare commits

...

10 Commits

Author SHA1 Message Date
tickerguy
b44c85b299
Merge 0643ae70f5 into 7b9fd5bdcd 2024-04-08 09:36:10 +02:00
Ilya Shipitsin
7b9fd5bdcd
Merge pull request #1976 from chipitsine/master
Windows CI: migrate ADO --> Github Actions
2024-04-06 23:42:06 +02:00
Ilya Shipitsin
53b7db3578
Merge pull request #1973 from hiura2023/master
Fix "RemoveDefGwOnDhcpForLocalhost" function: Change to exclude unplugged device from MAC address list.
2024-04-06 16:34:03 +02:00
Ilia Shipitsin
4c1eeb717b CI: harden artifacts upload 2024-04-05 22:15:35 +02:00
Ilia Shipitsin
7981e16e0b CI: add windows GitHub Actions 2024-04-05 22:09:39 +02:00
Ilia Shipitsin
62e7f0ba8a CI: adopt windows_build.bat for GitHub actions 2024-04-05 22:08:51 +02:00
hiura2023
2dbebe271d
Merge branch 'SoftEtherVPN:master' into master 2024-03-31 23:10:42 +09:00
hiura
eb793dc257 Merge branch 'master' of https://github.com/hiura2023/SoftEtherVPN 2024-03-31 23:08:12 +09:00
hiura
97203568e7 Fix 'RemoveDefGwOnDhcpForLocalhost' function: Change to exclude unplugged device from MAC address list. 2024-03-31 23:07:16 +09:00
tickerguy
0643ae70f5
Update BridgeUnix.c
On FreeBSD the stock code will attempt to expand the interface MTU any time a packet is to be sent that exceeds the current MTU.  This results in a down/up on the interface that is wildly disruptive to existing services on that adapter and, eventually, is likely to run into MTU limits and start logging failures, even with jumbo-frame capable adapters.  Thus if compiling on a FreeBSD machine disable this capability.  Tested against 12.3-STABLE and 13.1-STABLE on v4.38-9760 from the FreeBSD ports tree but likely applies here as well; see bug report https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267178
2022-10-19 12:39:32 -04:00
6 changed files with 69 additions and 0 deletions

View File

@ -14,6 +14,12 @@ if %SE_BUILD_NUMBER_TOKEN_LENGTH% equ 64 (
set BUILD_NUMBER=0
)
if "%BUILD_BINARIESDIRECTORY%"=="" (set BUILD_BINARIESDIRECTORY=build)
if "%BUILD_SOURCESDIRECTORY%"=="" (set BUILD_SOURCESDIRECTORY=%cd%)
if not exist %BUILD_BINARIESDIRECTORY% mkdir %BUILD_BINARIESDIRECTORY%
cd %BUILD_BINARIESDIRECTORY%
call "%VCVARS_PATH%"
@ -21,6 +27,7 @@ call "%VCVARS_PATH%"
cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=%VCPKG_TRIPLET% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER="%COMPILER_PATH%" -DCMAKE_CXX_COMPILER="%COMPILER_PATH%" -DBUILD_NUMBER=%BUILD_NUMBER% "%BUILD_SOURCESDIRECTORY%"
cmake --build .
if "%BUILD_STAGINGDIRECTORY%"=="" (set BUILD_STAGINGDIRECTORY=%cd%)
mkdir "%BUILD_STAGINGDIRECTORY%\installers"
vpnsetup /SFXMODE:vpnclient /SFXOUT:"%BUILD_STAGINGDIRECTORY%\installers\softether-vpnclient-%VERSION%.%BUILD_NUMBER%.%ARCHITECTURE%.exe"
vpnsetup /SFXMODE:vpnserver_vpnbridge /SFXOUT:"%BUILD_STAGINGDIRECTORY%\installers\softether-vpnserver_vpnbridge-%VERSION%.%BUILD_NUMBER%.%ARCHITECTURE%.exe"

48
.github/workflows/windows.yml vendored Normal file
View File

@ -0,0 +1,48 @@
on: [push, pull_request]
permissions:
contents: read
jobs:
build_and_test:
strategy:
matrix:
platform: [
{ ARCHITECTURE: x86, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/bin/clang-cl.exe", VCPKG_TRIPLET: "x86-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars32.bat"},
{ ARCHITECTURE: x64, COMPILER_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe", VCPKG_TRIPLET: "x64-windows-static", VCVARS_PATH: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"}
]
runs-on: windows-latest
name: ${{ matrix.platform.ARCHITECTURE }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Cache vcpkg
uses: actions/cache@v4
with:
path: 'build/vcpkg_installed/'
key: vcpkg-${{ matrix.platform.VCPKG_TRIPLET }}
- name: Build
env:
ARCHITECTURE: ${{ matrix.platform.ARCHITECTURE }}
COMPILER_PATH: ${{ matrix.platform.COMPILER_PATH }}
VCPKG_TRIPLET: ${{ matrix.platform.VCPKG_TRIPLET }}
VCVARS_PATH: ${{ matrix.platform.VCVARS_PATH }}
run: .ci/azure-pipelines/windows_build.bat
- name: Test
shell: powershell
run: |
. .ci/appveyor-vpntest.ps1
- uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: Binaries-${{ matrix.platform.ARCHITECTURE }}
path: |
build/*.exe
build/*.pdb
build/*.se2
- uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: Installers-${{ matrix.platform.ARCHITECTURE }}
path: build/installers

View File

@ -805,7 +805,12 @@ bool EthIsChangeMtuSupported(ETH *e)
return false;
}
// FreeBSD seriously dislikes MTU changes; disable if compiled on that platform
#ifndef __FreeBSD__
return true;
#else
return false;
#endif
#else // defined(UNIX_LINUX) || defined(UNIX_BSD) || defined(UNIX_SOLARIS)
return false;
#endif // defined(UNIX_LINUX) || defined(UNIX_BSD) || defined(UNIX_SOLARIS)

View File

@ -2568,6 +2568,7 @@ MS_ADAPTER_LIST *MsCreateAdapterListInnerExVista(bool no_info)
UniStrCpy(a->TitleW, sizeof(a->TitleW), title);
UniToStr(a->Title, sizeof(a->Title), title);
a->Index = r->InterfaceIndex;
a->MediaConnectState = r->MediaConnectState;
a->Type = r->Type;
a->Status = ConvertMidStatusVistaToXp(r->OperStatus);
a->Mtu = r->Mtu;

View File

@ -281,6 +281,7 @@ typedef struct MS_ADAPTER
char Title[MAX_PATH]; // Display name
wchar_t TitleW[MAX_PATH]; // Display Name (Unicode)
UINT Index; // Index
UINT MediaConnectState; // Media Connect State
UINT Type; // Type
UINT Status; // Status
UINT Mtu; // MTU

View File

@ -540,6 +540,13 @@ LIST *Win32GetNicList()
if (a->Type == 6 && a->AddressSize == 6)
{
// If the connection state of the interface is unknown, then exclude it.
// Unknown means that the device is not plugged into the local host.
if (a->MediaConnectState == MediaConnectStateUnknown)
{
continue;
}
NIC_ENTRY *e = ZeroMalloc(sizeof(NIC_ENTRY));
StrCpy(e->IfName, sizeof(e->IfName), a->Title);