From dbec8d7710153faad22d36783ed1be52865ded04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Thu, 18 May 2017 16:33:33 +0200 Subject: [PATCH] libc: pretend to support SO_ERROR There are programs, e.g. curl, that check if a connection was established successfully by looking at SO_ERROR. Pretend that the getsockopt() call was executed to keep them happy. If they try to use a broken connection, the other socket functions will bail. --- repos/libports/src/lib/libc/socket_fs_plugin.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/repos/libports/src/lib/libc/socket_fs_plugin.cc b/repos/libports/src/lib/libc/socket_fs_plugin.cc index bb184b1f5..84ea39f9f 100644 --- a/repos/libports/src/lib/libc/socket_fs_plugin.cc +++ b/repos/libports/src/lib/libc/socket_fs_plugin.cc @@ -673,6 +673,10 @@ extern "C" int socket_fs_getsockopt(int libc_fd, int level, int optname, Genode::log("getsockopt: SO_REUSEADDR not yet implemented - return true"); *(int *)optval = 1; return 0; + case SO_ERROR: + Genode::log("getsockopt: SO_ERROR not yet implemented - return true"); + *(int *)optval = 0; + return 0; default: return Errno(ENOPROTOOPT); }