mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-24 07:40:52 +00:00
tcpsso: fix when used without -i option
Sincefdb987bebd
it is not possible anymore to use inp_next iterator for bound, but unconnected sockets. This applies to TCP listening sockets. Therefore the metioned commit broke tcpsso on listening sockets if the -i option was not used. Fix this by iterating through all endpoints instead of only through the bound, but unconnected ones. Reviewed by: markj Fixes:fdb987bebd
("inpcb: Split PCB hash tables") Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D43353
This commit is contained in:
parent
dafd0d6855
commit
13720136fb
@ -2950,25 +2950,22 @@ sysctl_setsockopt(SYSCTL_HANDLER_ARGS, struct inpcbinfo *pcbinfo,
|
||||
htons(params->sop_inc.inc6_zoneid & 0xffff);
|
||||
}
|
||||
#endif
|
||||
if (params->sop_inc.inc_lport != htons(0)) {
|
||||
if (params->sop_inc.inc_fport == htons(0))
|
||||
inpi.hash = INP_PCBHASH_WILD(params->sop_inc.inc_lport,
|
||||
if (params->sop_inc.inc_lport != htons(0) &&
|
||||
params->sop_inc.inc_fport != htons(0)) {
|
||||
#ifdef INET6
|
||||
if (params->sop_inc.inc_flags & INC_ISIPV6)
|
||||
inpi.hash = INP6_PCBHASH(
|
||||
¶ms->sop_inc.inc6_faddr,
|
||||
params->sop_inc.inc_lport,
|
||||
params->sop_inc.inc_fport,
|
||||
pcbinfo->ipi_hashmask);
|
||||
else
|
||||
#ifdef INET6
|
||||
if (params->sop_inc.inc_flags & INC_ISIPV6)
|
||||
inpi.hash = INP6_PCBHASH(
|
||||
¶ms->sop_inc.inc6_faddr,
|
||||
params->sop_inc.inc_lport,
|
||||
params->sop_inc.inc_fport,
|
||||
pcbinfo->ipi_hashmask);
|
||||
else
|
||||
#endif
|
||||
inpi.hash = INP_PCBHASH(
|
||||
¶ms->sop_inc.inc_faddr,
|
||||
params->sop_inc.inc_lport,
|
||||
params->sop_inc.inc_fport,
|
||||
pcbinfo->ipi_hashmask);
|
||||
inpi.hash = INP_PCBHASH(
|
||||
¶ms->sop_inc.inc_faddr,
|
||||
params->sop_inc.inc_lport,
|
||||
params->sop_inc.inc_fport,
|
||||
pcbinfo->ipi_hashmask);
|
||||
}
|
||||
while ((inp = inp_next(&inpi)) != NULL)
|
||||
if (inp->inp_gencnt == params->sop_id) {
|
||||
|
Loading…
Reference in New Issue
Block a user