mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-21 10:56:35 +00:00
make fmt
This commit is contained in:
@ -1,19 +1,19 @@
|
||||
use std::io::Error;
|
||||
use std::os::fd::RawFd;
|
||||
use std::fs;
|
||||
use libc::*;
|
||||
use std::ffi::CString;
|
||||
use std::fs;
|
||||
use std::io::Error;
|
||||
use std::mem;
|
||||
use std::os::fd::RawFd;
|
||||
|
||||
const SOCKET_PATH: &str = "/test.stream";
|
||||
const MSG1: &str = "Hello, unix stream socket from Client!";
|
||||
const MSG2: &str = "Hello, unix stream socket from Server!";
|
||||
|
||||
fn create_stream_socket() -> Result<RawFd, Error>{
|
||||
fn create_stream_socket() -> Result<RawFd, Error> {
|
||||
unsafe {
|
||||
let fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||
if fd == -1 {
|
||||
return Err(Error::last_os_error())
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
Ok(fd)
|
||||
}
|
||||
@ -31,7 +31,12 @@ fn bind_socket(fd: RawFd) -> Result<(), Error> {
|
||||
addr.sun_path[i] = byte as i8;
|
||||
}
|
||||
|
||||
if bind(fd, &addr as *const _ as *const sockaddr, mem::size_of_val(&addr) as socklen_t) == -1 {
|
||||
if bind(
|
||||
fd,
|
||||
&addr as *const _ as *const sockaddr,
|
||||
mem::size_of_val(&addr) as socklen_t,
|
||||
) == -1
|
||||
{
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
}
|
||||
@ -61,7 +66,13 @@ fn accept_conn(fd: RawFd) -> Result<RawFd, Error> {
|
||||
fn send_message(fd: RawFd, msg: &str) -> Result<(), Error> {
|
||||
unsafe {
|
||||
let msg_bytes = msg.as_bytes();
|
||||
if send(fd, msg_bytes.as_ptr() as *const libc::c_void, msg_bytes.len(), 0)== -1 {
|
||||
if send(
|
||||
fd,
|
||||
msg_bytes.as_ptr() as *const libc::c_void,
|
||||
msg_bytes.len(),
|
||||
0,
|
||||
) == -1
|
||||
{
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
}
|
||||
@ -71,7 +82,12 @@ fn send_message(fd: RawFd, msg: &str) -> Result<(), Error> {
|
||||
fn recv_message(fd: RawFd) -> Result<String, Error> {
|
||||
let mut buffer = [0; 1024];
|
||||
unsafe {
|
||||
let len = recv(fd, buffer.as_mut_ptr() as *mut libc::c_void, buffer.len(),0);
|
||||
let len = recv(
|
||||
fd,
|
||||
buffer.as_mut_ptr() as *mut libc::c_void,
|
||||
buffer.len(),
|
||||
0,
|
||||
);
|
||||
if len == -1 {
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
@ -82,7 +98,7 @@ fn recv_message(fd: RawFd) -> Result<String, Error> {
|
||||
fn test_stream() -> Result<(), Error> {
|
||||
fs::remove_file(&SOCKET_PATH).ok();
|
||||
|
||||
let server_fd = create_stream_socket()?;
|
||||
let server_fd = create_stream_socket()?;
|
||||
bind_socket(server_fd)?;
|
||||
listen_socket(server_fd)?;
|
||||
|
||||
@ -95,7 +111,7 @@ fn test_stream() -> Result<(), Error> {
|
||||
send_message(client_fd, MSG2).expect("Failed to send message");
|
||||
println!("Server send finish");
|
||||
|
||||
unsafe {close(client_fd)};
|
||||
unsafe { close(client_fd) };
|
||||
});
|
||||
|
||||
let client_fd = create_stream_socket()?;
|
||||
@ -111,9 +127,14 @@ fn test_stream() -> Result<(), Error> {
|
||||
addr.sun_path[i] = byte as i8;
|
||||
}
|
||||
|
||||
if connect(client_fd, &addr as *const _ as *const sockaddr, mem::size_of_val(&addr) as socklen_t) == -1 {
|
||||
if connect(
|
||||
client_fd,
|
||||
&addr as *const _ as *const sockaddr,
|
||||
mem::size_of_val(&addr) as socklen_t,
|
||||
) == -1
|
||||
{
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
send_message(client_fd, MSG1)?;
|
||||
@ -129,9 +150,16 @@ fn test_stream() -> Result<(), Error> {
|
||||
return Err(Error::last_os_error());
|
||||
}
|
||||
let sun_path = addrss.sun_path.clone();
|
||||
let peer_path:[u8;108] = sun_path.iter().map(|&x| x as u8).collect::<Vec<u8>>().try_into().unwrap();
|
||||
println!("Client: Connected to server at path: {}", String::from_utf8_lossy(&peer_path));
|
||||
|
||||
let peer_path: [u8; 108] = sun_path
|
||||
.iter()
|
||||
.map(|&x| x as u8)
|
||||
.collect::<Vec<u8>>()
|
||||
.try_into()
|
||||
.unwrap();
|
||||
println!(
|
||||
"Client: Connected to server at path: {}",
|
||||
String::from_utf8_lossy(&peer_path)
|
||||
);
|
||||
}
|
||||
|
||||
server_thread.join().expect("Server thread panicked");
|
||||
@ -139,7 +167,7 @@ fn test_stream() -> Result<(), Error> {
|
||||
let recv_msg = recv_message(client_fd).expect("Failed to receive message from server");
|
||||
println!("Client Received message: {}", recv_msg);
|
||||
|
||||
unsafe {close(client_fd)};
|
||||
unsafe { close(client_fd) };
|
||||
fs::remove_file(&SOCKET_PATH).ok();
|
||||
|
||||
Ok(())
|
||||
@ -148,6 +176,6 @@ fn test_stream() -> Result<(), Error> {
|
||||
fn main() {
|
||||
match test_stream() {
|
||||
Ok(_) => println!("test for unix stream success"),
|
||||
Err(_) => println!("test for unix stream failed")
|
||||
Err(_) => println!("test for unix stream failed"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user