diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-03-29 17:32:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-29 17:32:12 +0200 |
| commit | 5ecd440aedd5c0866daec2ab3f4d710f6e7c17f0 (patch) | |
| tree | 6cd27b236db89e3364ce5b3270fccd459af7571b /mumd/src/network/tcp.rs | |
| parent | c6a5774443099c747bce938e6f87299397819c2b (diff) | |
| parent | 4b12f3e87ed12ed5b070f23d73f8288cd5b109fd (diff) | |
| download | mum-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.rs | 13 |
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(); } |
