1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-23 09:59:52 +03:00
Commit Graph

1441 Commits

Author SHA1 Message Date
Ilya Shipitsin
138e0b76d6 CI: drop OpenSUSE builds
it turned out to be almost impossible to install libsodium on
OpenSUSE (for example Factory repo url is broken).

Let us drop OpenSUSE builds for a while. Maybe we'll get them back later.
2021-04-20 21:51:49 +05:00
Ilya Shipitsin
ee84891559
Merge pull request #1329 from davidebeatrici/mayaqua-dns-refactor
Rewrite DNS API from scratch into dedicated file(s)
2021-04-18 08:22:40 +03:00
Davide Beatrici
0472f9c286 Rewrite DNS API from scratch into dedicated file(s)
From a functional point of view, the main improvement is that GetIP() now always prioritizes IPv6 over IPv4.
The previous implementation always returned an IPv4 address, unless not available: in such case it failed.
This means that now connections to hostnames should be established via IPv6 if available.

From a programmer point of view, getting rid of the insane wrappers is enough to justify a complete rewrite.

As an extra, several unrelated unused global variables are removed.
2021-04-18 01:46:59 +02:00
Ilya Shipitsin
f7e988ffc7
Merge pull request #1326 from chipitsine/master
CI: Azure Pipelines: explicitly install liblz4-dev
2021-04-15 22:04:55 +03:00
Ilya Shipitsin
a541c0286e CI: Azure Pipelines: explicitly install liblz4-dev
since 24596b258a
bundled lz4 was removed. openvpn (used for live tests) now relies on system lz4 lib.
2021-04-15 15:11:35 +05:00
Ilya Shipitsin
30f707d6c0
Merge pull request #1325 from chipitsine/master
CI: AppVeyor: explicitly install liblz4-dev
2021-04-15 14:06:00 +05:00
Davide Beatrici
bad9310aa4
Merge PR #1324: Cedar: Make use of IP address reported by NAT-T server for UDP acceleration 2021-04-14 20:45:41 +02:00
Davide Beatrici
d4d15b66d3 Cedar: Make use of IP address reported by NAT-T server for UDP acceleration
Before this commit, the IP address reported by the NAT-T server was immediately discarded.
That's because the peer should be accessible via the IP address used to establish the TCP connection.

User "domosekai" (https://www.domosekai.com) pointed out that the NAT-T IP address should be taken into account.
In his case it's required due to his broadband carrier's NAT causing TCP and UDP to have different external IPs.

Co-authored-by: domosekai <54519668+domosekai@users.noreply.github.com>
2021-04-14 19:49:30 +02:00
Ilya Shipitsin
c4b5455663 CI: AppVeyor: explicitly install liblz4-dev
since 24596b258a
bundled lz4 was removed. openvpn (used for live tests) now relies on system
lz4 lib.
2021-04-14 15:54:20 +05:00
Davide Beatrici
192083e7c4
Merge PR #1321: Change IP structure so that IPv4 addresses are stored in RFC3493 format 2021-04-07 21:37:42 +02:00
Davide Beatrici
1708998a11 Change IP structure so that IPv4 addresses are stored in RFC3493 format
In addition to saving 4 bytes for each instantiation, this change makes IP-related operations faster and clearer.

https://tools.ietf.org/html/rfc3493.html#section-3.7
2021-04-07 21:24:55 +02:00
Davide Beatrici
01663f836d
Merge PR #1320: Add (No) Code of Conduct 2021-04-06 20:00:52 +02:00
Davide Beatrici
4ec2995604 Add (No) Code of Conduct
https://nocodeofconduct.com
2021-04-06 19:43:00 +02:00
Ilya Shipitsin
2bb6fb2845
Merge pull request #1319 from davidebeatrici/include-headers-properly
Include headers properly
2021-04-05 13:00:39 +05:00
Davide Beatrici
a6ba9b8788 Include headers properly 2021-04-05 04:48:25 +02:00
Ilya Shipitsin
46b54f00be
Merge pull request #1318 from davidebeatrici/minimum-version-windows-vista
Cedar, Mayaqua: Set minimum Windows version to Vista
2021-04-03 22:02:50 +05:00
Davide Beatrici
5cab279a8c Cedar, Mayaqua: Set minimum Windows version to Vista 2021-04-03 02:25:19 +02:00
Davide Beatrici
3e17c818a6
Merge PR #1317: Mayaqua/Network.c: Always use fcntl() to toggle socket non-blocking mode (UNIX) 2021-04-01 19:23:45 +02:00
Davide Beatrici
84588095d5 Mayaqua/Network.c: Always use fcntl() to toggle socket non-blocking mode (UNIX)
O_NONBLOCK is standardized by POSIX, as opposed to FIONBIO.

This commit also fixes a bug: fcntl() was only called to disable the mode.
2021-04-01 08:04:27 +02:00
Davide Beatrici
a79f91161f
Merge PR #1316: Bump y18n from 4.0.0 to 4.0.1 in /src/bin/hamcore/wwwroot/admin/default 2021-03-30 20:29:50 +02:00
dependabot[bot]
ed6013affc
Bump y18n from 4.0.0 to 4.0.1 in /src/bin/hamcore/wwwroot/admin/default
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-30 18:00:59 +00:00
Davide Beatrici
ac04e15b72
Merge PR #1313: Merge Windows manifest files into a single one 2021-03-30 07:15:48 +02:00
Davide Beatrici
4db6247b80 Merge Windows manifest files into a single one 2021-03-27 00:33:20 +01:00
Davide Beatrici
3761876254
Merge PR #1306: Mayaqua: Fix UDP send error when used with reverse proxy 2021-03-23 19:46:11 +01:00
domosekai
934e49fea0 Mayaqua/Network.c: Fix UDP send error when used with reverse proxy 2021-03-23 11:59:23 +00:00
Davide Beatrici
b7e7d3b028
Merge PR #1296: Update BUILD_UNIX.md dependencies 2021-03-13 04:21:36 +01:00
David Refoua
808f081e3a
update install dependencies (libsodium) 2021-03-13 05:45:30 +03:30
Ilya Shipitsin
8fb9bfd39c
Merge pull request #1295 from davidebeatrici/vpndrvinst-revamp
New vpndrvinst implementation, independent from Cedar and Mayaqua
2021-03-12 12:55:28 +05:00
Davide Beatrici
9d29d8813b New vpndrvinst implementation, independent from Cedar and Mayaqua
This greatly improves performance and reduces the binary's size (~0.2 MB vs ~5 MB).

All recent Windows versions are supported, starting with Vista.

No dialogs are created, aside from error/warning ones in case of failure.

The only dependency (aside from Windows libraries) is libhamcore.
2021-03-12 05:46:20 +01:00
Davide Beatrici
68367fa2fb hamcore: Restore warning_*.txt files
They were accidentally removed in 8e2616ef7d.
2021-03-11 20:15:20 +01:00
Davide Beatrici
d5fa90cc71
Merge PR #1293: hamcorebuilder: Use libhamcore to build archive 2021-03-10 03:11:11 +01:00
Davide Beatrici
68574e9af9 hamcorebuilder: Use libhamcore to build archive
https://github.com/SoftEtherVPN/libhamcore
2021-03-10 02:13:00 +01:00
Davide Beatrici
de03b3ec59
Merge PR #1292: Bump elliptic from 6.5.3 to 6.5.4 in /src/bin/hamcore/wwwroot/admin/default 2021-03-09 20:13:44 +01:00
dependabot[bot]
9e7f26395a
Bump elliptic in /src/bin/hamcore/wwwroot/admin/default
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-09 08:28:13 +00:00
Davide Beatrici
b00aa39b29
Merge PR #1289: CMake: Fix regular expression for BLAKE2 SSE2 source files selection 2021-03-02 01:30:58 +01:00
Davide Beatrici
2d82d84fd5 CMake: Fix regular expression for BLAKE2 SSE2 source files selection
The comparison was being made against the variable's name instead of its value, causing the result to always be true.
For reference: https://cmake.org/cmake/help/v3.10/manual/cmake-generator-expressions.7.html#genex:BOOL

In addition to that, this commit also fixes the source file name of the non-SSE2 code.
2021-03-01 23:24:34 +01:00
Davide Beatrici
42dbfb7c7e
Merge PR #1287: Cedar/WinUi.c: Remove reference to "vpncmd_x64.exe" and "vpncmd_ia64.exe" 2021-03-01 04:45:30 +01:00
Davide Beatrici
ef5c32dca1
Merge PR #1286: Azure Pipelines: Replace "x86_64" with "x64", for consistency with the codebase 2021-03-01 04:36:50 +01:00
Davide Beatrici
65483499bf Cedar/WinUi.c: Remove reference to "vpncmd_x64.exe" and "vpncmd_ia64.exe"
It was missed in a3eb115b0a.
2021-03-01 04:27:43 +01:00
Davide Beatrici
3ffdda6c13 Azure Pipelines: Replace "x86_64" with "x64", for consistency with the codebase 2021-03-01 04:03:28 +01:00
Davide Beatrici
3d69a71d9b
Merge PR #1200: Implement support for WireGuard 2021-03-01 03:59:35 +01:00
Davide Beatrici
4506b60e80
Merge PR #1282: Use bool from stdbool.h, get rid of BOOL 2021-03-01 03:44:22 +01:00
Davide Beatrici
b6b692046c Cedar/CMInner.h: Fix wrong signature for CmPolicyDlgPrintEx2() 2021-03-01 03:01:34 +01:00
Davide Beatrici
56a19d7651 Cedar/Win32Com.cpp: Fix wrong signature for SetupCopyOEMInfW() and SetupUninstallOEMInfW()
https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupcopyoeminfw
https://docs.microsoft.com/en-us/windows/win32/api/setupapi/nf-setupapi-setupuninstalloeminfw
2021-03-01 03:01:34 +01:00
Davide Beatrici
2078a069de Cedar/Hub: Properly set value for hub admin options
Same deal as with the previous commit: worked fine as long as bool was 4-bytes wide.
2021-03-01 03:01:34 +01:00
Davide Beatrici
562ffe8945 Mayaqua/Pack: Fix PackGetStrSize() and PackGetStrSizeEx()'s return data type
The bug caused ProtoOptionsGet and ProtoOptionsSet not to work anymore after c90617e0e86dedf78e0e3c8a71263a80eec29caa.

The functions were introduced in aa65327e73, but the issue went unnoticed because bool was the same as UINT.
2021-03-01 03:01:34 +01:00
Davide Beatrici
914bfe7d44 Use bool from stdbool.h, get rid of BOOL
BOOL was just an alias for bool, this commit replaces all instances of it for consistency.

For some reason bool was defined as a 4-byte integer instead of a 1-byte one, presumably to match WinAPI's definition: https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types
Nothing should break now that bool is 1-byte, as no protocol code appears to be relying on the size of the data type.
PACK, for example, explicitly stores boolean values as 4-byte integers.

This commit can be seen as a follow-up to 61ccaed4f6.
2021-03-01 03:01:34 +01:00
Davide Beatrici
7f30cbccf4
Merge PR #1285: Mayaqua: Fix several warnings related to Windows data type mismatches 2021-03-01 03:01:25 +01:00
Davide Beatrici
2dab282eb2 CI: Switch from Ubuntu 16.04 to 18.04, install libsodium
This commit:

- Switches from Ubuntu 16.04 to 18.04 for all builds, mainly in order to use a more recent version of libsodium.
- Installs libsodium, used by the WireGuard implementation.
2021-03-01 02:56:16 +01:00
Davide Beatrici
ef24ff74c8 Cedar/Admin.c: Restrict StGetProtoOptions() access to server administrators
This is in order to protect the WireGuard private key.
2021-03-01 02:49:59 +01:00