bltavares / colmeia

Attempt to make an interop layer to connect to dat on hyperswarm in Rust
24 stars 4 forks source link

Discovery: MDNS does not find devices across multiple interfaces #15

Closed bltavares closed 4 years ago

bltavares commented 4 years ago

I found that running the discovery on mdns only worked for one interface. As soon as I tried it on a multihomed device, such as my laptop with WiFi and Cable on different networks, I could not find it anymore.

The discovery has been documented on socket-2, which shows that while we can listen on multiple interfaces for the incoming packets, we need to do some gymnastics to send packets on multiple interfaces.

Goal

Create a single socket which listen to multicast packets on multiple interfaces, and can send packets on a multiple interfaces as well.

What we gonna do on the live stream?

The goal is to create a socket interacting with socket-2 that provides an API to multiple interfaces. This will require having Rust interact with C++/C structs and do C->Rust FFI (which I have no idea how to do that much.) Come learn with me.

Create a Multicast UDP socket that:

References

bltavares commented 4 years ago

Now that we have multicast-socket we can plan ahead to use it on our project.

TODO Next stream:

Livestream Details
Planned date Sunday 10am GMT-3 - 2020-07-05 in pt-br
Link https://twitch.tv/bltavares_codes
Timezone https://everytimezone.com/s/f2f1d2af