Skip to main content

roowho2_lib/server/fingerd/
remote_user_info.rs

1// /// Retrieve remote user information for the given username on the specified host.
2// ///
3// /// Returns None if the user does not exist or no information is available.
4// async fn get_remote_user(username: &str, host: &str) -> anyhow::Result<Option<RawFingerResponse>> {
5//     let addr = format!("{}:79", host);
6//     let socket_addrs: Vec<SocketAddr> = addr.to_socket_addrs()?.collect();
7
8//     if socket_addrs.is_empty() {
9//         return Err(anyhow::anyhow!(
10//             "Could not resolve address for host {}",
11//             host
12//         ));
13//     }
14
15//     let socket_addr = socket_addrs[0];
16
17//     let mut stream = TcpStream::connect(socket_addr).await?;
18
19//     let request = FingerRequest::new(false, username.to_string());
20//     let request_bytes = request.to_bytes();
21//     stream.write_all(&request_bytes).await?;
22
23//     let mut response_bytes = Vec::new();
24//     stream.read_to_end(&mut response_bytes).await?;
25
26//     let response = RawFingerResponse::from_bytes(&response_bytes);
27
28//     if response.is_empty() {
29//         Ok(None)
30//     } else {
31//         Ok(Some(response))
32//     }
33// }