diff options
author | steven_carr <steven_carr> | 2006-06-05 17:33:51 +0000 |
---|---|---|
committer | steven_carr <steven_carr> | 2006-06-05 17:33:51 +0000 |
commit | a75a576e138e75a522140bb6f2e7345cf8863b15 (patch) | |
tree | f2e05f623ebeaf5ace5e221eadf07e224ea850e1 /libvncserver/auth.c | |
parent | 203eee7cfdb70556125f959d3b548fbd1213d8d2 (diff) | |
download | libtdevnc-a75a576e138e75a522140bb6f2e7345cf8863b15.tar.gz libtdevnc-a75a576e138e75a522140bb6f2e7345cf8863b15.zip |
All security types for RFB >= 3.7 *have* to respond with a Security Result (Even rfbSecTypeNone)
Diffstat (limited to 'libvncserver/auth.c')
-rwxr-xr-x | libvncserver/auth.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libvncserver/auth.c b/libvncserver/auth.c index a1f75a0..45b3a8e 100755 --- a/libvncserver/auth.c +++ b/libvncserver/auth.c @@ -265,7 +265,8 @@ rfbProcessClientSecurityType(rfbClientPtr cl) int n; uint8_t chosenType; rfbSecurityHandler* handler; - + uint32_t authResult; + /* Read the security type. */ n = rfbReadExact(cl, (char *)&chosenType, 1); if (n <= 0) { @@ -281,6 +282,13 @@ rfbProcessClientSecurityType(rfbClientPtr cl) for (handler = securityHandlers; handler; handler = handler->next) { if (chosenType == handler->type) { if (chosenType == rfbSecTypeNone) { + authResult = Swap32IfLE(rfbVncAuthOK); + + if (rfbWriteExact(cl, (char *)&authResult, 4) < 0) { + rfbLogPerror("rfbAuthProcessClientMessage: write"); + rfbCloseClient(cl); + return; + } cl->state = RFB_INITIALISATION; return; } else { |