[PATCH] Don't imply TCP and UDP socket options are bitmasks
John Baldwin
jhb at freebsd.org
Tue Jan 15 20:27:55 UTC 2013
On Monday, January 14, 2013 5:17:12 pm Alfred Perlstein wrote:
> On 1/14/13 4:56 PM, John Baldwin wrote:
> > On Monday, January 14, 2013 4:42:16 pm Alfred Perlstein wrote:
> >> Wouldn't a comment over the code suffice?
> >>
> >> Something like your email as a header would actually work very nicely!
> >>
> >> I think just using decimal would be more confusing than explicitly
> >> calling it out like:
> >>
> >> /* begin enumerated (not bitmask) socket option specifiers */
> >> #define TCP_MAXSEG 0x02 /* set maximum segment size */
> >> #define TCP_NOPUSH 0x04 /* don't push last block of write */
> >> #define TCP_NOOPT 0x08 /* don't use TCP options */
> >> #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */
> >> /* end enumerated socket option specifiers */
> > I have a patch I'll post next which will add a new option as '3'. I think that
> > will make it more obvious and avoid having new options follow the old pattern.
> >
> Any objection to adding the contents of that email as a comment
> section? It really would help.
We don't generally do this for other enumerations like ioctl values as it
is generally obvious to the reader. I think for UDP having one constant
called '1' should be obvious enough. TCP might indeed warrany a comment
since it has several existing values that are powers of 2. How about
this:
/*
* User-settable options (used with setsockopt). These are discrete
* values and should not be masked together. Many values appear to be
* bitmasks for legacy reasons.
*/
--
John Baldwin
More information about the freebsd-net
mailing list