diff options
author | dscho <dscho> | 2006-01-10 14:07:58 +0000 |
---|---|---|
committer | dscho <dscho> | 2006-01-10 14:07:58 +0000 |
commit | 0b7a0030acc27377b01e3afa41f672dc4d6a7561 (patch) | |
tree | 7499d9d059b095970be9e0e8312004e5fe348dd2 /libvncserver/main.c | |
parent | 71f2ec79180185a6c3db0c87f9d53c491dc31e76 (diff) | |
download | libtdevnc-0b7a0030acc27377b01e3afa41f672dc4d6a7561.tar.gz libtdevnc-0b7a0030acc27377b01e3afa41f672dc4d6a7561.zip |
rfbProcessEvents() has to iterate also over clients with sock < 0 to close them
Diffstat (limited to 'libvncserver/main.c')
-rw-r--r-- | libvncserver/main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libvncserver/main.c b/libvncserver/main.c index 352a00e..51f9f2f 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -904,6 +904,8 @@ rfbProcessEvents(rfbScreenInfoPtr screen,long usec) rfbClientPtr cl,clPrev; struct timeval tv; rfbBool result=FALSE; + extern rfbClientIteratorPtr + rfbGetClientIteratorWithClosed(rfbScreenInfoPtr rfbScreen); if(usec<0) usec=screen->deferUpdateTime*1000; @@ -914,7 +916,7 @@ rfbProcessEvents(rfbScreenInfoPtr screen,long usec) corbaCheckFds(screen); #endif - i = rfbGetClientIterator(screen); + i = rfbGetClientIteratorWithClosed(screen); cl=rfbClientIteratorHead(i); while(cl) { if (cl->sock >= 0 && !cl->onHold && FB_UPDATE_PENDING(cl) && |