Arceliar
|
1e6a6d2160
|
use session.cancel in the router to make blocking safe, reduce size of fromRouter buffer so the drops in the switch are closer to the intended front-drop behavior
|
2019-08-04 02:21:41 -05:00 |
|
Arceliar
|
6da5802ae5
|
don't block forever in Write if the session is cancelled, cleanup Conn.Read slightly
|
2019-08-04 02:08:47 -05:00 |
|
Arceliar
|
cbbb61b019
|
fix another drain on the bytestore
|
2019-08-04 00:00:41 -05:00 |
|
Arceliar
|
00e9c3dbd9
|
do session crypto work using the worker pool
|
2019-08-03 23:27:52 -05:00 |
|
Arceliar
|
befd1b43a0
|
refactor session worker code slightly
|
2019-08-03 23:14:51 -05:00 |
|
Arceliar
|
b9987b4fdc
|
reduce time spent with a mutex held in sessionInfo.recvWorker
|
2019-08-03 22:47:10 -05:00 |
|
Arceliar
|
099bd3ae1e
|
reduce part of sendWorker that needs to keep a mutex
|
2019-08-03 22:35:10 -05:00 |
|
Arceliar
|
72ed541bf3
|
a little cleanup to Conn functions
|
2019-08-03 22:07:38 -05:00 |
|
Arceliar
|
5dfc71e1ee
|
put bytes back when done
|
2019-08-03 22:00:47 -05:00 |
|
Arceliar
|
df0090e32a
|
Add per-session read/write workers, work in progress, they still unfortunately need to take a mutex for safety
|
2019-08-03 21:46:18 -05:00 |
|
Neil Alexander
|
853054eb62
|
Merge pull request #475 from Arceliar/misc
Misc
|
2019-07-29 20:24:49 +01:00 |
|
Neil Alexander
|
7c4c1558ff
|
Merge pull request #474 from neilalexander/gomobile
Various API changes and simplifications to fix mobile builds
|
2019-07-28 19:34:06 +01:00 |
|
Neil Alexander
|
c9554f82be
|
Formatting tweaks in api.go
|
2019-07-28 11:35:16 +01:00 |
|
Neil Alexander
|
24f4754f2b
|
Export NodeInfoPayload type, rename some API functions
|
2019-07-28 11:30:24 +01:00 |
|
Arceliar
|
b66bea813b
|
rename a couple of things and move a PutBytes so it happens sooner
|
2019-07-27 18:23:55 -05:00 |
|
Arceliar
|
9e118884d4
|
remove some commented code
|
2019-07-27 18:12:06 -05:00 |
|
Arceliar
|
e0a3055c2f
|
get rid of session workers, new util.PutBytes/GetBytes logic
|
2019-07-27 18:10:32 -05:00 |
|
Neil Alexander
|
377f88512b
|
Remove commented out router function
|
2019-07-27 15:57:19 +01:00 |
|
Neil Alexander
|
de1005e4fa
|
Various API changes and simplifications to fix mobile builds
|
2019-07-27 15:00:09 +01:00 |
|
Arceliar
|
e5bb9bcb8d
|
change how searches are initialized so we actually send a dhtReq to ourself and get a response, in case we're the destination
|
2019-07-26 17:44:40 -05:00 |
|
Neil Alexander
|
34ac5c9197
|
Send PPROF output text to stderr instead of stdout so that it doesn't break -genconf
|
2019-07-20 21:56:53 +01:00 |
|
Arceliar
|
cf3ebe04a7
|
have Conn use Cancellation instead of manually setting up timers
|
2019-07-17 21:37:45 -05:00 |
|
Arceliar
|
5301207480
|
fix possible unsafe memory use in Conn.Read
|
2019-07-17 18:25:38 -05:00 |
|
Neil Alexander
|
307b24d8cb
|
Fix Conn.Read/Conn.Write behavior after Conn.Close, get rid of second TUN/TAP conn reader goroutine, no longer use deadlines
|
2019-07-17 21:42:17 +01:00 |
|
Neil Alexander
|
747b50bb7c
|
Try to improve handling of timeouts
|
2019-07-17 11:13:53 +01:00 |
|
Neil Alexander
|
145a43e5f0
|
Fix #413 by always generating public keys from private ones instead of trusting public keys supplied by config
|
2019-07-16 09:49:28 +01:00 |
|
Neil Alexander
|
618d46a7b3
|
Don't block on adding peers in case one is unreachable and we are forced to wait for timeout
|
2019-07-06 12:12:30 +01:00 |
|
Arceliar
|
86c30a1fc4
|
fix another panic from a send on a closed session worker channel, from races between Conn.Read/Write/Close
|
2019-07-01 18:55:07 -05:00 |
|
Arceliar
|
cd29fde178
|
temporary workaround to concurrency bug in sessions.getSharedKey
|
2019-06-29 19:32:15 -05:00 |
|
Arceliar
|
fbe44ea973
|
fix bug in session api code
|
2019-06-29 19:25:34 -05:00 |
|
Arceliar
|
40553a6a44
|
make GetSessions use the session workers to avoid races
|
2019-06-29 18:56:26 -05:00 |
|
Arceliar
|
d39428735d
|
recover if we try to send to a closed session worker due to a race between a Conn.Write call and a Conn.Close call
|
2019-06-29 18:50:21 -05:00 |
|
Arceliar
|
7d58a7ef3e
|
fix channel multiple close bug and concurrency bug in the way sessionInfo.close was being called
|
2019-06-29 17:44:28 -05:00 |
|
Arceliar
|
818eca90db
|
fix nil pointer deref if searches fail, block dial until a search exceeds or a timeout passes (todo: replace timer with context)
|
2019-06-29 16:10:02 -05:00 |
|
Arceliar
|
8ecf99d8a9
|
Merge pull request #443 from Arceliar/dial
Bugfix in dial code
|
2019-06-29 12:21:19 -05:00 |
|
Arceliar
|
784acba823
|
I think this fixes the concurrent map read/write panic
|
2019-06-29 12:14:44 -05:00 |
|
Neil Alexander
|
0d23342358
|
Merge pull request #441 from Arceliar/dial
Dial
|
2019-06-29 10:52:05 +01:00 |
|
Arceliar
|
e88bef35c0
|
get rid of old buffered session packets
|
2019-06-28 20:02:58 -05:00 |
|
Arceliar
|
e7cb76cea3
|
clean up unused old session maps
|
2019-06-28 19:21:44 -05:00 |
|
Arceliar
|
5df110ac79
|
make Dial block until the search finishes, and use it as such
|
2019-06-28 18:42:31 -05:00 |
|
Neil Alexander
|
93a323c62c
|
Add support for logging to file or syslog instead of stdout
|
2019-06-28 23:45:04 +01:00 |
|
Arceliar
|
29a0f8b572
|
some minor refactoring to dht callbacks and searches, work in progress
|
2019-06-25 19:31:29 -05:00 |
|
Neil Alexander
|
f545060e89
|
Add notes on isSessionAllowed checks
|
2019-06-13 23:37:53 +01:00 |
|
Neil Alexander
|
e229ad6e2b
|
Update comments
|
2019-06-11 12:52:13 +01:00 |
|
Neil Alexander
|
720a078a35
|
Add SetSessionGatekeeper
This allows you to define a function which determines whether a session connection (either incoming or outgoing) is allowed based on the public key.
|
2019-06-11 10:52:21 +01:00 |
|
Arceliar
|
4b56849b08
|
fix issue with sessions dying and never being fixed
|
2019-06-10 22:09:12 -05:00 |
|
Arceliar
|
1addf08ccd
|
don't have Conn.Read return an error for temorary crypto failures from e.g. out of order packets, just drop the packet and keep blocking until there's usable traffic
|
2019-05-31 17:51:01 -05:00 |
|
Neil Alexander
|
9e086e70f0
|
Don't indefinitely block TUN/TAP reader goroutine when a conn error happens
|
2019-05-30 12:44:47 +01:00 |
|
Neil Alexander
|
0096d1ae3e
|
Re-add ICMPv6 packet too big handling
|
2019-05-29 20:16:17 +01:00 |
|
Neil Alexander
|
3b6c726a3c
|
Fix bug where MTU was ignored by sessions, resulting in default 1280
|
2019-05-29 19:11:12 +01:00 |
|
Neil Alexander
|
78eb40cbad
|
Record session uptime (purely for the admin socket)
|
2019-05-29 12:59:36 +01:00 |
|
Arceliar
|
5ea864869a
|
don't spam searches for unused connections. todo: timeout old connections somehow
|
2019-05-23 20:27:52 -05:00 |
|
Neil Alexander
|
5b8d8a9341
|
Reimplement getNodeInfo, dhtPing, get/add/removeAllowedEncryptionPublicKey, add/removePeer
|
2019-05-20 19:51:44 +01:00 |
|
Neil Alexander
|
8ef1978cb1
|
Start factoring out the admin socket into a separate module (not all functions implemented yet)
|
2019-05-19 17:27:48 +01:00 |
|
Neil Alexander
|
7ca5a2533d
|
Implement GetDHT, GetSwitchQueues, GetSessions
|
2019-05-19 16:29:04 +01:00 |
|
Neil Alexander
|
8a6f6f3b2b
|
Implement GetPeers and GetSwitchPeers API functions in Core, in preparation for breaking out the admin socket into a separate module
|
2019-05-18 17:21:02 +01:00 |
|
Neil Alexander
|
ce60609906
|
Remove wrappedConn as unnecessary
|
2019-05-18 16:16:32 +01:00 |
|
Neil Alexander
|
ae2cc13d14
|
Fix configuration reloading support
|
2019-05-17 22:29:52 +01:00 |
|
Arceliar
|
9c01947b1c
|
reduce allocations in switch
|
2019-05-16 18:10:47 -05:00 |
|
Arceliar
|
522ed147b1
|
use the subnet derived ID/mask when creating a connection based on a subnet address, fix a potential blocking channel send in tuntap/conn.go, and get debug.go compiling well enough to profile things (the sim is currently still broken)
|
2019-05-15 18:01:26 -05:00 |
|
Arceliar
|
6469e39ff1
|
workaround to random timeouts
|
2019-04-26 22:42:05 -05:00 |
|
Arceliar
|
5d323861f0
|
properly fix the memory errors, it was caused by a function returning and PutBytes-ing a buffer before a worker had a chance to decrypt the buffer, so it would GetBytes the same buffer by dumb luck and then get an illegal overlap
|
2019-04-26 22:21:31 -05:00 |
|
Arceliar
|
01ea6d3d80
|
somehow this doesn't seem to deadlock or crash from buffer reuse (util.PutBytes), but I have no idea why it was doing that before and not now
|
2019-04-26 21:49:11 -05:00 |
|
Arceliar
|
15051b0a3c
|
Add deadline timers, keep searches alive until they complete (or the conn is closed) to keep Write from blocking forever
|
2019-04-26 19:31:47 -05:00 |
|
Arceliar
|
0059baf36c
|
add a newConn function that returns a pointer to a Conn with atomics properly initialized
|
2019-04-26 18:07:57 -05:00 |
|
Neil Alexander
|
75130f7735
|
Fix TAP support again
|
2019-04-23 11:46:16 +01:00 |
|
Neil Alexander
|
870b2b6a2e
|
Remove CKR from src/yggdrasil (it will be moved into tuntap)
|
2019-04-23 10:28:40 +01:00 |
|
Neil Alexander
|
d7a1c04748
|
It works, sort of, amazingly
|
2019-04-22 23:58:59 +01:00 |
|
Neil Alexander
|
e1a2d666bf
|
Clean up router, tweaks
|
2019-04-22 23:12:13 +01:00 |
|
Neil Alexander
|
6e528799e9
|
Conn Read/Write operations will block while search completes
|
2019-04-22 22:38:37 +01:00 |
|
Neil Alexander
|
ea8948f378
|
TUN/TAP addr/subnet to Conn mappings, other fixes
|
2019-04-22 20:06:39 +01:00 |
|
Neil Alexander
|
9778f5d2b8
|
Fix search behaviour on closed Conns, various other fixes
|
2019-04-22 15:00:19 +01:00 |
|
Neil Alexander
|
bbd1246f7b
|
Fix bug in mask generation for outbound dials, change iface reader mutexes to read-only locks unless RW is needed
|
2019-04-22 11:49:47 +01:00 |
|
Neil Alexander
|
47eb2fc47f
|
Break deadlock by creating session recv queue when session is created instead of repointing at search completion, also make expired atomic
|
2019-04-22 11:20:35 +01:00 |
|
Arceliar
|
5a02e2ff44
|
apparently it was these callbacks that were sometimes deadlocking things
|
2019-04-21 22:31:56 -05:00 |
|
Arceliar
|
5dada3952c
|
use a session worker to try to avoid mutex hell. compiles, but incomplete and doesn't work yet
|
2019-04-21 20:38:14 -05:00 |
|
Neil Alexander
|
0b8f5b5dda
|
Tweaks
|
2019-04-21 12:28:46 +01:00 |
|
Neil Alexander
|
781cd7571f
|
Fix race on tun conns, but still deadlocks if more than one connection is opened
|
2019-04-21 12:00:31 +01:00 |
|
Neil Alexander
|
79bcfbf175
|
Change some mutexes to atomics, change conns map to pointers, sort of works but seems to deadlock very easily
|
2019-04-21 11:50:41 +01:00 |
|
Neil Alexander
|
62621f2960
|
Some tweaks
|
2019-04-20 20:22:58 +01:00 |
|
Neil Alexander
|
d01662c1fb
|
Try to convert TUN/TAP to use new yggdrasil.Conn, search masks are still broken
|
2019-04-20 16:32:27 +01:00 |
|
Neil Alexander
|
f3e742a297
|
Squash a whole load of races (and mutex half the world)
|
2019-04-20 11:53:38 +01:00 |
|
Neil Alexander
|
24281d4049
|
Fix Read, update sample
|
2019-04-19 23:47:11 +01:00 |
|
Neil Alexander
|
e31b914e38
|
Improve errors and handling of expired sessions
|
2019-04-19 23:30:43 +01:00 |
|
Neil Alexander
|
7e726b0afb
|
Listener should clean up a bit more when closing
|
2019-04-19 23:04:09 +01:00 |
|
Neil Alexander
|
aac88adbed
|
Listen-Accept-Read-Write pattern now works, amazingly
|
2019-04-19 22:57:52 +01:00 |
|
Neil Alexander
|
27b78b925d
|
Move mutexes around
|
2019-04-19 21:23:15 +01:00 |
|
Neil Alexander
|
e3eadba4b7
|
Protect session nonces with mutexes, modify sent/received bytes atomically
|
2019-04-19 20:10:41 +01:00 |
|
Neil Alexander
|
ade684beff
|
Signal when a session is closed, other tweaks
|
2019-04-19 10:55:15 +01:00 |
|
Neil Alexander
|
c593721362
|
Tweaks
|
2019-04-19 00:33:54 +01:00 |
|
Neil Alexander
|
b20c8b6da5
|
Move some things around a bit, delete session workers
|
2019-04-19 00:11:43 +01:00 |
|
Neil Alexander
|
b2f4f2e1b6
|
Update errors, update Write
|
2019-04-19 00:07:26 +01:00 |
|
Neil Alexander
|
160e01e84f
|
Searches called from api.go, various other tweaks, searches now have a callback for success/failure, node ID now reported by admin socket
|
2019-04-18 23:38:23 +01:00 |
|
Neil Alexander
|
eef2a02d0a
|
Experiment with new API
|
2019-04-18 16:38:24 +01:00 |
|
Neil Alexander
|
24fa8355f1
|
Merge pull request #401 from neilalexander/modular
Refactoring for Yggdrasil library
|
2019-04-17 18:35:10 +01:00 |
|
cathugger
|
4488189a75
|
wire: cleaner and faster wire_intToUint and wire_intFromUint
Bit operations are much faster on most processors than multiplication.
Also specify that it's zigzag to ease finding additional documentation for it.
|
2019-04-06 21:34:47 +03:00 |
|
Neil Alexander
|
90feae6a7d
|
Comment out AWDL (doesn't work in iOS properly) and move out of main package
|
2019-04-01 20:12:39 +01:00 |
|
Neil Alexander
|
350b51cabb
|
TUN/TAP now uses config, log, etc from adapter.go
|
2019-04-01 20:10:14 +01:00 |
|
Neil Alexander
|
58f5cc88d0
|
Fix session bug, fix dummy adapter, fix mobile framework builds
|
2019-04-01 19:59:50 +01:00 |
|
Neil Alexander
|
047717abf2
|
Break out mobile and dummy adapter
|
2019-04-01 18:02:06 +01:00 |
|
Neil Alexander
|
39baf7365c
|
Unexport/modify some interfaces to revive broken iOS/Android builds
|
2019-03-30 00:09:35 +00:00 |
|
Neil Alexander
|
4c0c3a23cb
|
Fix bugs
|
2019-03-29 18:24:57 +00:00 |
|
Neil Alexander
|
f19a4e4398
|
More godoc improvements
|
2019-03-29 18:18:31 +00:00 |
|
Neil Alexander
|
b5ac65cacb
|
Rearrange public interface, godoc improvements
|
2019-03-29 18:05:17 +00:00 |
|
Neil Alexander
|
399e1a2ffe
|
Make AddPeer remember added peer (as opposed to CallPeer which does not)
|
2019-03-29 08:58:30 +00:00 |
|
Neil Alexander
|
a830521078
|
Don't crash if Yggdrasil is started with no router adapter
|
2019-03-29 08:38:09 +00:00 |
|
Neil Alexander
|
dd05a7f2a8
|
Tweaks
|
2019-03-28 19:09:19 +00:00 |
|
Neil Alexander
|
fd0b614f9c
|
Temporarily disable debug CircleCI builds as I don't know how badly I've broken the sim with this PR
|
2019-03-28 18:03:14 +00:00 |
|
Neil Alexander
|
7ea4e9575e
|
Break out multicast into a separate package
|
2019-03-28 16:13:14 +00:00 |
|
Neil Alexander
|
eb22ed44ac
|
Add new reject channel to router so we can send back rejected packets to adapter (e.g. for ICMPv6 Packet Too Big), implement ICMPv6 PTB in TUN/TAP instead of router
|
2019-03-28 09:50:13 +00:00 |
|
Neil Alexander
|
0715e829c2
|
Fix adapter setup and no longer panics on packets shorter than IP header
|
2019-03-28 09:12:00 +00:00 |
|
Neil Alexander
|
0b494a8255
|
Refactoring: move tuntap and icmpv6 into separate package
|
2019-03-28 00:30:25 +00:00 |
|
Neil Alexander
|
5bacfabae7
|
Handle cases where link-local addresses may disappear or change
|
2019-03-13 17:43:33 +00:00 |
|
Neil Alexander
|
41872820c3
|
Remove isAutoconf option to GenerateConfig
|
2019-03-12 19:18:43 +00:00 |
|
Neil Alexander
|
dc3a05f13a
|
Correctly classify link-local addresses in the TCP handler, fix AllowedPublicEncryptionKeys warning
|
2019-03-12 16:03:02 +00:00 |
|
Neil Alexander
|
229de91a3a
|
Fix AllowedEncryptionPublicKeys so that it works in incoming connections and not outgoing ones
|
2019-03-12 15:01:27 +00:00 |
|
Neil Alexander
|
9d5ca85424
|
Add LinkLocalTCPPort option
|
2019-03-10 19:08:56 +00:00 |
|
Neil Alexander
|
3c2cdfea1c
|
Keep AWDL awake, or wake it up again after a minute if suspended for some reason (e.g. sleep)
|
2019-03-10 18:05:27 +00:00 |
|
Arceliar
|
3c696c3e55
|
use idle time in switch decisions to force it to try all links
|
2019-03-09 19:27:52 -06:00 |
|
Arceliar
|
c7b4bfcef5
|
misc fixes
|
2019-03-09 18:08:26 -06:00 |
|
Neil Alexander
|
03eec4b14d
|
Don't leak interface name via multicast, ensure zone is always correct when dialling link-local
|
2019-03-09 09:24:52 +00:00 |
|
Arceliar
|
a0e6edd219
|
Merge pull request #360 from neilalexander/multilink
Support for multiple listeners
|
2019-03-08 18:56:47 -06:00 |
|
Arceliar
|
426d157025
|
make sure we don't replace an existing listener
|
2019-03-08 18:51:07 -06:00 |
|
Neil Alexander
|
917ca6c1c5
|
Make changes based on review comments
|
2019-03-08 10:26:46 +00:00 |
|
Arceliar
|
02b1892cc5
|
try to switch parents if a parent link is blocked
|
2019-03-07 21:36:12 -06:00 |
|
Neil Alexander
|
b8cabf3212
|
Support removing Listen interfaces at runtime properly
|
2019-03-06 16:40:48 +00:00 |
|
Neil Alexander
|
531d9f39ca
|
Fix multicast bug, set static multicast interval 15 seconds
|
2019-03-06 12:15:40 +00:00 |
|
Neil Alexander
|
c0d5a8c0bd
|
Clean up old listeners first
|
2019-03-06 12:09:57 +00:00 |
|
Neil Alexander
|
f4e17b9a9f
|
Properly handle multicast interfaces going up and down
|
2019-03-06 12:07:33 +00:00 |
|
Neil Alexander
|
de2aff2758
|
Refactor multicast so that it creates a new TCP listener for each interface with LL addresses (so that it will not break if Listen is not set with a wildcard address)
|
2019-03-06 11:06:13 +00:00 |
|
Neil Alexander
|
19267beb9e
|
Merge branch 'develop' into multilink
|
2019-03-05 22:07:20 +00:00 |
|
Neil Alexander
|
236692bdc4
|
Add getTunnelRouting and setTunnelRouting (fixes #362)
|
2019-03-05 17:55:46 +00:00 |
|
Neil Alexander
|
a17d6d3a68
|
Fix getTunTap (fixes #363)
|
2019-03-05 17:37:26 +00:00 |
|
Neil Alexander
|
2ef823e69c
|
Fix deadlock when reconfiguring multicast
|
2019-03-04 23:16:46 +00:00 |
|
Neil Alexander
|
88925d3e06
|
Centralise call/listen functions in link.go
|
2019-03-04 22:45:35 +00:00 |
|
Neil Alexander
|
61774aed3b
|
Show proto in admin socket, link linkInfo from peer, other fixes
|
2019-03-04 20:33:08 +00:00 |
|
Neil Alexander
|
2b8648e2b3
|
Fix debug builds
|
2019-03-04 19:04:09 +00:00 |
|
Neil Alexander
|
0be0b078cb
|
Remove unused types in link.go
|
2019-03-04 19:00:06 +00:00 |
|
Neil Alexander
|
eeede4e6d0
|
Fix some obvious concurrency bugs
|
2019-03-04 18:47:40 +00:00 |
|
Neil Alexander
|
82bb95b77f
|
Some more (inelegant) multiple listener code plus some reconfigure support
|
2019-03-04 18:41:32 +00:00 |
|
Neil Alexander
|
be8db0c120
|
Support multiple TCP listeners
|
2019-03-04 17:52:57 +00:00 |
|
Neil Alexander
|
ae79246a66
|
Move TCP under link.go
|
2019-03-04 17:09:48 +00:00 |
|
Neil Alexander
|
918ce5a3fc
|
Add a timeout on the UNIX admin socket check
|
2019-03-03 19:32:36 +00:00 |
|
Neil Alexander
|
c940bae9e3
|
Update output
|
2019-03-03 14:15:01 +00:00 |
|
Neil Alexander
|
8f66d5b8dd
|
Try to clean up UNIX admin socket
|
2019-03-03 14:09:54 +00:00 |
|
Neil Alexander
|
3c733eadb4
|
Merge pull request #350 from neilalexander/awdl
Wake AWDL for multicast peering on macOS
|
2019-03-02 10:33:47 +00:00 |
|
Neil Alexander
|
12e088ab9e
|
Remove unnecessary Cgo line
|
2019-03-01 19:34:53 +00:00 |
|
Neil Alexander
|
e99903bf72
|
Wake up AWDL on Darwin if awdl0 is an enabled multicast interface
|
2019-03-01 19:26:50 +00:00 |
|
Neil Alexander
|
a6ae159329
|
Give some more feedback that a configuration reload actually happens
|
2019-03-01 18:26:52 +00:00 |
|
Arceliar
|
304f22dc1d
|
re-enable session workers in a way that doesn't block and drops packets before decrypting if necessary
|
2019-02-28 20:05:21 -06:00 |
|
Arceliar
|
06df791efc
|
buffer packets moving from the switch to the router, allow them front drop if there's too many
|
2019-02-28 19:08:56 -06:00 |
|
Arceliar
|
371b5ca6a2
|
Change log message about AllowedEncryptionPublicKeys from Debug to Warn
|
2019-02-28 18:49:34 -06:00 |
|
Arceliar
|
2569242050
|
fixes to linkInterface.handler()
|
2019-02-26 21:07:56 -06:00 |
|
Arceliar
|
def4fb3587
|
fix timeout and improve logging on connection close
|
2019-02-24 14:48:16 -06:00 |
|
Arceliar
|
654407dc6d
|
close long-dead connections in link.go instead of in switch.go, this is important in case a connection opens but never bothers to send even one switch message
|
2019-02-24 13:24:55 -06:00 |
|
Arceliar
|
bb3edd5e55
|
add the relevant error to the default logging when a connection is closed
|
2019-02-24 12:59:30 -06:00 |
|
Arceliar
|
042adb0516
|
make sure the only place traffic is ever dropped is in the switch. this currently disables the dedicated crypto workers
|
2019-02-23 00:07:00 -06:00 |
|
Arceliar
|
e31962de0f
|
Merge branch 'develop' into switch
|
2019-02-16 16:26:20 -06:00 |
|
Arceliar
|
6f0bbbfb98
|
Debug some issues with the state machine that tracks idle connections in link.go
|
2019-02-15 19:35:10 -06:00 |
|
Arceliar
|
3c9c8672c9
|
Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into switch
|
2019-02-15 16:28:48 -06:00 |
|
Neil Alexander
|
0ca64b0abe
|
Remove ReadTimeout configuration option
|
2019-02-10 12:13:49 +00:00 |
|
Arceliar
|
21cecf4630
|
consistently prioritize which peer to forward to instead of letting it be partly random
|
2019-02-09 17:44:25 -06:00 |
|
Arceliar
|
ad43558fbb
|
fix bug in switch time
|
2019-02-09 15:30:17 -06:00 |
|
Arceliar
|
74ac535d55
|
slightly faster switch logic, should be easier to have a useful tie-breaker for peers that are equally close to the destination via the tree metric
|
2019-02-08 19:46:11 -06:00 |
|
Arceliar
|
41f49faaa0
|
get code running in the netns test again, remove unnecessary allocations that were found in profiling
|
2019-02-05 17:39:59 -06:00 |
|
Arceliar
|
2f8dd5dde0
|
remove race condition in setting peer.close by requiring it as an argument to newPeer
|
2019-02-03 15:50:25 -06:00 |
|
Arceliar
|
5ddf84f329
|
remove peers completely after a long switch timeout, this could use some improvement later
|
2019-02-03 15:22:14 -06:00 |
|
Arceliar
|
ebbe5f67ad
|
don't time out a link unless we were expecting an ack and didn't get one
|
2019-02-02 22:41:51 -06:00 |
|
Arceliar
|
b44a0f29f3
|
send an ack if we receive a packet and don't have any return traffic, keeping a legacy 4-second keep-alive in case there's no traffic at all to send (to be removed later, after nodes have upgraded), ideally we should either remove ReadTimeout or use it for the switch idle timeout instead
|
2019-02-02 22:18:55 -06:00 |
|
Neil Alexander
|
43f798e82e
|
Check link-local in tcp.go, track direction in link.go, fix compile error for mobile.go
|
2019-02-01 00:02:17 +00:00 |
|
Neil Alexander
|
ec5f7d9879
|
Enforce AllowedEncryptionPublicKeys for all peers inc. link-local
|
2019-01-31 23:47:20 +00:00 |
|
Neil Alexander
|
432f93de89
|
Check AllowedEncryptionPublicKeys
|
2019-01-31 23:29:18 +00:00 |
|
Neil Alexander
|
e36f88c75f
|
Info logging when link connects/disconnects
|
2019-01-31 23:18:02 +00:00 |
|
Arceliar
|
05962b2cbd
|
disable idle nodes in the switch instead of killing the connection entirely. this implementation is ugly, but i think it maybe works
|
2019-01-30 20:58:23 -06:00 |
|
Neil Alexander
|
2466c54a71
|
Update debug lines in link.go
|
2019-01-27 20:56:10 +00:00 |
|
Neil Alexander
|
1a3a67f205
|
Merge remote-tracking branch 'origin/develop' into link
Fix merge conflicts from flexible logging branch
|
2019-01-27 20:54:21 +00:00 |
|
Neil Alexander
|
22d2e0e4fe
|
Fix debug builds
|
2019-01-27 13:33:32 +00:00 |
|
Neil Alexander
|
0838928668
|
Add support for flexible logging levels
|
2019-01-27 13:31:43 +00:00 |
|
Arceliar
|
6ef0e47632
|
fix merge conflict
|
2019-01-26 14:27:37 -06:00 |
|
Arceliar
|
bca69df1f6
|
possible workaround to a deadlock
|
2019-01-26 14:07:18 -06:00 |
|
Neil Alexander
|
705b914d00
|
Move awdl into link
|
2019-01-23 19:42:33 +00:00 |
|
Neil Alexander
|
188a9e439d
|
Bug fixes for AWDL
|
2019-01-23 18:16:31 +00:00 |
|
Neil Alexander
|
2944be4faf
|
Further tweaks
|
2019-01-23 17:05:16 +00:00 |
|
Neil Alexander
|
81545fd9bf
|
Clean up
|
2019-01-23 15:16:22 +00:00 |
|
Neil Alexander
|
9c6cf50684
|
Adapt AWDL to link
|
2019-01-23 15:08:19 +00:00 |
|
Arceliar
|
7b2460662d
|
close the connection before blocking a duplicate link
|
2019-01-22 21:53:39 -06:00 |
|
Arceliar
|
f936151f2d
|
correctly clean up various things
|
2019-01-22 21:48:43 -06:00 |
|
Arceliar
|
eb8951081d
|
fix duplicate connection bug, I think this is also in develop
|
2019-01-22 21:23:57 -06:00 |
|
Arceliar
|
12c0e019dc
|
only create one interface, but still opens duplicate connections before it catches this, so more work is needed
|
2019-01-22 21:16:41 -06:00 |
|
Arceliar
|
f95663e923
|
actually finish initializing peers
|
2019-01-22 18:24:15 -06:00 |
|
Arceliar
|
137212d8cf
|
work in progress, establishes TCP connections and gets through metadata handshake using the link code, but doesn't seem to send traffic yet (no switch peers are created)
|
2019-01-21 23:08:50 -06:00 |
|
Arceliar
|
5a4d6481dd
|
Work in progress, add a linkInterfaceMsgIO interface type and make stream implement it, this will be used by link
|
2019-01-21 21:27:52 -06:00 |
|
Neil Alexander
|
ad6ec6ab11
|
Merge pull request #315 from neilalexander/flowlabel
Update switch flow separation for IPv4
|
2019-01-21 23:22:40 +00:00 |
|
Neil Alexander
|
62d4d62a77
|
Update comments
|
2019-01-21 16:24:29 +00:00 |
|
Neil Alexander
|
d3f67ad017
|
Improve command flow
|
2019-01-21 16:22:49 +00:00 |
|
Neil Alexander
|
cdfb930703
|
Update switch flow separation for IPv4
|
2019-01-21 12:27:29 +00:00 |
|
Arceliar
|
c8e1be0f73
|
link/stream refactoring bugfixes and gofmt
|
2019-01-19 16:37:45 -06:00 |
|
Neil Alexander
|
41a410f2a1
|
Initialise awdl.go from link.go, remove deadlock between awdl.create and link.create, other bits and pieces
|
2019-01-19 12:19:24 +00:00 |
|
Neil Alexander
|
c51a3340b1
|
Update awdl.go to use new link stuff (untested)
|
2019-01-19 00:42:53 +00:00 |
|
Neil Alexander
|
4ae36dfffe
|
Merge branch 'ios' into link
|
2019-01-19 00:23:38 +00:00 |
|
Neil Alexander
|
6fe3b01e90
|
Rename awdl.go to link.go, add stream.go, update tcp.go
|
2019-01-19 00:14:10 +00:00 |
|
Neil Alexander
|
30df632eb2
|
Merge branch 'develop' into ios
|
2019-01-17 23:15:00 +00:00 |
|
Neil Alexander
|
c839012580
|
Fix source address selection
|
2019-01-17 23:06:59 +00:00 |
|
Neil Alexander
|
9d5085492e
|
Handle session firewall using central config
|
2019-01-16 20:38:51 +00:00 |
|
Neil Alexander
|
fdf300a1ff
|
Handle AllowedEncryptionPublicKeys internally
|
2019-01-16 20:26:39 +00:00 |
|
Neil Alexander
|
68eb684f6d
|
Fix mobile.go now that multicast interfaces are handled internally
|
2019-01-16 19:27:44 +00:00 |
|
Neil Alexander
|
8baf593b62
|
Update source address selection when sintf specified
|
2019-01-16 14:52:27 +00:00 |
|
Neil Alexander
|
c85dbaea95
|
Fix missing nodeinfo.init
|
2019-01-16 13:23:26 +00:00 |
|
Neil Alexander
|
4fba558638
|
Fix concurrent map write in tcp.go
|
2019-01-16 13:20:12 +00:00 |
|
Neil Alexander
|
53be1b02f3
|
Check if accepting socket produced an error
|
2019-01-15 08:53:57 +00:00 |
|
Neil Alexander
|
2cd373fc1e
|
Remove unnecessary selects
|
2019-01-15 08:51:19 +00:00 |
|
Neil Alexander
|
39567bed83
|
Address some comments
|
2019-01-15 08:44:33 +00:00 |
|
Neil Alexander
|
3bf53796a7
|
Merge branch 'develop' into nodeconfig
|
2019-01-15 08:37:10 +00:00 |
|
Arceliar
|
248edf8319
|
Merge pull request #304 from deavmi/develop
Spelling fixes
|
2019-01-14 21:27:15 -06:00 |
|
Neil Alexander
|
d9ddf30faf
|
Fix debug builds
|
2019-01-14 19:29:22 +00:00 |
|
Neil Alexander
|
f6b663c257
|
Make multicasting use config instead of ifceExpr in Core
|
2019-01-14 19:27:13 +00:00 |
|
Neil Alexander
|
9e486ed4fe
|
Move nodeinfo into router
|
2019-01-14 19:05:16 +00:00 |
|
Neil Alexander
|
5cde3b5efc
|
Update nodeinfo in router reconfigure
|
2019-01-14 18:51:49 +00:00 |
|
Neil Alexander
|
9e186bdd67
|
Remove mutexes from CKR and use router goroutine/doAdmin for update config
|
2019-01-14 18:34:15 +00:00 |
|
Neil Alexander
|
51026d762e
|
Make session firewall thread-safe for config updates
|
2019-01-14 18:24:35 +00:00 |
|
Neil Alexander
|
bd04124e43
|
Reconfigure support for crypto-key routing
|
2019-01-14 18:06:41 +00:00 |
|
Neil Alexander
|
28072c9fe2
|
Make CKR thread-safe
|
2019-01-14 17:41:08 +00:00 |
|
Neil Alexander
|
87d393bd9f
|
Move add peer loop into Core, refresh it from active config
|
2019-01-14 17:21:15 +00:00 |
|
Neil Alexander
|
aed3c7e784
|
Give nodeconfig to tun
|
2019-01-14 14:25:52 +00:00 |
|
Neil Alexander
|
738a9da796
|
Merge branch 'develop' into nodeconfig
|
2019-01-14 14:01:38 +00:00 |
|
Neil Alexander
|
f556f3e2a8
|
Try to perform TCP-like key exchange
|
2019-01-13 22:57:37 +00:00 |
|
Neil Alexander
|
704e4a062f
|
Specify source interface when responding to multicast beacon
|
2019-01-13 22:51:34 +00:00 |
|
Neil Alexander
|
c8db66b17d
|
Remove unneeded AWDL context functions
|
2019-01-13 18:11:36 +00:00 |
|
Neil Alexander
|
4622a85c34
|
AWDL support for macOS/iOS
|
2019-01-13 18:08:41 +00:00 |
|
Neil Alexander
|
e24e859254
|
Add some comments, move AWDL functions to iOS-specific build tags
|
2019-01-10 11:31:04 +00:00 |
|
Neil Alexander
|
a371e34a18
|
Add Android support, add addStaticPeers
|
2019-01-10 10:44:44 +00:00 |
|
Tristan B. Kildaire
|
08a71af2d8
|
Spelling fixes for switch.go
|
2019-01-09 11:49:12 +02:00 |
|
Tristan B. Kildaire
|
345979b502
|
Spelling fixes for search.go
|
2019-01-09 11:44:45 +02:00 |
|
Tristan B. Kildaire
|
ab4be3424b
|
Spelling fixes for peer.go
|
2019-01-09 11:42:07 +02:00 |
|
Neil Alexander
|
6efac9a377
|
Add contexts
|
2019-01-06 14:12:10 +00:00 |
|
Neil Alexander
|
2034c9eab9
|
Fix missing pointer from awdlInterface to awdl
|
2019-01-05 23:00:49 +00:00 |
|
Neil Alexander
|
87362a21e2
|
Access NSLog through Cgo for iOS NetworkExtension logging
|
2019-01-05 21:59:07 +00:00 |
|
Neil Alexander
|
6bbd8c1b30
|
Rethink channels, more error throwing
|
2019-01-05 12:06:45 +00:00 |
|
Neil Alexander
|
90366dd853
|
Update handler behavior
|
2019-01-05 01:02:22 +00:00 |
|
Neil Alexander
|
1170ea9e98
|
Start linkloop
|
2019-01-05 00:52:41 +00:00 |
|
Neil Alexander
|
4363283a6f
|
Notify switch idle
|
2019-01-05 00:32:28 +00:00 |
|
Neil Alexander
|
00bf71a09a
|
Fight me Swift and your hexadecimal strings
|
2019-01-04 23:31:44 +00:00 |
|
Neil Alexander
|
5a36b4723a
|
Add AWDL calls to exposed API, handle proto traffic first
|
2019-01-04 17:41:03 +00:00 |
|
Neil Alexander
|
3878197a59
|
gofmt
|
2019-01-04 17:23:37 +00:00 |
|
Neil Alexander
|
f29a098488
|
Add experimental dummy interface for AWDL
|
2019-01-04 17:14:40 +00:00 |
|
Neil Alexander
|
d10a0d6137
|
Add GenerateConfigJSON, fix StartJSON
|
2019-01-03 22:50:08 +00:00 |
|
Neil Alexander
|
f7b0a85b5e
|
Add StartJSON
|
2019-01-02 23:15:36 +00:00 |
|
Neil Alexander
|
4ff3db2309
|
Add dummy tun, helper functions
|
2019-01-02 18:05:54 +00:00 |
|
Neil Alexander
|
53aeca8fa2
|
Add some simple functions for Swift bindings (iOS)
|
2019-01-01 23:25:20 +00:00 |
|
Neil Alexander
|
1e29465af1
|
Fix debug builds (hopefully)
|
2018-12-31 12:08:15 +00:00 |
|