aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/network
diff options
context:
space:
mode:
authorRubens Brandao <git@rubens.io>2021-03-28 20:58:16 +0200
committerRubens Brandao <git@rubens.io>2021-03-28 20:58:16 +0200
commit4b12f3e87ed12ed5b070f23d73f8288cd5b109fd (patch)
tree1f0ebc6d0a0af9f657badcc6eebe1d158ac6f83d /mumd/src/network
parent8501432530f19cb2be86815697c82abbe4482275 (diff)
downloadmum-4b12f3e87ed12ed5b070f23d73f8288cd5b109fd.tar.gz
Finish the password implementation
Diffstat (limited to 'mumd/src/network')
-rw-r--r--mumd/src/network/tcp.rs13
1 files changed, 11 insertions, 2 deletions
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<String>
+) {
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();
}