Adam Ierymenko
226123ca08
Refactor controller to permit sending of pushes as well as just replies to config requests.
9 years ago
Adam Ierymenko
0b44919ba2
Clusters can send multiple OKs so we must allow this.
10 years ago
Adam Ierymenko
9f550292fe
Simply network auth logic and always sent error on auth failure even for unknown networks to prevent forensics.
10 years ago
Adam Ierymenko
7e4b6b594b
It now builds.
10 years ago
Adam Ierymenko
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
10 years ago
Adam Ierymenko
0d4109a9f1
More refactoring to clean up code, and add a gate function to make sure we do not handle OK packets we did not expect. This hardens up a few potential edge cases around security, since such messages might be used to e.g. pollute a cache and DOS under certain conditions.
10 years ago
Adam Ierymenko
ccea3d04d6
Push NETWORK_CONFIG_REFRESH on POSTs to /member/... in controller.
10 years ago
Adam Ierymenko
98152d974a
More cleanup and removal of DeferredPackets, will do the latter in a more elegant way.
10 years ago
Adam Ierymenko
765082fdb6
Trusted path support, and version bump to 1.1.9
10 years ago
Adam Ierymenko
4e4fd51117
boring doc stuff
10 years ago
Adam Ierymenko
d6f0f1a82a
Use network user ptr in lookup for Ethernet frame handling to eliminate map lookup.
10 years ago
Adam Ierymenko
83ef98a9dc
Add a network-associated user ptr in API.
10 years ago
Adam Ierymenko
b3e3d4cacc
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
10 years ago
Adam Ierymenko
2cc50bdb10
Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NAT
11 years ago
Adam Ierymenko
3e22fee842
Integrate deferred background processing into main OneService implementation.
11 years ago
Adam Ierymenko
8ef4edebbf
Deferred decode for HELLO to prevent HELLOcalypse under high load of new peers.
11 years ago
Adam Ierymenko
a994573a43
Eliminate some more dead code. We may do path trust, but not like that.
11 years ago
Adam Ierymenko
16bc3e0398
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
11 years ago
Adam Ierymenko
5ff7733f84
More plumbing of cluster status.
11 years ago
Adam Ierymenko
57e29857cf
Cluster work -- integrating with the rest of the code.
11 years ago
Adam Ierymenko
cae58f43f1
More World stuff, and mkworld.
11 years ago
Adam Ierymenko
1b2cac0cc5
Trim some cruft that is not used and probably never would be.
11 years ago
Adam Ierymenko
d3f29d09e8
Plumbing through circuit test stuff.
11 years ago
Adam Ierymenko
a3db7d0728
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
11 years ago
Adam Ierymenko
f69454ec98
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
11 years ago
Adam Ierymenko
367ffde00c
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
11 years ago
Adam Ierymenko
f6ced547be
Dead code removal.
11 years ago
Adam Ierymenko
0b354803f3
Clean up some YAGNI issues with implementation of GitHub issue #180 , and make best path choice aware of path rank.
11 years ago
Adam Ierymenko
3f567a07ca
Save a little bit of RAM by getting rid of overkill CMWC4096 non-crypto PRNG and replacing it with a simple non-crypto PRNG that just uses Salsa20.
11 years ago
Adam Ierymenko
c863ff3f02
A bunch of comments and cleanup, including some to yesterday's direct path pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.
11 years ago
Adam Ierymenko
235f4762b7
Plumbing for local interface addresses -- GitHub issue #180
11 years ago
Adam Ierymenko
79e9a8bcc2
Almost everything for GitHub issue #180 except direct path map setup.
11 years ago
Adam Ierymenko
fad9dff2db
Almost all of GitHub issue #180
11 years ago
Adam Ierymenko
c287ae4d1d
Redo conversion of _networks to a vector. Just use a simple linear search and put the nwid in a pair with the pointer so linear search can be done without pointer chasing. This should be the fastest option for anything less than dozens of networks, and should save memory over the old map.
11 years ago
Moritz Warning
787608b568
use _network function to reduce source code complexity
11 years ago
Moritz Warning
2b04ac5e9b
replace _networks map by vector
...
_networks is usually quite small, using binary search on a vector might be faster comapred to std::map.
This is especially true when using uClibc++, which uses a list.
11 years ago
Adam Ierymenko
9774f789f2
TCP fallback tunneling is now working. That hurt more than expected.
11 years ago
Adam Ierymenko
d9006712f6
Completely factor out "desperation" from the core. I thought of a significantly simpler way to move all of this logic entirely into the containing service, liberating the core from any concern over the nature of its pipe to the outside world.
11 years ago
Adam Ierymenko
9a34fde8a5
Make sure identity.public exists and stays in sync, cleanup extra new in Node, and test script for local testnets.
11 years ago
Adam Ierymenko
54954f5b88
First pass of Windows cleanup and build fixes...
11 years ago
Adam Ierymenko
6369c264e2
Rename netconf to controller and NetworkConfigMaster to NetworkController for consistency.
11 years ago
Adam Ierymenko
1c9ca73065
Fix some deadlock issues, move awareness of broadcast subscription into core, other bug fixes.
11 years ago
Adam Ierymenko
c9af603b9f
Add beacon broadcasting back into Node.
11 years ago
Adam Ierymenko
a2605561af
Basic control plane queries working.
11 years ago
Adam Ierymenko
b888e033c0
JSON control plane, almost done...
11 years ago
Adam Ierymenko
46ecad451c
Starting on new service/ code to encapsulate node/ with osdep/ stuff, and add a user pointer to the CAPI.
11 years ago
Adam Ierymenko
e34bc961db
Add awareness of online status, and put old OS-dep utils in OSUtils.
11 years ago
Adam Ierymenko
4d5a6a25d3
Add events for packet decode errors, etc., and re-implement TRACE as an event.
11 years ago
Adam Ierymenko
9d9d0ef12c
Rename StatusCallback to more descriptive EventCallback.
11 years ago
Adam Ierymenko
49f031ccb4
Tons of refactoring, change to desperation algorithm to use max of core or link, porting over core loop code from old Node.cpp to new CAPI version, etc.
11 years ago