mturk 2005/06/10 11:42:42 Modified: jni/native/src sslnetwork.c Log: Disable JFC code by default. Althought it is usable, it just complicates the things, because we can obtain the underlaying APR os socket. Revision Changes Path 1.6 +53 -53 jakarta-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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- sslnetwork.c 10 Jun 2005 17:15:56 -0000 1.5 +++ sslnetwork.c 10 Jun 2005 18:42:42 -0000 1.6 @@ -151,6 +151,56 @@ return con; } +TCN_IMPLEMENT_CALL(jint, SSLSocket, shutdown)(TCN_STDARGS, jlong sock, + jint how) +{ + apr_status_t rv = APR_SUCCESS; + tcn_ssl_conn_t *con = J2P(sock, tcn_ssl_conn_t *); + + UNREFERENCED_STDARGS; + TCN_ASSERT(sock != 0); + if (con->ssl) { + if (how < 1) + how = con->shutdown_type; + rv = ssl_smart_shutdown(con->ssl, how); + /* TODO: Translate OpenSSL Error codes */ + SSL_free(con->ssl); + con->ssl = NULL; + } + return (jint)rv; +} + +TCN_IMPLEMENT_CALL(jint, SSLSocket, close)(TCN_STDARGS, jlong sock) +{ + tcn_ssl_conn_t *con = J2P(sock, tcn_ssl_conn_t *); + apr_status_t rv = APR_SUCCESS; + UNREFERENCED_STDARGS; + TCN_ASSERT(sock != 0); + +#ifdef TCN_DO_STATISTICS + apr_atomic_inc32(&ssl_closed); +#endif + apr_pool_cleanup_kill(con->pool, con, ssl_socket_cleanup); + if (con->ssl) { + rv = ssl_smart_shutdown(con->ssl, con->shutdown_type); + SSL_free(con->ssl); + con->ssl = NULL; + } + if (con->cert) { + X509_free(con->cert); + con->cert = NULL; + } + if (con->sock) { + apr_status_t rc; + if ((rc = apr_socket_close(con->sock)) != APR_SUCCESS) + rv = rc; + con->sock = NULL; + } + return (jint)rv; +} + +#define JFC_TEST 0 +#if JFC_TEST /* * Use APR sockets directly */ @@ -232,57 +282,6 @@ return(&jbs_apr_methods); } -TCN_IMPLEMENT_CALL(jint, SSLSocket, shutdown)(TCN_STDARGS, jlong sock, - jint how) -{ - apr_status_t rv = APR_SUCCESS; - tcn_ssl_conn_t *con = J2P(sock, tcn_ssl_conn_t *); - - UNREFERENCED_STDARGS; - TCN_ASSERT(sock != 0); - if (con->ssl) { - if (how < 1) - how = con->shutdown_type; - rv = ssl_smart_shutdown(con->ssl, how); - /* TODO: Translate OpenSSL Error codes */ - SSL_free(con->ssl); - con->ssl = NULL; - } - return (jint)rv; -} - -TCN_IMPLEMENT_CALL(jint, SSLSocket, close)(TCN_STDARGS, jlong sock) -{ - tcn_ssl_conn_t *con = J2P(sock, tcn_ssl_conn_t *); - apr_status_t rv = APR_SUCCESS; - UNREFERENCED_STDARGS; - TCN_ASSERT(sock != 0); - -#ifdef TCN_DO_STATISTICS - apr_atomic_inc32(&ssl_closed); -#endif - apr_pool_cleanup_kill(con->pool, con, ssl_socket_cleanup); - if (con->ssl) { - rv = ssl_smart_shutdown(con->ssl, con->shutdown_type); - SSL_free(con->ssl); - con->ssl = NULL; - } - if (con->cert) { - X509_free(con->cert); - con->cert = NULL; - } - if (con->sock) { - apr_status_t rc; - if ((rc = apr_socket_close(con->sock)) != APR_SUCCESS) - rv = rc; - con->sock = NULL; - } - return (jint)rv; -} - -#define JFC_TEST 1 -#ifdef JFC_TEST - TCN_IMPLEMENT_CALL(jint, SSLSocket, geterror)(TCN_STDARGS, jlong ctx, jint retcode) { tcn_ssl_conn_t *c = J2P(ctx, tcn_ssl_conn_t *); @@ -338,6 +337,7 @@ cleanup: return P2J(con); } + #else TCN_IMPLEMENT_CALL(jlong, SSLSocket, accept)(TCN_STDARGS, jlong ctx, jlong sock, jlong pool) @@ -365,7 +365,7 @@ cleanup: return P2J(con); } -#endif +#endif /* JFC_TEST */ TCN_IMPLEMENT_CALL(jlong, SSLSocket, connect)(TCN_STDARGS, jlong ctx, jlong sock, jlong pool)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]