Commit Graph

5840 Commits (97088719e0025b276424444fe3172cd97cb4134c)
 

Author SHA1 Message Date
Jason Rhinelander 97088719e0 Avoid reserved __identifiers
Identifier names with `__` in them are reserved for the implementation.
One leading underscore followed by a lower-case letter is fine though
(leading underscore followed by *upper*-case is, however, also
reserved).
4 years ago
Jason Rhinelander 60d704b25d Remove dead code 4 years ago
Jason Rhinelander f9bbc30c3d IsIPv4Bogon: constexpr array instead of a function-local static vector
The fixed-size array + not needing to do an atomic operation in the
function should allow better compiler optimization.

(And with C++17 the type and size are inferred).
4 years ago
Jason Rhinelander bdc9c7bfa8 Move IPRange out of net.hpp; free up TruncateV6 etc.
- Move IPRange into its own net/ip_range.hpp

- Move the static net::IPPacket::TruncateV6, etc. functions to free
net::TruncateV6, etc. functions (now from net/ip.hpp instead of
net/ip_packet.hpp).

- Make net::TruncateV6 and net::ExpandV4 constexpr.

- Add IPRange::FromIPv4 factory function (to replace the iprange_ipv4
free function)
4 years ago
Jason Rhinelander 72bf215da4 Move IPPacket header (part 1)
Rename net/ip.{cpp,hpp} to net/ip_packet.{cpp,hpp}.

(Doing this in two commits because I want to repurpose ip.hpp/ip.cpp,
and want git to figure out the history properly).
4 years ago
Jason Rhinelander be9ddf2ae1 Bring back ghc::filesystem for broke AF macos
macOS doesn't provide `<filesystem>` support when targetting anything
earlier than 10.15.
4 years ago
Jason Rhinelander 4d34ee82c9 Move Catalina build to drone (on lokinet-mini) 4 years ago
Jason Rhinelander 7cb542ea23
Merge pull request #1274 from notlesh/fix-keymanager-test-2020-05-18
Fix various unit tests
4 years ago
Stephen Shelton ffdeca5378
Initialize all primitive values in Config 4 years ago
Stephen Shelton 807bfc5302
Initialize Config with LoadConfig in all key manager tests 4 years ago
Stephen Shelton fa6845b206
Use global RC file paths instead of redefining them 4 years ago
Stephen Shelton ac225eb65e
Testing: explicitly initialize variable 4 years ago
Stephen Shelton 7167b4ad02
Properly initialize config in unit test 4 years ago
Jeff a43bdef27c
Merge pull request #1280 from jagerman/gcc10
Add gcc-10 build
4 years ago
Jason Rhinelander b1281cd9d3 Add gcc-10 build
This is temporary (until the `g++` metapackage switches from gcc 9 to
gcc 10).
4 years ago
Jason Rhinelander 110fbe14c9
Merge pull request #1279 from jagerman/curl-fix
Fix cmake curl definition
4 years ago
Jason Rhinelander 604501b07f Fix cmake curl definition 4 years ago
Jeff abc127a78a
Merge pull request #1276 from despair86/sockaddr-fix
fix sockaddr on win32
4 years ago
Rick V 918a09c0cf fix sockaddr win32 and collapse headers on the unix side 4 years ago
Jason Rhinelander cc5e8787c5
Merge pull request #1275 from jagerman/curl-win32-fix
Only link curl if we set up a curl target
4 years ago
Jason Rhinelander 28362fd6a6 Clean up curl define
It doesn't have to be win32-specific, we could (for example) use this on
mac as well to build without curl/SN support.
4 years ago
Jason Rhinelander 856cf82c0e Only link curl if we set up a curl target
Should fix win32 (which doesn't link to curl).
4 years ago
Jeff 759c0e6f31
Merge pull request #1273 from jagerman/drone
Drone CI + cmake + fixes
4 years ago
Jason Rhinelander a82b83119e Remove travis-ci builds now handled via drone 4 years ago
Jason Rhinelander 7f8698ce44 Add several drone ci builds 4 years ago
Jason Rhinelander 5e91c946c5 AVX code: move stub into separate file; always check -mavx2/-mfma
This simplifies the build a bit by moving the avx stubs into a single .c
file: we can avoid compiling all of the avx2 code and just add a single
stub file instead when the compiler doesn't have -mavx2/-mfma.

This also simplifies cmake to just always test the flags; there are some
cases (like using NATIVE_BUILD) where USE_AVX2 doesn't necessarily
apply, and it's cheap to just check them.
4 years ago
Jason Rhinelander b4fce0e3ee curl: use ccache; disabled lots of other crap
brotli and libpsl both got autodetected on my system, so explicitly
disable them (and a bunch of other crap from --configure).

Build with ccache.
4 years ago
Jason Rhinelander fa794e64cd Build libsodium with ccache and fPIC
fPIC is needed in case we are building a shared liblokinet (within which
we want the static libsodium).
4 years ago
Jason Rhinelander c5faa86926 cmake refactor
Refactors many things in cmake to improve and simplify:

- don't use variable indirection for target names; target names are
*already* a variable of sorts.  (e.g. ${UTIL_LIB} is now just
lokinet-util).  cmake/basic_definitions.cmake is now gone.

- fix LTO enabling to use the standard cmake (3.9+) LTO mechanism rather
than shoving a bunch of flag hacks through link_libraries and
add_compile_options.  This also now enables LTO when building a shared
library (because previously the -flto hacks were only turned on in the
static code for some reason).

- build liblokinet as *either* shared library or static library, but not
both.  Building both makes things more complicated because they had
different names (lokinet-shared or lokinet-static) and seems pointless:
you generally want one or the other.  Now there is just the liblokinet
target, which will be shared or static depending on the value of
BUILD_SHARED_LIBS.

- Simplify lokinet-cryptography AVX2 code: just build *one* library, and
add in the additional AVX2 files when possible, rather than building two
and needing to merge them.

- Compress STATIC_LINK and STATIC_LINK_RUNTIME into just STATIC_LINK.
It makes no sense to use one of these (_RUNTIME) on Windows and the
other on non-Windows when they appear to try to do the same thing.

- remove a bunch of annotations from `endif(FOO)` -> `endif()`.

- move all the tuntap compilation code (including OS-specific source
file selection) into vendor/CMakeLists.txt and build tuntap as an
intermediate OBJECT library rather than keeping a global variable in 5
different files.

- move release motto define to root cmake; it made no sense being
duplicated in both unix.cmake and win32.cmake

- fix add_log_tag to not stomp on any existing source compile flags with
its definition.  Also use proper compile definition property instead of
cramming it into compile flags.

- make optimization/linker flags less hacky.  There's no reason for us
to force particular optimization flags because the cmake build type
already does that (e.g. -DCMAKE_BUILD_TYPE=Release does -O3).  Not doing
that also silences a bunch of cmake warnings because it thinks "-O0 -g3"
etc.  are link libraries (which is reasonable: that's what the code was
telling cmake they are).

- sets the default build type to RelWithDebInfo which gives us `-O2 -g`
if you don't specify a build type.

- Move PIC up (so that the things loaded in unix.cmake, notably libuv,
have it set).

- Add a custom `curl` interface library that carries the correct link
target and include paths for curl (system or bundled).
4 years ago
Jason Rhinelander ab4ee954b9 Remove DEBIAN option
This hasn't been used in a long time; the debian packaging lives in
separate branches instead.
4 years ago
Jason Rhinelander a45bec7c4f Removed RPI definition
This was a long-obsolete fix for things that don't matter anymore.
4 years ago
Jason Rhinelander 26ecf23ad8 Silence various warnings 4 years ago
Jason Rhinelander e03dfc751c Remove crypto_noop
It isn't used anywhere, and has bitrotted (it is marked final, but is
missing some required abstract method instances).
4 years ago
Jason Rhinelander 5087ba2364 Regex fix 4 years ago
Jason Rhinelander bc4573c447 Disable empty string SockAddr throw test
The code intentionally no longer throws and handles this as a special
case (resulting in an empty SockAddr).
4 years ago
Jason Rhinelander 0de3a5f11d
Merge pull request #1231 from majestrate/libuv-cmake-submodule-2020-04-20
add libcurl and libuv to cmake out of makefile
4 years ago
Jeff Becker 06348ced47 fix typo in makefile 4 years ago
Jeff Becker bd19dd95e0 revert makefile and travis 4 years ago
Jeff Becker 701175a873 download sodium 4 years ago
Jeff Becker 8497c8b1d4 more travis tweaks 4 years ago
Jeff Becker 9bd537333b fix travis 4 years ago
Jeff Becker 64157d5d44 track libcurl and libuv with cmake, add libuv submodule 4 years ago
Jeff d0a3d6beae
Merge pull request #1270 from majestrate/gpl3-reliecense-2020-05-15
relicense to GPL3
4 years ago
Jeff cc9830e763
update license preamble
change license preamble to exclude control panel text
4 years ago
Jason Rhinelander d04576a2c6
Merge pull request #1269 from majestrate/make-unit-tests-pass-05-15-20
Make unit tests and CI pass
4 years ago
Jeff Becker fc5b28b66f
const correctness 4 years ago
Jeff Becker d91d9152de
change xcode versions in travis to try and make travis stop sucking 4 years ago
Jeff Becker 57a737290c
relicense to GPL3 4 years ago
Jeff Becker 04c542b03f
clean up makefile targets to remove some old unused ones 4 years ago
Jeff Becker 3ac2a3defa
add dist source tarball generation and bundle it with gitlab static release 4 years ago