diff --git a/src/proto.rs b/src/proto.rs index 8bdd7c1..a24a806 100644 --- a/src/proto.rs +++ b/src/proto.rs @@ -1,4 +1,4 @@ -use std::{error::Error, io::{Read, Write}, net::TcpStream}; +use std::{error::Error, io::{Read, Write}, net::{Shutdown, TcpStream}}; @@ -10,7 +10,12 @@ pub fn send_message(host: &str, message: &str) -> Result<(), Box> { } pub fn send_message_auth(host: &str, message: &str) -> Result<(), Box> { - register_user(host, message, message)?; + let mut stream = TcpStream::connect(host)?; + stream.write_all(&[0x03])?; + stream.write_all(message.as_bytes())?; + stream.write_all(&[b'\n'])?; + stream.write_all(message.as_bytes())?; + stream.shutdown(Shutdown::Both)?; let mut stream = TcpStream::connect(host)?; stream.write_all(&[0x02])?; stream.write_all(message.as_bytes())?; @@ -20,23 +25,12 @@ pub fn send_message_auth(host: &str, message: &str) -> Result<(), Box let mut buf = vec![0; 1]; if let Ok(_) = stream.read_exact(&mut buf) { if buf[0] == 0x02 { - let message = format!("\x1f{message}"); - register_user(host, &message, &message)?; - send_message_auth(host, &message)?; + send_message_auth(host, &format!("\x1f{message}"))?; } } Ok(()) } -pub fn register_user(host: &str, name: &str, password: &str) -> Result<(), Box> { - let mut stream = TcpStream::connect(host)?; - stream.write_all(&[0x03])?; - stream.write_all(name.as_bytes())?; - stream.write_all(&[b'\n'])?; - stream.write_all(password.as_bytes())?; - Ok(()) -} - fn skip_null(stream: &mut TcpStream) -> Result, Box> { loop { let mut buf = vec![0; 1];