]> source.dussan.org Git - tigervnc.git/commitdiff
Make sure sockets are shutdown in java viewer listen mode
authorBrian P. Hinz <bphinz@users.sf.net>
Fri, 14 Nov 2014 02:21:25 +0000 (21:21 -0500)
committerBrian P. Hinz <bphinz@users.sf.net>
Fri, 14 Nov 2014 02:21:25 +0000 (21:21 -0500)
The finalizer method may not be strictly necessary but for the sake
of consistency shutdown the socket listener the same way we do for
a regular TcpSocket.

java/com/tigervnc/network/SocketListener.java
java/com/tigervnc/network/TcpListener.java

index 6401c2cce85f0b199ddbf8769e454c9132f1c548..a1f5ea1b59ba62d4b08272aa1b2eb3773017e625 100644 (file)
@@ -29,7 +29,7 @@ abstract public class SocketListener {
   public SocketListener() {}
 
   // shutdown() stops the socket from accepting further connections
-  abstract public void shutdown();
+  abstract public void shutdown() throws Exception;
 
   // accept() returns a new Socket object if there is a connection
   // attempt in progress AND if the connection passes the filter
index b66558b9a4f1960a825b2decabeec557f74ee622..6170a6021cbf83e9e76423c656fb1cef549614dc 100644 (file)
@@ -84,12 +84,21 @@ public class TcpListener extends SocketListener  {
     this(listenaddr, port, false, null, true);
   }
 
-//  TcpListener::~TcpListener() {
-//    if (closeFd) closesocket(fd);
-//  }
+  protected void finalize() throws Exception {
+    if (closeFd)
+      try {
+        ((SocketDescriptor)getFd()).close();
+      } catch (IOException e) {
+        throw new Exception(e.getMessage());
+      }
+  }
 
-  public void shutdown() {
-    //shutdown(getFd(), 2);
+  public void shutdown() throws Exception {
+    try {
+      ((SocketDescriptor)getFd()).shutdown();
+    } catch (IOException e) {
+      throw new Exception(e.getMessage());
+    }
   }
 
   public TcpSocket accept() {