From 0a909fde7a283fb22c22bbdbc16bcf4c0fe391ec Mon Sep 17 00:00:00 2001 From: dscho Date: Wed, 28 Sep 2005 16:51:50 +0000 Subject: This monster commit contains support for TightVNC's file transfer protocol. Thank you very much, Rohit! --- libvncserver/main.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'libvncserver/main.c') diff --git a/libvncserver/main.c b/libvncserver/main.c index 905bb83..240d50d 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -84,6 +84,46 @@ void rfbReleaseExtensionIterator() UNLOCK(extMutex); } +rfbBool rfbEnableExtension(rfbClientPtr cl, rfbProtocolExtension* extension, + void* data) +{ + rfbExtensionData* extData; + + /* make sure extension is not yet enabled. */ + for(extData = cl->extensions; extData; extData = extData->next) + if(extData->extension == extension) + return FALSE; + + extData = calloc(sizeof(rfbExtensionData),1); + extData->extension = extension; + extData->data = data; + extData->next = cl->extensions; + cl->extensions = extData; + + return TRUE; +} + +rfbBool rfbDisableExtension(rfbClientPtr cl, rfbProtocolExtension* extension) +{ + rfbExtensionData* extData; + rfbExtensionData* prevData = NULL; + + for(extData = cl->extensions; extData; extData = extData->next) { + if(extData->extension == extension) { + if(extData->data) + free(extData->data); + if(prevData == NULL) + cl->extensions = extData->next; + else + prevData->next = extData->next; + return TRUE; + } + prevData = extData; + } + + return FALSE; +} + /* * Logging */ -- cgit v1.1