Merge uipc_socket.c:1.249, socket.h:1.89 from HEAD to RELENG_6:

Add three new read-only socket options, which allow regression tests
  and other applications to query the state of the stack regarding the
  accept queue on a listen socket:

  SO_LISTENQLIMIT    Return the value of so_qlimit (socket backlog)
  SO_LISTENQLEN      Return the value of so_qlen (complete sockets)
  SO_LISTENINCQLEN   Return the value of so_incqlen (incomplete sockets)

  Minor white space tweaks to existing socket options to make them
  consistent.

  Discussed with: andre

Approved by:	re (scottl)
This commit is contained in:
rwatson 2005-09-27 21:14:10 +00:00
parent 8d659a8778
commit bb13f5c766
2 changed files with 20 additions and 0 deletions

View File

@ -1681,6 +1681,7 @@ sosetopt(so, sopt)
break;
}
break;
case SO_LABEL:
#ifdef MAC
error = sooptcopyin(sopt, &extmac, sizeof extmac,
@ -1693,6 +1694,7 @@ sosetopt(so, sopt)
error = EOPNOTSUPP;
#endif
break;
default:
error = ENOPROTOOPT;
break;
@ -1820,6 +1822,7 @@ integer:
tv.tv_usec = (optval % hz) * tick;
error = sooptcopyout(sopt, &tv, sizeof tv);
break;
case SO_LABEL:
#ifdef MAC
error = sooptcopyin(sopt, &extmac, sizeof(extmac),
@ -1835,6 +1838,7 @@ integer:
error = EOPNOTSUPP;
#endif
break;
case SO_PEERLABEL:
#ifdef MAC
error = sooptcopyin(sopt, &extmac, sizeof(extmac),
@ -1850,6 +1854,19 @@ integer:
error = EOPNOTSUPP;
#endif
break;
case SO_LISTENQLIMIT:
optval = so->so_qlimit;
goto integer;
case SO_LISTENQLEN:
optval = so->so_qlen;
goto integer;
case SO_LISTENINCQLEN:
optval = so->so_incqlen;
goto integer;
default:
error = ENOPROTOOPT;
break;

View File

@ -133,6 +133,9 @@ typedef __uid_t uid_t;
#if __BSD_VISIBLE
#define SO_LABEL 0x1009 /* socket's MAC label */
#define SO_PEERLABEL 0x1010 /* socket's peer's MAC label */
#define SO_LISTENQLIMIT 0x1011 /* socket's backlog limit */
#define SO_LISTENQLEN 0x1012 /* socket's complete queue length */
#define SO_LISTENINCQLEN 0x1013 /* socket's incomplete queue length */
#endif
/*