Blame SOURCES/0001-auth-Add-API-to-unregister-built-in-security-handler.patch

4743e5
From b793e8c51ab253c0951e43a84e9d448416462887 Mon Sep 17 00:00:00 2001
4743e5
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
4743e5
Date: Wed, 27 Nov 2019 16:58:29 +0100
4743e5
Subject: [PATCH] auth: Add API to unregister built in security handlers
4743e5
4743e5
If I have a VNC server that first accepts password based authentication,
4743e5
then switches to something not using password (e.g. a prompt on screen),
4743e5
the security handler from the first would still be sent as, meaning
4743e5
clients would still ask for a password without there being one.
4743e5
---
4743e5
 libvncserver/auth.c | 7 +++++++
4743e5
 rfb/rfb.h           | 1 +
4743e5
 2 files changed, 8 insertions(+)
4743e5
4743e5
diff --git a/libvncserver/auth.c b/libvncserver/auth.c
4743e5
index 55e0b3c9..8b6fc48f 100644
4743e5
--- a/libvncserver/auth.c
4743e5
+++ b/libvncserver/auth.c
4743e5
@@ -248,6 +248,13 @@ determinePrimarySecurityType(rfbClientPtr cl)
4743e5
     }
4743e5
 }
4743e5
 
4743e5
+void
4743e5
+rfbUnregisterPrimarySecurityHandlers (void)
4743e5
+{
4743e5
+    rfbUnregisterSecurityHandler(&VncSecurityHandlerNone);
4743e5
+    rfbUnregisterSecurityHandler(&VncSecurityHandlerVncAuth);
4743e5
+}
4743e5
+
4743e5
 void
4743e5
 rfbSendSecurityTypeList(rfbClientPtr cl,
4743e5
                         enum rfbSecurityTag exclude)
4743e5
diff --git a/rfb/rfb.h b/rfb/rfb.h
4743e5
index 70b92242..738dbd82 100644
4743e5
--- a/rfb/rfb.h
4743e5
+++ b/rfb/rfb.h
4743e5
@@ -887,6 +887,7 @@ extern void rfbProcessClientSecurityType(rfbClientPtr cl);
4743e5
 extern void rfbAuthProcessClientMessage(rfbClientPtr cl);
4743e5
 extern void rfbRegisterSecurityHandler(rfbSecurityHandler* handler);
4743e5
 extern void rfbUnregisterSecurityHandler(rfbSecurityHandler* handler);
4743e5
+extern void rfbUnregisterPrimarySecurityHandlers (void);
4743e5
 extern void rfbRegisterChannelSecurityHandler(rfbSecurityHandler* handler);
4743e5
 extern void rfbUnregisterChannelSecurityHandler(rfbSecurityHandler* handler);
4743e5
 extern void rfbSendSecurityTypeList(rfbClientPtr cl, enum rfbSecurityTag exclude);
4743e5
-- 
4743e5
2.23.0
4743e5