Commit graph

23 commits

Author SHA1 Message Date
Starbeamrainbowlabs 56939dcc24
Properly deduplicate connections.
By assigning a random connection ID during the initial hello that's both 
unique to every new connection regardless of target and consistent 
across both the connection initiator and acceptor, we can do string 
comparison to determine which string is greater than the other. In doing 
so, we can ensur  the same connection is always terminated, thereby 
avoiding closing both connections by accident.
2022-03-15 00:28:27 +00:00
Starbeamrainbowlabs 7e5b0725e9
PeerServer, Peer: Fully support exchanging friendly names
....we should have done this a while back :P

This doesn't change logging messages though
2022-02-26 00:20:58 +00:00
Starbeamrainbowlabs c9ac3ea108
SystemQuery, Agent, PeerServer: Add listening property 2022-02-24 01:27:14 +00:00
Starbeamrainbowlabs da33a146e2
Manage duplicate connections more effectively.
Thebroadcast function now transparently avoids sending the same message 
to the same peer over multiple connections at once.
2022-02-21 21:55:20 +00:00
Starbeamrainbowlabs 16f23e6b77
Agent: refactor such that it can be used as a base class
In the future, this will make it much easier to  refactor into a 
library.

The plan is to allow Agent to have subsystems, but only those which are 
related to managing peer-to-peer message and not application-specific 
stuff. For example, wemight have a MeshRouting subsystem that listens 
for messages and conditionally forwards them based on the content of the 
message.
2022-01-22 14:22:06 +00:00
Starbeamrainbowlabs 453ecb58bb
tweak logging 2022-01-20 19:28:53 +00:00
Starbeamrainbowlabs 1091f9c3c2
Exchange peerlists 2022-01-09 20:28:58 +00:00
Starbeamrainbowlabs a9a7320a1e
Make disconnects graceful 2022-01-09 17:46:43 +00:00
Starbeamrainbowlabs 43fed309dc
Disconnect duplicate connections 2022-01-09 17:37:06 +00:00
Starbeamrainbowlabs e4c01ae828
Fix PeerServer API bugs 2022-01-09 17:02:26 +00:00
Starbeamrainbowlabs 63b698573f
Debug connectiono system 2022-01-09 16:57:07 +00:00
Starbeamrainbowlabs 53b0d661a9
replace logging system
...I'm so picky
2022-01-09 16:30:42 +00:00
Starbeamrainbowlabs 306180d9d8
Another day, another set of bugs 2022-01-09 00:57:06 +00:00
Starbeamrainbowlabs c5e2d31c47
A bugfixing we are going.... not there just yet though 2022-01-08 23:47:52 +00:00
Starbeamrainbowlabs 19f2003fbf
Fix some bugs, write some comments 2022-01-08 21:37:03 +00:00
Starbeamrainbowlabs 046821f0ac
add failed connection attempt logging 2022-01-08 17:29:09 +00:00
Starbeamrainbowlabs 135b2e8d1b
Write a bunch more glue code
....but it's all still untested. I'm getting kinda nervous here
2022-01-08 16:59:08 +00:00
Starbeamrainbowlabs 2c56514a88
add comment 2021-12-27 18:34:44 +00:00
Starbeamrainbowlabs 61bf2a27db
Implement stubs to remind us what to do next
We need a way to message our peers easily and flexibly.
2021-10-19 02:43:55 +01:00
Starbeamrainbowlabs cf7451dcf2
Wire up peer handing in PeerServer
Going to be a heck fo a stack trace if it crashes though.....

Agent → .... → PeerServer → Peer → Connection → FramedTransport → { 
rekey, StreamHelpers }
2021-10-19 02:36:22 +01:00
Starbeamrainbowlabs 32dec3049f
Peer: we can use async/await for the initial handshake
events.once(emitter, eventname) makes it so much more concise!
2021-10-09 18:13:34 +01:00
Starbeamrainbowlabs 6f181971e3
Implement simple peer system, but it's untested.
Next step is to exchange peers.
2021-10-09 18:00:54 +01:00
Starbeamrainbowlabs a2d2b58b38
hey, we have basic starttls! Though it's not wired up yet. 2021-10-02 01:16:34 +01:00