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
4062c93e18
Re-order config, update default Listen
2019-03-12 19:04:30 +00:00
Neil Alexander
830be7f4db
Update comments again
2019-03-12 16:06:12 +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
c388885a92
Update config comments for AllowedEncryptionPublicKeys
2019-03-12 15:29:42 +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
ec19c479dd
Add comment about no reloading for LinkLocalTCPPort
2019-03-10 19:17:03 +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
57eb6eaeb0
Clean up config package
2019-03-06 17:45:47 +00:00
Neil Alexander
b8cabf3212
Support removing Listen interfaces at runtime properly
2019-03-06 16:40:48 +00:00
Neil Alexander
18ef28a477
Fix default Listen config
2019-03-06 13:00:45 +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
Neil Alexander
4d3e90cbfe
Merge branch 'develop' into nodeconfig
2018-12-31 11:55:37 +00:00
Neil Alexander
fb47c9822f
getNodeInfo: Show own info if box_pub_key/coords not specified
2018-12-31 11:48:50 +00:00
Neil Alexander
cd86c33850
Try to tidy up a bit, move checks for if we are already calling/connected
...
Something I noticed when working on reconfigure support for the "Listen"
option is that we have some rather huge weaknesses in our multicasting
design. Right now if we change our Listen address, it's not really
possible for remote nodes to know whether they are still connected to
us, so they start connecting in response to our changed beacons. They
can't know that they already know about us until *after* the handshake
but this registers in the local client log as repeated Connect/Disconnects
even though the existing peerings never actually drop.
2018-12-30 21:11:16 +00:00
Neil Alexander
80c9a1bc12
Don't track localAddr in conns as it is irrelevant
2018-12-30 16:48:34 +00:00
Neil Alexander
cb4495902b
Allow updating Listen during runtime
2018-12-30 15:21:09 +00:00
Neil Alexander
f96747181d
Allow updating AdminListen during runtime
2018-12-30 12:26:55 +00:00
Neil Alexander
7fae1c993a
Handle errors from reconfigure tasks
2018-12-30 12:04:42 +00:00
Neil Alexander
2925920c70
Use mutex in switch/tcp init
2018-12-29 19:53:31 +00:00
Neil Alexander
fa7c4117b4
Use Core.config in init functions
2018-12-29 19:14:26 +00:00
Neil Alexander
219fb96553
Support notifying components for config reload, listen for SIGHUP
2018-12-29 18:51:51 +00:00
Neil Alexander
4e03bdb054
Don't process ICMPv6 messages when in TUN mode
2018-12-26 22:45:21 +00:00
Neil Alexander
74692b689a
Fix OpenBSD (tested and working on 6.4)
2018-12-26 12:25:28 +00:00
Neil Alexander
b3d6c9a385
Print when peermacs learned
2018-12-26 11:57:08 +00:00
Neil Alexander
9eeb482587
Use ICMPv6 NDP target instead of source address when populating peermacs
2018-12-26 11:51:21 +00:00
Arceliar
50ed92d6d2
insert a copy when calling dht.insertPeer
2018-12-26 00:18:51 -06:00
Tristan B. Kildaire
b66049c14f
Typo fix
...
Typo fix in function's header comment.
2018-12-22 11:31:52 +02:00
Neil Alexander
0dfdc789d3
Merge pull request #275 from neilalexander/nodeinfomask
...
Allow hiding nodeinfo defaults
2018-12-22 08:54:37 +00:00
Arceliar
59093aa43b
clean up node info immediately if it reaches the timeout or if it needs refreshing but won't be pinged due to being unimportant
2018-12-21 17:45:24 -06:00
Neil Alexander
f6b0075989
Case-insensitive checking of null if string, don't print the nodeinfo again
2018-12-21 10:04:32 +00:00
Neil Alexander
586deed0f9
Add NodeInfoPrivacy option for not including defaults, and also check for null/"null" instead of "hide"
2018-12-21 09:56:34 +00:00
Arceliar
f59852b1e1
adjust how dht throttle works, it should now back off faster, and back off even more if things are not in use
2018-12-20 20:16:51 -06:00
Neil Alexander
60549cfa09
Adds special keyword 'hide' for masking built-in nodeinfo defaults
2018-12-20 23:49:15 +00:00
Arceliar
dfcdafa55c
move special peer/dht insert logic form router.go to dht.go
2018-12-20 17:37:59 -06:00
Neil Alexander
8ec4c66f65
Multithread the admin socket
2018-12-17 19:06:52 +00:00
Neil Alexander
6e87791e50
Merge pull request #256 from Arceliar/tcp
...
Minor TCP change
2018-12-17 10:20:23 +00:00
Arceliar
300f471bab
don't SetKeepAlive[Period] on tcp connections, since the behavior is platform specific
2018-12-16 18:32:50 -06:00
Arceliar
db034ce6bd
replace panics with warning messages if the tun reader/writer return an error
2018-12-16 17:23:07 -06:00
Arceliar
d9f212dd39
don't panic if we write to a closed tun device because tun.close() was called
2018-12-16 17:01:59 -06:00
Arceliar
28c7d75a20
fix conflicts with nodeinfo and update that for new crypto type names
2018-12-15 18:11:02 -06:00
Arceliar
89f9f5defb
fix merge conflicts
2018-12-15 17:57:36 -06:00
Neil Alexander
e0ff3ca587
Rename Metadata to NodeInfo
2018-12-15 22:37:11 +00:00
Neil Alexander
226c72df16
Set max metadata size to 16kb
2018-12-15 13:18:35 +00:00
Neil Alexander
07c26176b6
Fix core.SetMetadata
2018-12-15 12:21:00 +00:00
Neil Alexander
9a5cf96c29
Rename admin socket getMeta to getMetadata
2018-12-15 12:18:52 +00:00
Neil Alexander
92bb63f196
Use metadata from config file
2018-12-15 11:38:51 +00:00
Neil Alexander
d9884a5cac
Make use of metadata cache
2018-12-15 11:15:48 +00:00
Neil Alexander
d07e0ddfa0
Default metadata
2018-12-15 10:56:46 +00:00
Neil Alexander
8b63e841ea
Make threadsafe, add cache
2018-12-15 10:39:31 +00:00
Arceliar
4875ab8954
peer thread safey for dhtInfo updates
2018-12-14 21:44:31 -06:00
Arceliar
570e85c297
remove debug code
2018-12-14 21:12:25 -06:00
Arceliar
ea4ca02681
fix code after moving address/crypto/util
2018-12-14 20:49:18 -06:00
Neil Alexander
cdd2e7910a
Merge remote-tracking branch 'origin/develop' into metadata
2018-12-15 00:48:54 +00:00
Neil Alexander
d5031a5cb6
Metadata exchange without sessions
2018-12-15 00:48:27 +00:00
Arceliar
2c68d41409
move files, still need to fix exports and compile errors
2018-12-14 18:30:36 -06:00
Arceliar
abd8b69979
send a switch message immediately when peering, and use OS-level TCP keep-alive (shouldn't matter right now, since we have application-level keep-alive that preempts it, but important later)
2018-12-14 18:15:35 -06:00
Neil Alexander
f9dc300787
Define Adapter base type/interface
2018-12-14 18:29:00 +00:00
Neil Alexander
8045cb4dc3
Define generic adapter type, rename tunDevice to tunAdapter
2018-12-14 18:21:08 +00:00
Neil Alexander
f28360ce4d
Fix debug builds (foiled by debug builds every time)
2018-12-14 18:10:39 +00:00
Neil Alexander
2a38ad07cd
Don't send ICMPv6 back when tun disabled
2018-12-14 18:08:40 +00:00
Neil Alexander
9eaa2566c1
Parameterise tun.init
2018-12-14 18:08:13 +00:00
Neil Alexander
3ca5f10733
Don't try to correct peers with no schemes in addPeer
2018-12-14 17:52:54 +00:00
Neil Alexander
10157483f9
Move tunDevice into router
2018-12-14 17:35:02 +00:00
Neil Alexander
a9907a7878
Fix debug builds after 64060a4
2018-12-12 22:59:55 +00:00
Neil Alexander
64060a447c
Remove metadata-peer association until we have some sensible way to cache it
2018-12-12 22:58:16 +00:00
Neil Alexander
74de8c9416
Consistent function naming for metadata
2018-12-12 22:48:04 +00:00
Neil Alexander
042a3400fe
Wrap the metadata with a mutex to guarantee thread safety across core/router/sessions
2018-12-12 22:40:49 +00:00
Neil Alexander
97464feba9
Working metadata exchange
2018-12-12 19:51:28 +00:00
Neil Alexander
6200136fce
Merge branch 'descriptive' into metadata
2018-12-12 18:04:49 +00:00
Arceliar
6901e2fc9a
Merge pull request #238 from neilalexander/afunix
...
Use AF_UNIX socket by default for admin API
2018-12-10 17:34:36 -06:00
Neil Alexander
90ace46587
Enforce CKR cache size more strongly
2018-12-10 22:30:31 +00:00
Neil Alexander
65e34bbbab
Enforce maximum CKR routing cache size
2018-12-10 22:19:08 +00:00
Neil Alexander
f09adc2192
Update getRoutes format
2018-12-10 22:04:37 +00:00
Neil Alexander
dff1dca19c
Add DefaultConfigFile to defaults for yggdrasilctl
2018-12-10 10:20:59 +00:00
Neil Alexander
8aaaeb26eb
Default to /var/run/yggdrasil.sock for admin on Linux, BSDs
2018-12-10 00:37:32 +00:00
Neil Alexander
bbe2f56b74
Default to /var/run/yggdrasil.sock for admin on darwin/macOS
2018-12-10 00:31:31 +00:00
Neil Alexander
74a904d04c
Don't os.Chmod if we suspect the socket belongs to an abstract namespace
2018-12-10 00:26:12 +00:00
Neil Alexander
06c6dfc67f
Complain if socket file already exists
2018-12-10 00:19:21 +00:00
Neil Alexander
f791df4977
Try to chmod 660 the admin socket if using AF_UNIX
2018-12-10 00:00:23 +00:00
Neil Alexander
6801d713a7
Also don't start if AdminListen is empty
2018-12-09 17:53:31 +00:00
Neil Alexander
80d087404f
Allow disabling admin socket with AdminListen="none"
2018-12-09 17:46:48 +00:00
Neil Alexander
02f98a2592
Only show build name and version if it is known
2018-12-08 11:01:05 +00:00
Arceliar
af478e0e45
fix very special case bug when trying to dhtPing the root via the admin api
2018-12-08 00:42:13 -06:00
Arceliar
bd2d706745
fix bug from go vet while I'm at it
2018-12-07 20:36:30 -06:00
Arceliar
586781b49c
convert to go module
2018-12-07 19:56:04 -06:00
Neil Alexander
5149c6c349
Show build name and version at startup if available
2018-12-07 22:24:01 +00:00
Neil Alexander
3524c6eff6
Add build name and version to getSelf call on admin socket
2018-12-07 22:22:46 +00:00
Neil Alexander
8e784438c7
Imprint build name and version number if available
2018-12-07 22:20:11 +00:00
Arceliar
fe772dd38e
switch bugfixes
2018-12-05 18:22:39 -06:00
Arceliar
09228554cb
Merge pull request #223 from neilalexander/reusemulticast
...
Try to SO_REUSEPORT on multicast socket
2018-12-05 18:15:21 -06:00
Neil Alexander
ae48a1721e
Try to SO_REUSEADDR on Windows
2018-12-05 23:10:50 +00:00
Neil Alexander
eae8f9a666
Try to SO_REUSEPORT on UNIX platforms
2018-12-05 22:39:04 +00:00
Arceliar
3d4b49b693
reset the switch speed info for a peer whenever it changes coords, instead of only if they're a parent and change coords. Also, make sure packets in the sim preserve order when sending, to avoid races when testing
2018-12-03 19:21:23 -06:00
Arceliar
684632eb3d
Merge pull request #215 from Arceliar/switch
...
Latency-based parent selection for the switch
2018-12-02 17:26:26 -06:00
Neil Alexander
5a89a869be
Set queueTotalMaxSize before switch worker starts
2018-12-02 23:24:54 +00:00
Neil Alexander
b5f4637b5c
Enforce min 4MB switch queue total size
2018-12-02 23:20:11 +00:00
Neil Alexander
319457ae27
Update comment for MaxTotalQueueSize
2018-12-02 23:03:10 +00:00
Neil Alexander
86da073226
Add SwitchOptions and MaxTotalQueueSize
2018-12-02 22:49:27 +00:00
Arceliar
dcfe55dae8
store 'faster' relationships between all pairs of peers, to make fallback easier when a parent goes offline
2018-12-02 16:36:25 -06:00
Arceliar
38093219fd
dimensionless way to track how often nodes are faster than the current parent
2018-12-02 14:46:58 -06:00
Arceliar
b3e2b8e6a5
Update admin.go
...
Replace `nil` with `[]string{}` for `list`'s argument list.
2018-11-26 19:15:27 -06:00
Neil Alexander
099fee9cae
Rename destPubKey to box_pub_key in addRoute etc
2018-11-26 17:58:54 +00:00
Neil Alexander
315aadae06
Rename help to list
2018-11-26 17:51:30 +00:00
Neil Alexander
8239989c36
Send box_pub_key with getSessions, getDHT, getSwitchPeers and getPeers
2018-11-26 17:38:02 +00:00
Neil Alexander
5b10af7399
Rename key to box_pub_key in admin socket for consistency
2018-11-26 17:34:26 +00:00
Arceliar
d8d1e63c36
fix infinite loop from interaction between dht.isImportant and dht.insert
2018-11-25 20:33:33 -06:00
Arceliar
0ec6207e05
better response format and yggdrasilctl printing
2018-11-25 18:25:31 -06:00
Arceliar
a34ca40594
use a buffered channel to avoid races, and run gofmt
2018-11-25 17:59:36 -06:00
Arceliar
7954fa3c33
store one callback instead of many, needed to prevent search failures if there are multiple outstanding packets
2018-11-25 17:08:45 -06:00
Arceliar
9937a6102e
add callbacks to maintenance map cleanup
2018-11-25 16:29:47 -06:00
Arceliar
12e635f946
adjust dhtPing response so 'nodes' defaults to an empty list instead of null
2018-11-25 16:16:06 -06:00
Arceliar
d520a8a1d5
refactor dht code to call arbitrary callbacks instead of only searches.checkDHTRes, and add admin API fuction to dhtPing a node (with an optional target NodeID)
2018-11-25 16:10:32 -06:00
Arceliar
e17efb6e91
don't penalize dht timeouts a second time
2018-11-25 13:21:13 -06:00
Arceliar
9046dbde4f
remove sigManager, it seems safer to just burn the CPU than to store a map of strings of potentially arbitrary length
2018-11-25 13:06:54 -06:00