Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update OpenVPN3 to least version #3

Open
wants to merge 355 commits into
base: master-amnezia
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
355 commits
Select commit Hold shift + click to select a range
564b0df
[test/misc] tests: extended route.cpp test for new IPv4/v6-specialize…
jamesyonan Aug 1, 2018
0d75d41
[test/misc] tests: added test for path::is_contained()
jamesyonan Sep 13, 2018
8a5ce39
[test/misc] tests: added streq.cpp
jamesyonan Mar 12, 2019
168541a
[test/misc] tests: moved misc/certcrl.cpp into test/openssl_pki and e…
jamesyonan May 24, 2019
bba08ff
[test/misc] tests: updated test/misc/sess_id.cpp to use the new confl…
jamesyonan Jul 5, 2019
dccfd5b
[test/misc] testing: added jytest unit test wrapper
jamesyonan Sep 19, 2019
4ea420a
[test/misc] Convert OpenSSL PKI test to unittest
schwabe Oct 23, 2019
59084a9
[test/misc] Convert IP checksum test to unittest
schwabe Oct 23, 2019
fffcb80
[test/misc] Convert validate_creds test to unittests
schwabe Oct 23, 2019
775f131
[test/misc] Convert token encrypt test to unittest
schwabe Oct 23, 2019
f2cfd22
[test/misc] Convert streq test to unittest
schwabe Oct 23, 2019
482950f
[test/misc] Convert testpipe into unittest
schwabe Oct 23, 2019
0634043
[test/misc] Convert prefix length test to unittest
schwabe Oct 23, 2019
4a82cfd
[test/misc] Convert format.cpp to unittest
schwabe Oct 23, 2019
58875e8
[test/misc] Convert icmp6csum to unittest
schwabe Oct 23, 2019
7626d69
[test/misc] Convert misc/cleanup.cpp to unittest
schwabe Oct 23, 2019
3bedfb5
[test/misc] Convert misc/static_key.cpp to unittest
schwabe Oct 23, 2019
ecb75b3
[test/misc] Convert misc/route to unittest
schwabe Oct 23, 2019
fc71904
[test/misc] Convert misc/rc to unittest
schwabe Oct 23, 2019
f62f73a
[test/misc] Convert capture test to unit test
schwabe Oct 23, 2019
ea2640f
[test/misc] Fix unit tests on Windows
schwabe Oct 23, 2019
f2eb9e5
[test/misc] Convert parseargv to unit test
schwabe Oct 23, 2019
a1d2e8d
[test/misc] Covert skmove into unit test
schwabe Oct 23, 2019
141e710
[test/misc] Convert session/token related tests to unit tests
schwabe Oct 23, 2019
8dbcd54
[test/misc] Convert test_timeskew.cpp to unit test
schwabe Oct 23, 2019
abbc91c
[test/misc] Convert port_offset to unit test
schwabe Oct 23, 2019
ce9bd51
[test/misc] Convert test/pool to unit test
schwabe Oct 23, 2019
aec6ba3
[test/misc] Convert hashstr to unit test
schwabe Oct 23, 2019
a3d1e3b
[test/misc] Convert misc/path to unit test
schwabe Oct 23, 2019
bbb00aa
[test/misc] Convert pktid test to unit test
schwabe Oct 23, 2019
c249d13
[test/misc] Convert time tests to unit tests
schwabe Oct 23, 2019
bd663fd
[test/misc] Disable unix only unit tests on windows
schwabe Oct 23, 2019
2e3ced2
[test/misc] Convert parsetest tests to unit tests
schwabe Oct 23, 2019
a6f5f26
[test/misc] HTTP: before logging, pass HTTP headers through HTTP::hea…
jamesyonan Nov 11, 2019
0a6e916
[test/misc] Fix compiler warnings with -Wall and clang and gcc
schwabe Dec 24, 2019
f2775f0
[test/misc] Fix multiple instances of comparison of signed with unsigned
schwabe Jan 6, 2020
bd85b22
[test/misc] Convert http header redact test to Google unit test
schwabe Jan 27, 2020
eb8ab4c
[test/misc] Updated system_cmd() calls to reflect newly added sigset_…
jamesyonan Feb 5, 2020
bf50b90
[test/misc] unittests: added test_weak for testing weak references
jamesyonan Jul 19, 2020
9350d57
[test/misc] unit tests: Option::render() no longer emits lines with a…
jamesyonan Aug 2, 2020
b1aea61
[test/misc] unittests: time.timeskew: slightly increase nominal range…
jamesyonan Feb 21, 2021
43997ef
[test/misc] unittests: added test_typeindex.cpp that's a POC for usin…
jamesyonan Jul 23, 2021
7490176
[test/misc] unittest: Update capture test to use new IPv6 block API
dsommers Oct 28, 2021
8af57e9
[test/misc] Adjust unit test to Allow loading private keys with legac…
schwabe Dec 20, 2021
90f7bfe
[test/misc] unittests: added new test for HostPort::split_host_port()
jamesyonan May 15, 2022
ab04ffd
[test/misc] test_time: fix range error to show correct interval
flichtenheld Jun 22, 2022
1cdc74d
Merge various unittests into Core library
flichtenheld Jul 1, 2022
d1097e6
test_path: add missing output file for windows build
flichtenheld Jul 1, 2022
c618e4a
mingw: add xxHash dependency
flichtenheld Jul 6, 2022
757a06d
test_pktid: add explicit cast for PIDRecv::REPLAY_WINDOW_SIZE
flichtenheld Jul 6, 2022
273297d
test/unittests: Add newly imported unittests
flichtenheld Jul 1, 2022
3710fa1
Implement pushable tun-mtu and tls-mtu-max
schwabe Jun 24, 2022
65f5b54
Add specification to allow a server to indicate optional web import
schwabe Jun 22, 2022
ef69cb6
daemonize: ignore daemon() deprecated on macOS
flichtenheld Jul 15, 2022
1a5e4a7
Add a unit test for checking header dependencies
Jul 20, 2022
f2df99c
Fix unit test with AuthStatus::Type enum fwd decl
Jul 15, 2022
4393f40
vcpkg.json: add xxHash
flichtenheld Jul 29, 2022
26fad3a
Allow to disable route exclusion emulation
schwabe Aug 1, 2022
664b3d6
Remove several no longer used or supported build scripts
schwabe Aug 22, 2022
c7b696f
tunutil.hpp: proper support for device interface list
lstipakov Aug 11, 2022
e6a18f7
docs: Added xxhash to macos brew install
rockhowse Aug 23, 2022
d0647e6
build: Fix typo in CMakeLists.txt
rstular Apr 19, 2022
2aea7ac
Merge changes from coming OpenVPN 3 Core library v3.7 bugfix update
flichtenheld Aug 25, 2022
970bed9
tun win: use IPAPI to add excluded routes
lstipakov Aug 31, 2022
b8e9741
omi: better support for "state" management command
lstipakov Sep 2, 2022
ef6dbd2
Add generic name to JY_EXPECT_THROW and improve error message
schwabe Aug 30, 2022
5b5d80f
Improve dealing with unknown options
schwabe Aug 30, 2022
66527fa
Add code style configurations
dsommers Aug 30, 2022
ef62e5b
time/epoch: include time.h
flichtenheld Aug 12, 2022
8345e99
ovpncli: compile kovpn variant with more flags by default
flichtenheld Aug 26, 2022
515c2f7
ovpncli: add missing override keyword for remote_override
flichtenheld Sep 6, 2022
0fae563
build: Extend with a doxygen build target
dsommers Sep 7, 2022
e7ffa06
scripts/build: added SQLITE=1 parameter to build with sqlite3 library
jamesyonan Sep 2, 2022
19201be
AuthCert: support up to 160 bit serial numbers
jamesyonan Sep 22, 2022
544522d
asio: bump version to 1.24.0
lstipakov Oct 3, 2022
e01375d
vcpkg-ports: remove ovpn-dco-win port
lstipakov Oct 4, 2022
f27abef
tunwin: generalize adapter state in TunPersistState
lstipakov Oct 4, 2022
fca6465
tunwin: support for adapter state in TunSetup
lstipakov Oct 4, 2022
6a9b174
tunpersist: support for "no retain, no replace"
lstipakov Oct 4, 2022
ae99307
tun: add persis-tun support for dco-win
lstipakov Oct 4, 2022
2958161
dco-win: add halt check after connection attempt
lstipakov Oct 13, 2022
8bc7839
Ensure sending UV_ only with push-peer-info and prioritise client.pee…
schwabe Oct 18, 2022
8eefddd
dco-win: fix "agent process premature exit" handling
lstipakov Oct 17, 2022
5c5d115
Fix some "variable set but not used" errors with clang 15
flichtenheld Oct 24, 2022
a12737b
mingw: adapt to vcpkg openssl portfile change
lstipakov Nov 3, 2022
8c7d6e1
Move reliability layer tests from common
Nov 9, 2022
49a476e
add IV_PROTO bit for --dns option
d12fk Sep 25, 2022
65dc00f
add RemoteList::Advance enum
d12fk Sep 30, 2022
03917fb
add support for temporary authentication failures
d12fk Sep 30, 2022
067e31e
document missing/unimplemented IV_PROTO flags
d12fk Oct 5, 2022
6bc1a7c
Add CONTROL_WKC_V1 definitions and improve packetdump of tls-crypt-v2
schwabe Nov 14, 2022
4dc56df
Change is_raw to contains_tls_ciphertext
schwabe Nov 14, 2022
3a371a9
Move initialisation of protostack members to members
schwabe Nov 15, 2022
3e34d5a
Document UseCount class and make it non-copyable
schwabe Nov 15, 2022
3135d11
Replace throw() with noexcept and mark some exception constructors ex…
schwabe Nov 15, 2022
dae69cc
Change write/read_string_length to write/read_uint16_length
schwabe Nov 15, 2022
2ff291e
Implement client side early negotion and tls-crypt cookie support
schwabe Nov 16, 2022
e9630e8
Rework ack logic
schwabe Nov 21, 2022
b0e6e84
AuthCert: refactor certificate serial number into its own class AuthC…
jamesyonan Nov 17, 2022
ea93acd
AuthCert::Serial: consider negative serial numbers from OpenSSL layer…
jamesyonan Nov 30, 2022
bc42748
implement exit notification via control channel
d12fk Dec 7, 2022
aa3bcb8
Fix route emulation not correctly working and being disabled
schwabe Dec 13, 2022
4996c38
Merge lastest changes from Core v3.7.2
dsommers Dec 14, 2022
e4b1afe
Design a coercion-safe ostream<< for containers
Dec 26, 2022
dde1574
Reformatting source code to new coding style
dsommers Jan 11, 2023
df01679
Add .git-blame-ignore-revs
dsommers Jan 25, 2023
48d114e
BufferType: refactor const operations into new base ConstBufferType
jamesyonan Jan 22, 2023
20edab8
dco-win: fix destroy_tun behavior
lstipakov Jan 17, 2023
03e27e8
Do not print the length of passwords
schwabe Jan 9, 2023
8b3542c
Remove LZ4_DISABLE_DEPRECATE_WARNINGS flag.
schwabe Jan 9, 2023
e64f710
Add cmake build configuration to build with address sanatiser
schwabe Jan 17, 2023
6de1463
Explictly initialise enable_nonpreferred_dcalgs as all other variables
schwabe Jan 17, 2023
dba51b3
Do not mix signed and unsigned in shift operations in ipv4/ipv6.hpp
schwabe Jan 18, 2023
78fb15a
Add unit test for shifts of IPv6 addresses
schwabe Jan 26, 2023
d4c43ad
Remove undefined behavior in IPv6::Addr::shiftl128 and shiftr128
schwabe Jan 18, 2023
dbe166c
Avoid null pointer references in unit tests
schwabe Jan 18, 2023
3072d94
Use memcpy to read from potientially unaligned memory in ipv6.hpp
schwabe Jan 23, 2023
07b77a1
Fix unsigned/signed mixing and unaligned accesses in gwv4.hpp
schwabe Jan 25, 2023
3bcb671
scripts: Add pre-commit hook for clang-format style check
dsommers Jan 25, 2023
b91e138
add OpenVPNStaticKey::XOR() function
d12fk Jan 25, 2023
e791304
define CryptoAlgs within set_tls_crypt_algs()
d12fk Jan 25, 2023
be3834a
Add public function to class KeyContext to EKM
d12fk Jan 25, 2023
2ea8003
implement support for dynamic tls-crypt
d12fk Jan 25, 2023
c6deee6
fix some style and typos
d12fk Jan 25, 2023
3a5d0f7
vars-linux: add work-around for Ubuntu 18
flichtenheld Jan 31, 2023
ec982a5
Preparing OpenVPN 3 Core library release v3.8 (QA)
dsommers Feb 2, 2023
7ae8803
Merge branch 'master' into releaseprep/3.8
dsommers Feb 3, 2023
9b73ef6
Switch builds to c++17 standard
flichtenheld Feb 9, 2023
08a1870
Use std::optional for rekey_type instead of rekey_type_defined
schwabe Feb 2, 2023
084e6a7
Ensure members of openvpn::TunLinuxSetup::Config are initialised
schwabe Feb 2, 2023
7819311
Ensure NTLM phase 2 is always large enough
schwabe Feb 2, 2023
8b13cdd
Allow duplicate options without error in configuration files
schwabe Mar 6, 2023
171fd2f
Fix mbed TLS AEAD encrypt/decrypt with newer mbed TLS 2.x versions
schwabe Mar 3, 2023
65c9e9e
Fix use after move issue
Mar 11, 2023
3e61e62
dco-win: add missing socket_protect call
lstipakov Mar 27, 2023
fe9df4f
dco-win: use OS-assigned random local port
lstipakov Mar 29, 2023
71b3391
dco-win: add support for peer stats
lstipakov Mar 29, 2023
48f5adc
Ensure that tlsVersionMinOverride does not lower TLS version
schwabe Mar 11, 2023
0d337f9
[OSSL] Treat the error of missing a common signature algorithm as fatal
schwabe Mar 11, 2023
d5c09e2
Do not allow SHA1 cipher suites when using preferred tls-cert-profile
schwabe Mar 11, 2023
2d81118
Cherry pick "Fix crash in xkey-provider in msvc builds" to xkey
schwabe Mar 29, 2023
11caf5f
switch from master-amnezia
Apr 2, 2023
93c961e
dco-win: add missing ioctl code string for DEL_PEER
lstipakov Apr 12, 2023
9233d19
Make session token problems non-fatal again
lstipakov Mar 20, 2023
7eba902
reg.hpp: support for INVALID_HANDLE_VALUE
lstipakov Mar 20, 2023
09be60d
cli.cpp: implement get_password() on Windows
lstipakov Mar 20, 2023
41e96f9
Add IPv6 support to "get best gateway" Windows logic
lstipakov Apr 6, 2023
f544e04
Bring back "allow local DNS resolvers" functionality
lstipakov Apr 13, 2023
b8ae379
Make all C++ source code files have LF (Unix) line endings
flichtenheld Apr 20, 2023
84cf8f4
dco: check for options/config DCO compatibility
lstipakov Apr 21, 2023
5033495
Convert OpenSSL X509 class to use unique_ptr instead of a raw pointer
schwabe May 4, 2023
f5bcc99
Convert OpenSSL SSL context class to use unique_ptr
schwabe May 4, 2023
d2d8a60
Use unique_ptr instead of raw pointers in xkey class
schwabe May 4, 2023
4823208
Destroy library context after other related object have been destroyed
schwabe May 4, 2023
9e5de78
Document behaviour of Signal class a bit more
schwabe May 4, 2023
ff2d7c0
Log OpenSSL errors if error stack is not empty on exit in test cli pr…
schwabe May 4, 2023
d6d4d54
Probably reference count the EPKI object and ensure right order
schwabe May 4, 2023
de01e27
Display configured family address for UDP and DCO
lstipakov May 10, 2023
9fd9c68
remotelist.hpp: do not add address family for cached remotes
lstipakov May 15, 2023
55967d3
Reduce mssfix logging noise
May 11, 2023
c6a8893
cliproto: disallow unannounced compression
lstipakov May 19, 2023
446558a
ovpn-dco: include latest UAPI header in codebase
ordex May 24, 2023
1798028
fix cmake
ordex Jun 6, 2023
37ae621
ovpn-dco: make netlink parsing code a bit more robust
ordex May 24, 2023
9b976d6
ovpn-dco: extend stats in order to retrieve both VPN and transport nu…
ordex May 24, 2023
193468c
ovpn-dco: change control packets flow in order to adapt to dco-v2 logic
ordex May 24, 2023
2959f19
ovpn-dco: no need to rearm pipe when sending NEW_PEER command
ordex May 31, 2023
2be0dcd
digestapi.hpp: remove unused DigestContext
lstipakov May 25, 2023
48863ac
digestapi.hpp: pass libctx to digest api
lstipakov May 26, 2023
78dddfb
digest.hpp: wrap EVP_MD_CTX into unique_ptr
lstipakov Jun 2, 2023
93e8acc
Fix check for USE_OPENSSL in crypo/definitions.hpp
schwabe Jun 6, 2023
ccf7972
Use static inline to ensure only one copy of crypto::algs is present
schwabe Jun 6, 2023
28835d7
remotelist.hpp: improve logging of incompatible AF
lstipakov Jun 8, 2023
62eeb0c
optfilt.hpp: make sure pull-filter options are marked as processed
lstipakov Jun 22, 2023
44f9cc4
Release: OpenVPN 3 Core library version 3.8
dsommers Jun 28, 2023
528ec40
aws: fix ReplaceRoute error handling
lstipakov Jun 29, 2023
1b11c99
aws: support for IMDSv2
lstipakov Jun 29, 2023
2219ccf
Use inline to ensure only one copy of crypto::algs is present
schwabe Jul 13, 2023
07e7a0c
maclife.hpp: synchronize start and stop of lifecycle thread
lstipakov Jul 11, 2023
cd0c404
Release: OpenVPN 3 Core Library, version 3.8.1
dsommers Jul 31, 2023
3b46b64
Do not enforce DH parameters in TLS server mode
schwabe Jul 31, 2023
53614a0
Properly implement OpenVPN3 checking of --client mode
schwabe Jul 31, 2023
85b92af
win/client/tunsetup.hpp: fix IPv4 redirect-gw with IPv6 remote
lstipakov Jul 28, 2023
df5f6d5
mingw/build: Fix xxHash build
flichtenheld Jul 31, 2023
4ca916b
Grep OpenVPNAdapter repo into openvpn3
outspace Aug 5, 2023
ec12022
Fix async send func in pt trasport
outspace Aug 5, 2023
5d0b44d
Cleanup unused stuff
outspace Aug 5, 2023
174a617
Some mutex rework
outspace Aug 16, 2023
b755783
Fix reading MAC address on macOS
schwabe Aug 9, 2023
1fa0e95
deps: update mbedTLS to 2.28.4
flichtenheld Aug 23, 2023
0a690f5
ssl/proto: Clarify sending peer-info debug details
dsommers Aug 23, 2023
7fc0b70
Parse meta options from content_list
lstipakov Aug 24, 2023
a5914b8
test_sitnl: Allow to pass on systems with iproute 6.1.0
flichtenheld Aug 25, 2023
6f538ca
dns option: fix split DNS on Windows
d12fk Aug 31, 2023
358280f
deps/mbedtls: drop old patch
flichtenheld Sep 8, 2023
6c3aa11
vcpkg-ports/mbedtls: unused, removed
flichtenheld Sep 8, 2023
ea747cb
Release: OpenVPN 3 Core Library, version 3.8.2
dsommers Sep 13, 2023
7df2a85
Win: workaround for transient 0.0.0.0/0
lstipakov Sep 29, 2023
11ec627
Allow ovpn::string::join to work also with other contains than std::v…
schwabe Aug 17, 2023
181dafd
Add unsupported option name in error message
schwabe Oct 13, 2023
153c80c
Add route-delay to ignored but warned options
schwabe Oct 13, 2023
bf5df01
Add no-iv to the removed options that we cannot support anymore
schwabe Oct 16, 2023
0be01b8
Do not warn twice about options in settings_feature_not_implemented_warn
schwabe Oct 16, 2023
89d3828
Allow key-method 2 in OpenVPN3 client configs
schwabe Oct 16, 2023
66da32a
Add block-outside-dns and tun-mtu-extra to ignore and warn list
schwabe Oct 24, 2023
384c749
Add ifconfig, topology and route-gateway to push only options
schwabe Oct 25, 2023
7b14564
Release: OpenVPN 3 Core Library, version 3.8.3
dsommers Nov 8, 2023
48aa192
Sync-up with the released branch (Core v3.8.3)
dsommers Nov 29, 2023
6af5b50
Fix --compress initialising the wrong stub method
schwabe Nov 29, 2023
afdfe1b
Fix accessing a null pointer when PKCS7 is invalid
schwabe Nov 21, 2023
b4a400f
Improve handling of unknown options
lstipakov Feb 5, 2024
8f4cd95
Release: OpenVPN 3 Core Library, version 3.8.4
dsommers Feb 13, 2024
10fe3b8
Change year 2018 in MD5 warning to "near future".
schwabe Feb 14, 2024
cdcf942
CMake: small improvements
flichtenheld Feb 13, 2023
7c9eeca
vcpkg.json: Allow to use on Linux
flichtenheld Feb 13, 2023
4e0de88
CMake: Fix issues in FindmbedTLS
flichtenheld Feb 14, 2023
fa99c85
CMake: Generalize add_json_library
flichtenheld Feb 14, 2023
0dcae26
CMake: support BUILD_TESTING option
flichtenheld Feb 14, 2023
3614c1a
CMake: move architecture detection closer to the actual executable
flichtenheld Feb 14, 2023
ac01ae4
mingw: disable VCPKG_APPLOCAL_DEPS in build-vcpkg
flichtenheld Feb 17, 2023
f845f7d
vcpkg-ports/asio: copy update asio-config.cmake from vcpkg
flichtenheld Feb 23, 2023
25ca35d
CMake: add CMakePresets.json and switch GHA to use it
flichtenheld Feb 24, 2023
37fb7c2
CMake: clean up dependency handling
flichtenheld Feb 24, 2023
a830d1e
lzo_asym_impl: fix unaligned access
flichtenheld Feb 24, 2023
38ef9f2
mingw: disable VCPKG_APPLOCAL_DEPS in mingw presets
flichtenheld Mar 1, 2023
c9939d2
CMake: Reorder includes to prefer asio
flichtenheld Mar 20, 2023
ce054c5
CMake: make doxygen generation work better
flichtenheld Apr 24, 2023
14136ee
CMake: disable -Wmaybe-uninitialized for GCC builds
flichtenheld Jul 28, 2023
ef3b290
CMake: replace FindPythonIntp with FindPython3
flichtenheld Jul 31, 2023
61c0ab7
client: Switch to UseSWIG instead of manual custom command
flichtenheld Oct 13, 2023
82d8dbb
CMake: accept all NEW policies in released CMake versions
flichtenheld Oct 13, 2023
53c35b1
CMake: Refine CXX_STANDARD setting
flichtenheld Oct 13, 2023
3bd3915
CMake: Add USE_WCONVERSION option
flichtenheld Oct 17, 2023
458e5df
test_cliopt: Refactor by using parameterized tests
flichtenheld Mar 13, 2024
763176e
Options: do not error out on client + pull
flichtenheld Mar 8, 2024
1b4f736
Make macOS gateway detection IPv6 aware and use actual server address
schwabe Feb 14, 2024
4f1f221
Improve handling of unknown options
lstipakov Feb 23, 2024
7f3e610
mac/gw: Fix incorrect additional )
dsommers Mar 20, 2024
43da4c8
unittest: Don't include sys/socket.h unconditionally
dsommers Mar 20, 2024
c07fb74
Fix IV_SSL and IV_HWADDR not reported
schwabe Mar 27, 2024
9d54245
dco: Fix incorrect #ifdef vs #if usage for ENABLE_KOVPN
dsommers Mar 1, 2024
b47ef50
test/ovnpcli: Refactor to use GDBus++ D-Bus implementation
dsommers Mar 1, 2024
03236ed
Release: OpenVPN 3 Core Library, version 3.8.5
dsommers Apr 22, 2024
5dc60d3
Unset cloak config before VPN use
outspace May 30, 2024
8d4ee07
Merge branch 'released' into ios-proj-refactor
outspace May 30, 2024
ae65e5e
Merge branch 'released' into ios-proj-refactor
outspace May 30, 2024
cfe438c
Merge branch 'ios-proj-refactor' of https://github.com/amnezia-vpn/op…
outspace May 30, 2024
51a9b95
Fix error names
outspace May 30, 2024
54551ce
Fix iOS build
outspace May 31, 2024
e901077
Fix iOS build
outspace Jun 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
13 changes: 13 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
BasedOnStyle: Microsoft
ColumnLimit: 0
SortIncludes: Never
BreakBeforeBinaryOperators: All
BinPackArguments: False
BinPackParameters: False
LambdaBodyIndentation: OuterScope
IndentCaseBlocks: true
MaxEmptyLinesToKeep: 3
BraceWrapping:
AfterNamespace: false
AfterCaseLabel: true
BeforeLambdaBody: true
10 changes: 10 additions & 0 deletions .dir-locals.el-example
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
; Adapted from https://www.emacswiki.org/emacs/IndentingC

((c++-mode
(c-file-style . "stroustrup")
(innamespace . -)
(inline-open . 0)
(inher-cont . c-lineup-multi-inher)
(arglist-cont-nonempty . +)
(template-args-cont . +))
)
9 changes: 9 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# This FILE allows git blame to ignore reformatting changes and instead
# shows the previous commit that changed the line.
#
# Use the command below to always ignore specific commits
#
# git config blame.ignoreRevsFile .git-blame-ignore-revs

# First major code style update
dde1574596aa39e218be4d44a9bfe30e2e458bb4
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.hpp eol=lf
*.cpp eol=lf
74 changes: 54 additions & 20 deletions .github/workflows/msbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ jobs:
env:
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
BUILD_CONFIGURATION: Release
buildDir: '${{ github.workspace }}/build'

runs-on: windows-latest
steps:
Expand All @@ -24,29 +23,64 @@ jobs:
- name: Restore from cache and install vcpkg
uses: lukka/run-vcpkg@v6
with:
setupOnly: true
vcpkgGitCommitId: 'd8d61c941c333a147edffdcbdc9964dc0c0962f5'
additionalCachedPaths: ${{ env.buildDir }}/vcpkg_installed
appendedCacheKey: ${{ matrix.arch }}-${{ hashFiles( '**/vcpkg.json' ) }}
vcpkgGitCommitId: '36fb23307e10cc6ffcec566c46c4bb3f567c82c6'
vcpkgJsonGlob: '**/windows/vcpkg.json'

- name: Run CMake with vcpkg.json manifest
uses: lukka/run-cmake@v3
env:
VCPKG_OVERLAY_PORTS: '${{ github.workspace }}/deps/vcpkg-ports'
uses: lukka/run-cmake@v10
with:
useVcpkgToolchainFile: true
buildDirectory: '${{ env.buildDir }}'
buildWithCMake: true
cmakeAppendedArgs: '-DCLI_OVPNDCOWIN=ON'
cmakeBuildType: ${{env.BUILD_CONFIGURATION}}
configurePreset: win-${{ matrix.arch }}-release
buildPreset: win-${{ matrix.arch }}-release

- uses: actions/upload-artifact@v2
with:
name: openvpn3-${{ matrix.arch }}
name: openvpn3-msvc-${{ matrix.arch }}
path: |
${{ env.buildDir }}/**/*.exe
${{ env.buildDir }}/**/*.dll
!${{ env.buildDir }}/test/ssl/**
!${{ env.buildDir }}/test/unittests/**
!${{ env.buildDir }}/CMakeFiles/**
!${{ env.buildDir }}/vcpkg_installed/**
${{ github.workspace }}/build/**/*.exe
${{ github.workspace }}/build/**/*.dll
!${{ github.workspace }}/build/**/test/ssl/**
!${{ github.workspace }}/build/**/test/unittests/**
!${{ github.workspace }}/build/**/CMakeFiles/**
!${{ github.workspace }}/build/**/vcpkg_installed/**
mingw:
strategy:
matrix:
arch: [x86, x64]

env:
VCPKG_ROOT: ${{ github.workspace }}/vcpkg

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: lukka/get-cmake@latest

- name: Install dependencies
run: sudo apt update && sudo apt install -y mingw-w64 unzip cmake build-essential

- name: Restore from cache and install vcpkg
uses: lukka/run-vcpkg@v10
with:
vcpkgGitCommitId: '36fb23307e10cc6ffcec566c46c4bb3f567c82c6'
vcpkgJsonGlob: '**/mingw/vcpkg.json'

- name: Run CMake with vcpkg.json manifest
uses: lukka/run-cmake@v10
with:
configurePreset: mingw-${{ matrix.arch }}-release
buildPreset: mingw-${{ matrix.arch }}-release

- name: List $RUNNER_WORKSPACE after build
run: find $RUNNER_WORKSPACE
shell: bash

- uses: actions/upload-artifact@v2
with:
name: openvpn3-mingw-${{ matrix.arch }}
path: |
${{ github.workspace }}/build/**/*.exe
${{ github.workspace }}/build/**/*.dll
!${{ github.workspace }}/build/**/test/ssl/**
!${{ github.workspace }}/build/**/test/unittests/**
!${{ github.workspace }}/build/**/CMakeFiles/**
!${{ github.workspace }}/build/**/vcpkg_installed/**
56 changes: 44 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,58 @@
cmake_minimum_required(VERSION 3.5)
cmake_policy(SET CMP0048 NEW)
cmake_minimum_required(VERSION 3.13...3.28)

project(OpenVPN3-core VERSION 3)

# AddressSanitize - use CXX=clang++ CC=clang cmake -DCMAKE_BUILD_TYPE=asan to build with ASAN
# export UBSAN_OPTIONS=print_stacktrace=1 helps debugging these
set(CMAKE_C_FLAGS_ASAN
"-fsanitize=address,undefined -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C compiler during AddressSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_ASAN
"-fsanitize=address,undefined -fno-sanitize-recover=all -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C++ compiler during AddressSanitizer builds."
FORCE)

set(CMAKE_LINKER_FLAGS_ASAN
"-fsanitize=address,undefined -fno-sanitize-recover=all -fsanitize-address-use-after-scope"
CACHE STRING "Flags used by the linker during AddressSanitizer builds."
FORCE)

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake
${CMAKE_MODULE_PATH})
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 99)

include(CTest)

include(findcoredeps)
include(ovpn-doxygen)

add_subdirectory(client)
add_subdirectory(test/unittests)
add_subdirectory(test/ovpncli)
add_subdirectory(test/ssl)


if (WIN32)
add_subdirectory(openvpn/omi)
add_subdirectory(openvpn/ovpnagent/win)
add_subdirectory(openvpn/omi)
add_subdirectory(openvpn/ovpnagent/win)
add_subdirectory(openvpn/ovpnagent/mac)

if (ENABLE_DOXYGEN)
# Exclude some project specific directories
set(DOXYGEN_EXCLUDE_PATTERNS
"*/vcpkg_installed/*"
"*/googletest-src/*"
"${PROJECT_SOURCE_DIR}/deps/*")

# Use README.rst as the Doxygen main page
# Due to some doxygen oddities, it rejects processing README.rst, but a .md file is fine
# So we copy it into our build tree as a .md file and use that
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.rst"
"${CMAKE_CURRENT_BINARY_DIR}/doxygen/mainpage.md"
COPYONLY)
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_BINARY_DIR}/doxygen/mainpage.md")

configure_doxygen("OpenVPN 3 Core Library" "doxygen/core")
endif ()

if (APPLE)
add_subdirectory(openvpn/ovpnagent/mac)
endif ()

Loading
Loading