From 9f0a1a3bc16d26420c703c6e6cc0f18bd4f6b81e Mon Sep 17 00:00:00 2001 From: dscho Date: Mon, 28 Jul 2003 00:57:52 +0000 Subject: synced with TightVNC and RealVNC --- main.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index c2d6bc3..5e8a24d 100644 --- a/main.c +++ b/main.c @@ -467,12 +467,16 @@ Bool defaultPasswordCheck(rfbClientPtr cl,const char* response,int len) Bool rfbCheckPasswordByList(rfbClientPtr cl,const char* response,int len) { char **passwds; + int i=0; - for(passwds=(char**)cl->screen->rfbAuthPasswdData;*passwds;passwds++) { + for(passwds=(char**)cl->screen->rfbAuthPasswdData;*passwds;passwds++,i++) { vncEncryptBytes(cl->authChallenge, *passwds); - if (memcmp(cl->authChallenge, response, len) == 0) + if (memcmp(cl->authChallenge, response, len) == 0) { + if(i>=cl->screen->rfbAuthPasswdFirstViewOnly) + cl->viewOnly=TRUE; return(TRUE); + } } rfbLog("rfbAuthProcessClientMessage: authentication failed from %s\n", @@ -574,6 +578,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv, rfbScreen->rfbNeverShared = FALSE; rfbScreen->rfbDontDisconnect = FALSE; rfbScreen->rfbAuthPasswdData = 0; + rfbScreen->rfbAuthPasswdFirstViewOnly = 1; rfbScreen->width = width; rfbScreen->height = height; @@ -611,6 +616,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv, IF_PTHREADS(rfbScreen->backgroundLoop = FALSE); rfbScreen->rfbDeferUpdateTime=5; + rfbScreen->maxRectsPerUpdate=50; /* proc's and hook's */ -- cgit v1.2.1