Add dummy implementation of getsockopt for unix domain socket

This commit is contained in:
Hui, Chunyang 2021-06-09 08:26:43 +00:00 committed by Zongmin.Gu
parent 0dc85f8229
commit bad2581a25

@ -231,7 +231,9 @@ pub fn do_getsockopt(
fd, level, optname, optval, optlen fd, level, optname, optval, optlen
); );
let file_ref = current!().file(fd as FileDesc)?; let file_ref = current!().file(fd as FileDesc)?;
if let Ok(socket) = file_ref.as_host_socket() { let socket = file_ref.as_host_socket();
if let Ok(socket) = socket {
let ret = try_libc!(libc::ocall::getsockopt( let ret = try_libc!(libc::ocall::getsockopt(
socket.raw_host_fd() as i32, socket.raw_host_fd() as i32,
level, level,
@ -240,9 +242,11 @@ pub fn do_getsockopt(
optlen optlen
)); ));
Ok(ret as isize) Ok(ret as isize)
} else if let Ok(unix_socket) = file_ref.as_unix_socket() {
warn!("getsockopt for unix socket is unimplemented");
Ok(0)
} else { } else {
warn!("getsockeopt is not implemented for non-host socket."); return_errno!(ENOTSOCK, "not a socket")
Ok(0 as isize)
} }
} }