Skip to content

Commit 9d0e39f

Browse files
authored
fix: fires the connect and disconnect again (#1548)
1 parent 78ce118 commit 9d0e39f

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

connect/src/spirc.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -898,8 +898,8 @@ impl SpircTask {
898898
&& cluster.active_device_id != self.session.device_id();
899899
if became_inactive {
900900
info!("device became inactive");
901-
self.connect_state.became_inactive(&self.session).await?;
902-
self.handle_stop()
901+
self.handle_disconnect().await?;
902+
self.handle_stop();
903903
} else if self.connect_state.is_active() {
904904
// fixme: workaround fix, because of missing information why it behaves like it does
905905
// background: when another device sends a connect-state update, some player's position de-syncs
@@ -1102,10 +1102,10 @@ impl SpircTask {
11021102
ContextAction::Replace,
11031103
));
11041104

1105+
self.handle_activate();
1106+
11051107
let timestamp = self.now_ms();
11061108
let state = &mut self.connect_state;
1107-
1108-
state.set_active(true);
11091109
state.handle_initial_transfer(&mut transfer);
11101110

11111111
// adjust active context, so resolve knows for which context it should set up the state

core/src/spclient.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use futures_util::future::IntoStream;
2929
use http::{Uri, header::HeaderValue};
3030
use hyper::{
3131
HeaderMap, Method, Request,
32-
header::{ACCEPT, AUTHORIZATION, CONTENT_TYPE, HeaderName, RANGE},
32+
header::{ACCEPT, AUTHORIZATION, CONTENT_LENGTH, CONTENT_TYPE, HeaderName, RANGE},
3333
};
3434
use hyper_util::client::legacy::ResponseFuture;
3535
use protobuf::{Enum, Message, MessageFull};
@@ -482,6 +482,7 @@ impl SpClient {
482482
let mut request = Request::builder()
483483
.method(method)
484484
.uri(url)
485+
.header(CONTENT_LENGTH, body.len())
485486
.body(Bytes::copy_from_slice(body))?;
486487

487488
// Reconnection logic: keep getting (cached) tokens because they might have expired.

0 commit comments

Comments
 (0)