You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/05/09 17:00:26 UTC
svn commit: r169321 - in /directory/network/trunk/src:
java/org/apache/mina/io/ java/org/apache/mina/io/filter/
java/org/apache/mina/protocol/ test/org/apache/mina/examples/echoserver/
Author: trustin
Date: Mon May 9 08:00:25 2005
New Revision: 169321
URL: http://svn.apache.org/viewcvs?rev=169321&view=rev
Log:
Fixed: DIRMINA-31
Modified:
directory/network/trunk/src/java/org/apache/mina/io/AbstractIoFilterChain.java
directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java
directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java
directory/network/trunk/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java
directory/network/trunk/src/test/org/apache/mina/examples/echoserver/ConnectorTest.java
Modified: directory/network/trunk/src/java/org/apache/mina/io/AbstractIoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/AbstractIoFilterChain.java?rev=169321&r1=169320&r2=169321&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/AbstractIoFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/AbstractIoFilterChain.java Mon May 9 08:00:25 2005
@@ -426,7 +426,7 @@
try
{
- entry.filter.filterWrite( entry.prevFilter, session, buf, marker );
+ entry.filter.filterWrite( entry.nextFilter, session, buf, marker );
}
catch( Throwable e )
{
@@ -473,8 +473,6 @@
private final NextFilter nextFilter;
- private final NextFilter prevFilter;
-
private Entry( Entry prevEntry, Entry nextEntry,
String name, IoFilter filter )
{
@@ -529,46 +527,6 @@
{
Entry nextEntry = Entry.this.nextEntry;
callNextDataWritten( nextEntry, session, marker );
- }
-
- public void filterWrite( IoSession session, ByteBuffer buf, Object marker )
- {
- throw new IllegalStateException();
- }
- };
-
- this.prevFilter = new NextFilter()
- {
-
- public void sessionOpened( IoSession session )
- {
- throw new IllegalStateException();
- }
-
- public void sessionClosed( IoSession session )
- {
- throw new IllegalStateException();
- }
-
- public void sessionIdle( IoSession session, IdleStatus status )
- {
- throw new IllegalStateException();
- }
-
- public void exceptionCaught( IoSession session,
- Throwable cause )
- {
- throw new IllegalStateException();
- }
-
- public void dataRead( IoSession session, ByteBuffer buf )
- {
- throw new IllegalStateException();
- }
-
- public void dataWritten( IoSession session, Object marker )
- {
- throw new IllegalStateException();
}
public void filterWrite( IoSession session, ByteBuffer buf, Object marker )
Modified: directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java?rev=169321&r1=169320&r2=169321&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/filter/SSLFilter.java Mon May 9 08:00:25 2005
@@ -47,11 +47,12 @@
public class SSLFilter extends IoFilterAdapter
{
private static final Logger log = Logger.getLogger( SSLFilter.class.getName() );
+
/**
* A marker which is passed with {@link IoHandler#dataWritten(IoSession, Object)}
* when <tt>SSLFilter</tt> writes data other then user actually requested.
*/
- public static final Object SSL_MARKER = new Object()
+ private static final Object SSL_MARKER = new Object()
{
public String toString()
{
@@ -187,7 +188,7 @@
public void sessionOpened( NextFilter nextFilter, IoSession session ) throws SSLException
{
// Create an SSL handler
- createSSLSessionHandler( session );
+ createSSLSessionHandler( nextFilter, session );
nextFilter.sessionOpened( session );
}
@@ -209,7 +210,7 @@
sslHandler.shutdown();
// there might be data to write out here?
- writeNetBuffer( session, sslHandler );
+ writeNetBuffer( nextFilter, session, sslHandler );
}
catch( SSLException ssle )
{
@@ -243,7 +244,7 @@
try
{
// forward read encrypted data to SSL handler
- sslHandler.dataRead( buf.buf() );
+ sslHandler.dataRead( nextFilter, buf.buf() );
// Handle data to be forwarded to application or written to net
handleSSLData( nextFilter, session, sslHandler );
@@ -281,13 +282,16 @@
public void dataWritten( NextFilter nextFilter, IoSession session,
Object marker )
{
- nextFilter.dataWritten( session, marker );
+ if( marker != SSL_MARKER )
+ {
+ nextFilter.dataWritten( session, marker );
+ }
}
public void filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker ) throws SSLException
{
- SSLHandler handler = createSSLSessionHandler( session );
+ SSLHandler handler = createSSLSessionHandler( nextFilter, session );
if( log.isLoggable( Level.FINEST ) )
{
log.log( Level.FINEST, session + " Filtered Write: " + handler );
@@ -358,7 +362,7 @@
}
// Write encrypted data to be written (if any)
- writeNetBuffer( session, handler );
+ writeNetBuffer( nextFilter, session, handler );
// handle app. data read (if any)
handleAppDataRead( nextFilter, session, handler );
@@ -383,7 +387,7 @@
}
}
- void writeNetBuffer( IoSession session, SSLHandler sslHandler )
+ void writeNetBuffer( NextFilter nextFilter, IoSession session, SSLHandler sslHandler )
throws SSLException
{
// Check if any net data needed to be writen
@@ -415,14 +419,14 @@
log.log( Level.FINEST, session + " session write: " + writeBuffer );
}
//debug("outNetBuffer (after copy): {0}", sslHandler.getOutNetBuffer());
- session.write( writeBuffer, SSL_MARKER );
+ filterWrite( nextFilter, session, writeBuffer, SSL_MARKER );
// loop while more writes required to complete handshake
while( sslHandler.needToCompleteInitialHandshake() )
{
try
{
- sslHandler.continueHandshake();
+ sslHandler.continueHandshake( nextFilter );
}
catch( SSLException ssle )
{
@@ -440,7 +444,7 @@
}
ByteBuffer writeBuffer2 = copy( sslHandler
.getOutNetBuffer() );
- session.write( writeBuffer2, SSL_MARKER );
+ filterWrite( nextFilter, session, writeBuffer2, SSL_MARKER );
}
}
}
@@ -470,7 +474,7 @@
// Utilities to mainpulate SSLHandler based on IoSession
- private SSLHandler createSSLSessionHandler( IoSession session ) throws SSLException
+ private SSLHandler createSSLSessionHandler( NextFilter nextFilter, IoSession session ) throws SSLException
{
SSLHandler handler = ( SSLHandler ) sslSessionHandlerMap.get( session );
if( handler == null )
@@ -486,7 +490,7 @@
handler =
new SSLHandler( this, sslContext, session );
sslSessionHandlerMap.put( session, handler );
- handler.doHandshake();
+ handler.doHandshake( nextFilter );
done = true;
}
finally
Modified: directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java?rev=169321&r1=169320&r2=169321&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/io/filter/SSLHandler.java Mon May 9 08:00:25 2005
@@ -213,7 +213,7 @@
* @param buf buffer to decrypt
* @throws SSLException on errors
*/
- public void dataRead( ByteBuffer buf ) throws SSLException
+ public void dataRead( NextFilter nextFilter, ByteBuffer buf ) throws SSLException
{
if ( buf.limit() > inNetBuffer.remaining() ) {
// We have to expand inNetBuffer
@@ -236,7 +236,7 @@
inNetBuffer.put( buf );
if( !initialHandshakeComplete )
{
- doHandshake();
+ doHandshake( nextFilter );
}
else
{
@@ -249,13 +249,13 @@
*
* @throws SSLException on errors
*/
- public void continueHandshake() throws SSLException
+ public void continueHandshake( NextFilter nextFilter ) throws SSLException
{
if( log.isLoggable( Level.FINEST ) )
{
log.log( Level.FINEST, session + " continueHandshake()" );
}
- doHandshake();
+ doHandshake( nextFilter );
}
/**
@@ -403,7 +403,7 @@
/**
* Perform any handshaking processing.
*/
- synchronized void doHandshake() throws SSLException
+ synchronized void doHandshake( NextFilter nextFilter ) throws SSLException
{
if( log.isLoggable( Level.FINEST ) )
@@ -474,7 +474,7 @@
outNetBuffer.flip();
initialHandshakeStatus = result.getHandshakeStatus();
- parent.writeNetBuffer( session, this );
+ parent.writeNetBuffer( nextFilter, session, this );
// return to allow data on out buffer being sent
// TODO: We might want to send more data immidiatley?
}
Modified: directory/network/trunk/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java?rev=169321&r1=169320&r2=169321&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java Mon May 9 08:00:25 2005
@@ -425,7 +425,7 @@
try
{
- entry.filter.filterWrite( entry.prevFilter, session, message );
+ entry.filter.filterWrite( entry.nextFilter, session, message );
}
catch( Throwable e )
{
@@ -472,8 +472,6 @@
private final NextFilter nextFilter;
- private final NextFilter prevFilter;
-
private Entry( Entry prevEntry, Entry nextEntry,
String name, ProtocolFilter filter )
{
@@ -528,46 +526,6 @@
{
Entry nextEntry = Entry.this.nextEntry;
callNextMessageSent( nextEntry, session, message );
- }
-
- public void filterWrite( ProtocolSession session, Object message )
- {
- throw new IllegalStateException();
- }
- };
-
- this.prevFilter = new NextFilter()
- {
-
- public void sessionOpened( ProtocolSession session )
- {
- throw new IllegalStateException();
- }
-
- public void sessionClosed( ProtocolSession session )
- {
- throw new IllegalStateException();
- }
-
- public void sessionIdle( ProtocolSession session, IdleStatus status )
- {
- throw new IllegalStateException();
- }
-
- public void exceptionCaught( ProtocolSession session,
- Throwable cause )
- {
- throw new IllegalStateException();
- }
-
- public void messageReceived( ProtocolSession session, Object message )
- {
- throw new IllegalStateException();
- }
-
- public void messageSent( ProtocolSession session, Object message )
- {
- throw new IllegalStateException();
}
public void filterWrite( ProtocolSession session, Object message )
Modified: directory/network/trunk/src/test/org/apache/mina/examples/echoserver/ConnectorTest.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/test/org/apache/mina/examples/echoserver/ConnectorTest.java?rev=169321&r1=169320&r2=169321&view=diff
==============================================================================
--- directory/network/trunk/src/test/org/apache/mina/examples/echoserver/ConnectorTest.java (original)
+++ directory/network/trunk/src/test/org/apache/mina/examples/echoserver/ConnectorTest.java Mon May 9 08:00:25 2005
@@ -212,19 +212,16 @@
public void dataWritten( IoSession session, Object marker )
{
- if( marker != SSLFilter.SSL_MARKER )
+ if( ( counter & 1 ) == 0 )
{
- if( ( counter & 1 ) == 0 )
- {
- Assert.assertEquals( new Integer( counter ), marker );
- }
- else
- {
- Assert.assertNull( marker );
- }
-
- counter ++;
+ Assert.assertEquals( new Integer( counter ), marker );
}
+ else
+ {
+ Assert.assertNull( marker );
+ }
+
+ counter ++;
}
public void exceptionCaught( IoSession session, Throwable cause )