Webtransport quinn fix (#46)

This commit is contained in:
kixelated 2023-07-20 17:42:35 -07:00 committed by GitHub
parent 52d3fc81be
commit e99ecee40a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 7 deletions

4
Cargo.lock generated
View File

@ -2006,9 +2006,9 @@ dependencies = [
[[package]] [[package]]
name = "webtransport-quinn" name = "webtransport-quinn"
version = "0.4.1" version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c645a48f4bac5ce504cef2dd02b373f8b8a2a7de9a72f59395a54799958f3cf2" checksum = "96a4ac9975117d8c63c4d04577d594b3130fe2023b7363ebc613905acf98590a"
dependencies = [ dependencies = [
"async-std", "async-std",
"bytes", "bytes",

View File

@ -21,7 +21,7 @@ moq-warp = { path = "../moq-warp" }
# QUIC # QUIC
quinn = "0.10" quinn = "0.10"
webtransport-quinn = "0.4" webtransport-quinn = "0.4.2"
# Crypto # Crypto
ring = "0.16.20" ring = "0.16.20"

View File

@ -18,7 +18,7 @@ moq-transport = { path = "../moq-transport" }
quinn = "0.10" quinn = "0.10"
http = "0.2" http = "0.2"
webtransport-quinn = "0.4.1" webtransport-quinn = "0.4.2"
tokio = { version = "1.27", features = ["macros"] } tokio = { version = "1.27", features = ["macros"] }
bytes = "1" bytes = "1"
log = "0.4" log = "0.4"

View File

@ -58,14 +58,14 @@ impl Session {
res = self.run_segments.join_next(), if !self.run_segments.is_empty() => { res = self.run_segments.join_next(), if !self.run_segments.is_empty() => {
let res = res.expect("no tasks").expect("task aborted"); let res = res.expect("no tasks").expect("task aborted");
if let Err(err) = res { if let Err(err) = res {
log::error!("failed to produce segment: {:?}", err); log::warn!("failed to produce segment: {:?}", err);
} }
}, },
object = self.objects.recv() => { object = self.objects.recv() => {
let (object, stream) = object.context("failed to receive object")?; let (object, stream) = object.context("failed to receive object")?;
let res = self.receive_object(object, stream).await; let res = self.receive_object(object, stream).await;
if let Err(err) = res { if let Err(err) = res {
log::error!("failed to receive object: {:?}", err); log::warn!("failed to receive object: {:?}", err);
} }
}, },
subscribe = self.publishers.incoming() => { subscribe = self.publishers.incoming() => {

View File

@ -77,7 +77,8 @@ impl Session {
fn receive_announce_error(&mut self, msg: AnnounceError) -> anyhow::Result<()> { fn receive_announce_error(&mut self, msg: AnnounceError) -> anyhow::Result<()> {
// TODO make sure we sent this announce // TODO make sure we sent this announce
// TODO remove this from the list of subscribable broadcasts. // TODO remove this from the list of subscribable broadcasts.
anyhow::bail!("received ANNOUNCE_ERROR({:?}): {}", msg.code, msg.reason) log::warn!("received error {:?}", msg);
Ok(())
} }
async fn receive_subscribe(&mut self, msg: Subscribe) -> anyhow::Result<()> { async fn receive_subscribe(&mut self, msg: Subscribe) -> anyhow::Result<()> {