Commit graph

27 commits

Author SHA1 Message Date
Jonas Herzig 2a95f11d30 Handle IO error from peer_addr() call (fixes #8)
Presumably, if a client disconnects immediately after connecting (maybe even
while we're still busy setting up the previous one), then `peer_addr()` can
return an error.

This commit handles any such error by logging them. Except for the NotConnected
kind which we now know are expected during normal operation.
2020-05-06 00:14:43 +02:00
Jonas Herzig 69451531bd Workaround rust-crypto requiring AVX2 instructions (see #7)
For workaround see https://github.com/librespot-org/librespot/issues/128
2020-05-05 14:30:08 +02:00
Jonas Herzig 936d12f4a0 Use async-await instead of combinators in main.rs 2020-04-05 18:46:03 +02:00
Jonas Herzig c2ebc19134 Remove intermediate per-destination outbound packet buffers
With futures 0.3, we can check whether a sink can accept items without actually
sending them to it, which used to be the reason why we needed to per-destination
buffers.
2020-04-05 18:25:27 +02:00
Jonas Herzig 995eed0a9b Replace stream_to_be_sent with much simpler outbound_buf
We've been passing around `Stream`s of `Frame`s everywhere even though we never
made use of the async nature of those (i.e. we used future::ready everywhere).
This resulted in unnecessarily complicated an hard to read code. Instead we now
have a simple VecDeque outbound_buf which we push packets on if we want them to
be sent. No more passing around complicated return values.
2020-04-05 17:46:29 +02:00
Jonas Herzig 499c430b47 Update Rust requirement in README (nightly → 1.39+) 2020-04-05 17:10:11 +02:00
Jonas Herzig cda7f0cd7a Update dependencies (most notably futures to 0.3) 2020-04-05 16:22:43 +02:00
Jonas Herzig 8bdd654952 Switch to Rust 2018 edition 2020-04-03 20:55:59 +02:00
Jonas Herzig 0949807830 Stop requiring nightly 2020-04-03 20:52:28 +02:00
Jonas Herzig f7308bb6d0 Act as stupid proxy for clients without WebRTC support 2019-02-11 20:23:07 +01:00
Jonas Herzig 358d4a2d25 Fix ICE agent not being in controlling mode 2019-02-11 20:22:53 +01:00
Jonas Herzig d1daad2773 Switch back to mozilla_intermediate TLS preset for compatibility 2019-02-11 20:22:53 +01:00
Jonas Herzig a194bb6c6f Add support for running behind firewall and NAT 2019-02-09 10:40:38 +01:00
Jonas Herzig 20848303e9 Mention nightly, libnice and clang prerequisites in README 2019-02-05 15:57:51 +01:00
Jonas Herzig 74eb109ef5 Update FIXME about FF re-connect issue
mumble-client now properly disconnects, so this is no longer an immediate issue
(hence downgrade to TODO).

The protobuf FIXME was resolved with the switch to `mumble-protocol`.
2019-02-05 15:42:37 +01:00
Jonas Herzig f9e85618c8 Make port in --server argument optional 2019-02-05 13:48:14 +01:00
Jonas Herzig 8950e30690 Add option to accept invalid server certificates (fixes #3) 2019-02-05 13:29:03 +01:00
Jonas Herzig d7dca0b84b Update webrtc-sdp to fix parsing of unknown extensions 2019-02-05 13:16:31 +01:00
Jonas Herzig 1d6d986e13 Fix Chrome connection issue introduced with switch to tungstenite
Chrome requires the subprotocol to be "binary", FF doesn't seem to care (for
some reason?).
2019-02-05 04:21:56 +01:00
Jonas Herzig b630d7b584 Switch from websocket to tungstenite due to stability concerns (fixes #2) 2019-02-04 02:38:40 +01:00
Jonas Herzig 443712cb22 Replace lots of generic code with dedicated mumble-protocol crate 2019-02-03 23:34:09 +01:00
Jonas Herzig 353de4ec2f Replace "nice" crate with futures-based "libnice" crate 2019-02-02 20:55:04 +01:00
Jonas Herzig 459b538794 Add src/protos directory (see #1)
Protobuf will generate the `Mumble.rs` file there which we do not want to commit
to git but we do still need the directory to exist for protoc to work.
2019-01-30 16:27:58 +01:00
Jonas Herzig 8512ba4554 Update tokio-tls and native-tls to get rid of openssl:0.9 (fixes #1) 2019-01-30 10:48:10 +01:00
Jonas Herzig 2358d2e20f Update rtp lib 2018-12-15 19:23:18 +01:00
Jonas Herzig 3f079c4153 Fix transmission tracking
Delayed packets weren't handled properly and when a transmission timed
out, RTP sequence numbers were re-used and therefore rejected by the SRTP layer.
2018-12-15 19:15:34 +01:00
Jonas Herzig 83773f0a1d Initial commit 2018-12-02 23:38:46 +01:00