You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
userland: shared DNS resolver + shell stderr fd wiring
Kernel syscall_resolve now maps each DnsResolveError variant to a
distinct errno (EINVAL/ENETUNREACH/EAGAIN/EHOSTUNREACH) instead of
flattening everything to EHOSTUNREACH, and slibc's SyscallError
gains matching ENETUNREACH/EHOSTUNREACH constants.
A new userland::net module is the single canonical hostname path:
resolve_host returns Result<Ipv4Addr, ResolveError> with a Display
impl per variant. The low-level syscall::net::resolve wrapper is
now pub(crate) so a new tool physically cannot bypass the shared
helper. curl, ping, nc, and the shell's cmd_resolve builtin all
route through resolve_host — one place for IPv4 literal parsing,
one place for errno translation, one user-facing message format.
Shell stdio wiring: previously only fd 0 was dup'd onto the PTY
slave, so fd 1/2 in the shell (and every forked child) still
pointed at the default console TTY inherited from init — i.e. the
kernel serial port. That made curl/ping stderr invisible in the
shell window. Dup the slave onto fd 0/1/2 so children's output
flows through the ldisc to the PTY master and lands in the shell
display via forward_compositor_keyboard, plus drain the master one
more time after waitpid in both the capture and pipeline paths so
bytes written right before a child exits aren't stranded.
2352/2352 itests pass.
0 commit comments