90 Commits (4d13ddd48ccee56a8ddf19637510341ebcbd040f)

Author SHA1 Message Date
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 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
Adam Ierymenko 9e55f882d3 Starting to port from old Node() -- identity generation. 11 years ago
Adam Ierymenko 8210ed4805 Implement read from object store. 11 years ago
Adam Ierymenko 51f46a009a Multicast group join/leave and group membership announcement. 11 years ago
Adam Ierymenko 8001b2c0cb Network now calls port config function as per new API. 11 years ago
Adam Ierymenko 5f351f2f6b build fixes. 11 years ago
Adam Ierymenko f4fd2d4971 Bring IncomingPacket into line with new changes. 11 years ago
Adam Ierymenko 6eb9289367 Bunch more cleanup, improvements to NAT traversal logic, finished updating Switch. 11 years ago
Adam Ierymenko ee0f56355b Send path simplification. 11 years ago
Adam Ierymenko a69e1876f1 The concept of link desperation (escalating to less desirable transports) simplifies a ton of stuff. Loads of spaghetti logic can die since we no longer have to make these decisions down in the core. 11 years ago