summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordscho <dscho>2002-10-29 16:04:24 +0000
committerdscho <dscho>2002-10-29 16:04:24 +0000
commitd60fda117b1d72d12984a07a4444d36a69da639e (patch)
treea13e8c1f9f63e5a7c10541729dde603b4425b101
parent19c7fc0217e2087af2173974689b9b0f892a18d3 (diff)
downloadlibtdevnc-d60fda11.tar.gz
libtdevnc-d60fda11.zip
fixed severe bug with sending fbupdates
-rw-r--r--CHANGES1
-rw-r--r--main.c3
-rw-r--r--rfbserver.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 2ce6420..b58f6d9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,4 @@
+ fixed severe bug (Const Kaplinsky)
got patch from Const Kaplisnky with CursorPosUpdate encoding and some Docs
sync'ed with newest RealVNC (ZRLE encoding)
a HTTP request for tunnelling was added (to fool strict web proxies)
diff --git a/main.c b/main.c
index 0f4bf7d..ab4c149 100644
--- a/main.c
+++ b/main.c
@@ -766,7 +766,8 @@ rfbProcessEvents(rfbScreenInfoPtr rfbScreen,long usec)
i = rfbGetClientIterator(rfbScreen);
cl=rfbClientIteratorNext(i);
while(cl) {
- if(cl->sock>=0 && (!cl->onHold) && FB_UPDATE_PENDING(cl)) {
+ if (cl->sock >= 0 && !cl->onHold && FB_UPDATE_PENDING(cl) &&
+ !sraRgnEmpty(cl->requestedRegion)) {
if(cl->screen->rfbDeferUpdateTime == 0) {
rfbSendFramebufferUpdate(cl,cl->modifiedRegion);
} else if(cl->startDeferring.tv_usec == 0) {
diff --git a/rfbserver.c b/rfbserver.c
index 9cdda1e..ecbc4e6 100644
--- a/rfbserver.c
+++ b/rfbserver.c
@@ -1101,7 +1101,7 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
sraRgnSubtract(cl->modifiedRegion,updateRegion);
sraRgnSubtract(cl->modifiedRegion,updateCopyRegion);
- /* sraRgnMakeEmpty(cl->requestedRegion); */
+ sraRgnMakeEmpty(cl->requestedRegion);
sraRgnMakeEmpty(cl->copyRegion);
cl->copyDX = 0;
cl->copyDY = 0;