summaryrefslogtreecommitdiff
path: root/pflocal/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'pflocal/socket.c')
-rw-r--r--pflocal/socket.c19
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;