Merge branch 'SoftEtherVPN:master' into master

This commit is contained in:
hiura2023 2024-04-16 19:16:20 +09:00 committed by GitHub
commit ac28302b59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 109 additions and 143 deletions

View File

@ -1,33 +0,0 @@
version: '{build}'
image: Ubuntu2004
configuration: Release
skip_branch_with_pr: true
clone_depth: 1
skip_commits:
files:
- .travis.yml
- .gitlab-ci.yml
- .azure-pipelines.yml
- .cirrus.yml
init:
- ps: Update-AppveyorBuild -Version "build-$env:APPVEYOR_BUILD_NUMBER-$($env:APPVEYOR_REPO_COMMIT.substring(0,7))"
install:
- sudo apt-get -y install libsodium-dev libcap-ng-dev
before_build:
- git submodule update --init --recursive
- ./configure
build_script:
- make package -C build -j $(nproc || sysctl -n hw.ncpu || echo 4)
- .ci/memory-leak-test.sh
test_script:
- .ci/appveyor-deb-install-test.sh
- sudo apt-get update && sudo apt-get -y install autoconf libtool liblzo2-dev libpam-dev fping unzip liblz4-dev libnl-genl-3-dev # openvpn build deps
- sudo .ci/start-se-openvpn.sh
- sudo .ci/run-openvpn-tests.sh

View File

@ -1,4 +0,0 @@
jobs:
- template: .ci/azure-pipelines/linux.yml
- template: .ci/azure-pipelines/windows.yml
- template: .ci/azure-pipelines/macos.yml

View File

@ -1,20 +0,0 @@
jobs:
- job: Ubuntu_x64
pool:
vmImage: ubuntu-22.04
steps:
- checkout: self
submodules: true
persistCredentials: true
- script: sudo apt update && sudo apt-get -y install cmake gcc g++ ninja-build libncurses5-dev libreadline-dev libsodium-dev libssl-dev make zlib1g-dev liblz4-dev libnl-genl-3-dev
displayName: 'Prepare environment'
- script: "$(Build.SourcesDirectory)/.ci/azure-pipelines/linux_build.sh"
env:
SE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN)
displayName: 'Build'
- script: |
.ci/appveyor-deb-install-test.sh
sudo apt-get -y install autoconf libtool liblzo2-dev libpam-dev fping unzip libcap-ng-dev # To build OpenVPN
sudo BUILD_BINARIESDIRECTORY=$BUILD_BINARIESDIRECTORY .ci/start-se-openvpn.sh
sudo BUILD_BINARIESDIRECTORY=$BUILD_BINARIESDIRECTORY .ci/run-openvpn-tests.sh
displayName: 'Test'

View File

@ -1,14 +0,0 @@
jobs:
- job: macOS
pool:
vmImage: macOS-latest
steps:
- checkout: self
submodules: true
persistCredentials: true
- script: brew install pkg-config cmake ninja ncurses readline libsodium openssl zlib
displayName: 'Prepare environment'
- script: '$(Build.SourcesDirectory)/.ci/azure-pipelines/macos_build.sh'
env:
SE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN)
displayName: 'Build'

View File

@ -1,41 +0,0 @@
parameters:
- name: architecture
type: string
- name: compilerPath
type: string
- name: vcpkgTriplet
type: string
- name: vcvarsPath
type: string
steps:
- task: Cache@2
inputs:
key: '"vcpkg-manifest" | "$(Agent.OS)" | "${{parameters.vcpkgTriplet}}" | C:/vcpkg/.git/refs/heads/master'
path: '$(Build.BinariesDirectory)/vcpkg_installed'
displayName: 'Environment storage'
- script: '$(Build.SourcesDirectory)/.ci/azure-pipelines/windows_build.bat'
env:
ARCHITECTURE: ${{parameters.architecture}}
COMPILER_PATH: ${{parameters.compilerPath}}
VCPKG_TRIPLET: ${{parameters.vcpkgTriplet}}
VCVARS_PATH: ${{parameters.vcvarsPath}}
SE_BUILD_NUMBER_TOKEN: $(BUILD_NUMBER_TOKEN)
displayName: 'Build'
- powershell: |
. .ci/appveyor-vpntest.ps1
displayName: 'Test'
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.BinariesDirectory)'
contents: '?(*.exe|*.se2|*.pdb)'
TargetFolder: '$(Build.StagingDirectory)/binaries/${{parameters.architecture}}'
flattenFolders: true
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.StagingDirectory)/binaries/${{parameters.architecture}}'
artifactName: 'Binaries_${{parameters.architecture}}'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.StagingDirectory)/installers'
artifactName: 'Installers'

View File

@ -1,27 +0,0 @@
jobs:
- job: Windows_x64
pool:
vmImage: windows-latest
steps:
- checkout: self
submodules: true
persistCredentials: true
- template: "windows-steps.yml"
parameters:
architecture: "x64"
compilerPath: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe"
vcpkgTriplet: "x64-windows-static"
vcvarsPath: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
- job: Windows_x86
pool:
vmImage: windows-latest
steps:
- checkout: self
submodules: true
persistCredentials: true
- template: "windows-steps.yml"
parameters:
architecture: "x86"
compilerPath: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/bin/clang-cl.exe"
vcpkgTriplet: "x86-windows-static"
vcvarsPath: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars32.bat"

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"

34
.github/workflows/linux.yml vendored Normal file
View File

@ -0,0 +1,34 @@
on: [push, pull_request]
permissions:
contents: read
jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install dependencies
run: sudo apt update && sudo apt-get -y install cmake gcc g++ ninja-build libncurses5-dev libreadline-dev libsodium-dev libssl-dev make zlib1g-dev liblz4-dev libnl-genl-3-dev
- name: Build
run: |
mkdir build
cd build
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
cmake --build .
- name: Build deb packages
run: |
cd build
cpack -C Release -G DEB
- name: Test
run: |
.ci/appveyor-deb-install-test.sh
sudo apt-get -y install autoconf libtool liblzo2-dev libpam-dev fping unzip libcap-ng-dev # To build OpenVPN
sudo .ci/start-se-openvpn.sh
sudo .ci/run-openvpn-tests.sh

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

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"cmake.configureOnOpen": false
}

View File

@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.10)
set(BUILD_NUMBER CACHE STRING "The number of the current build.")
if ("${BUILD_NUMBER}" STREQUAL "")
set(BUILD_NUMBER "5182")
set(BUILD_NUMBER "5183")
endif()
if (BUILD_NUMBER LESS 5180)

View File

@ -1,5 +1,5 @@
{
"environments": [ { "BuildNumber": "5182" } ],
"environments": [ { "BuildNumber": "5183" } ],
"configurations": [
{
"name": "x64-native",

View File

@ -6773,7 +6773,6 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x)
p = NewPack();
PackAddStr(p, "method", "login");
PackAddStr(p, "hubname", hubname);
if (IsEmptyStr(username))
{
@ -6782,12 +6781,26 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x)
FreePack(p);
return NULL;
}
UniToStr(cn_username, sizeof(cn_username), x->subject_name->CommonName);
PackAddStr(p, "username", cn_username);
if (strchr(cn_username, '@') != NULL)
{
PackAddStr(p, "username", strtok(cn_username, "@"));
PackAddStr(p, "hubname", strtok(NULL, ""));
}
else
{
PackAddStr(p, "username", cn_username);
PackAddStr(p, "hubname", hubname);
}
}
else
{
PackAddStr(p, "username", username);
PackAddStr(p, "hubname", hubname);
}
PackAddInt(p, "authtype", AUTHTYPE_OPENVPN_CERT);