Adam Ierymenko
ee8682ac75
Temporarily disable the symmetric NAT port prediction code since the current version adds protocol overhead and probably is not that effective.
2019-03-26 15:23:51 -07:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Joseph Henry
9681fedbb4
Spellcheck sweep across codebase
2018-06-07 17:25:27 -07:00
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
2018-01-08 14:33:28 -08:00
Grant Limberg
b1d60df44c
timestamps changed from uint64_t to int64_t
...
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability. This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
Adam Ierymenko
a156a4dbe2
Symmetric NAT cleanup.
2017-08-23 15:12:00 -07:00
Adam Ierymenko
495c5ce81d
Bunch of remote tracing work.
2017-07-13 10:51:05 -07:00
Adam Ierymenko
dab0fb9e05
Remote trace: plumbing, replace old TRACE with calls to Trace object.
2017-07-07 16:58:05 -07:00
Adam Ierymenko
f18158a52d
.
2017-07-06 11:45:22 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
Adam Ierymenko
e4896b257f
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
2017-03-27 17:03:17 -07:00
Adam Ierymenko
d3524f3609
Refactor COM stuff a bit, and respond to COM requests a bit more readily for rapid setup. Will need to revisit later.
2016-09-20 21:21:34 -07:00
Adam Ierymenko
b5c86b6ba4
Bunch more path refactoring. Peers no longer forget paths, but do not normally use expired paths. Expired paths might still be tried if nothing else is reachable.
2016-09-07 11:13:17 -07:00
Adam Ierymenko
81959f14af
Refactor and redesign symmetric NAT predictor. This is cleaner.
2016-08-10 10:28:54 -07:00
Adam Ierymenko
c9d7845fea
Minor bug fix and some instrumentation stuff for testing.
2016-08-09 17:00:01 -07:00
Adam Ierymenko
e1310a764a
More cleanup and removal of cruft due to obsolete network-specific relays (will be replaced with federation stuff).
2016-08-09 15:45:26 -07:00
Adam Ierymenko
52d9612301
Reduce symmetric prediction fuzz just a bit.
2016-04-05 10:49:14 -07:00
Adam Ierymenko
2aa7138373
Reduce direct ping delay back to 1m and make SelfAwareness aware of local received-on address to eliminate false symmetric classification.
2016-02-22 09:47:50 -08:00
Adam Ierymenko
772551c45d
Try +1 and +2 existing surfaces for symmetric NATs.
2016-02-11 10:39:39 -08:00
Adam Ierymenko
0c951b6e56
More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it.
2016-02-10 18:41:39 -08:00
Adam Ierymenko
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -08:00
Adam Ierymenko
d8143a5e18
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
2016-01-05 16:41:54 -08:00
Adam Ierymenko
7fbe2f7adf
Tweak some more timings for better reliability.
2015-11-02 15:38:53 -08:00
Adam Ierymenko
938d0a970b
TRACE build fixes.
2015-10-28 10:01:32 -07:00
Adam Ierymenko
c1b0329969
Only check IP equality to detect external surface changes (should prevent some spurious resets under symmetric NATs), and simplify some logic.
2015-10-28 09:32:07 -07:00
Adam Ierymenko
16bc3e0398
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
2015-10-27 15:00:16 -07:00
Adam Ierymenko
a1a0ee4edb
Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks)
2015-10-27 12:01:00 -07:00
Adam Ierymenko
29b966894c
(1) Fix bug in geo-ip service that prevented cache lookup, (2) fix problem in SelfAwareness (will need to test ALL versions in the wild with this), and (3) add more TRACE instrumentation to Cluster.
2015-10-23 13:03:34 -07:00
Adam Ierymenko
f116c4b9c0
... and another ...
2015-09-04 14:24:31 -07:00
Adam Ierymenko
b31071463c
Try another NAT traversal improvement.
2015-07-28 11:28:47 -07:00
Adam Ierymenko
93bb934d4e
Some cleanup, docs, and Path -> Path > RemotePath refactor.
2015-07-06 14:08:13 -07:00
Adam Ierymenko
7bae95836c
Root server terminology cleanup, and tighten up a security check by checking full identity of peers instead of just address.
2015-06-19 10:23:25 -07:00
Kees Bos
a425bbc673
Renamed supernode to rootserver
2015-05-06 12:05:20 +02:00
Adam Ierymenko
40f312a827
When we reset within scope, erase the other entries for that scope so we won't keep resetting the same scope repeatedly.
2015-05-04 19:02:36 -07:00
Adam Ierymenko
18ca6f34ff
Always update timestamp.
2015-05-04 18:45:39 -07:00
Adam Ierymenko
59fa687830
Make timeout also apply to null check in iam()
2015-05-04 18:43:24 -07:00
Adam Ierymenko
b4b067bf12
So we need to keep track of external surface per reporter, since some NATs assign different external IPs for each external destination. Keeping just one known surface could create a race condition.
2015-05-04 18:34:30 -07:00
Adam Ierymenko
9279bac385
Fix deadlock in SelfAwareness by deferring reconnects.
2015-04-30 21:09:41 -07:00
Adam Ierymenko
417f56de2f
Add some TRACE instrumentation to external surface address awareness.
2015-04-17 12:19:01 -07:00
Adam Ierymenko
0a90681849
Add ping(), and a logic fix in SelfAwareness.
2015-04-07 12:32:05 -07:00
Adam Ierymenko
eae2c89b09
Mutex locking fix.
2015-04-07 11:58:41 -07:00
Adam Ierymenko
52c3b7c34e
Implemented empirical determination of external addressing, paritioned per scope.
2015-04-07 11:56:10 -07:00
Adam Ierymenko
817824b88b
Some external surface awareness work, and IP scope classification.
2015-04-07 10:57:59 -07:00