Bug 163120

Summary: socket(7) is wrong regarding RCVLOWAT
Product: [Fedora] Fedora Reporter: Andy Grover <andrew.grover>
Component: man-pagesAssignee: Ivana Varekova <varekova>
Status: CLOSED RAWHIDE QA Contact: Ben Levenson <benl>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: davem
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-01-09 09:42:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andy Grover 2005-07-13 01:00:20 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4

Description of problem:
The man pages say that socket options SO_SNDLOWAT and SO_RCVLOWAT are not changeable in Linux and attempting to set them will return ENOPROTOOPT.

SNDLOWAT is not settable but RCVLOWAT is (I tried it), and the man page should reflect this.

Version-Release number of selected component (if applicable):
man-pages-1.67-7

How reproducible:
Always

Steps to Reproduce:
int i, j, lowat;
lowat = 1000;

i = socket(PF_INET, SOCK_STREAM, 0);

j = setsockopt(i, SOL_SOCKET, SO_RCVLOWAT, &lowat, sizeof(lowat));

if (!j)
  printf("the manpage is wrong\n");

Additional info:

Comment 3 Ivana Varekova 2005-09-12 09:13:53 UTC
Thank you for your notice. This man page is fixed in the last version of
man-pages (2.07-3).
The fixed version is:

  SO_RCVLOWAT and SO_SNDLOWAT
              Specify the minimum number of bytes in  the  buffer  until  the
              socket  layer  will pass the data to the protocol (SO_SNDLOWAT)
              or the user on receiving (SO_RCVLOWAT).  Their argument size is
              always  fixed  to  1  byte.   SO_SNDLOWAT  is not changeable in
              Linux.  SO_RCVLOWAT option is changeable only since Linux  2.4.
              getsockopt  is able to read them; setsockopt will always return
              ENOPROTOOPT.