git: 03ed855b861f - main - dns/samba-nsupdate: Allow to violate RFC 2845

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Thu, 04 Sep 2025 17:22:14 UTC
The branch main has been updated by 0mp:

URL: https://cgit.FreeBSD.org/ports/commit/?id=03ed855b861fba2aa277608bb565ff66820bff0a

commit 03ed855b861fba2aa277608bb565ff66820bff0a
Author:     Nikita Druba <nikita@druba.su>
AuthorDate: 2025-09-04 17:13:14 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2025-09-04 17:21:27 +0000

    dns/samba-nsupdate: Allow to violate RFC 2845
    
    Add an option to disable false TSIG error with Windows or Samba Internal
    DNS.
    
    PR:             261932
    Co-authored-by: Mateusz Piotrowski <0mp@FreeBSD.org>
---
 dns/samba-nsupdate/Makefile                             |  4 ++++
 .../files/extrapatch-bin_nsupdate_nsupdate.c            | 17 +++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/dns/samba-nsupdate/Makefile b/dns/samba-nsupdate/Makefile
index d3d873d0f61e..2856b39dd1d3 100644
--- a/dns/samba-nsupdate/Makefile
+++ b/dns/samba-nsupdate/Makefile
@@ -58,6 +58,7 @@ EXTRA_PATCHES=	${PATCHDIR}/extrapatch-bind-tools
 PLIST_FILES=	bin/${PKGBASE} \
 		share/man/man1/${PKGBASE}.1.gz
 
+OPTIONS_DEFINE=		VIOLATE_RFC_2845
 OPTIONS_DEFAULT=	GSSAPI_BASE
 OPTIONS_SINGLE=		GSSAPI
 OPTIONS_SINGLE_GSSAPI=	GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT
@@ -66,6 +67,7 @@ OPTIONS_SUB=		yes
 GSSAPI_BASE_DESC=	Using Heimdal in base
 GSSAPI_HEIMDAL_DESC=	Using security/heimdal
 GSSAPI_MIT_DESC=	Using security/krb5
+VIOLATE_RFC_2845_DESC=	Disable false TSIG error with Windows or Samba Internal DNS (EXPERIMENTAL)
 
 GSSAPI_BASE_USES=		gssapi
 GSSAPI_BASE_CONFIGURE_ON=	--with-gssapi=${GSSAPIBASEDIR} \
@@ -79,6 +81,8 @@ GSSAPI_MIT_USES=		gssapi:mit
 GSSAPI_MIT_CONFIGURE_ON=	--with-gssapi=${GSSAPIBASEDIR} \
 				KRB5CONFIG="${KRB5CONFIG}"
 
+VIOLATE_RFC_2845_EXTRA_PATCHES=	${PATCHDIR}/extrapatch-bin_nsupdate_nsupdate.c
+
 post-patch:
 	@${REINPLACE_CMD} \
 		-e 's|${PORTNAME}|${PKGBASE}|g' \
diff --git a/dns/samba-nsupdate/files/extrapatch-bin_nsupdate_nsupdate.c b/dns/samba-nsupdate/files/extrapatch-bin_nsupdate_nsupdate.c
new file mode 100644
index 000000000000..c4933a69fbdc
--- /dev/null
+++ b/dns/samba-nsupdate/files/extrapatch-bin_nsupdate_nsupdate.c
@@ -0,0 +1,17 @@
+--- bin/nsupdate/nsupdate.c.orig	2025-07-06 22:45:25 UTC
++++ bin/nsupdate/nsupdate.c
+@@ -2440,14 +2440,12 @@ update_completed(isc_task_t *task, isc_event_t *event)
+ 	case DNS_R_TSIGVERIFYFAILURE:
+ 	case DNS_R_UNEXPECTEDTSIG:
+ 	case ISC_R_FAILURE:
+-#if 0
+ 		if (usegsstsig && answer->rcode == dns_rcode_noerror) {
+ 			/*
+ 			 * For MS DNS that violates RFC 2845, section 4.2
+ 			 */
+ 			break;
+ 		}
+-#endif /* if 0 */
+ 		fprintf(stderr, "; TSIG error with server: %s\n",
+ 			isc_result_totext(result));
+ 		seenerror = true;