From 046b776f2eb0f5b2fb26f86e987fc8185f8a6444 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 3 Jan 2016 03:33:48 +0100 Subject: Add dumb SO_ERROR support to pflocal pflocal does not currently have asynchronous operations, so we can make SO_ERROR just report 0. * pflocal/socket.c (S_socket_getopt): For `level' SOL_SOCKET and `opt' SO_ERROR, report 0. --- pflocal/socket.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pflocal/socket.c b/pflocal/socket.c index 58449047..b1f9d770 100644 --- a/pflocal/socket.c +++ b/pflocal/socket.c @@ -445,6 +445,25 @@ S_socket_getopt (struct sock_user *user, *(int *)*value = user->sock->pipe_class->sock_type; *value_len = sizeof (int); break; + case SO_ERROR: + /* We do not have asynchronous operations (such as connect), so no + error to report. */ + if (*value_len < sizeof (short)) + { + *(char*)*value = 0; + *value_len = sizeof(char); + } + else if (*value_len < sizeof (int)) + { + *(short*)*value = 0; + *value_len = sizeof(short); + } + else + { + *(int*)*value = 0; + *value_len = sizeof(int); + } + break; default: ret = ENOPROTOOPT; break; -- cgit v1.2.3