From bad2581a2506adc79599510cd2071eb7a82ec2c3 Mon Sep 17 00:00:00 2001 From: "Hui, Chunyang" Date: Wed, 9 Jun 2021 08:26:43 +0000 Subject: [PATCH] Add dummy implementation of getsockopt for unix domain socket --- src/libos/src/net/syscalls.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libos/src/net/syscalls.rs b/src/libos/src/net/syscalls.rs index 042e73c9..eb4f49f8 100644 --- a/src/libos/src/net/syscalls.rs +++ b/src/libos/src/net/syscalls.rs @@ -231,7 +231,9 @@ pub fn do_getsockopt( fd, level, optname, optval, optlen ); 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( socket.raw_host_fd() as i32, level, @@ -240,9 +242,11 @@ pub fn do_getsockopt( optlen )); 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 { - warn!("getsockeopt is not implemented for non-host socket."); - Ok(0 as isize) + return_errno!(ENOTSOCK, "not a socket") } }