mturk 2005/05/19 11:00:00 Modified: jni/java/org/apache/tomcat/jni Socket.java jni/native/src network.c Log: Added Socket.addressfilter that together with Library.APR_HAS_SO_ACCEPTFILTER can set accept filters like "httpready" so that accept is not firered before there is a HTTP request. Revision Changes Path 1.15 +10 -1 jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java Index: Socket.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- Socket.java 23 Apr 2005 18:33:39 -0000 1.14 +++ Socket.java 19 May 2005 18:00:00 -0000 1.15 @@ -161,6 +161,15 @@ throws Exception; /** + * Set an OS level accept filter. + * @param sock The socket to put the accept filter on. + * @param name The accept filter + * @param args Any extra args to the accept filter. Passing NULL here removes + * the accept filter. + */ + public static native int acceptfilter(long sock, String name, String args); + + /** * Query the specified socket if at the OOB/Urgent data mark * @param sock The socket to query * @return True if socket is at the OOB/urgent mark, 1.18 +28 -2 jakarta-tomcat-connectors/jni/native/src/network.c Index: network.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- network.c 19 May 2005 17:34:18 -0000 1.17 +++ network.c 19 May 2005 18:00:00 -0000 1.18 @@ -57,7 +57,7 @@ } TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS, - jlong sa, jint flags) + jlong sa, jint flags) { apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *); char *hostname; @@ -82,7 +82,7 @@ } TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which, - jlong sock) + jlong sock) { apr_socket_t *s = J2P(sock, apr_socket_t *); apr_sockaddr_t *sa = NULL; @@ -568,3 +568,29 @@ else return -(jlong)ss; } + +TCN_IMPLEMENT_CALL(jint, Socket, acceptfilter)(TCN_STDARGS, + jlong sock, + jstring name, + jstring args) +{ +#if APR_HAS_SO_ACCEPTFILTER + apr_socket_t *s = J2P(sock, apr_socket_t *); + TCN_ALLOC_CSTRING(name); + TCN_ALLOC_CSTRING(args); + apr_status_t rv; + + + UNREFERENCED(o); + rv = apr_socket_accept_filter(s, J2S(name), J2S(args) ? J2S(args) : ""); + TCN_FREE_CSTRING(name); + TCN_FREE_CSTRING(args); + return (jint)rv; +#else + UNREFERENCED_STDARGS; + UNREFERENCED(sock); + UNREFERENCED(name); + UNREFERENCED(args); + return (jint)APR_ENOTIMPL; +#endif +}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]