git: fef9077cf816 - main - netipsec: Implement pr_disconnect for PF_KEY sockets

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Thu, 27 Aug 2026 18:38:24 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=fef9077cf816a6499bd6a7f9678c179194463e43

commit fef9077cf816a6499bd6a7f9678c179194463e43
Author:     Ryan Campbell <rycampbell@qnx.com>
AuthorDate: 2026-08-27 15:05:39 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-08-27 18:33:58 +0000

    netipsec: Implement pr_disconnect for PF_KEY sockets
    
    Otherwise close() fails.
    
    PR:             297977
    Reviewed by:    glebius
    Fixes:          ea7be1293b48 ("keysock: do not use raw socket code")
    MFC after:      1 week
---
 sys/netipsec/keysock.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sys/netipsec/keysock.c b/sys/netipsec/keysock.c
index 23c155ed6aff..ee3ab9741a88 100644
--- a/sys/netipsec/keysock.c
+++ b/sys/netipsec/keysock.c
@@ -308,6 +308,12 @@ key_detach(struct socket *so)
 	so->so_pcb = NULL;
 }
 
+static int
+key_disconnect(struct socket *so)
+{
+	return (ENOTCONN);
+}
+
 static int
 key_shutdown(struct socket *so, enum shutdown_how how)
 {
@@ -340,6 +346,7 @@ static struct protosw keysw = {
 	.pr_abort =		key_close,
 	.pr_attach =		key_attach,
 	.pr_detach =		key_detach,
+	.pr_disconnect =	key_disconnect,
 	.pr_send =		key_send,
 	.pr_shutdown =		key_shutdown,
 	.pr_close =		key_close,