2017-05-19 Daniel P. Berrange Bump to 0.7.1 for new release 2017-04-12 Daniel P. Berrange Fix incompatibility with libvncserver websockets handling The previous commit: commit 7f4f2fe8da72ed9fef5dd4319e19feb2b4f3d62e Author: Daniel P. Berrange Date: Thu Jan 26 09:31:40 2017 +0000 Add workaround to avoid hangs when connecting to SPICE changed the code so that it would send the bytes "RFB " to the server before we received its own greeting. This works fine for VNC servers which follow the RFB protocol spec exclusively. The libvncserver code though tries to implement websockets tunnelling support on the same port as the normal RFB service. The way it does this is by waiting 100ms after the client connects to see if the client sends any data. If the client sends data, then it tries to interpret this as an HTTP GET request to initiate the websockets connection. This breaks when it sees our "RFB " bytes being sent. Ideally the libvncserver would have just run a normal RFB connection in this case, but that's not what happens, and given the libvncserver code is in the wild we need a workaround. So instead of immediately sending the 'RFB ' bytes to the VNC server, we introduce a 2 second wait. ie, we'll wait for the normal VNC server greeting and if it doesn't arrive after 2 seconds, we'll send our 'RFB ' bytes proactively, and continue waiting. If we are on a real VNC server, we'll get our connection initialized eventually. If connecting to a SPICE server by mistake, we'll get a clean disconnect, and we'll avoid upsetting libvncserver, because its 100ms wait for HTTP GET will have long since finished. Report a proper error message if hitting connection timeout Fix crash when no error is set after connection failure Fix crash when opening connection from a GSocketAddress Avoid sign extension warnings from coverity src/vncconnection.c:3082: sign_extension: Suspicious implicit sign extension: "height" with type "unsigned short" (16 bits, unsigned) is promoted in "rowlen * height" to type "int" (32 bits, signed), then sign-extended to type "unsigned long" (64 bits, unsigned). If "rowlen * height" is greater than 0x7FFFFFFF, the upper bits of the result will all be 1. The 'rowlen' variable is initialization from the unsigned width variable, so should have used uint instead of int. Fix inverted args when creating framebuffer for test suite The local & remote format args were inverted in the test suite. This is currently harmless since we are not trying to validate the rendered framebuffer content. Restore correct size of reserved data A previous commit commit 7a9271620c894931cc22d6587d58e46c5996dac3 Author: Lei Li Date: Mon May 20 11:45:59 2013 +0100 Add support for LED state extension to gvnc removed 4 elements from the reserved data field, when adding one pointer. This is because it mistakenly thought the reserved elements were 1 byte in length, when they are in fact one pointer in size. The original change was technically an ABI incompatible change, as is this fix. In practice, however, GObject classes are never instantiated statically at compile time. Instead a call to g_type_register_static is made at runtime. So this change in the class size won't have a negative effect unless someone has subclassed the VncConnectionClass type. Even if subclassing, this should be harmless as we've merely increased the memory allocation by 3 words. 2017-03-05 Fabio Tomat Add Friulian translation 2017-02-22 Rafael Fontenelle Fix path for keymap-gen when doing VPATH builds 2017-02-16 Daniel P. Berrange Fix some deps in spec file & new URL & missing group tags 2017-02-15 Daniel P. Berrange Switch to use keycodemapdb submodule 2017-02-14 Guido Günther Link against GIO_LIBS explicitly to avoid libtool: link: gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -g -O2 -fdebug-prefix-map=/build/gtk-vnc-0.6.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o .libs/vncconnectiontest vncconnectiontest-vncconnectiontest.o ./.libs/libgvnc-1.0.so -lz -pthread /usr/bin/ld: vncconnectiontest-vncconnectiontest.o: undefined reference to symbol 'g_io_stream_get_output_stream' //usr/lib/x86_64-linux-gnu/libgio-2.0.so.0: error adding symbols: DSO missing from command line Also make the use of *_CFLAGS and *_LIBS match.