aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/network/tcp.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-29 17:32:12 +0200
committerGitHub <noreply@github.com>2021-03-29 17:32:12 +0200
commit5ecd440aedd5c0866daec2ab3f4d710f6e7c17f0 (patch)
tree6cd27b236db89e3364ce5b3270fccd459af7571b /mumd/src/network/tcp.rs
parentc6a5774443099c747bce938e6f87299397819c2b (diff)
parent4b12f3e87ed12ed5b070f23d73f8288cd5b109fd (diff)
downloadmum-5ecd440aedd5c0866daec2ab3f4d710f6e7c17f0.tar.gz
Merge pull request #75 from rbran/main
Finish the password implementation
Diffstat (limited to 'mumd/src/network/tcp.rs')
-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();
}