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]

Reply via email to