diff options
Diffstat (limited to 'client-native-lib')
-rw-r--r-- | client-native-lib/src/instance.rs | 3 | ||||
-rw-r--r-- | client-native-lib/src/protocol.rs | 5 | ||||
-rw-r--r-- | client-native-lib/src/signaling.rs | 7 |
3 files changed, 10 insertions, 5 deletions
diff --git a/client-native-lib/src/instance.rs b/client-native-lib/src/instance.rs index 65104c1..56c9efa 100644 --- a/client-native-lib/src/instance.rs +++ b/client-native-lib/src/instance.rs @@ -30,7 +30,7 @@ pub struct Instance { impl Instance { pub async fn new(config: Config, event_handler: Arc<dyn EventHandler>) -> Arc<Self> { - let conn = signaling::SignalingConnection::new(&config.signaling_uri, &config.secret).await; + let conn = signaling::SignalingConnection::new(&config.signaling_uri).await; let key = crypto::Key::derive(&config.secret); Arc::new(Self { @@ -107,6 +107,7 @@ impl Instance { warn!("dropping packet with inconsistent sender") } } + protocol::ClientboundPacket::RoomInfo { .. } => {} } } diff --git a/client-native-lib/src/protocol.rs b/client-native-lib/src/protocol.rs index d53bf83..a5981e2 100644 --- a/client-native-lib/src/protocol.rs +++ b/client-native-lib/src/protocol.rs @@ -15,16 +15,21 @@ pub enum ClientboundPacket { ClientJoin { id: usize }, ClientLeave { id: usize }, Message { sender: usize, message: String }, + RoomInfo { hash: String, user_count: usize }, } #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum ServerboundPacket { + Join { + hash: Option<String>, + }, Ping, Relay { recipient: Option<usize>, message: String, }, + WatchRooms(Vec<String>), } #[derive(Debug, Clone, Serialize, Deserialize)] diff --git a/client-native-lib/src/signaling.rs b/client-native-lib/src/signaling.rs index 0531b27..67cdc4b 100644 --- a/client-native-lib/src/signaling.rs +++ b/client-native-lib/src/signaling.rs @@ -3,8 +3,7 @@ which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin <metamuffin.org> */ -use crate::protocol::ClientboundPacket; -use crate::{crypto::hash, protocol::ServerboundPacket}; +use crate::protocol::{ClientboundPacket, ServerboundPacket}; use futures_util::{Sink, SinkExt, Stream, StreamExt}; use log::{debug, error, info, trace}; use std::pin::Pin; @@ -26,8 +25,8 @@ pub struct SignalingConnection { } impl SignalingConnection { - pub async fn new(signaling_server: &str, secret: &str) -> Self { - let uri = format!("{signaling_server}/signaling/{}", hash(secret)); + pub async fn new(signaling_server: &str) -> Self { + let uri = format!("{signaling_server}/signaling"); info!("connecting to signaling server at {uri:?}"); let (conn, _) = tokio_tungstenite::connect_async(url::Url::parse(&uri).unwrap()) .await |