Skip to content

Commit

Permalink
Merge pull request #168 from lhw2002426/dev
Browse files Browse the repository at this point in the history
slove httpclient dns fail problem
  • Loading branch information
ken4647 authored Feb 9, 2025
2 parents 81db7d5 + c9a6885 commit 5a46b43
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 23 deletions.
50 changes: 27 additions & 23 deletions api/ruxos_posix_api/src/imp/net.rs
Original file line number Diff line number Diff line change
Expand Up @@ -390,29 +390,33 @@ pub fn sys_socket(domain: c_int, socktype: c_int, protocol: c_int) -> c_int {
let (domain, socktype, protocol) = (domain as u32, socktype as u32, protocol as u32);
pub const _SOCK_STREAM_NONBLOCK: u32 = ctypes::SOCK_STREAM | ctypes::SOCK_NONBLOCK;
syscall_body!(sys_socket, {
match (domain, socktype, protocol) {
(ctypes::AF_INET, ctypes::SOCK_STREAM, ctypes::IPPROTO_TCP)
| (ctypes::AF_INET, ctypes::SOCK_STREAM, 0) => {
Socket::Tcp(Mutex::new(TcpSocket::new())).add_to_fd_table()
}
(ctypes::AF_INET, ctypes::SOCK_DGRAM, ctypes::IPPROTO_UDP)
| (ctypes::AF_INET, ctypes::SOCK_DGRAM, 0) => {
Socket::Udp(Mutex::new(UdpSocket::new())).add_to_fd_table()
}
(ctypes::AF_INET, _SOCK_STREAM_NONBLOCK, ctypes::IPPROTO_TCP) => {
let tcp_socket = TcpSocket::new();
tcp_socket.set_nonblocking(true);
Socket::Tcp(Mutex::new(tcp_socket)).add_to_fd_table()
}
(ctypes::AF_UNIX, ctypes::SOCK_STREAM, 0) => {
Socket::Unix(Mutex::new(UnixSocket::new(UnixSocketType::SockStream)))
.add_to_fd_table()
}
(ctypes::AF_UNIX, ctypes::SOCK_DGRAM, 0) => {
Socket::Unix(Mutex::new(UnixSocket::new(UnixSocketType::SockDgram)))
.add_to_fd_table()
}
_ => Err(LinuxError::EINVAL),
match domain {
ctypes::AF_INET => match (socktype, protocol) {
(ctypes::SOCK_STREAM, ctypes::IPPROTO_TCP) | (ctypes::SOCK_STREAM, 0) => {
Socket::Tcp(Mutex::new(TcpSocket::new())).add_to_fd_table()
}
(ctypes::SOCK_DGRAM, ctypes::IPPROTO_UDP) | (ctypes::SOCK_DGRAM, 0) => {
Socket::Udp(Mutex::new(UdpSocket::new())).add_to_fd_table()
}
(_SOCK_STREAM_NONBLOCK, ctypes::IPPROTO_TCP) => {
let tcp_socket = TcpSocket::new();
tcp_socket.set_nonblocking(true);
Socket::Tcp(Mutex::new(tcp_socket)).add_to_fd_table()
}
_ => Err(LinuxError::EINVAL),
},
ctypes::AF_UNIX => match (socktype, protocol) {
(ctypes::SOCK_STREAM, 0) => {
Socket::Unix(Mutex::new(UnixSocket::new(UnixSocketType::SockStream)))
.add_to_fd_table()
}
(ctypes::SOCK_DGRAM, 0) => {
Socket::Unix(Mutex::new(UnixSocket::new(UnixSocketType::SockDgram)))
.add_to_fd_table()
}
_ => Err(LinuxError::EINVAL),
},
_ => Err(LinuxError::EAFNOSUPPORT),
}
})
}
Expand Down
1 change: 1 addition & 0 deletions modules/ruxfs/src/mounts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ pub(crate) fn etcfs() -> VfsResult<Arc<fs::ramfs::RamFileSystem>> {
file_resolv.write_at(
0,
b"nameserver 127.0.0.53\n\
nameserver 8.8.8.8\n\
options edns0 trust-ad\n\
search lan\n
",
Expand Down

0 comments on commit 5a46b43

Please sign in to comment.