Author: costin
Date: Sat Nov 19 09:44:11 2005
New Revision: 345659

URL: http://svn.apache.org/viewcvs?rev=345659&view=rev
Log:
- remove the hardcoded dependency between SSLImplementation and jsse.

- add support for the native socket, in addition to Socket. A better solution 
may be to 
add a AprSocket class - this will allow Apr to be used in more places.

- AprEndpoint extends PoolTcpConnection, use TcpConnectionHandler instead if 
Handler. This
will allow coyote.http11.Apr* to extend the http classes and remove most of the 
duplicated code.

Modified:
    tomcat/sandbox/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/sandbox/java/org/apache/tomcat/util/net/SSLImplementation.java
    tomcat/sandbox/java/org/apache/tomcat/util/net/TcpConnection.java

Modified: tomcat/sandbox/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=345659&r1=345658&r2=345659&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/net/AprEndpoint.java Sat Nov 19 
09:44:11 2005
@@ -53,7 +53,7 @@
  * @author Mladen Turk
  * @author Remy Maucherat
  */
-public class AprEndpoint {
+public class AprEndpoint extends PoolTcpEndpoint {
 
 
     // -------------------------------------------------------------- Constants
@@ -65,6 +65,7 @@
         StringManager.getManager("org.apache.tomcat.util.net.res");
 
 
+    // where is this used ?
     /**
      * The Request attribute key for the cipher suite.
      */
@@ -239,6 +240,10 @@
     public void setHandler(Handler handler ) { this.handler = handler; }
     public Handler getHandler() { return handler; }
 
+    protected TcpConnectionHandler chandler = null;
+    public void setHandler(TcpConnectionHandler chandler ) { this.chandler = 
chandler; }
+    public TcpConnectionHandler getTcpConnectionHandler() { return chandler; }
+
 
     /**
      * Allows the server developer to specify the backlog that
@@ -1192,6 +1197,7 @@
         public void run() {
 
             // Process requests until we receive a shutdown signal
+            TcpConnection tcpCon=new TcpConnection();
             while (running) {
 
                 // Wait for the next socket to be assigned
@@ -1200,12 +1206,20 @@
                     continue;
 
                 // Process the request from this socket
-                if (!handler.process(socket)) {
+                if (handler != null && !handler.process(socket)) {
                     // Close socket and pool
                     Socket.destroy(socket);
                     socket = 0;
+                } else {
+                    if (chandler != null ) {
+                        tcpCon.setNativeSocket(socket);
+                        chandler.processConnection(tcpCon, null);
+                        // TODO: Close socket and pool - what would be the 
+                        // return false case ? 
+                        //Socket.destroy(socket);
+                        //socket = 0;
+                    }
                 }
-
                 // Finish up this request
                 recycleWorkerThread(this);
 

Modified: tomcat/sandbox/java/org/apache/tomcat/util/net/SSLImplementation.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/net/SSLImplementation.java?rev=345659&r1=345658&r2=345659&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/net/SSLImplementation.java 
(original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/net/SSLImplementation.java Sat 
Nov 19 09:44:11 2005
@@ -65,10 +65,12 @@
        try {
            // Workaround for the J2SE 1.4.x classloading problem (under 
Solaris).
            // Class.forName(..) fails without creating class using new.
-           // This is an ugly workaround. 
-           if( JSSEImplementationClass.equals(className) ) {
-               return new org.apache.tomcat.util.net.jsse.JSSEImplementation();
-           }
+           // This is an ugly workaround.
+            // This also breaks compiling tomcat without SSL support, and is 
+            // just wrong. Better fix - fix Class.forName.
+           //if( JSSEImplementationClass.equals(className) ) {
+           //    return new 
org.apache.tomcat.util.net.jsse.JSSEImplementation();
+           //}
            Class clazz=Class.forName(className);
            return (SSLImplementation)clazz.newInstance();
        } catch (Exception e){

Modified: tomcat/sandbox/java/org/apache/tomcat/util/net/TcpConnection.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/net/TcpConnection.java?rev=345659&r1=345658&r2=345659&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/net/TcpConnection.java (original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/net/TcpConnection.java Sat Nov 
19 09:44:11 2005
@@ -36,6 +36,16 @@
 
     PoolTcpEndpoint endpoint;
     Socket socket;
+    private long nativeSocket;
+    // SocketChannel for NIO 
+
+    public long getNativeSocket() {
+        return nativeSocket;
+    }
+
+    public void setNativeSocket(long s) {
+        this.nativeSocket = s;
+    }
 
     public static void setMaxShutdownTries(int mst) {
        MAX_SHUTDOWN_TRIES = mst;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to