jfclere     2005/06/09 02:13:55

  Modified:    jni/examples/org/apache/tomcat/jni SSLServer.java
               jni/java/org/apache/tomcat/jni BIOCallback.java SSL.java
                        SSLContext.java
               jni/native/src ssl.c sslcontext.c
  Log:
  Undo my previous commit.
  
  Revision  Changes    Path
  1.4       +1 -52     
jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/SSLServer.java
  
  Index: SSLServer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/examples/org/apache/tomcat/jni/SSLServer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SSLServer.java    8 Jun 2005 16:52:57 -0000       1.3
  +++ SSLServer.java    9 Jun 2005 09:13:54 -0000       1.4
  @@ -47,27 +47,6 @@
           }
       }
   
  -    private class CallBack implements BIOCallback {
  -        long clientSock = 0;
  -        public int write(byte [] buf) {
  -            return(Socket.send(clientSock, buf, 0, buf.length)); 
  -        }
  -        public int read(byte [] buf) { 
  -            return(Socket.recv(clientSock, buf, 0, buf.length));
  -        }
  -        public int puts(String data) {
  -            System.out.println("CallBack.puts");
  -            return -1;
  -        }
  -        public String gets(int len) {
  -            System.out.println("CallBack.gets");
  -            return "";
  -        }
  -        public void setsock(long sock) {
  -            clientSock = sock;
  -        }
  -    }
  -
       public SSLServer()
       {
           int i;
  @@ -81,36 +60,6 @@
               SSLContext.setCertificate(serverCtx, serverCert, serverKey, 
serverPassword, SSL.SSL_AIDX_RSA);
               SSLContext.setVerifyDepth(serverCtx, 10);
               SSLContext.setVerifyClient(serverCtx, SSL.SSL_CVERIFY_REQUIRE);
  -
  -            CallBack SSLCallBack = new CallBack();
  -            long callback = SSL.newBIO(serverPool, SSLCallBack);
  -            /*
  -            SSLContext.setBIO(serverCtx, callback, 1);
  -            SSLContext.setBIO(serverCtx, callback, 0);
  -             */
  -            long serverSSL = SSL.make(serverCtx, callback, callback);
  -
  -            long serverSock = Socket.create(Socket.APR_INET, 
Socket.SOCK_STREAM,
  -                                            Socket.APR_PROTO_TCP, 
serverPool);
  -            long inetAddress = Address.info(SSLServer.serverAddr, 
Socket.APR_INET, SSLServer.serverPort, 0, serverPool);
  -            int rc = Socket.bind(serverSock, inetAddress);
  -            if (rc != 0) {
  -                throw(new Exception("Can't bind: " + Error.strerror(rc)));
  -            }
  -            Socket.listen(serverSock, 5);
  -            long clientSock = Socket.accept(serverSock, serverPool);
  -            long sa = Address.get(Socket.APR_REMOTE, clientSock);
  -            Sockaddr raddr = new Sockaddr();
  -            if (Address.fill(raddr, sa)) {
  -                System.out.println("Remote Host: " + Address.getnameinfo(sa, 
0));
  -                System.out.println("Remote IP: " + Address.getip(sa) +
  -                                   ":" + raddr.port);
  -            }
  -            SSLCallBack.setsock(clientSock);
  -            int retcode = SSL.accept(serverSSL);
  -            if (retcode<=0) {
  -                throw(new Exception("Can't SSL accept: " + 
SSLContext.geterror(serverCtx, retcode)));
  -            }
               
           } catch (Exception e) {
               e.printStackTrace();
  
  
  
  1.3       +7 -7      
jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/BIOCallback.java
  
  Index: BIOCallback.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/BIOCallback.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BIOCallback.java  8 Jun 2005 16:52:58 -0000       1.2
  +++ BIOCallback.java  9 Jun 2005 09:13:54 -0000       1.3
  @@ -26,17 +26,17 @@
   
       /**
        * Write data
  -     * @param buf containg the bytes to write.
  -     * @return Number of characters written.
  +     * @param data String to write
  +     * @return Number of characters written
        */
  -    public int write(byte [] buf);
  +    public int write(String data);
   
       /**
        * Read data
  -     * @param buf buffer to store the read bytes.
  -     * @return number of bytes read.
  +     * @param len Maximum number of characters to read
  +     * @return String with up to len bytes readed
        */
  -    public int read(byte [] buf);
  +    public String read(int len);
   
       /**
        * Puts string
  
  
  
  1.15      +1 -16     
jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/SSL.java
  
  Index: SSL.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/SSL.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- SSL.java  8 Jun 2005 16:52:58 -0000       1.14
  +++ SSL.java  9 Jun 2005 09:13:54 -0000       1.15
  @@ -258,19 +258,4 @@
        */
       public static native boolean loadDSATempKey(int idx, String file);
   
  -    /**
  -     * Create a new SSL structure for a Client connection
  -     * @param ctx Client context to accept.
  -     * @param bior BIO for read.
  -     * @param biow BIO for read.
  -     * @return pointer to the created SSL structure.
  -     */
  -    public static native int make(long ctx, long bior, long biow);
  -
  -    /**
  -     * Do the TLS/SSL handshake with a Client
  -     * @param ssl Client communication channel to accept.
  -     * @return Status code.
  -     */
  -    public static native int accept(long ssl);
   }
  
  
  
  1.15      +1 -14     
jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/SSLContext.java
  
  Index: SSLContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/SSLContext.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- SSLContext.java   8 Jun 2005 16:52:58 -0000       1.14
  +++ SSLContext.java   9 Jun 2005 09:13:55 -0000       1.15
  @@ -47,19 +47,6 @@
           throws Exception;
   
       /**
  -     * Do the TLS/SSL handshake with a Client
  -     * @param ctx Client context to accept.
  -     * @return Status code.
  -     */
  -    public static native int accept(long ctx);
  -
  -    /**
  -     * Return the error code for openssl.
  -     * @return Status code.
  -     */
  -    public static native int geterror(long ctx, int retcode);
  -     
  -    /**
        * Free the resources used by the Context
        * @param ctx Server or Client context to free.
        * @return APR Status code.
  
  
  
  1.28      +17 -50    jakarta-tomcat-connectors/jni/native/src/ssl.c
  
  Index: ssl.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/ssl.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- ssl.c     8 Jun 2005 16:52:58 -0000       1.27
  +++ ssl.c     9 Jun 2005 09:13:55 -0000       1.28
  @@ -434,37 +434,6 @@
       return (jint)APR_SUCCESS;
   }
   
  -TCN_IMPLEMENT_CALL(jint, SSL, accept)(TCN_STDARGS, jlong ctx)
  -{
  -    tcn_ssl_conn_t *c = J2P(ctx, tcn_ssl_conn_t *);
  -    UNREFERENCED_STDARGS;
  -    TCN_ASSERT(ctx != 0);
  -    return SSL_accept(c->ssl);
  -}
  -
  -TCN_IMPLEMENT_CALL(jint, SSL, make)(TCN_STDARGS, jlong ctx, jlong bior, 
jlong biow)
  -{
  -    tcn_ssl_ctxt_t *c    = J2P(ctx, tcn_ssl_ctxt_t *);
  -    BIO *bio_handler     = J2P(bior, BIO *);
  -    BIO *bio_handlew     = J2P(biow, BIO *);
  -    SSL *ssl;
  -    tcn_ssl_conn_t *cssl = NULL;
  -
  -    UNREFERENCED_STDARGS;
  -    TCN_ASSERT(ctx != 0);
  -
  -    ssl=SSL_new(c->ctx);
  -    SSL_set_bio(ssl, bio_handler, bio_handlew);
  -    if ((cssl = apr_pcalloc(c->pool, sizeof(tcn_ssl_conn_t))) == NULL) {
  -        goto make_failed;
  -    }
  -    cssl->ctx=c;
  -    cssl->ssl=ssl;
  -    return P2J(cssl);
  -make_failed:
  -    return 0;
  -}
  -
   TCN_IMPLEMENT_CALL(jboolean, SSL, randLoad)(TCN_STDARGS, jstring file)
   {
       TCN_ALLOC_CSTRING(file);
  @@ -582,12 +551,10 @@
       if (b->init && in != NULL) {
           BIO_JAVA *j = (BIO_JAVA *)b->ptr;
           JNIEnv   *e = j->cb.env;
  -        jbyteArray jb = (*e)->NewByteArray(e, inl);
  -        (*e)->SetByteArrayRegion(e, jb, 0, inl, (jbyte *)in);
  -        jint o = (*e)->CallIntMethod(e, j->cb.obj,
  -                                j->cb.mid[0], jb);
  -        (*e)->ReleaseByteArrayElements(e, jb, (jbyte *)in, 0);
  -        ret = o;
  +        if ((*e)->CallIntMethod(e, j->cb.obj,
  +                                j->cb.mid[0],
  +                                tcn_new_string(e, in, inl)))
  +            ret = inl;
       }
       return ret;
   }
  @@ -598,16 +565,16 @@
       if (b->init && out != NULL) {
           BIO_JAVA *j = (BIO_JAVA *)b->ptr;
           JNIEnv   *e = j->cb.env;
  -        jbyteArray jb = (*e)->NewByteArray(e, outl);
  -
  -        jint  o = (*e)->CallObjectMethod(e, j->cb.obj,
  -                            j->cb.mid[1], jb);
  -        if (o>=0) {
  -            int i;
  -            jbyte *jout =  (*e)->GetByteArrayElements(e, jb, 0);
  -            memcpy(out, jout, o);
  -            (*e)->ReleaseByteArrayElements(e, jb, jout, 0);
  -            ret = o;
  +        jobject  o;
  +        if ((o = (*e)->CallObjectMethod(e, j->cb.obj,
  +                            j->cb.mid[1], (jint)(outl - 1)))) {
  +            TCN_ALLOC_CSTRING(o);
  +            if (J2S(o)) {
  +                int l = (int)strlen(J2S(o));
  +                ret = TCN_MIN(outl, l);
  +                memcpy(out, J2S(o), ret);
  +            }
  +            TCN_FREE_CSTRING(o);
           }
       }
       return ret;
  @@ -699,8 +666,8 @@
   
       cls = (*e)->GetObjectClass(e, callback);
       j->cb.env    = e;
  -    j->cb.mid[0] = (*e)->GetMethodID(e, cls, "write", "([B)I");
  -    j->cb.mid[1] = (*e)->GetMethodID(e, cls, "read",  "([B)I");
  +    j->cb.mid[0] = (*e)->GetMethodID(e, cls, "write", 
"(Ljava/lang/String;)I");
  +    j->cb.mid[1] = (*e)->GetMethodID(e, cls, "read",  
"(I)Ljava/lang/String;");
       j->cb.mid[2] = (*e)->GetMethodID(e, cls, "puts",  
"(Ljava/lang/String;)I");
       j->cb.mid[3] = (*e)->GetMethodID(e, cls, "gets",  
"(I)Ljava/lang/String;");
       /* TODO: Check if method id's are valid */
  
  
  
  1.29      +1 -9      jakarta-tomcat-connectors/jni/native/src/sslcontext.c
  
  Index: sslcontext.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslcontext.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- sslcontext.c      8 Jun 2005 16:52:58 -0000       1.28
  +++ sslcontext.c      9 Jun 2005 09:13:55 -0000       1.29
  @@ -174,14 +174,6 @@
       return 0;
   }
   
  -TCN_IMPLEMENT_CALL(jint, SSLContext, geterror)(TCN_STDARGS, jlong ctx, jint 
retcode)
  -{
  -    tcn_ssl_ctxt_t *c = J2P(ctx, tcn_ssl_ctxt_t *);
  -    UNREFERENCED_STDARGS;
  -    TCN_ASSERT(ctx != 0);
  -    return SSL_get_error(c->ctx, retcode);
  -}
  -
   TCN_IMPLEMENT_CALL(jint, SSLContext, free)(TCN_STDARGS, jlong ctx)
   {
       tcn_ssl_ctxt_t *c = J2P(ctx, tcn_ssl_ctxt_t *);
  
  
  

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

Reply via email to