mirror of https://github.com/oxen-io/lokinet
decentralizeddecentralized-internetdhtipv4-networkipv4-supportlokinetonion-routingoverlay-networkvpn
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36792d4337
Lots and lots of places in the code had broken < operators because they are returning something like: foo < other.foo or bar < other.bar; but this breaks both the strict weak ordering requirements that are required for the "Compare" requirement for things like std::map/set/priority_queue. For example: a = {.foo=1, .bar=3} b = {.foo=3, .bar=1} does not have an ordering over a and b (both `a < b` and `b < a` are satisfied at the same time). This needs to be instead something like: foo < other.foo or (foo == other.foo and bar < other.bar) but that's a bit clunkier, and it is easier to use std::tie for tuple's built-in < comparison which does the right thing: std::tie(foo, bar) < std::tie(other.foo, other.bar) (Initially I noticed this in SockAddr/sockaddr_in6, but upon further investigation this extends to the major of multi-field `operator<`'s.) This fixes it by using std::tie (or something similar) everywhere we are doing multi-field inequalities. |
2 years ago | |
---|---|---|
.github | 5 years ago | |
cmake | 2 years ago | |
contrib | 2 years ago | |
crypto | 2 years ago | |
daemon | 2 years ago | |
docs | 2 years ago | |
external | 2 years ago | |
gui@7b0f1aacdf | 2 years ago | |
include | 2 years ago | |
jni | 2 years ago | |
llarp | 2 years ago | |
pybind | 2 years ago | |
test | 2 years ago | |
win32-setup | 2 years ago | |
.clang-format | 4 years ago | |
.clang-tidy | 3 years ago | |
.dir-locals.el | 6 years ago | |
.dockerignore | 5 years ago | |
.drone.jsonnet | 2 years ago | |
.gitattributes | 3 years ago | |
.gitignore | 3 years ago | |
.gitmodules | 2 years ago | |
.swift-version | 3 years ago | |
CMakeLists.txt | 2 years ago | |
CMakeSettings.json | 5 years ago | |
CONTRIBUTING.md | 5 years ago | |
CONTRIBUTING_es.md | 5 years ago | |
LICENSE | 2 years ago | |
readme.md | 2 years ago | |
readme_es.md | 3 years ago | |
readme_fr.md | 2 years ago | |
readme_ru.md | 3 years ago |
readme.md
Lokinet
Lokinet is the reference implementation of LLARP (low latency anonymous routing protocol), a layer 3 onion routing protocol.
Installation instructions can be found here.
You can learn more about the high level, how to use it and the internals of the protocol here
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Copyright © 2018-2022 The Oxen Project
Copyright © 2018-2022 Jeff Becker
Copyright © 2018-2020 Rick V. (Historical Windows NT port and portions)