From 4b12f3e87ed12ed5b070f23d73f8288cd5b109fd Mon Sep 17 00:00:00 2001 From: Rubens Brandao Date: Sun, 28 Mar 2021 15:58:16 -0300 Subject: Finish the password implementation --- mumd/src/network/tcp.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'mumd/src/network') diff --git a/mumd/src/network/tcp.rs b/mumd/src/network/tcp.rs index fa2681e..8ce49cb 100644 --- a/mumd/src/network/tcp.rs +++ b/mumd/src/network/tcp.rs @@ -67,7 +67,9 @@ pub async fn handle( // Handshake (omitting `Version` message for brevity) let state_lock = state.lock().await; - authenticate(&mut sink, state_lock.username().unwrap().to_string()).await; + let username = state_lock.username().unwrap().to_string(); + let password = state_lock.password().map(|x| x.to_string()); + authenticate(&mut sink, username, password).await; let phase_watcher = state_lock.phase_receiver(); let input_receiver = state_lock.audio().input_receiver(); drop(state_lock); @@ -133,9 +135,16 @@ async fn connect( ClientControlCodec::new().framed(tls_stream).split() } -async fn authenticate(sink: &mut TcpSender, username: String) { +async fn authenticate( + sink: &mut TcpSender, + username: String, + password: Option +) { let mut msg = msgs::Authenticate::new(); msg.set_username(username); + if let Some(password) = password { + msg.set_password(password); + } msg.set_opus(true); sink.send(msg.into()).await.unwrap(); } -- cgit v1.2.1