Neil Alexander
387ae9ea6c
Only replace call name with interface prefix when interface is set
2018-09-25 18:05:57 +01:00
Neil Alexander
aecc151baf
Add support for specifying TCP source interface, i.e. tcp://a.b.c.d:e/eth0, for multiple simultaneous peerings to the same node over different interfaces
2018-09-25 15:32:45 +01:00
cathugger
d171552577
Make TCP read timeouts configurable.
...
This should be helpful on high-latency networks, like Tor or I2P.
Also gofmt.
2018-07-29 14:30:13 +00:00
cathugger
91a374d698
rearrange tcp reading loop
...
according to documentation of io.Reader interface,
"Callers should always process the n > 0 bytes returned before considering the error err. Doing so correctly handles I/O errors that happen after reading some bytes and also both of the allowed EOF behaviors."
2018-07-19 21:58:53 +00:00
cathugger
f4bb2aaaeb
More verbose disconnect messages
2018-07-19 01:03:24 +00:00
Arceliar
7695a3fcbf
try using a simpler FIFO order for each backpressure buffer, since there are other mechanisms to penalize the flooding node, leads to better TCP throughput without affecting traffic between other nodes (does affect traffic in the same session, but there's hypothetically workarounds to that)
2018-06-24 20:20:07 -05:00
Arceliar
4b83efa218
more backpressure work, still needs testing
2018-06-23 21:51:32 -05:00
Arceliar
2ae213c255
I'll try sorting, that's a good trick
2018-06-23 01:10:18 -05:00
Arceliar
cceecf4b1a
larger out queue size, make sure linkOut packets always get sent first
2018-06-22 23:46:42 -05:00
Arceliar
0021f3463f
slightly better way for the tcp sender goroutine(s) to block waiting for work
2018-06-22 20:39:57 -05:00
Arceliar
254be42614
gofmt
2018-06-21 10:39:43 -05:00
Arceliar
19014a198e
randomize the delay after tcp disconnects, to prevent synchronization issues
2018-06-21 10:38:31 -05:00
Arceliar
496dc94f02
possibly mitigate livelock bug where lossy links lead to constant connect/disconnect cycles due to disagreement about which of the two duplicate autoconnection attempts to use
2018-06-16 15:31:25 -05:00
Arceliar
d9c9787611
avoid the proxy.SOCK5 connection attempt unless we're actually going to use the dialer
2018-06-14 09:21:35 -05:00
Arceliar
e8eaabf0c8
comment
2018-06-14 09:12:58 -05:00
Arceliar
57837057b7
tcp/socks cleanup
2018-06-14 09:11:34 -05:00
Arceliar
b006748da4
code cleanup
2018-06-12 17:50:08 -05:00
Arceliar
56802d569e
minor documentation updates, code comments, and a couple of bugfixes that I noticed when going through the code to comment it
2018-06-10 18:03:28 -05:00
Arceliar
72cca4ea43
version check/warning adjustments
2018-06-09 18:38:30 -05:00
Arceliar
076350f963
remove old tcp key exchange code
2018-06-09 17:49:02 -05:00
Arceliar
8733099516
add version metadata to key exchange at the start of connections
2018-06-09 17:46:19 -05:00
Arceliar
e5eb6de1f6
add inner crypto to linkProtoTraffic, using ephemeral keys, to prevent replay attacks from spoofing peer connections
2018-06-08 18:42:56 -05:00
Arceliar
bcfeb22915
more tcp debugging
2018-06-07 16:49:51 -05:00
Arceliar
63feed8dc3
adjust tcp timeout and add shadow queues to track dropped packets
2018-06-07 15:04:17 -05:00
Arceliar
deb755e3e9
remove peer.linkIn channel and related logic
2018-06-07 00:49:06 -05:00
Arceliar
85afe187ff
remove peer timeout logic from the switch, so switch peer entrires are only removed when the peer struct is removed
2018-06-06 23:23:16 -05:00
Arceliar
690d29435d
adjust link packet logic so they bypass the lifo stack and are delivered first
2018-06-06 17:44:10 -05:00
Arceliar
bbae9ff8e8
Merge pull request #92 from Arceliar/backpressure
...
Use backpressure instead of estimated bandwidth
2018-06-06 16:58:48 -05:00
Neil Alexander
4c115de633
De-debug
2018-05-27 22:13:37 +01:00
Arceliar
38e7704161
use backpressure instead of estimated bandwidth, sorted by uptime to break ties
2018-05-27 13:37:35 -05:00
Neil Alexander
9d9083e373
Update configuration names, fix multicast interface selection
2018-05-23 11:28:20 +01:00
Arceliar
5dac273a3d
rename to 'AllowedBoxPubs' and similar
2018-05-07 17:05:54 -05:00
Arceliar
6026e0a014
Optional peer authentication, if non-empty then incoming TCP and all UDP peers must match one of these box keys
2018-05-06 16:32:34 -05:00
Arceliar
cdedd304af
make removePeers work for TCP connections and minor admin cleanup
2018-05-05 17:14:03 -05:00
Jeff Becker
7756891510
support socks proxy in peer url and decouple explicit tor/i2p routing
2018-04-26 10:23:21 -04:00
Jeff Becker
5e23185ddc
use address only not port
2018-04-20 08:41:09 -04:00
Jeff Becker
3c4fee0492
tor auto config
2018-04-19 10:30:40 -04:00
Neil Alexander
1155816df8
Show both UDP and TCP listen addresses in stdout ( #51 )
2018-03-07 09:41:04 +00:00
Arceliar
d3dc7765f2
trying to debug UDP+large MTU issues
2018-02-20 17:31:12 -06:00
Arceliar
a81c361484
tcp reconnect bufix, test with bufio, and switch back to tcp auto-peering by default to continue testing
2018-02-19 23:22:36 -06:00
Arceliar
4045597516
Use larger UDP chunks for link-local IP and let the OS fragment it. Switch to UDP for link-local peers. Minor code cleanup for TCP.
2018-02-19 19:34:51 -06:00
Arceliar
8ba11b86bb
remove duplicate tcp connections
2018-02-17 20:44:23 -06:00
Arceliar
e9adf327b0
possibly fix deadlock from race in peer linkloop goroutine, add some related debug code to the admin
2018-02-07 17:48:30 -06:00
Arceliar
63aadf6e88
use smaller buffer sizes for buffered channels
2018-02-03 18:44:28 -06:00
Neil Alexander
b3ebe76b59
Run gofmt -s -w .
2018-01-04 22:37:51 +00:00
Arceliar
d7e6d814a0
first code/readme/license commit
2017-12-28 22:16:20 -06:00