diff --git a/examples/backchannel.c b/examples/backchannel.c index 4db01a8..6a21390 100644 --- a/examples/backchannel.c +++ b/examples/backchannel.c @@ -33,7 +33,7 @@ typedef struct backChannelMsg { uint32_t size; } backChannelMsg; -rfbBool enableBackChannel(rfbClientPtr cl, void* data, int encoding) +rfbBool enableBackChannel(rfbClientPtr cl, void** data, int encoding) { if(encoding == rfbBackChannel) { backChannelMsg msg; diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 652b1b7..474351c 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -921,7 +921,7 @@ rfbProcessClientNormalMessage(rfbClientPtr cl) rfbExtensionData* next = e->next; if(e->extension->enablePseudoEncoding && e->extension->enablePseudoEncoding(cl, - e->data, (int)enc)) + &e->data, (int)enc)) /* ext handles this encoding */ break; e = next; @@ -938,9 +938,7 @@ rfbProcessClientNormalMessage(rfbClientPtr cl) while(encs && *encs!=0) { if(*encs==(int)enc) { void* data = NULL; - if(e->newClient) - e->newClient(cl, &data); - if(!e->enablePseudoEncoding(cl, data, (int)enc)) { + if(!e->enablePseudoEncoding(cl, &data, (int)enc)) { rfbLog("Installed extension pretends to handle pseudo encoding 0x%x, but does not!\n",(int)enc); } else { rfbEnableExtension(cl, e, data); diff --git a/rfb/rfb.h b/rfb/rfb.h index 3338f7d..caec018 100644 --- a/rfb/rfb.h +++ b/rfb/rfb.h @@ -170,7 +170,7 @@ typedef struct _rfbProtocolExtension { /* returns TRUE if that pseudo encoding is handled by the extension. encodingNumber==0 means "reset encodings". */ rfbBool (*enablePseudoEncoding)(struct _rfbClientRec* client, - void* data, int encodingNumber); + void** data, int encodingNumber); /* returns TRUE if message was handled */ rfbBool (*handleMessage)(struct _rfbClientRec* client, void* data,