I missed that part of the discussion on the tracker. What is the purpose of having this in the viewer?
On Feb 16, 2012, at 6:44 AM, bph...@users.sourceforge.net wrote: > Revision: 4857 > http://tigervnc.svn.sourceforge.net/tigervnc/?rev=4857&view=rev > Author: bphinz > Date: 2012-02-16 12:44:51 +0000 (Thu, 16 Feb 2012) > Log Message: > ----------- > adds keepAlive feature requested in #3482254 to java viewer > > Modified Paths: > -------------- > trunk/java/com/tigervnc/vncviewer/CConn.java > trunk/java/com/tigervnc/vncviewer/VncViewer.java > > Modified: trunk/java/com/tigervnc/vncviewer/CConn.java > =================================================================== > --- trunk/java/com/tigervnc/vncviewer/CConn.java 2012-02-16 12:31:38 UTC > (rev 4856) > +++ trunk/java/com/tigervnc/vncviewer/CConn.java 2012-02-16 12:44:51 UTC > (rev 4857) > @@ -49,7 +49,8 @@ > import java.net.InetSocketAddress; > import java.net.URL; > import java.net.SocketException; > -import java.util.*; > +import java.util.ArrayList; > +import java.util.Iterator; > > import com.tigervnc.rdr.*; > import com.tigervnc.rfb.*; > @@ -227,6 +228,18 @@ > setServerName(serverHost); > setStreams(sock.inStream(), sock.outStream()); > initialiseProtocol(); > + int delay = viewer.keepAliveTimeout.getValue(); > + if (delay > 0) { > + ActionListener keepAliveListener = new ActionListener() { > + public void actionPerformed(ActionEvent evt) { > + synchronized (writer()) { > + writer().writeFramebufferUpdateRequest(new Rect(0,0,0,0), true); > + } > + } > + }; > + keepAliveTimer = new Timer(1000*delay, keepAliveListener); > + keepAliveTimer.start(); > + } > } > > public void refreshFramebuffer() > @@ -249,6 +262,8 @@ > // deleteWindow() is called when the user closes the desktop or menu > windows. > > void deleteWindow() { > + if (keepAliveTimer != null) > + keepAliveTimer.stop(); > if (viewport != null) > viewport.dispose(); > viewport = null; > @@ -465,6 +480,8 @@ > } > > firstUpdate = false; > + if (keepAliveTimer != null) > + keepAliveTimer.restart(); > } > > // A format change has been scheduled and we are now past the update > @@ -779,6 +796,8 @@ > } > > forceNonincremental = false; > + if (keepAliveTimer != null) > + keepAliveTimer.restart(); > } > > > @@ -1217,6 +1236,8 @@ > synchronized public void writeClientCutText(String str, int len) { > if (state() != RFBSTATE_NORMAL) return; > writer().writeClientCutText(str,len); > + if (keepAliveTimer != null) > + keepAliveTimer.restart(); > } > > synchronized public void writeKeyEvent(int keysym, boolean down) { > @@ -1388,6 +1409,8 @@ > if ((m & Event.META_MASK) != (pressedModifiers & Event.META_MASK)) > writeKeyEvent(Keysyms.Meta_L, (m & Event.META_MASK) != 0); > pressedModifiers = m; > + if (keepAliveTimer != null) > + keepAliveTimer.restart(); > } > > > @@ -1421,6 +1444,7 @@ > ImageIcon logo = new > ImageIcon(cl.getResource("com/tigervnc/vncviewer/tigervnc.png")); > public static UserPasswdGetter upg; > public UserMsgBox msg; > + Timer keepAliveTimer; > > // shuttingDown is set by the GUI thread and only ever tested by the RFB > // thread after the window has been destroyed. > > Modified: trunk/java/com/tigervnc/vncviewer/VncViewer.java > =================================================================== > --- trunk/java/com/tigervnc/vncviewer/VncViewer.java 2012-02-16 12:31:38 > UTC (rev 4856) > +++ trunk/java/com/tigervnc/vncviewer/VncViewer.java 2012-02-16 12:44:51 > UTC (rev 4857) > @@ -331,6 +331,14 @@ > "Use specified compression level "+ > "0 = Low, 6 = High", > 1); > + IntParameter keepAliveTimeout > + = new IntParameter("KeepAliveTimeout", > + "Send dummy framebuffer update requests if no "+ > + "network activity has occurred for more than "+ > + "the specified number of seconds. This is to "+ > + "prevent VPNs or other applications from "+ > + "disconnecting due to inactivity. A value of "+ > + "0 disables this feature.", 0); > BoolParameter noJpeg > = new BoolParameter("NoJPEG", > "Disable lossy JPEG compression in Tight > encoding.", false); > > This was sent by the SourceForge.net collaborative development platform, the > world's largest Open Source development site. > > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > Tigervnc-commits mailing list > tigervnc-comm...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tigervnc-commits ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Tigervnc-devel mailing list Tigervnc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tigervnc-devel