Author: tuexen
Date: Fri Jul 21 07:44:43 2017
New Revision: 321325
URL: https://svnweb.freebsd.org/changeset/base/321325

Log:
  Fix getsockopt() for listening sockets when using SO_SNDBUF, SO_RCVBUF,
  SO_SNDLOWAT, SO_RCVLOWAT. Since r31972 it only worked for non-listening
  sockets.
  
  Sponsored by: Netflix, Inc.

Modified:
  head/sys/kern/uipc_socket.c

Modified: head/sys/kern/uipc_socket.c
==============================================================================
--- head/sys/kern/uipc_socket.c Fri Jul 21 06:56:06 2017        (r321324)
+++ head/sys/kern/uipc_socket.c Fri Jul 21 07:44:43 2017        (r321325)
@@ -3020,19 +3020,23 @@ integer:
                        goto integer;
 
                case SO_SNDBUF:
-                       optval = so->so_snd.sb_hiwat;
+                       optval = SOLISTENING(so) ? so->sol_sbsnd_hiwat :
+                           so->so_snd.sb_hiwat;
                        goto integer;
 
                case SO_RCVBUF:
-                       optval = so->so_rcv.sb_hiwat;
+                       optval = SOLISTENING(so) ? so->sol_sbrcv_hiwat :
+                           so->so_rcv.sb_hiwat;
                        goto integer;
 
                case SO_SNDLOWAT:
-                       optval = so->so_snd.sb_lowat;
+                       optval = SOLISTENING(so) ? so->sol_sbsnd_lowat :
+                           so->so_snd.sb_lowat;
                        goto integer;
 
                case SO_RCVLOWAT:
-                       optval = so->so_rcv.sb_lowat;
+                       optval = SOLISTENING(so) ? so->sol_sbrcv_lowat :
+                           so->so_rcv.sb_lowat;
                        goto integer;
 
                case SO_SNDTIMEO:
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to