Author: toad
Date: 2007-09-10 21:34:50 +0000 (Mon, 10 Sep 2007)
New Revision: 15121

Modified:
   trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
   trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
Log:
Better fix for same bug

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2007-09-10 19:54:34 UTC (rev 15120)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2007-09-10 21:34:50 UTC (rev 15121)
@@ -97,7 +97,6 @@
                        requests = new 
ClientRequest[requestsByIdentifier.size()];
                        requests = (ClientRequest[]) 
requestsByIdentifier.values().toArray(requests);
                }
-               try { sock.close(); } catch (IOException e) {}
                for(int i=0;i<requests.length;i++)
                        requests[i].onLostConnection();
                if((client != null) && !client.hasPersistentRequests())

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java   
2007-09-10 19:54:34 UTC (rev 15120)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java   
2007-09-10 21:34:50 UTC (rev 15121)
@@ -89,7 +89,8 @@
                                        FCPMessage err = new 
ProtocolErrorMessage(ProtocolErrorMessage.CLIENT_HELLO_MUST_BE_FIRST_MESSAGE, 
true, null, null, false);
                                        handler.outputHandler.queue(err);
                                        handler.close();
-                                       continue;
+                                       is.close();
+                                       return;
                                } else {
                                        FCPMessage err = new 
ProtocolErrorMessage(e.protocolCode, false, e.getMessage(), e.ident, e.global);
                                        handler.outputHandler.queue(err);
@@ -100,7 +101,8 @@
                                FCPMessage err = new 
ProtocolErrorMessage(ProtocolErrorMessage.CLIENT_HELLO_MUST_BE_FIRST_MESSAGE, 
true, null, null, false);
                                handler.outputHandler.queue(err);
                                handler.close();
-                               continue;
+                               is.close();
+                               return;
                        }
                        if(msg instanceof BaseDataCarryingMessage) {
                                // FIXME tidy up - coalesce with above and 
below try { } catch (MIE) {}'s?
@@ -127,7 +129,10 @@
                                continue;
                        }
                        firstMessage = false;
-                       if(handler.isClosed()) return;
+                       if(handler.isClosed()) {
+                               is.close();
+                               return;
+                       }
                }
        }
 }


Reply via email to