From 90f0f27fcaf3c46e171ade4b5fa389bc0fcc2581 Mon Sep 17 00:00:00 2001 From: 21pages Date: Sat, 23 Sep 2023 21:06:58 +0800 Subject: [PATCH] fix file transfer affect codec selection Signed-off-by: 21pages --- src/server/connection.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/connection.rs b/src/server/connection.rs index 4b6b92f2b..2723b0834 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -1330,10 +1330,8 @@ impl Connection { return Config::get_option(enable_prefix_option).is_empty(); } - async fn handle_login_request_without_validation(&mut self, lr: &LoginRequest) { - self.lr = lr.clone(); + fn update_codec_on_login(&self, lr: &LoginRequest) { if let Some(o) = lr.option.as_ref() { - self.options_in_login = Some(o.clone()); if let Some(q) = o.supported_decoding.clone().take() { scrap::codec::Encoder::update( self.inner.id(), @@ -1351,6 +1349,16 @@ impl Connection { scrap::codec::EncodingUpdate::NewOnlyVP9, ); } + } + + async fn handle_login_request_without_validation(&mut self, lr: &LoginRequest) { + self.lr = lr.clone(); + if let Some(o) = lr.option.as_ref() { + self.options_in_login = Some(o.clone()); + } + if lr.union.is_none() { + self.update_codec_on_login(&lr); + } self.video_ack_required = lr.video_ack_required; }