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]