From 6b11e2ae3d8ca4f0d1701d803a235a10231b49c9 Mon Sep 17 00:00:00 2001 From: ClawSeven Date: Mon, 24 Jul 2023 14:58:23 +0800 Subject: [PATCH] Support fstat for Unix Domain Stream Socket --- src/libos/src/net/socket/unix/stream/file.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/libos/src/net/socket/unix/stream/file.rs b/src/libos/src/net/socket/unix/stream/file.rs index da3cbcc7..9fd877bc 100644 --- a/src/libos/src/net/socket/unix/stream/file.rs +++ b/src/libos/src/net/socket/unix/stream/file.rs @@ -2,6 +2,7 @@ use super::address_space::ADDRESS_SPACE; use super::stream::Status; use super::*; use fs::{AccessMode, File, FileRef, IoEvents, IoNotifier, IoctlCmd, StatusFlags}; +use rcore_fs::vfs::{FileType, Metadata, Timespec}; use std::any::Any; impl File for Stream { @@ -118,4 +119,23 @@ impl File for Stream { fn as_any(&self) -> &dyn Any { self } + + fn metadata(&self) -> Result { + Ok(Metadata { + dev: 0, + inode: 0, + size: 0, + blk_size: 0, + blocks: 0, + atime: Timespec { sec: 0, nsec: 0 }, + mtime: Timespec { sec: 0, nsec: 0 }, + ctime: Timespec { sec: 0, nsec: 0 }, + type_: FileType::Socket, + mode: 0o666, + nlinks: 1, + uid: 0, + gid: 0, + rdev: 0, + }) + } }