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 MFC after: 1 week
This commit is contained in:
parent
d1d8e770db
commit
8434c29b28
@ -1677,6 +1677,7 @@ sosetopt(so, sopt)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case SO_LABEL:
|
||||
#ifdef MAC
|
||||
error = sooptcopyin(sopt, &extmac, sizeof extmac,
|
||||
@ -1689,6 +1690,7 @@ sosetopt(so, sopt)
|
||||
error = EOPNOTSUPP;
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
error = ENOPROTOOPT;
|
||||
break;
|
||||
@ -1817,6 +1819,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),
|
||||
@ -1832,6 +1835,7 @@ integer:
|
||||
error = EOPNOTSUPP;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SO_PEERLABEL:
|
||||
#ifdef MAC
|
||||
error = sooptcopyin(sopt, &extmac, sizeof(extmac),
|
||||
@ -1847,6 +1851,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;
|
||||
|
@ -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
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user