Commit Graph

638 Commits

Author SHA1 Message Date
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