Actually close the connection on disconnect, fixing #3.
authorEric Price <ecprice@mit.edu>
Mon, 12 Nov 2007 05:09:45 +0000 (00:09 -0500)
committerEric Price <ecprice@mit.edu>
Mon, 12 Nov 2007 05:09:45 +0000 (00:09 -0500)
svn path=/trunk/vnc/vnc_javasrc/; revision=233

RfbProto.java
SocketWrapper.java

index 1ca25c0..c0f500a 100644 (file)
@@ -208,11 +208,13 @@ class RfbProto {
     port = p;
 
     if (viewer.socketFactory == null) {
+       System.out.println("Null socketFactory");
       sock = new Socket(host, port);
     } else {
       try {
        Class factoryClass = Class.forName(viewer.socketFactory);
        SocketFactory factory = (SocketFactory)factoryClass.newInstance();
+       System.out.println("Using socketFactory " + factory);
        if (viewer.inAnApplet)
          sock = factory.createSocket(host, port, viewer);
        else
@@ -236,7 +238,7 @@ class RfbProto {
     try {
       sock.close();
       closed = true;
-      System.out.println("RFB socket closed");
+      System.out.println("RFB socket closed " + sock);
       if (rec != null) {
        rec.close();
        rec = null;
index 2920732..e488b28 100644 (file)
@@ -37,6 +37,7 @@ public abstract class SocketWrapper extends Socket {
     protected SocketWrapper(Socket delegate) throws SocketException {
         super(new WrappingSocketImpl(delegate));
         this.delegate = delegate;
+       System.out.println("Creating SocketWrapper $Rev$");
     }
 
     public SocketChannel getChannel() {
@@ -136,6 +137,7 @@ public abstract class SocketWrapper extends Socket {
         }
 
         protected void close() throws IOException {
+           System.out.println("Calling delegate.close");
             delegate.close();
         }
 
@@ -240,6 +242,11 @@ public abstract class SocketWrapper extends Socket {
         }
     }
 
+    public void close() throws IOException {
+       System.out.println("Calling SocketWrapper.delegate.close");
+       delegate.close();
+    }
+
     public boolean equals(Object obj) {
         if (!(obj instanceof SocketWrapper)) return false;
         SocketWrapper that = (SocketWrapper)obj;
@@ -249,4 +256,7 @@ public abstract class SocketWrapper extends Socket {
     public int hashCode() {
         return delegate.hashCode() ^ 0x01010101;
     }
+    public String toString() {
+       return "<SocketWrapper " + super.toString() + "(delegating to " + delegate.toString() +  ")" + ">";
+    }
 }
\ No newline at end of file