From 8eb18f6cd8793ea55f04d3c736885b04c41aba4f Mon Sep 17 00:00:00 2001 From: runge Date: Fri, 25 Nov 2005 07:22:43 +0000 Subject: fix deadlock from rfbReleaseExtensionIterator(), fix no libz/libjpeg builds, disable tightvnc-filetransfer if no libpthread, add --without-pthread option, rm // comments, set NAME_MAX if not defined, x11vnc: throttle load if fb update requests not taking place. --- libvncserver/Makefile.am | 4 ++-- libvncserver/auth.c | 2 +- libvncserver/main.c | 2 ++ libvncserver/private.h | 4 ++++ libvncserver/rfbserver.c | 16 ++++++++++------ libvncserver/tightvnc-filetransfer/filelistinfo.h | 4 ++++ libvncserver/tightvnc-filetransfer/filetransfermsg.c | 2 +- .../tightvnc-filetransfer/handlefiletransferrequest.c | 2 -- libvncserver/tightvnc-filetransfer/rfbtightserver.c | 10 ++++++---- 9 files changed, 30 insertions(+), 16 deletions(-) (limited to 'libvncserver') diff --git a/libvncserver/Makefile.am b/libvncserver/Makefile.am index ecffba1..2a32666 100644 --- a/libvncserver/Makefile.am +++ b/libvncserver/Makefile.am @@ -1,6 +1,6 @@ AM_CFLAGS=-g -Wall -#if WITH_TIGHTVNC_FILETRANSFER +if WITH_TIGHTVNC_FILETRANSFER TIGHTVNCFILETRANSFERHDRS=tightvnc-filetransfer/filelistinfo.h \ tightvnc-filetransfer/filetransfermsg.h \ tightvnc-filetransfer/handlefiletransferrequest.h \ @@ -10,7 +10,7 @@ TIGHTVNCFILETRANSFERSRCS = tightvnc-filetransfer/rfbtightserver.c \ tightvnc-filetransfer/handlefiletransferrequest.c \ tightvnc-filetransfer/filetransfermsg.c \ tightvnc-filetransfer/filelistinfo.c -#endif +endif includedir=$(prefix)/include/rfb #include_HEADERS=rfb.h rfbconfig.h rfbint.h rfbproto.h keysym.h rfbregion.h diff --git a/libvncserver/auth.c b/libvncserver/auth.c index 5c1c044..e3a89eb 100755 --- a/libvncserver/auth.c +++ b/libvncserver/auth.c @@ -179,7 +179,7 @@ rfbAuthNewClient(rfbClientPtr cl) int32_t securityType = rfbSecTypeInvalid; if (!cl->screen->authPasswdData || cl->reverseConnection) { - // chk if this condition is valid or not. + /* chk if this condition is valid or not. */ securityType = rfbSecTypeNone; } else if (cl->screen->authPasswdData) { securityType = rfbSecTypeVncAuth; diff --git a/libvncserver/main.c b/libvncserver/main.c index e6908e1..e0c699f 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -840,8 +840,10 @@ void rfbScreenCleanup(rfbScreenInfoPtr screen) TINI_MUTEX(screen->cursorMutex); if(screen->cursor && screen->cursor->cleanup) rfbFreeCursor(screen->cursor); +#ifdef LIBVNCSERVER_HAVE_LIBZ #ifdef LIBVNCSERVER_HAVE_LIBJPEG rfbTightCleanup(screen); +#endif #endif free(screen); } diff --git a/libvncserver/private.h b/libvncserver/private.h index 594512e..8865e81 100644 --- a/libvncserver/private.h +++ b/libvncserver/private.h @@ -13,7 +13,11 @@ rfbClientPtr rfbClientIteratorHead(rfbClientIteratorPtr i); /* from tight.c */ +#ifdef LIBVNCSERVER_HAVE_LIBZ +#ifdef LIBVNCSERVER_HAVE_LIBJPEG extern void rfbTightCleanup(rfbScreenInfoPtr screen); +#endif +#endif /* from zrle.c */ diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 474351c..75516fe 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -318,6 +318,7 @@ rfbNewTCPOrUDPClient(rfbScreenInfoPtr rfbScreen, rfbScreen->clientHead = cl; UNLOCK(rfbClientListMutex); +#ifdef LIBVNCSERVER_HAVE_LIBZ #ifdef LIBVNCSERVER_HAVE_LIBJPEG cl->tightCompressLevel = TIGHT_DEFAULT_COMPRESSION; cl->tightQualityLevel = -1; @@ -326,6 +327,7 @@ rfbNewTCPOrUDPClient(rfbScreenInfoPtr rfbScreen, for (i = 0; i < 4; i++) cl->zsActive[i] = FALSE; } +#endif #endif cl->enableCursorShapeUpdates = FALSE; @@ -562,7 +564,7 @@ rfbProcessClientProtocolVersion(rfbClientPtr cl) return; } - // Chk for the minor version use either of the two standard version of RFB + /* Chk for the minor version use either of the two standard version of RFB */ cl->protocolMinorVersion = minor_; if (minor_ > rfbProtocolMinorVersion) { cl->protocolMinorVersion = rfbProtocolMinorVersion; @@ -949,17 +951,16 @@ rfbProcessClientNormalMessage(rfbClientPtr cl) } encs++; } - rfbReleaseExtensionIterator(); - if(e) e = e->next; } + rfbReleaseExtensionIterator(); if(!handled) - rfbLog("rfbProcessClientNormalMessage: ignoring" - " unknown encoding type %d\n", - (int)enc); + rfbLog("rfbProcessClientNormalMessage: " + "ignoring unknown encoding type %d\n", + (int)enc); } } } @@ -1348,10 +1349,13 @@ rfbSendFramebufferUpdate(rfbClientPtr cl, fu->type = rfbFramebufferUpdate; if (nUpdateRegionRects != 0xFFFF) { if(cl->screen->maxRectsPerUpdate>0 +#ifdef LIBVNCSERVER_HAVE_LIBZ #ifdef LIBVNCSERVER_HAVE_LIBJPEG /* Tight encoding counts the rectangles differently */ && cl->preferredEncoding != rfbEncodingTight + /* XXX Should rfbEncodingCoRRE be in here? */ && cl->preferredEncoding != rfbEncodingCoRRE +#endif #endif && nUpdateRegionRects>cl->screen->maxRectsPerUpdate) { sraRegion* newUpdateRegion = sraRgnBBox(updateRegion); diff --git a/libvncserver/tightvnc-filetransfer/filelistinfo.h b/libvncserver/tightvnc-filetransfer/filelistinfo.h index 543edbe..a53964c 100644 --- a/libvncserver/tightvnc-filetransfer/filelistinfo.h +++ b/libvncserver/tightvnc-filetransfer/filelistinfo.h @@ -28,6 +28,10 @@ #include +#if !defined(NAME_MAX) +#define NAME_MAX 255 +#endif + #define SUCCESS 1 #define FAILURE 0 diff --git a/libvncserver/tightvnc-filetransfer/filetransfermsg.c b/libvncserver/tightvnc-filetransfer/filetransfermsg.c index e7f6476..a51181f 100644 --- a/libvncserver/tightvnc-filetransfer/filetransfermsg.c +++ b/libvncserver/tightvnc-filetransfer/filetransfermsg.c @@ -292,7 +292,7 @@ GetFileDownloadLengthErrResponseMsg() FileTransferMsg GetFileDownloadResponseMsgInBlocks(rfbClientPtr cl, rfbTightClientPtr rtcp) { - //const unsigned int sz_rfbBlockSize = SZ_RFBBLOCKSIZE; + /* const unsigned int sz_rfbBlockSize = SZ_RFBBLOCKSIZE; */ int numOfBytesRead = 0; char pBuf[SZ_RFBBLOCKSIZE]; char* path = rtcp->rcft.rcfd.fName; diff --git a/libvncserver/tightvnc-filetransfer/handlefiletransferrequest.c b/libvncserver/tightvnc-filetransfer/handlefiletransferrequest.c index d9165ef..9def149 100644 --- a/libvncserver/tightvnc-filetransfer/handlefiletransferrequest.c +++ b/libvncserver/tightvnc-filetransfer/handlefiletransferrequest.c @@ -984,5 +984,3 @@ HandleFileCreateDirRequest(rfbClientPtr cl, rfbTightClientPtr rtcp) CreateDirectory(dirName); } - - diff --git a/libvncserver/tightvnc-filetransfer/rfbtightserver.c b/libvncserver/tightvnc-filetransfer/rfbtightserver.c index 9d89de1..933025f 100644 --- a/libvncserver/tightvnc-filetransfer/rfbtightserver.c +++ b/libvncserver/tightvnc-filetransfer/rfbtightserver.c @@ -62,7 +62,7 @@ rfbVncAuthSendChallenge(cl) rfbClientPtr cl; { - // 4 byte header is alreay sent. Which is rfbSecTypeVncAuth (same as rfbVncAuth). Just send the challenge. + /* 4 byte header is alreay sent. Which is rfbSecTypeVncAuth (same as rfbVncAuth). Just send the challenge. */ rfbRandomBytes(cl->authChallenge); if (rfbWriteExact(cl, (char *)cl->authChallenge, CHALLENGESIZE) < 0) { rfbLogPerror("rfbAuthNewClient: write"); @@ -165,7 +165,7 @@ rfbSendAuthCaps(cl) return; if (cl->screen->authPasswdData && !cl->reverseConnection) { - // chk if this condition is valid or not. + /* chk if this condition is valid or not. */ SetCapInfo(&caplist[count], rfbAuthVNC, rfbStandardVendor); rtcp->authCaps[count++] = rfbAuthVNC; } @@ -294,8 +294,10 @@ rfbSendInteractionCaps(cl) SetCapInfo(&enc_list[i++], rfbEncodingRRE, rfbStandardVendor); SetCapInfo(&enc_list[i++], rfbEncodingCoRRE, rfbStandardVendor); SetCapInfo(&enc_list[i++], rfbEncodingHextile, rfbStandardVendor); +#ifdef LIBVNCSERVER_HAVE_LIBZ SetCapInfo(&enc_list[i++], rfbEncodingZlib, rfbTridiaVncVendor); SetCapInfo(&enc_list[i++], rfbEncodingTight, rfbTightVncVendor); +#endif SetCapInfo(&enc_list[i++], rfbEncodingCompressLevel0, rfbTightVncVendor); SetCapInfo(&enc_list[i++], rfbEncodingQualityLevel0, rfbTightVncVendor); SetCapInfo(&enc_list[i++], rfbEncodingXCursor, rfbTightVncVendor); @@ -404,7 +406,7 @@ const rfbClientToServerMsg* msg; /* - // We shouldn't close the connection here for unhandled msg, it should be left to libvncserver. + We shouldn't close the connection here for unhandled msg, it should be left to libvncserver. rfbLog(" ... closing connection\n"); rfbCloseClient(cl); @@ -466,7 +468,7 @@ rfbHandleSecTypeTight(rfbClientPtr cl) { rfbTightClientPtr rtcp = (rfbTightClientPtr) malloc(sizeof(rfbTightClientRec)); if(rtcp == NULL) { - // Error condition close socket + /* Error condition close socket */ rfbLog("Memory error has occured while handling Tight security type... closing connection.\n"); rfbCloseClient(cl); return; -- cgit v1.2.3