diff options
| author | Gleb Smirnoff <glebius@FreeBSD.org> | 2026-04-12 18:30:44 +0000 |
|---|---|---|
| committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2026-04-12 18:30:44 +0000 |
| commit | 202370905f11be4e2c7afa18e73d374204fda08e (patch) | |
| tree | c0cb3cff1a8adabfac60be3c2954cc001a8ce4da /sys/netinet | |
| parent | 817e6995a19cb6f35851d0191bb1099a73d98bb9 (diff) | |
Diffstat (limited to 'sys/netinet')
| -rw-r--r-- | sys/netinet/in_pcb.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index a997c643e8be..98421a7f2232 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -1433,11 +1433,13 @@ in_pcbdisconnect(struct inpcb *inp) in_pcbremhash_locked(inp); - /* See the comment in in_pcbinshash(). */ - inp->inp_smr = smr_advance(inp->inp_pcbinfo->ipi_smr); - inp->inp_laddr.s_addr = INADDR_ANY; - inp->inp_faddr.s_addr = INADDR_ANY; - inp->inp_fport = 0; + if ((inp->inp_socket->so_proto->pr_flags & PR_CONNREQUIRED) == 0) { + /* See the comment in in_pcbinshash(). */ + inp->inp_smr = smr_advance(inp->inp_pcbinfo->ipi_smr); + inp->inp_laddr.s_addr = INADDR_ANY; + inp->inp_faddr.s_addr = INADDR_ANY; + inp->inp_fport = 0; + } } #endif /* INET */ |
