diff options
Diffstat (limited to 'libvncserver')
-rw-r--r-- | libvncserver/rfbserver.c | 31 | ||||
-rw-r--r-- | libvncserver/tightvnc-filetransfer/rfbtightserver.c | 2 |
2 files changed, 25 insertions, 8 deletions
diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 0c25f80..4b67aa1 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -105,7 +105,7 @@ rfbClientListInit(rfbScreenInfoPtr rfbScreen) { if(sizeof(rfbBool)!=1) { /* a sanity check */ - fprintf(stderr,"rfbBool's size is not 1 (%d)!\n",sizeof(rfbBool)); + fprintf(stderr,"rfbBool's size is not 1 (%d)!\n",(int)sizeof(rfbBool)); /* we cannot continue, because rfbBool is supposed to be char everywhere */ exit(1); } @@ -924,8 +924,22 @@ rfbProcessClientNormalMessage(rfbClientPtr cl) #endif } else #endif - rfbLog("rfbProcessClientNormalMessage: ignoring unknown " - "encoding type %d\n", (int)enc); + { + rfbExtensionData* e; + for(e = cl->extensions; e;) { + rfbExtensionData* next = e->next; + if(e->extension->enablePseudoEncoding && + e->extension->enablePseudoEncoding(cl, + e->data, (int)enc)) + /* ext handles this encoding */ + break; + e = next; + } + if(e == NULL) + rfbLog("rfbProcessClientNormalMessage: ignoring" + "unknown encoding type %d\n", + (int)enc); + } } } @@ -1071,12 +1085,15 @@ rfbProcessClientNormalMessage(rfbClientPtr cl) default: { - rfbExtensionData* extension; + rfbExtensionData *e,*next; - for(extension=cl->extensions; extension; extension=extension->next) - if(extension->extension->handleMessage && - extension->extension->handleMessage(cl, extension->data, &msg)) + for(e=cl->extensions; e;) { + next = e->next; + if(e->extension->handleMessage && + e->extension->handleMessage(cl, e->data, &msg)) return; + e = next; + } if(cl->screen->processCustomClientMessage(cl,msg.type)) { rfbLog("Warning: this program uses processCustomClientMessage, " diff --git a/libvncserver/tightvnc-filetransfer/rfbtightserver.c b/libvncserver/tightvnc-filetransfer/rfbtightserver.c index 825fce0..013aa2e 100644 --- a/libvncserver/tightvnc-filetransfer/rfbtightserver.c +++ b/libvncserver/tightvnc-filetransfer/rfbtightserver.c @@ -156,7 +156,6 @@ static void rfbSendAuthCaps(cl) rfbClientPtr cl; { - rfbBool authRequired; rfbAuthenticationCapsMsg caps; rfbCapabilityInfo caplist[MAX_AUTH_CAPS]; int count = 0; @@ -485,6 +484,7 @@ rfbHandleSecTypeTight(rfbClientPtr cl) { rfbProtocolExtension tightVncFileTransferExtension = { NULL, rfbTightExtensionInit, + NULL, rfbTightExtensionMsgHandler, rfbTightExtensionClientClose, rfbTightUsage, |