Commit graph

  • aaf34c6304 start migrating the TunAdapter to the actor model Arceliar 2019-08-25 18:08:43 -05:00
  • 502f2937a9 a couple race fixes and use timer.AfterFunc instead of sleeping goroutines or ticker in a few places Arceliar 2019-08-25 17:00:02 -05:00
  • a3d4d8125b make the main library reconfiguration more actor-friendly Arceliar 2019-08-25 12:10:59 -05:00
  • aa30c6cc98 upgrade phony dependency and switch to its new interface Arceliar 2019-08-25 10:36:09 -05:00
  • cff1366146 update phony dependency Arceliar 2019-08-24 22:28:20 -05:00
  • 5312b21665 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into actors Arceliar 2019-08-24 18:30:15 -05:00
  • 2872ab5231
    Merge pull request #520 from Arceliar/bugfix Arceliar 2019-08-24 18:29:48 -05:00
  • f62bc842ae fix memory leak in session nonce map Arceliar 2019-08-24 18:23:54 -05:00
  • 68c380ff45 update phony dependency Arceliar 2019-08-24 17:03:19 -05:00
  • 48bbdac9b3 add a helper actor to the link reader to make it play nicer with backpressure Arceliar 2019-08-24 16:27:12 -05:00
  • 99be6b037d stop synchronizing message reads for now, not 100% safe but I don't have any better ideas Arceliar 2019-08-24 16:13:34 -05:00
  • 209d2ffea5 correctly call peer.sendPacketsFrom in the switch Arceliar 2019-08-24 16:04:05 -05:00
  • 8c7e9ec7c0 fix debug builds Arceliar 2019-08-24 15:32:19 -05:00
  • c573170886 remove switch doworker loop, start a dummy loop to respond to (unused) reconfiguration instead Arceliar 2019-08-24 15:27:56 -05:00
  • 998c76fd8c more switch migration Arceliar 2019-08-24 15:22:46 -05:00
  • 555b4c18d4 a little switch cleanup Arceliar 2019-08-24 15:05:18 -05:00
  • 498bc395e2 start migrating switch to the actor model Arceliar 2019-08-24 14:56:33 -05:00
  • b337228aa4 minor fixes to peer stuff Arceliar 2019-08-24 14:24:42 -05:00
  • 0539dee900 warning about possible deadlock in legacy channel send, need to migrate the link code to fix it Arceliar 2019-08-24 13:25:38 -05:00
  • 034fece33f more peer migration Arceliar 2019-08-24 13:15:29 -05:00
  • ecd23ce9fc safer linkloop Arceliar 2019-08-24 12:59:20 -05:00
  • 88161009e9 more peer migration Arceliar 2019-08-24 12:55:49 -05:00
  • 775fb535dc start converting the peer struct into an actor Arceliar 2019-08-24 12:46:24 -05:00
  • ef15a6bd79 tunConn cleanup Arceliar 2019-08-24 11:44:21 -05:00
  • 4893a07696 start migrating tunConn to the actor model Arceliar 2019-08-24 11:38:47 -05:00
  • b582c444f8 minor cleanup Arceliar 2019-08-24 01:57:08 -05:00
  • 1e346aaad0 have the conn actor receive messages from the session actor and either pass them to a callback or buffer them in a channel for Read to use if no callback was set Arceliar 2019-08-24 01:52:21 -05:00
  • 9948e3d659 add Conn.WriteFrom to allow actor-based sending Arceliar 2019-08-24 00:44:02 -05:00
  • da9f7151e3 more conn migration Arceliar 2019-08-24 00:17:37 -05:00
  • 6ecbc439f0 start migrating Conn to be an actor Arceliar 2019-08-23 23:36:00 -05:00
  • cac3444d9a fix debug builds Arceliar 2019-08-23 22:40:13 -05:00
  • cf9880464b explicitly consider the session finished case, and make a note that we could fix the packet drop situation by making the Conn into an actor too Arceliar 2019-08-23 22:36:59 -05:00
  • e3603c0462 clean up unused session code Arceliar 2019-08-23 22:25:40 -05:00
  • 533da351f9 fix actor EnqueueFrom stack overflow (use nil now to send from self) and replace session send/recv workers with actor functions Arceliar 2019-08-23 22:23:01 -05:00
  • 436c84ca33 refactor sessions to store a pointer to router instead of core Arceliar 2019-08-23 20:53:00 -05:00
  • 5bb85cf07b refactor searches to store a pointer to router instead of core Arceliar 2019-08-23 20:42:38 -05:00
  • e7024a00e7 have dht store a pointer to router instead of core Arceliar 2019-08-23 20:35:54 -05:00
  • ebd806f27a move router member initialization into router.init Arceliar 2019-08-23 20:29:16 -05:00
  • 9835c63818 refactor things the router owns (dht, sessions, searches) into that struct, to make the ownership more explicit Arceliar 2019-08-23 20:26:15 -05:00
  • bbcbbaf3b1 start migrating sessionInfo to be an actor Arceliar 2019-08-23 20:05:18 -05:00
  • 8e89816099 more router migration: rename functions that should only be called internally by the actor Arceliar 2019-08-23 18:59:34 -05:00
  • 232e6d3cb3 more router migration Arceliar 2019-08-23 18:55:41 -05:00
  • 9d7e7288c6 start migrating the router to an actor Arceliar 2019-08-23 18:47:15 -05:00
  • 8cb3ea8e3d make sure we buffer packets in order when waiting for a dial to finish, and make sure we can't leak the dial goroutine if the conn is closed before all buffered packets are sent Arceliar 2019-08-21 21:52:54 -05:00
  • 562a7d1f19
    Merge pull request #516 from yggdrasil-network/develop v0.3.8 Neil Alexander 2019-08-21 18:19:56 +01:00
  • 0cb99d522f
    Update changelog Neil Alexander 2019-08-21 18:18:46 +01:00
  • 1308cb37b9
    Merge pull request #515 from Arceliar/tidy Neil Alexander 2019-08-21 07:11:07 +01:00
  • 0d5dd9c455 update crypto dependency and run go mod tidy Arceliar 2019-08-20 23:44:20 -05:00
  • 12ce8c6a0a
    Merge pull request #512 from neilalexander/cryptokey Arceliar 2019-08-20 20:23:00 -05:00
  • f9d28e80df
    Merge pull request #514 from Arceliar/bugfix Arceliar 2019-08-20 19:13:00 -05:00
  • 226dd6170d hopefully prevent a deadlock Arceliar 2019-08-20 18:49:53 -05:00
  • 4156aa3003 move ckr checks into the tunConn code Arceliar 2019-08-20 18:10:08 -05:00
  • b79829c43b
    Merge branch 'develop' into cryptokey Neil Alexander 2019-08-20 09:43:17 +01:00
  • ca73cf9e98
    Merge pull request #513 from Arceliar/speedup Neil Alexander 2019-08-20 09:43:00 +01:00
  • b6e67bc0ba
    Check CKR remotes when receiving traffic Neil Alexander 2019-08-20 09:38:46 +01:00
  • 2b6462c8a9
    Strict checking of Yggdrasil source/destination addresses Neil Alexander 2019-08-20 09:38:27 +01:00
  • 834a6a6f1a don't allocate a new child cancellation in Conn read/write calls if no deadline is set Arceliar 2019-08-19 18:06:05 -05:00
  • 2a629880fd
    Rename crypto-key config options, improve control flow Neil Alexander 2019-08-19 10:28:30 +01:00
  • c04816b4bd
    Merge pull request #510 from Arceliar/streamWrites Arceliar 2019-08-18 18:19:06 -05:00
  • 322f83a247
    Deprecate IPv4Sources and IPv6Sources options in crypto-key routing, these options were not well understood and increased the complexity of configuring CKR vs Wireguard or similar Neil Alexander 2019-08-18 21:58:28 +01:00
  • 8af1a7086c when a link becomes idle and packet are buffered that the link could send, send at least 65535 bytes worth instead of 1 packet, this reduces syscall overhead when small packets are sent through the network Arceliar 2019-08-18 12:29:07 -05:00
  • 62337bcd64 allow links to send multiple packets at once, currently we still only bother to send 1 at a time from the switch level Arceliar 2019-08-18 12:17:54 -05:00
  • 009d9c9ec0
    Merge pull request #505 from yggdrasil-network/develop v0.3.7 Neil Alexander 2019-08-18 11:20:50 +01:00
  • 039dd98f0d
    Update CHANGELOG.md Arceliar 2019-08-17 12:46:34 -05:00
  • 57e7acdda8
    Update CHANGELOG.md Arceliar 2019-08-17 12:42:17 -05:00
  • 80535d402f
    Merge pull request #508 from Arceliar/nonce Neil Alexander 2019-08-17 10:55:21 +01:00
  • fd5f3ca764 fix heap pop order Arceliar 2019-08-16 23:07:40 -05:00
  • 03b8af9f1a keep track of recent nonces with a heap and a map instead of a fixed-size bitmask Arceliar 2019-08-16 18:37:16 -05:00
  • 0cac0c1d4e disable session nonce checks Arceliar 2019-08-15 18:58:29 -05:00
  • fdac8932a8
    Update changelog Neil Alexander 2019-08-15 13:11:54 +01:00
  • ae0fe93de5
    Update changelog Neil Alexander 2019-08-15 12:54:04 +01:00
  • adf69d0127
    Merge pull request #506 from Arceliar/switchorder Neil Alexander 2019-08-15 11:00:12 +01:00
  • 5b054766a2
    Update comments in handleIn, add switch_getFlowLabelFromCoords helper (in case it is useful if we try to consider flowlabels in multi-link scenarios) Neil Alexander 2019-08-15 10:54:04 +01:00
  • 382c2e6546 even more go.sum Arceliar 2019-08-14 18:14:24 -05:00
  • 1a2b7a8b60 test a change to how switch hops are selected when multiple links are idle Arceliar 2019-08-14 17:57:36 -05:00
  • 2abb71682f
    Update changelog, readme, go.mod/go.sum Neil Alexander 2019-08-14 22:21:30 +01:00
  • f26f071901
    Merge pull request #497 from Slex/issues/488 Neil Alexander 2019-08-14 20:11:15 +01:00
  • 02bfe28399
    Minor tweaks Neil Alexander 2019-08-14 20:09:02 +01:00
  • 2cec5bf108
    Merge pull request #504 from neilalexander/netlink Neil Alexander 2019-08-14 19:59:30 +01:00
  • 33cd10c463
    Merge branch 'issues/488' of github.com:slex/yggdrasil-go into issues/488 Neil Alexander 2019-08-14 19:58:45 +01:00
  • 4702da2bcb
    Use new netlink library (fixes #493) Neil Alexander 2019-08-14 19:32:40 +01:00
  • d9fabad8bc
    Merge pull request #502 from Arceliar/linkleak Neil Alexander 2019-08-14 07:17:39 +01:00
  • 46c5df1c23 when we abandon a link because we already have a connection to that peer, only wait for the connection to close if it's an *outgoing* link, otherwise incomming connection attempts can cause us to leak links Arceliar 2019-08-13 18:49:49 -05:00
  • 5e7df5a1c4
    Merge pull request #499 from yggdrasil-network/sessionfix Neil Alexander 2019-08-13 08:27:30 +01:00
  • b2cb1d965c avoid leaking sessions when no listener exists, or blocking if it's busy Arceliar 2019-08-12 18:22:30 -05:00
  • c15976e4dc go.sum Arceliar 2019-08-12 18:08:02 -05:00
  • 70a118ae98
    Update go.mod/go.sum Neil Alexander 2019-08-12 11:41:29 +01:00
  • 16076b53b9
    Merge pull request #498 from Arceliar/search Neil Alexander 2019-08-11 21:13:49 +01:00
  • 277da1fe60 make sure searches don't end if try to continue (in parallel) with nowhere left to send, but we just sent a search and are still waiting for a response Arceliar 2019-08-11 13:11:14 -05:00
  • 7a28eb787e try to fix a few edge cases with searches that could lead them to ending without the callback being run or without cleaning up the old search info Arceliar 2019-08-11 13:00:19 -05:00
  • 589ad638ea Implement feature from https://github.com/yggdrasil-network/yggdrasil-go/issues/488 Slex 2019-08-11 00:31:22 +03:00
  • ae05683c73
    Merge pull request #494 from Arceliar/bufpersession Arceliar 2019-08-07 18:15:20 -05:00
  • 5e81a0c421 Use a separate buffer per session for incoming packets, so 1 session that floods won't block other sessions Arceliar 2019-08-07 18:08:31 -05:00
  • 9ab08446ff make sure the sessionInfo.recvWorker doesn't block if sinfo.recv somehow fills Arceliar 2019-08-07 17:40:50 -05:00
  • 71e9ca25f7
    Merge pull request #492 from neilalexander/fixlisten Neil Alexander 2019-08-07 10:57:55 +01:00
  • bbb35d7209
    Transform Listen statement to new format if needed Neil Alexander 2019-08-07 10:52:19 +01:00
  • c99ed9fb60
    Merge pull request #491 from Arceliar/flowkey Neil Alexander 2019-08-07 10:33:17 +01:00
  • d795ab1b65 minor allocation fix Arceliar 2019-08-06 20:51:38 -05:00
  • 790524bd1c copy/paste old flowkey logic into a util function, add a struct of key and packet, make WriteNoCopy accept this instead of a slice Arceliar 2019-08-06 19:25:55 -05:00
  • 6cb0ed91ad
    Merge pull request #486 from Arceliar/bugfix Arceliar 2019-08-05 19:17:30 -05:00