cvs commit: jakarta-tomcat-connectors/jni/native/src sslnetwork.c sslutils.c
mturk 2005/06/18 01:01:54 Modified:jni/native/src sslnetwork.c sslutils.c Log: Fix compile time warnings. Revision ChangesPath 1.16 +18 -17jakarta-tomcat-connectors/jni/native/src/sslnetwork.c Index: sslnetwork.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslnetwork.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- sslnetwork.c 17 Jun 2005 14:17:00 - 1.15 +++ sslnetwork.c 18 Jun 2005 08:01:54 - 1.16 @@ -309,8 +309,9 @@ } static apr_status_t APR_THREAD_FUNC -ssl_socket_recv(tcn_ssl_conn_t *con, char *buf, apr_size_t *len) +ssl_socket_recv(void *sock, char *buf, apr_size_t *len) { +tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)sock; int s, rd = (int)(*len); apr_status_t rv = APR_SUCCESS; @@ -355,9 +356,10 @@ } static apr_status_t APR_THREAD_FUNC -ssl_socket_send(tcn_ssl_conn_t *con, const char *buf, +ssl_socket_send(void *sock, const char *buf, apr_size_t *len) { +tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)sock; int s, rd = (int)(*len); apr_status_t rv = APR_SUCCESS; @@ -397,17 +399,18 @@ } static apr_status_t APR_THREAD_FUNC -ssl_socket_sendv(tcn_ssl_conn_t *sock, +ssl_socket_sendv(void *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len) { +tcn_ssl_conn_t *con = (tcn_ssl_conn_t *)sock; apr_status_t rv; apr_size_t readed = 0; apr_int32_t i; for (i = 0; i nvec; i++) { apr_size_t rd = vec[i].iov_len; -if ((rv = ssl_socket_send(sock, vec[i].iov_base, rd)) != APR_SUCCESS) { +if ((rv = ssl_socket_send(con, vec[i].iov_base, rd)) != APR_SUCCESS) { *len = readed; return rv; } @@ -419,23 +422,21 @@ TCN_IMPLEMENT_CALL(jint, SSLSocket, attach)(TCN_STDARGS, jlong ctx, -jlong sock, jlong pool) +jlong sock) { tcn_ssl_ctxt_t *c = J2P(ctx, tcn_ssl_ctxt_t *); tcn_socket_t *s = J2P(sock, tcn_socket_t *); -apr_pool_t *p = J2P(pool, apr_pool_t *); tcn_ssl_conn_t *con; apr_os_sock_t oss; apr_status_t rv; UNREFERENCED(o); -TCN_ASSERT(pool != 0); TCN_ASSERT(ctx != 0); TCN_ASSERT(sock != 0); if ((rv = apr_os_sock_get(oss, s-sock)) != APR_SUCCESS) return rv; -if ((con = ssl_create(e, c, p)) == NULL) +if ((con = ssl_create(e, c, s-pool)) == NULL) return APR_EGENERAL; con-sock = s-sock; @@ -445,14 +446,14 @@ else SSL_set_connect_state(con-ssl); /* Change socket type */ -s-type = TCN_SOCKET_SSL; -s-cleanup = ssl_cleanup; -s-net_recv = ssl_socket_recv; -s-net_send = ssl_socket_send; -s-net_sendv= ssl_socket_sendv; -s-net_shutdown = ssl_socket_shutdown; -s-net_close= ssl_socket_close; -s-opaque= con; +s-type = TCN_SOCKET_SSL; +s-cleanup = ssl_cleanup; +s-recv = ssl_socket_recv; +s-send = ssl_socket_send; +s-sendv= ssl_socket_sendv; +s-shutdown = ssl_socket_shutdown; +s-close= ssl_socket_close; +s-opaque = con; return APR_SUCCESS; } 1.30 +1 -3 jakarta-tomcat-connectors/jni/native/src/sslutils.c Index: sslutils.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslutils.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- sslutils.c17 Jun 2005 09:41:30 - 1.29 +++ sslutils.c18 Jun 2005 08:01:54 - 1.30 @@ -336,7 +336,6 @@ RSA *SSL_callback_tmp_RSA(SSL *ssl, int export, int keylen) { -tcn_ssl_conn_t *conn = (tcn_ssl_conn_t *)SSL_get_app_data(ssl); int idx; /* doesn't matter if export flag is on, @@ -372,7 +371,6 @@ */ DH *SSL_callback_tmp_DH(SSL *ssl, int export, int keylen) { -tcn_ssl_conn_t *conn = (tcn_ssl_conn_t *)SSL_get_app_data(ssl); int idx; switch (keylen) { case 512: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jni/native/src sslnetwork.c sslutils.c
mturk 2005/06/12 03:31:17 Modified:jni/examples/org/apache/tomcat/jni SSLServer.java jni/java/org/apache/tomcat/jni SSLSocket.java jni/native/include ssl_private.h jni/native/src sslnetwork.c sslutils.c Log: Implement SSLSocket.read and SSLSocket.write, as well as example. Use 'openssl s_clent to test' Revision ChangesPath 1.6 +64 -13 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SSLServer.java11 Jun 2005 07:03:45 - 1.5 +++ SSLServer.java12 Jun 2005 10:31:16 - 1.6 @@ -18,12 +18,14 @@ public static int serverPort= 0; public static int serverNmax= 0; public static int serverNrun= 0; -public static long serverPool = 0; public static long serverCtx= 0; +public static long serverPool = 0; public static String serverCert = null; public static String serverKey = null; public static String serverCiphers = null; public static String serverPassword = null; +public static String serverCAFile = null; + private static Acceptor serverAcceptor = null; private static Object threadLock = new Object(); @@ -41,6 +43,7 @@ serverNmax = Integer.decode(props.getProperty(server.max, 1)).intValue(); serverCert = props.getProperty(server.cert, server.pem); serverKey = props.getProperty(server.key, null); +serverCAFile = props.getProperty(server.cacertificate, null); serverCiphers = props.getProperty(server.ciphers, ALL); serverPassword = props.getProperty(server.password, null); } @@ -60,7 +63,7 @@ SSLContext.setCipherSuite(serverCtx, serverCiphers); /* Load Server key and certificate */ SSLContext.setCertificate(serverCtx, serverCert, serverKey, serverPassword, SSL.SSL_AIDX_RSA); -SSLContext.setVerify(serverCtx, SSL.SSL_CVERIFY_REQUIRE, 10); +SSLContext.setVerify(serverCtx, SSL.SSL_CVERIFY_NONE, 10); serverAcceptor = new Acceptor(); serverAcceptor.start(); @@ -97,14 +100,6 @@ pool); serverSock = Socket.create(Socket.APR_INET, Socket.SOCK_STREAM, Socket.APR_PROTO_TCP, pool); -long sa = Address.get(Socket.APR_LOCAL, serverSock); -Sockaddr addr = new Sockaddr(); -if (Address.fill(addr, sa)) { -System.out.println(Host: + addr.hostname); -System.out.println(Server: + addr.servname); -System.out.println(IP: + Address.getip(sa) + - : + addr.port); -} int rc = Socket.bind(serverSock, inetAddress); if (rc != 0) { throw(new Exception(Can't create Acceptor: bind: + Error.strerror(rc))); @@ -149,9 +144,18 @@ Socket.timeoutSet(clientSock, 1000); long sslSocket = SSLSocket.attach(SSLServer.serverCtx, clientSock, pool); i = SSLSocket.handshake(sslSocket); -System.out.println(Handskake : + i); +if (i == 0) { -SSLSocket.close(sslSocket); +Worker worker = new Worker(sslSocket, i++, + this.getClass().getName()); +SSLServer.incThreads(); +worker.start(); + +} +else { +System.out.println(Handshake error: + SSL.getLastError()); +SSLSocket.close(sslSocket); +} } } catch( Exception ex ) { @@ -159,6 +163,53 @@ } } } + +private class Worker extends Thread { +private int workerId = 0; +private long clientSock = 0; +private byte [] wellcomeMsg = null; + +public Worker(long clientSocket, int workerId, String from) { +this.clientSock = clientSocket; +this.workerId = workerId; +wellcomeMsg = (SSLServer server id: + this.workerId + from + + from + \r\n).getBytes(); +} + +public void run() { +boolean doClose =