hypha: work in progress implementation of outbound internet access

This commit is contained in:
Alex Zenla
2024-02-06 14:35:55 +00:00
parent 44d3799dd3
commit cfe8887c6b
18 changed files with 2102 additions and 66 deletions

30
libs/ipstack/src/error.rs Normal file
View File

@ -0,0 +1,30 @@
#[allow(dead_code)]
#[derive(thiserror::Error, Debug)]
pub enum IpStackError {
#[error("The transport protocol is not supported")]
UnsupportedTransportProtocol,
#[error("The packet is invalid")]
InvalidPacket,
#[error("Write error: {0}")]
PacketWriteError(etherparse::WriteError),
#[error("Invalid Tcp packet")]
InvalidTcpPacket,
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("Accept Error")]
AcceptError,
#[error("Send Error {0}")]
SendError(#[from] tokio::sync::mpsc::error::SendError<crate::stream::IpStackStream>),
}
impl From<IpStackError> for std::io::Error {
fn from(e: IpStackError) -> Self {
match e {
IpStackError::IoError(e) => e,
_ => std::io::Error::new(std::io::ErrorKind::Other, e),
}
}
}
pub type Result<T, E = IpStackError> = std::result::Result<T, E>;