1. 31 Jan, 2014 1 commit
  2. 23 Jan, 2014 1 commit
  3. 16 Sep, 2013 1 commit
    • Daniel P. Berrange's avatar
      Fix reading of TLS data to account for cached data · 3b38cf49
      Daniel P. Berrange authored
      When you ask GnuTLS to read 'n' bytes of data it is free to read many
      more than just 'n' bytes, since there is no 1-1 mapping between
      encrypted and unencrypted byte counts.
      
      The Vino I/O handle triggered when POLLIN reads one single RFB message,
      then checks if POLLIN is still set. This is broken if gnutls has
      previously read more than one RFB message worth of data.
      
      A symptom of this brokeness is that when connecting to a Vino server
      with gtk-vnc, the screen will be initially black until the user moves
      the mouse or presses a key.  Even then there will be periodic delays in
      updates if the pending data condition arises again.
      
      Fortunately GnuTLS has a function gnutls_record_check_pending which lets
      apps determine if there is any cached data read off the wire.
      Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703326
      3b38cf49
  4. 20 Apr, 2011 1 commit
    • Jordi Mallach's avatar
      Fix defines to match configure script output · ada79e18
      Jordi Mallach authored
      In 99d0f293, configure was changed to
      prefix all AC_DEFINE macros with VINO_, and features were changed to use
      AC_ARG_WITH.
      
      Some of the guarded features didn't have their defines updated in the
      code, resulting in any build having NetworkManager, GCrypt/GnuTLS,
      libnotify or Telepathy support.
      
      Fixes bug 648322.
      ada79e18
  5. 11 Apr, 2011 1 commit
    • mirabilos's avatar
      Bind both an IPv4 and an IPv6 socket · 37ae3fbf
      mirabilos authored
      Under some configurations on Linux, and an BSD, the dfault behaviour is
      to bind only an IPv6 socket when IPv6 support is enabled. The default
      Linux kernel configuration is to bind both an IPv4 and an IPv6 socket.
      Using two listening sockets fixes the problem, bug 604809.
      37ae3fbf
  6. 27 Feb, 2011 1 commit
    • David King's avatar
      Overhaul configure script · 99d0f293
      David King authored
      Rename configure.in to configure.ac. Rearrange to recommended standard
      layout. Use M4sh where possible. Enable automake warnings, disable
      defines and disable standard includes. Switch all configure arguments
      that enable support for external libraries to use AC_ARG_WITH, and be
      automatically enabled by default. Prefix all defines from AC_DEFINE
      macros with 'VINO_'. Discover glib-genmarshal path from GLib pkg-config
      file. Drop confusing checking of both zlib and libz, and replace with
      just checking for zlib. Drop checking for Perl to decide whether to
      rebuild generated files. Drop configure summary.
      
      Additionally, make the minimum adjustments necessary in other files to
      enable the build to succeed.
      99d0f293
  7. 21 Jun, 2010 1 commit
  8. 02 May, 2009 1 commit
  9. 13 Feb, 2009 1 commit
  10. 12 Dec, 2008 1 commit
    • Jorge Pereira's avatar
      Removed the feature localOnly, added correct support for IPv4 mapped IPv6, · 2ce388dc
      Jorge Pereira authored
      2008-11-25  Jorge Pereira  <jorge@jorgepereira.com.br>
      
      	* capplet/vino-preferences.c:
      	(vino_preferences_dialog_update_for_allowed),
      	(vino_preferences_load_network_interfaces),
      	(vino_preferences_dialog_network_interface_update_combox),
      	(vino_preferences_dialog_network_interface_notify),
      	(vino_preferences_dialog_network_interface_changed),
      	(vino_preferences_dialog_setup_network_interface_combox),
      	(vino_preferences_dialog_init):
      	* capplet/vino-preferences.glade:
      	* configure.in:
      	* server/libvncserver/main.c: (rfbGetScreen):
      	* server/libvncserver/rfb/rfb.h:
      	* server/libvncserver/rfbserver.c: (rfbNewClient):
      	* server/libvncserver/sockets.c: (rfbInitListenSock),
      	(rfbSetAutoPort), (rfbSetPort), (rfbProcessNewConnection),
      	(rfbCheckFds), (ListenOnTCPPort), (NewSocketListenTCP),
      	(rfbSetNetworkInterface):
      	* server/vino-prefs.c: (vino_prefs_network_interface_changed),
      	(vino_prefs_create_server), (vino_prefs_init):
      	* server/vino-server.c: (vino_server_new_connection_pending),
      	(vino_server_init_from_screen), (vino_server_finalize),
      	(vino_server_set_property), (vino_server_get_property),
      	(vino_server_class_init), (vino_server_get_network_interface),
      	(vino_server_set_network_interface):
      	* server/vino-server.h:
      	* server/vino-server.schemas.in:
      	Removed the feature localOnly, added correct support for IPv4 mapped 
      	IPv6, and added a new feature to able to set network interface for 
      	accept connection. Closes #403183,#403192,#488354.
      
      
      svn path=/trunk/; revision=1015
      2ce388dc
  11. 20 Oct, 2006 2 commits
    • Mark McLoughlin's avatar
      And here's where we actually create an IPv6 socket. · 696f017f
      Mark McLoughlin authored
      2006-10-20  Mark McLoughlin  <mark@skynet.ie>
      
      	And here's where we actually create an IPv6 socket.
      
      	* vino/server/libvncserver/sockets.c:
      	(ListenOnTCPPort): if ipv6 support is compiled in,
      	always try and create an AF_INET6 socket and fallback
      	to an AF_INET one if it fails.
      696f017f
    • Mark McLoughlin's avatar
      remove a heap of threading stuff which we don't use. · a5b3c74c
      Mark McLoughlin authored
      2006-10-20  Mark McLoughlin  <mark@skynet.ie>
      
      	* vino/server/libvncserver/main.c,
      	vino/server/libvncserver/sockets.c,
      	vino/server/libvncserver/rfbserver.c,
      	vino/server/libvncserver/rfb/rfb.h: remove
      	a heap of threading stuff which we don't
      	use.
      
      	* vino/server/libvncserver/CHANGES: add note.
      a5b3c74c
  12. 13 Oct, 2006 2 commits
    • Mark McLoughlin's avatar
      Add "use_alternative_port" and "alternative_port" GConf keys, allowing · 3420e26b
      Mark McLoughlin authored
      2006-10-13  Mark McLoughlin  <mark@skynet.ie>
      
      	Add "use_alternative_port" and "alternative_port" GConf
      	keys, allowing people to specify a specific port to listen
      	on.
      
      	Based on patch from John Wendell <wendell_listas@bani.com.br>
      	in bug #333752.
      
      	* vino/server/vino-server.schemas.in: add new keys.
      
      	* vino/server/vino-prefs.c:
      	(vino_prefs_use_alternative_port_changed),
      	(vino_prefs_alternative_port_changed): handle changes to new keys
      	(vino_prefs_create_server): create server with new props
      	(vino_prefs_init): read new keys and set up notify handlers
      
      	* vino/server/vino-server.[ch]:
      	(vino_server_init_from_screen): explictly set port and turn
      	off autoPort if use_alternative_port is set.
      	(vino_server_set_property), (vino_server_get_property),
      	(vino_server_class_init): add new properties.
      	(vino_server_get_use_alternative_port),
      	(vino_server_set_use_alternative_port),
      	(vino_server_get_alternative_port),
      	(vino_server_set_alternative_port): add accessors - re-init
      	the listening port if things change after the server is running.
      
      	* vino/server/libvncserver/sockets.c:
      	(rfbInitSockets): split out some of this into
      	(rfbInitListenSock): this.
      	(rfbSetAutoPort), (rfbSetPort): add these two.
      
      	* vino/server/libvncserver/rfb/rfb.h: add rfbSetAutoPort()
      	and rfbSetPort().
      
      	* vino/server/libvncserver/CHANGES: add note.
      3420e26b
    • Mark McLoughlin's avatar
      Add a "local_only" GConf key, for people who want to exclusively use SSH · e952324e
      Mark McLoughlin authored
      2006-10-12  Mark McLoughlin  <mark@skynet.ie>
      
      	Add a "local_only" GConf key, for people who want to exclusively
      	use SSH tunnels to access the server.
      
      	Based on patch from Shaya Potter <spotter@cs.columbia.edu>
      	in bug #156242
      
      	* server/libvncserver/sockets.c:
      	(rfbInitSockets): pass rfbScreen->localOnly to ListenOnTcpPort()
      	(rfbSetLocalOnly): re-bind the socket if localOnly changes.
      	(ListenOnTcpPort): add localOnly argument and bind with
      	INADDR_LOOPBACK if true.
      
      	* server/libvncserver/rfb/rfb.h: modify ListenOnTcpPort()
      	prototype and add rfbSetLocalOnly()
      
      	* server/libvncserver/main.c: (rfbGetScreen): init localOnly.
      
      	* server/libvncserver/CHANGES: add note.
      
      	* server/vino-server.schemas.in: add local_only GConf key
      
      	* server/vino-prefs.c:
      	(vino_prefs_local_only_changed),
      	(vino_prefs_create_server),
      	(vino_prefs_init): add handling for local_only key
      
      	* server/vino-server.[ch]:
      	(vino_server_init_from_screen): propogate local_only to rfbScreen.
      	(vino_server_set_property), (vino_server_get_property),
      	(vino_server_class_init): add "local-only" property
      	(vino_server_get_local_only),
      	(vino_server_set_local_only): add accessors. Call rfbSetLocalOnly()
      	if it changes.
      e952324e
  13. 12 Jul, 2004 1 commit
    • Mark McLoughlin's avatar
      Support building without GNU TLS. · 4b27f567
      Mark McLoughlin authored
      2004-07-12  Mark McLoughlin  <mark@skynet.ie>
      
              Support building without GNU TLS.
      
              * configure.in: only warn if gnutls or libgcrypt isn't
              found.
      
              * server/libvncserver/auth.c,
                server/libvncserver/main.c,
                server/libvncserver/rfb/rfb.h,
                server/libvncserver/rfb/rfbproto.h,
                server/libvncserver/rfbserver.c,
                server/libvncserver/sockets.c,
                server/libvncserver/vncauth.c,
                server/vino-main.c,
                server/vino-server.c,
                server/vino-util.[ch]: add a bunch of #ifdef HAVE_GNUTLS.
      4b27f567
  14. 06 Feb, 2004 1 commit
    • Mark McLoughlin's avatar
      Change the way we use TLS with the RFB protocol after discussions with the · aa594e34
      Mark McLoughlin authored
      2004-02-06  Mark McLoughlin  <mark@skynet.ie>
      
      	Change the way we use TLS with the RFB protocol after discussions
      	with the RFB maintainers:
      
      	  + Only use a single extra security type (rfbTLS == 18) which has
      	    been registered with the RFB maintainers rather than the original
      	    rfbTlsWithNoAuth(3) and rfbTlsWithVncAuth(4).
      	  + Negotiation the authentication type (rfbNoAuth or rfbVncAuth) once
      	    the TLS handshake has completed. The authentication type negotiation
      	    is exactly the same format as the security type negotiation.
      
      	Server changes:
      
      	* server/vino-server.c: (vino_server_update_security_types):
      	Update for security/authentication types split.
      
      	* server/libvncserver/auth.c:
      	(rfbAuthListAuthTypes): impl. listing the authentication types.
      	(rfbAuthProcessSecurityTypeMessage): don't start authenticating
      	when the TLS handshake has completed. Instead, just list the
      	security types and wait for a response.
      	(rfbAuthProcessTLSHandshake): ditto.
      	(rfbAuthProcessAuthTypeMessage): begin authenticating with whatever
      	authentication type the client returns.
      
      	* server/libvncserver/main.c:
      	(rfbAddAuthType), (rfbClearAuthTypes): API for maintaining the
      	authentication types list.
      
      	* server/libvncserver/rfb/rfb.h: add the RFB_AUTH_TYPE client
      	processing state and add the authTypes list to the server
      	structure.
      
      	* server/libvncserver/rfb/rfbproto.h: update with details of
      	new TLS security type protocol.
      
      	Client changes:
      
      	* client/java/rfb/CConnection.java:
      	(CConnection.addAuthType): function for building up a list
      	of supported authentication types.
      	(CConnection.processSecurityMsg): handle new return values
      	from CSecurity::processMsg().
      	(CConnection.processAuthTypesMsg): impl. negotiating authentication
      	type.
      
      	* client/java/rfb/CSecurity.java: (CSecurity): define return values
      	for processMsg() rather than using silly magic numbers.
      
      	* client/java/rfb/CSecurityNone.java: (CSecurityNone.processMsg): upd.
      
      	* client/java/rfb/CSecurityTls.java:
      	(CSecurityTls.CSecurityTls.processMsg): re-work so as to not chain
      	up to the authentication implementation.
      
      	* client/java/rfb/CSecurityVncAuth.java:
      	(CSecurityVncAuth.processMsg): return proper return codes.
      
      	* client/java/rfb/SecTypes.java: remove the TlsWithNone(3) and
      	TlsWithVncAuth(4) and add the TLS(18) security type which has
      	been registered with the protocol maintainers.
      
      	* client/java/vncviewer/CConn.java: update for security types
      	change.
      
      2004-02-06  Mark McLoughlin  <mark@skynet.ie>
      
      	* client/java/vncviewer/AboutDialog.java:
      	(AboutDialog.AboutDialog): fix bug #133529 - compile failure
      	because the about dialog text wasn't defined.
      aa594e34
  15. 05 Feb, 2004 1 commit