add SO_TYPE option (get only!), correct mbuf lengths
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 20 Nov 1985 11:42:12 +0000 (03:42 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 20 Nov 1985 11:42:12 +0000 (03:42 -0800)
SCCS-vsn: sys/kern/uipc_socket.c 6.18

usr/src/sys/kern/uipc_socket.c

index d45875c..cd2f325 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)uipc_socket.c       6.17 (Berkeley) %G%
+ *     @(#)uipc_socket.c       6.18 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -700,6 +700,8 @@ sogetopt(so, level, optname, mp)
                        return (ENOPROTOOPT);
        } else {
                m = m_get(M_WAIT, MT_SOOPTS);
                        return (ENOPROTOOPT);
        } else {
                m = m_get(M_WAIT, MT_SOOPTS);
+               m->m_len = sizeof (int);
+
                switch (optname) {
 
                case SO_LINGER:
                switch (optname) {
 
                case SO_LINGER:
@@ -715,10 +717,13 @@ sogetopt(so, level, optname, mp)
                case SO_KEEPALIVE:
                case SO_REUSEADDR:
                case SO_BROADCAST:
                case SO_KEEPALIVE:
                case SO_REUSEADDR:
                case SO_BROADCAST:
-                       m->m_len = sizeof (int);
                        *mtod(m, int *) = so->so_options & optname;
                        break;
 
                        *mtod(m, int *) = so->so_options & optname;
                        break;
 
+               case SO_TYPE:
+                       *mtod(m, int *) = so->so_type;
+                       break;
+
                case SO_ERROR:
                        *mtod(m, int *) = so->so_error;
                        so->so_error = 0;
                case SO_ERROR:
                        *mtod(m, int *) = so->so_error;
                        so->so_error = 0;