|
|
@ -589,6 +589,11 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv,
|
|
|
|
|
|
|
|
|
|
|
|
rfbScreen->passwordCheck = defaultPasswordCheck;
|
|
|
|
rfbScreen->passwordCheck = defaultPasswordCheck;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rfbScreen->ignoreSIGPIPE = TRUE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* disable progressive updating per default */
|
|
|
|
|
|
|
|
rfbScreen->progressiveSliceHeight = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if(!rfbProcessArguments(rfbScreen,argc,argv)) {
|
|
|
|
if(!rfbProcessArguments(rfbScreen,argc,argv)) {
|
|
|
|
free(rfbScreen);
|
|
|
|
free(rfbScreen);
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
@ -638,8 +643,6 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv,
|
|
|
|
/* initialize client list and iterator mutex */
|
|
|
|
/* initialize client list and iterator mutex */
|
|
|
|
rfbClientListInit(rfbScreen);
|
|
|
|
rfbClientListInit(rfbScreen);
|
|
|
|
|
|
|
|
|
|
|
|
rfbScreen->ignoreSIGPIPE = TRUE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return(rfbScreen);
|
|
|
|
return(rfbScreen);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -801,7 +804,7 @@ rfbProcessEvents(rfbScreenInfoPtr rfbScreen,long usec)
|
|
|
|
while(cl) {
|
|
|
|
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)) {
|
|
|
|
!sraRgnEmpty(cl->requestedRegion)) {
|
|
|
|
if(cl->screen->rfbDeferUpdateTime == 0) {
|
|
|
|
if(rfbScreen->rfbDeferUpdateTime == 0) {
|
|
|
|
rfbSendFramebufferUpdate(cl,cl->modifiedRegion);
|
|
|
|
rfbSendFramebufferUpdate(cl,cl->modifiedRegion);
|
|
|
|
} else if(cl->startDeferring.tv_usec == 0) {
|
|
|
|
} else if(cl->startDeferring.tv_usec == 0) {
|
|
|
|
gettimeofday(&cl->startDeferring,NULL);
|
|
|
|
gettimeofday(&cl->startDeferring,NULL);
|
|
|
@ -812,7 +815,7 @@ rfbProcessEvents(rfbScreenInfoPtr rfbScreen,long usec)
|
|
|
|
if(tv.tv_sec < cl->startDeferring.tv_sec /* at midnight */
|
|
|
|
if(tv.tv_sec < cl->startDeferring.tv_sec /* at midnight */
|
|
|
|
|| ((tv.tv_sec-cl->startDeferring.tv_sec)*1000
|
|
|
|
|| ((tv.tv_sec-cl->startDeferring.tv_sec)*1000
|
|
|
|
+(tv.tv_usec-cl->startDeferring.tv_usec)/1000)
|
|
|
|
+(tv.tv_usec-cl->startDeferring.tv_usec)/1000)
|
|
|
|
> cl->screen->rfbDeferUpdateTime) {
|
|
|
|
> rfbScreen->rfbDeferUpdateTime) {
|
|
|
|
cl->startDeferring.tv_usec = 0;
|
|
|
|
cl->startDeferring.tv_usec = 0;
|
|
|
|
rfbSendFramebufferUpdate(cl,cl->modifiedRegion);
|
|
|
|
rfbSendFramebufferUpdate(cl,cl->modifiedRegion);
|
|
|
|
}
|
|
|
|
}
|
|
|
|