Commit Graph

44 Commits (354a74aeaaafeb6a353359731a57beb632f5d5eb)

Author SHA1 Message Date
_ d9fd0fd29d 🚧 wip: working on avalanche idea to make MACs easier for humans to read 2021-12-16 20:51:44 +00:00
_ ab42de5823 🚨 clippy pass 2021-12-09 18:22:23 +00:00
_ ed58df2e6b add ini files for both client and server
Long-lived servers can have their nickname configured in `server.ini`.
Clients can have a hosts-file-like nickname lookup in `client.ini`.
2021-12-09 18:15:03 +00:00
_ 8aae200ebf add `directories` dep and `--version` subcommand 2021-12-09 17:01:29 +00:00
_ 4f66c0495e add `find-nick` command 2021-12-09 16:46:55 +00:00
_ b261d7ba4a ♻️ refactor: refactor the client a lot so I can reuse its code for new subcommands 2021-12-09 16:21:14 +00:00
_ 5665f484a2 🔇 remove debugging println 2021-12-09 15:49:23 +00:00
_ 18e38f0611 add `--timeout-ms` for client
Empirical testing shows that 200 ms is probably enough on my LAN, so
I set the default to 500 ms.
2021-12-09 15:34:42 +00:00
_ 221a0bef2f ignore errors if an interface can't join multicast
This works okay on my home network, but it's a little more magical than
I wanted - I can't force it to pick up the wifi interface. If the
Ethernet is plugged in, the laptop always and only picks that, even
if I know the server only asked the Ethernet interface.

This is fine, but only because my Ethernet happens to be faster than
my Wifi. I'm not sure how it will behave at work, where WiFi and
Ethernet may be separate networks.

At least the error messages are better now, so I can figure out why
it wasn't auto-starting with systemd.
2021-12-08 21:48:41 -06:00
_ 7a0880fc02 do it similar on the client 2021-12-08 21:40:03 -06:00
_ fd4f70b1c9 🐛 bug: think I figured out the server part
turns out you can join multiple multicast groups on the same socket.
And then I think the OS or the network somehow decides how to route
packets to you. Without touching anything else, if I'm plugged into
Ethernet, it picks that address (when running client on the desktop)
and when I unplug it, it picks the laptop's WiFi.
2021-12-08 21:31:07 -06:00
_ 0bb702f312 🚧 wip: not working the way I expect 2021-12-09 03:11:28 +00:00
_ 1b7c2ce0f4 ♻️ refactor: preparing to serve on multiple interfaces 2021-12-09 02:26:58 +00:00
_ 39bcea54d4 ♻️ refactor: make the self-IP code available within the program 2021-12-09 02:06:01 +00:00
_ 2ba1dc2834 🐛 bug: fix server crashing when you send it a packet of ":V\n" 2021-12-09 01:46:03 +00:00
_ 33e6ae29ca ♻️ refactor: replace all unwraps in my code with question marks 2021-12-09 01:39:54 +00:00
_ c7681ce9f5 ♻️ refactor 2021-12-09 01:28:29 +00:00
_ b620bcfe06 ♻️ refactor: make it a little more idiomatic 2021-12-09 00:45:18 +00:00
_ 5d8bb3282b ♻️ refactor: literal translation to async 2021-12-09 00:34:59 +00:00
_ bf9d185092 🚨 fix all clippy warnings 2021-12-09 00:23:48 +00:00
_ ee51bb7d3d ♻️ refactor: move more Windows-only code behind cfg flags 2021-12-09 00:11:47 +00:00
_ dbedc6083e ♻️ refactor: fix some unused code warnings 2021-12-09 00:03:56 +00:00
_ 5d6c566317 add Tokio dep
Release build only went from 1.9 to 2.0 MB, but that could cause I'm not really using Tokio yet
2021-12-08 23:55:22 +00:00
_ 2b4695934e add `my-ips` impl for Linux and refactor it into a module 2021-12-08 16:48:43 -06:00
_ cf283a2eaa add `my-ips` subcommand, currently for Windows only 2021-12-08 16:04:45 -06:00
_ 9251dc327d add `--bind-addr` CLI args to both client and server.
This lets you pick an interface. I can't enumerate them automatically yet.
2021-12-08 14:55:27 -06:00
_ aa75119f39 add nicknames 2021-12-08 02:10:58 +00:00
_ ca8fcc1104 add test for old-style Response packets 2021-12-08 00:26:13 +00:00
_ 494c44fbcf ♻️ refactor: pass address / port params to subcommands
Needed to land CLI arg changes eventually
2021-12-06 21:21:12 -06:00
_ f47fb4f1ba 🐛 bug: flip hashmap key and value so peers are de-duped by IP instead of claimed MAC. 2021-12-06 21:21:12 -06:00
_ fd4062416e 💄 hide port from output since it's alwasy 9040 2021-12-06 21:21:12 -06:00
_ 2e4b723c18 🔇 remove `dbg!` macro call that looks bad when round-tripped through crates.io 2021-12-06 00:17:26 +00:00
_ 4bd3e5c308 repeat the request 10 times, slower 2021-12-05 20:42:56 +00:00
_ 50b668780b add a request ID so I can re-send it. (I forgot UDP is unreliable, lol) 2021-12-05 20:40:37 +00:00
_ be43b3ab55 oops that wasn't it 2021-12-05 20:22:12 +00:00
_ 570458c72c why does multicast quit working on my laptop after a while? 2021-12-05 20:21:11 +00:00
_ 8e5e15471b wip 2021-12-05 20:16:47 +00:00
_ fa7300b069 printing MACs of discovered peers 2021-12-05 20:15:01 +00:00
_ eaca615510 working on TLV-formatted messages 2021-12-05 19:58:18 +00:00
_ 0914a972e4 made a TLV module 2021-12-05 05:01:25 +00:00
_ 98e1e33859 read MAC address 2021-12-05 03:46:56 +00:00
_ b634eff06d clients now also print the server's socket address 2021-12-05 03:43:12 +00:00
_ c356ed9cc3 switch to thiserror and optimize release builds for size 2021-12-05 03:39:53 +00:00
_ 73b93d99af 🐣 so that's how multicast groups work 2021-11-26 21:46:27 +00:00