Branch: master

f6187cc4 2015-01-10 16:02:54 Timothy Pearson
Port to standard shared libvncserver and delete old buggy libvncserver library sources
Note that this DOES NOT WORK as some TDE-specific changes to libvncserver will be required
The commit is a "clean slate" for the TDE-specific changes to follow
M krfb/CMakeLists.txt
M krfb/ConfigureChecks.cmake
M krfb/krfb/CMakeLists.txt
M krfb/krfb/rfbcontroller.cc
M krfb/krfb/rfbcontroller.h
R krfb/libvncserver/1instance.c
R krfb/libvncserver/CHANGES
R krfb/libvncserver/CMakeLists.txt
R krfb/libvncserver/COPYING
R krfb/libvncserver/Makefile.am
R krfb/libvncserver/README
R krfb/libvncserver/TODO
R krfb/libvncserver/auth.c
R krfb/libvncserver/bdf2c.pl
R krfb/libvncserver/cargs.c
R krfb/libvncserver/corre.c
R krfb/libvncserver/cursor.c
R krfb/libvncserver/cutpaste.c
R krfb/libvncserver/d3des.c
R krfb/libvncserver/d3des.h
R krfb/libvncserver/default8x16.h
R krfb/libvncserver/draw.c
R krfb/libvncserver/example.c
R krfb/libvncserver/font.c
R krfb/libvncserver/fontsel.c
R krfb/libvncserver/hextile.c
R krfb/libvncserver/httpd.c
R krfb/libvncserver/keysym.h
R krfb/libvncserver/mac.c
R krfb/libvncserver/main.cc
R krfb/libvncserver/main.h
R krfb/libvncserver/pnmshow.c
R krfb/libvncserver/pnmshow24.c
R krfb/libvncserver/radon.h
R krfb/libvncserver/rfb.h
R krfb/libvncserver/rfbproto.h
R krfb/libvncserver/rfbserver.c
R krfb/libvncserver/rre.c
R krfb/libvncserver/selbox.c
R krfb/libvncserver/sockets.c
R krfb/libvncserver/sraRegion.c
R krfb/libvncserver/sraRegion.h
R krfb/libvncserver/stats.c
R krfb/libvncserver/storepasswd.c
R krfb/libvncserver/tableinit24.c
R krfb/libvncserver/tableinitcmtemplate.c
R krfb/libvncserver/tableinittctemplate.c
R krfb/libvncserver/tabletrans24template.c
R krfb/libvncserver/tabletranstemplate.c
R krfb/libvncserver/tight.c
R krfb/libvncserver/translate.c
R krfb/libvncserver/vncauth.c
R krfb/libvncserver/vncev.c
R krfb/libvncserver/x11vnc.c
R krfb/libvncserver/zippy.c
R krfb/libvncserver/zlib.c
diff --git a/krfb/CMakeLists.txt b/krfb/CMakeLists.txt
index 962559b..9be3dcc 100644
--- a/krfb/CMakeLists.txt
+++ b/krfb/CMakeLists.txt
@@ -13,7 +13,6 @@
 
 add_subdirectory( srvloc )
 add_subdirectory( kinetd )
-add_subdirectory( libvncserver )
 add_subdirectory( krfb )
 add_subdirectory( kcm_krfb )
 add_subdirectory( krfb_httpd )
diff --git a/krfb/ConfigureChecks.cmake b/krfb/ConfigureChecks.cmake
index 9e24956..b488b03 100644
--- a/krfb/ConfigureChecks.cmake
+++ b/krfb/ConfigureChecks.cmake
@@ -1,5 +1,8 @@
 #################################################
 #
+#  (C) 2015 Timothy Pearson
+#  kb9vqf (AT) pearsoncomputing (DOT) net
+#
 #  (C) 2010-2011 Serghei Amelian
 #  serghei (DOT) amelian (AT) gmail.com
 #
@@ -13,3 +16,8 @@
 if( NOT XTST_FOUND )
   tde_message_fatal( "xtst is required, but was not found on your system" )
 endif( )
+
+pkg_search_module( LIBVNCSERVER libvncserver )
+if( NOT LIBVNCSERVER_FOUND )
+  tde_message_fatal( "libvncserver is required, but was not found on your system" )
+endif( )
diff --git a/krfb/krfb/CMakeLists.txt b/krfb/krfb/CMakeLists.txt
index 799444d..4251ebd 100644
--- a/krfb/krfb/CMakeLists.txt
+++ b/krfb/krfb/CMakeLists.txt
@@ -39,7 +39,7 @@
     rfbcontroller.cc xupdatescanner.cc main.cpp connectionwidget.ui
     krfbifaceimpl.cc krfbiface.skel trayicon.cpp connectiondialog.cc
   LINK
-    krfbconfig-static vncserver-static srvloc-static tdeui-shared tdeio-shared jpeg Xext pthread ${XTST_LIBRARIES}
+    krfbconfig-static srvloc-static tdeui-shared tdeio-shared jpeg Xext pthread ${XTST_LIBRARIES} ${LIBVNCSERVER_LIBRARIES}
   DESTINATION ${BIN_INSTALL_DIR}
 )
 
diff --git a/krfb/krfb/rfbcontroller.cc b/krfb/krfb/rfbcontroller.cc
index 0db5751..c67134b 100644
--- a/krfb/krfb/rfbcontroller.cc
+++ b/krfb/krfb/rfbcontroller.cc
@@ -132,7 +132,7 @@
 	return self->handleNewClient(cl);
 }
 
-static Bool passwordCheck(rfbClientPtr cl,
+static rfbBool passwordCheck(rfbClientPtr cl,
 			  const char* encryptedPassword,
 			  int len)
 {
@@ -140,7 +140,7 @@
 	return self->handleCheckPassword(cl, encryptedPassword, len);
 }
 
-static void keyboardHook(Bool down, KeySym keySym, rfbClientPtr)
+static void keyboardHook(rfbBool down, rfbKeySym keySym, rfbClientPtr)
 {
 	self->handleKeyEvent(down ? true : false, keySym);
 }
@@ -155,6 +155,7 @@
 	self->handleClientGone();
 }
 
+#ifdef USE_MODIFIED_BUILTIN_LIBVNCSERVER
 static void negotiationFinishedHook(rfbClientPtr cl)
 {
 	self->handleNegotiationFinished(cl);
@@ -164,6 +165,7 @@
 {
 	self->handleClientGone();
 }
+#endif
 
 static void clipboardHook(char* str,int len, rfbClientPtr)
 {
@@ -406,34 +408,34 @@
 
 	server->paddedWidthInBytes = framebufferImage->bytes_per_line;
 
-	server->rfbServerFormat.bitsPerPixel = framebufferImage->bits_per_pixel;
-	server->rfbServerFormat.depth = framebufferImage->depth;
-	server->rfbServerFormat.trueColour = (CARD8) TRUE;
-	server->rfbServerFormat.bigEndian =  (CARD8) ((framebufferImage->bitmap_bit_order == MSBFirst) ? TRUE : FALSE);
+	server->serverFormat.bitsPerPixel = framebufferImage->bits_per_pixel;
+	server->serverFormat.depth = framebufferImage->depth;
+	server->serverFormat.trueColour = (uint8_t) TRUE;
+	server->serverFormat.bigEndian =  (uint8_t) ((framebufferImage->bitmap_bit_order == MSBFirst) ? TRUE : FALSE);
 
-	if ( server->rfbServerFormat.bitsPerPixel == 8 ) {
-		server->rfbServerFormat.redShift = 0;
-		server->rfbServerFormat.greenShift = 3;
-		server->rfbServerFormat.blueShift = 6;
-		server->rfbServerFormat.redMax   = 7;
-		server->rfbServerFormat.greenMax = 7;
-		server->rfbServerFormat.blueMax  = 3;
+	if ( server->serverFormat.bitsPerPixel == 8 ) {
+		server->serverFormat.redShift = 0;
+		server->serverFormat.greenShift = 3;
+		server->serverFormat.blueShift = 6;
+		server->serverFormat.redMax   = 7;
+		server->serverFormat.greenMax = 7;
+		server->serverFormat.blueMax  = 3;
 	} else {
-		server->rfbServerFormat.redShift = 0;
+		server->serverFormat.redShift = 0;
 		if ( framebufferImage->red_mask )
-			while ( ! ( framebufferImage->red_mask & (1 << server->rfbServerFormat.redShift) ) )
-				server->rfbServerFormat.redShift++;
-		server->rfbServerFormat.greenShift = 0;
+			while ( ! ( framebufferImage->red_mask & (1 << server->serverFormat.redShift) ) )
+				server->serverFormat.redShift++;
+		server->serverFormat.greenShift = 0;
 		if ( framebufferImage->green_mask )
-			while ( ! ( framebufferImage->green_mask & (1 << server->rfbServerFormat.greenShift) ) )
-				server->rfbServerFormat.greenShift++;
-		server->rfbServerFormat.blueShift = 0;
+			while ( ! ( framebufferImage->green_mask & (1 << server->serverFormat.greenShift) ) )
+				server->serverFormat.greenShift++;
+		server->serverFormat.blueShift = 0;
 		if ( framebufferImage->blue_mask )
-			while ( ! ( framebufferImage->blue_mask & (1 << server->rfbServerFormat.blueShift) ) )
-				server->rfbServerFormat.blueShift++;
-		server->rfbServerFormat.redMax   = framebufferImage->red_mask   >> server->rfbServerFormat.redShift;
-		server->rfbServerFormat.greenMax = framebufferImage->green_mask >> server->rfbServerFormat.greenShift;
-		server->rfbServerFormat.blueMax  = framebufferImage->blue_mask  >> server->rfbServerFormat.blueShift;
+			while ( ! ( framebufferImage->blue_mask & (1 << server->serverFormat.blueShift) ) )
+				server->serverFormat.blueShift++;
+		server->serverFormat.redMax   = framebufferImage->red_mask   >> server->serverFormat.redShift;
+		server->serverFormat.greenMax = framebufferImage->green_mask >> server->serverFormat.greenShift;
+		server->serverFormat.blueMax  = framebufferImage->blue_mask  >> server->serverFormat.blueShift;
 	}
 
 	server->frameBuffer = fb;
@@ -443,7 +445,9 @@
 	server->kbdAddEvent = keyboardHook;
 	server->ptrAddEvent = pointerHook;
 	server->newClientHook = newClientHook;
+#ifdef USE_MODIFIED_BUILTIN_LIBVNCSERVER
 	server->inetdDisconnectHook = inetdDisconnectHook;
+#endif // USE_MODIFIED_BUILTIN_LIBVNCSERVER
 	server->passwordCheck = passwordCheck;
 	server->setXCutText = clipboardHook;
 
@@ -458,7 +462,7 @@
 	scanner = new XUpdateScanner(tqt_xdisplay(),
 				     TQApplication::desktop()->winId(),
 				     (unsigned char*)fb, w, h,
-				     server->rfbServerFormat.bitsPerPixel,
+				     server->serverFormat.bitsPerPixel,
 				     server->paddedWidthInBytes,
 				     !configuration->disableXShm());
 
@@ -498,9 +502,9 @@
 	initIdleTimer.stop();
 	idleTimer.start(IDLE_PAUSE);
 
-	server->rfbClientHead->clientGoneHook = clientGoneHook;
+	server->clientHead->clientGoneHook = clientGoneHook;
 	state = RFB_CONNECTED;
-	if (!server->rfbAuthPasswdData)
+	if (!server->authPasswdData)
 	        emit sessionEstablished(remoteIp);
 }
 
@@ -514,7 +518,7 @@
 		return;
 
 	connectionAccepted(aRemoteControl);
-	rfbStartOnHoldClient(server->rfbClientHead);
+	rfbStartOnHoldClient(server->clientHead);
 }
 
 void RFBController::refuseConnection()
@@ -525,7 +529,7 @@
 
 	if (state != RFB_CONNECTING)
 		return;
-	rfbRefuseOnHoldClient(server->rfbClientHead);
+	rfbRefuseOnHoldClient(server->clientHead);
 	state = RFB_WAITING;
 }
 
@@ -590,7 +594,7 @@
 		if (!checkAsyncEvents()) {
 			asyncMutex.lock();
 			if (!closePending)
-				rfbCloseClient(server->rfbClientHead);
+				rfbCloseClient(server->clientHead);
 			asyncMutex.unlock();
 		}
 	}
@@ -611,8 +615,6 @@
 	if (checkAsyncEvents() || forcedClose)
 		return;
 
-	rfbUndrawCursor(server);
-
 	TQPtrList<Hint> v;
 	v.setAutoDelete(true);
 	TQPoint p = TQCursor::pos();
@@ -628,7 +630,7 @@
 
 	asyncMutex.lock();
 	if (!closePending)
-		defaultPtrAddEvent(0, p.x(),p.y(), server->rfbClientHead);
+		rfbDefaultPtrAddEvent(0, p.x(),p.y(), server->clientHead);
 	asyncMutex.unlock();
 
 	checkAsyncEvents(); // check 2nd time (see 3rd line)
@@ -664,7 +666,7 @@
 		strncpy(passwd, p.latin1(),
 			(MAXPWLEN <= p.length()) ? MAXPWLEN : p.length());
 
-	vncEncryptBytes(challenge, passwd);
+	rfbEncryptBytes(challenge, passwd);
 	return memcmp(challenge, response, len) == 0;
 }
 
@@ -717,7 +719,9 @@
 enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
 {
 	int socket = cl->sock;
+#ifdef USE_MODIFIED_BUILTIN_LIBVNCSERVER
 	cl->negotiationFinishedHook = negotiationFinishedHook;
+#endif // USE_MODIFIED_BUILTIN_LIBVNCSERVER
 
 	TQString host, port;
 	TDESocketAddress *ksa = KExtendedSocket::peerAddress(socket);
@@ -773,12 +777,14 @@
 	asyncMutex.unlock();
 }
 
+#ifdef USE_MODIFIED_BUILTIN_LIBVNCSERVER
 void RFBController::handleNegotiationFinished(rfbClientPtr cl)
 {
 	asyncMutex.lock();
 	disableBackgroundPending = cl->disableBackground;
 	asyncMutex.unlock();
 }
+#endif // USE_MODIFIED_BUILTIN_LIBVNCSERVER
 ** Diff limit reached (max: 250 lines) **
710a9c7c 2015-01-10 20:42:02 Timothy Pearson
Use latest libvncserver module for krfb
This relates to Bug 1582 among others
A libtdevnc
M .gitmodules
M CMakeLists.txt
M krdc/vnc/rfbproto.h
M krfb/CMakeLists.txt
M krfb/krfb/CMakeLists.txt
M krfb/krfb/rfbcontroller.h
 ** Diff limit reached (max: 250 lines) **