diff options
-rw-r--r-- | pflocal/socket.c | 19 |
1 files changed, 19 insertions, 0 deletions
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; |