You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bl...@apache.org on 2004/12/08 21:16:46 UTC

svn commit: r111303 - /incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java /incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java

Author: bloritsch
Date: Wed Dec  8 12:16:44 2004
New Revision: 111303

URL: http://svn.apache.org/viewcvs?view=rev&rev=111303
Log:
Finish the Firewall.  Apparently my tests were failing due to lingering sockets and timing issues.  The code was good.
Modified:
   incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java
   incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java

Modified: incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java?view=diff&rev=111303&p1=incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java&r1=111302&p2=incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java&r2=111303
==============================================================================
--- incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java	(original)
+++ incubator/directory/seda/branches/berin_api_proposal/src/java/org/apache/directory/seda/input/Firewall.java	Wed Dec  8 12:16:44 2004
@@ -58,6 +58,8 @@
                 if ( m_deny.contains(client.socket().getLocalSocketAddress()) )
                 {
                     client.configureBlocking( true );
+                    client.socket().setSoLinger( true, 0 );
+                    client.socket().setTcpNoDelay( true );
                     client.socket().shutdownInput();
                     client.socket().shutdownOutput();
                     client.close();
@@ -84,5 +86,10 @@
         {
             m_deny.add( localSocketAddress );
         }
+    }
+
+    public void allow( final SocketAddress localSocketAddress )
+    {
+        m_deny.remove( localSocketAddress );
     }
 }

Modified: incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java
Url: http://svn.apache.org/viewcvs/incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java?view=diff&rev=111303&p1=incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java&r1=111302&p2=incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java&r2=111303
==============================================================================
--- incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java	(original)
+++ incubator/directory/seda/branches/berin_api_proposal/src/test/org/apache/directory/seda/input/test/TestFirewall.java	Wed Dec  8 12:16:44 2004
@@ -78,11 +78,12 @@
         assertEquals( "test", firewall.getDefaultPipe().dequeue() );
     }
 
-    public void testAccept()
+    public void testAccept() throws IOException
     {
         final Firewall firewall = new Firewall();
         firewall.handleEvent( m_key );
 
+        m_client.getOutputStream().write( "test".getBytes() );
         assertTrue(m_client.isConnected());
         assertFalse(m_client.isClosed());
     }
@@ -94,11 +95,6 @@
 
         firewall.handleEvent( m_key );
 
-        System.out.println(m_client.isConnected());
-        System.out.println(m_client.isClosed());
-        System.out.println(m_client.isInputShutdown());
-        System.out.println(m_client.isOutputShutdown());
-
         try
         {
             m_client.getOutputStream().write( "test".getBytes() );
@@ -108,5 +104,19 @@
         {
             assertTrue("Threw an exception, but not an IOException: " + ioe, ioe instanceof IOException);
         }
+    }
+
+    public void testAllow() throws IOException
+    {
+        final Firewall firewall = new Firewall();
+        firewall.deny(m_client.getRemoteSocketAddress());
+        // NOTE: the order here is important
+        firewall.allow(m_client.getRemoteSocketAddress());
+
+        firewall.handleEvent( m_key );
+
+        m_client.getOutputStream().write( "test".getBytes() );
+        assertTrue(m_client.isConnected());
+        assertFalse(m_client.isClosed());
     }
 }