Hi,

SSIA. I've tested it with SOCK_STREAM, SOCK_DGRAM and SOCK_SEQPACKET and it
works fine.

Cheers,
Emilio

---
 pflocal/socket.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/pflocal/socket.c b/pflocal/socket.c
index 06777ca..464bbc1 100644
--- a/pflocal/socket.c
+++ b/pflocal/socket.c
@@ -1,6 +1,6 @@
 /* Socket-specific operations

-   Copyright (C) 1995, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2008, 2010 Free Software Foundation, Inc.

    Written by Miles Bader <mi...@gnu.ai.mit.edu>

@@ -410,14 +410,24 @@ S_socket_recv (struct sock_user *user,

   return err;
 }
-

-/* Stubs for currently unsupported rpcs.  */

 error_t
 S_socket_getopt (struct sock_user *user,
                 int level, int opt,
                 char **value, size_t *value_len)
 {
+  if (level == SOL_SOCKET)
+    {
+      if (opt == SO_TYPE)
+       {
+         if (value_len == NULL || value == NULL || *value == NULL)
+           return EINVAL;
+         *(int*)*value = user->sock->pipe_class->sock_type;
+         *value_len = sizeof (user->sock->pipe_class->sock_type);
+         return 0;
+       }
+    }
+
   return EOPNOTSUPP;
 }

-- 
1.7.1

Reply via email to