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]