security-union / videocall-rs

teleconference system written in rust
MIT License
1.34k stars 114 forks source link

Factor out connection, peer management, and packet handling into `VideoCallClient` #137

Closed ronen closed 8 months ago

ronen commented 11 months ago

[Continuing down the path of #74]

This PR create a single VideoCallClient interface that internally takes care of the connection, packet handling, encryption, peer management, etc. -- moving all that code out of the Attendants and Host components.

Part of that cleanup included changing the encoders so that they too use the VideoCallClient in their interfaces

ronen commented 11 months ago

But oh darn, I just tested e2ee (again) and it's not working now. So hold off on committing this, I need to debug.

ronen commented 10 months ago

Hey, sorry for the long delay -- got distracted by my day job.

I've pushed a commit that fixed the problem, by replacing "callback hell" with a more straightforward approach for handling new peers. And did some code cleanup along the way (those went hand-in-hand :)

Then while I was in a code cleaning mood I tidied up a few other things in the client & peer_decoder_manager, in a few other commits.

Should be good to go now!

darioalessandro commented 9 months ago

I took a stab at rebasing this myself but it is not trivial!

ronen commented 8 months ago

Hey @darioalessandro, @griffobeid any thoughts about how to handle the UI test suite failure?

It seems to be due to wasm-bindgen versionitis.

...and seems unrelated to my having just merged in main and resolved the conflicts? 🤷🏻

darioalessandro commented 8 months ago

I think that @griffobeid is looking into this

griffobeid commented 8 months ago

@ronen @darioalessandro Yeah it is a version mismatch.

After doing

cargo install -f wasm-bindgen-cli --version 0.2.87

Tests are passing just fine, don't worry about it with your changes I can clean this up