|
|
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 |
|