diff options
| author | Rubens Brandao <git@rubens.io> | 2021-03-28 20:58:16 +0200 |
|---|---|---|
| committer | Rubens Brandao <git@rubens.io> | 2021-03-28 20:58:16 +0200 |
| commit | 4b12f3e87ed12ed5b070f23d73f8288cd5b109fd (patch) | |
| tree | 1f0ebc6d0a0af9f657badcc6eebe1d158ac6f83d /mumd/src/network | |
| parent | 8501432530f19cb2be86815697c82abbe4482275 (diff) | |
| download | mum-4b12f3e87ed12ed5b070f23d73f8288cd5b109fd.tar.gz | |
Finish the password implementation
Diffstat (limited to 'mumd/src/network')
| -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(); } |
