Return-Path: X-Original-To: apmail-geronimo-scm-archive@www.apache.org Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0BFA67E55 for ; Thu, 15 Dec 2011 13:56:03 +0000 (UTC) Received: (qmail 85355 invoked by uid 500); 15 Dec 2011 13:56:02 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 85311 invoked by uid 500); 15 Dec 2011 13:56:02 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 85304 invoked by uid 99); 15 Dec 2011 13:56:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Dec 2011 13:56:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Dec 2011 13:55:59 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 294DB2388A36; Thu, 15 Dec 2011 13:55:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1214761 [4/10] - in /geronimo/external/trunk/tomcat-parent-6.0.35: catalina-ha/src/main/java/org/apache/catalina/ha/ catalina-ha/src/main/java/org/apache/catalina/ha/authenticator/ catalina-ha/src/main/java/org/apache/catalina/ha/deploy/ c... Date: Thu, 15 Dec 2011 13:55:35 -0000 To: scm@geronimo.apache.org From: xiaming@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111215135539.294DB2388A36@eris.apache.org> Added: geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Socket.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Socket.java?rev=1214761&view=auto ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Socket.java (added) +++ geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Socket.java Thu Dec 15 13:55:25 2011 @@ -0,0 +1,539 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tomcat.jni; + +/* Import needed classes */ +import java.nio.ByteBuffer; + +/** Socket + * + * @author Mladen Turk + * @version $Id: Socket.java 939351 2010-04-29 15:41:54Z kkolinko $ + */ + +public class Socket { + + /* Standard socket defines */ + public static final int SOCK_STREAM = 0; + public static final int SOCK_DGRAM = 1; + /* + * apr_sockopt Socket option definitions + */ + public static final int APR_SO_LINGER = 1; /** Linger */ + public static final int APR_SO_KEEPALIVE = 2; /** Keepalive */ + public static final int APR_SO_DEBUG = 4; /** Debug */ + public static final int APR_SO_NONBLOCK = 8; /** Non-blocking IO */ + public static final int APR_SO_REUSEADDR = 16; /** Reuse addresses */ + public static final int APR_SO_SNDBUF = 64; /** Send buffer */ + public static final int APR_SO_RCVBUF = 128; /** Receive buffer */ + public static final int APR_SO_DISCONNECTED = 256; /** Disconnected */ + /** For SCTP sockets, this is mapped to STCP_NODELAY internally. */ + public static final int APR_TCP_NODELAY = 512; + public static final int APR_TCP_NOPUSH = 1024; /** No push */ + /** This flag is ONLY set internally when we set APR_TCP_NOPUSH with + * APR_TCP_NODELAY set to tell us that APR_TCP_NODELAY should be turned on + * again when NOPUSH is turned off + */ + public static final int APR_RESET_NODELAY = 2048; + /** Set on non-blocking sockets (timeout != 0) on which the + * previous read() did not fill a buffer completely. the next + * apr_socket_recv() will first call select()/poll() rather than + * going straight into read(). (Can also be set by an application to + * force a select()/poll() call before the next read, in cases where + * the app expects that an immediate read would fail.) + */ + public static final int APR_INCOMPLETE_READ = 4096; + /** like APR_INCOMPLETE_READ, but for write + */ + public static final int APR_INCOMPLETE_WRITE = 8192; + /** Don't accept IPv4 connections on an IPv6 listening socket. + */ + public static final int APR_IPV6_V6ONLY = 16384; + /** Delay accepting of new connections until data is available. + */ + public static final int APR_TCP_DEFER_ACCEPT = 32768; + + /** Define what type of socket shutdown should occur. + * apr_shutdown_how_e enum + */ + public static final int APR_SHUTDOWN_READ = 0; /** no longer allow read request */ + public static final int APR_SHUTDOWN_WRITE = 1; /** no longer allow write requests */ + public static final int APR_SHUTDOWN_READWRITE = 2; /** no longer allow read or write requests */ + + public static final int APR_IPV4_ADDR_OK = 0x01; + public static final int APR_IPV6_ADDR_OK = 0x02; + + /* TODO: Missing: + * APR_INET + * APR_UNSPEC + * APR_INET6 + */ + public static final int APR_UNSPEC = 0; + public static final int APR_INET = 1; + public static final int APR_INET6 = 2; + + public static final int APR_PROTO_TCP = 6; /** TCP */ + public static final int APR_PROTO_UDP = 17; /** UDP */ + public static final int APR_PROTO_SCTP = 132; /** SCTP */ + + /** + * Enum to tell us if we're interested in remote or local socket + * apr_interface_e + */ + public static final int APR_LOCAL = 0; + public static final int APR_REMOTE = 1; + + /* Socket.get types */ + public static final int SOCKET_GET_POOL = 0; + public static final int SOCKET_GET_IMPL = 1; + public static final int SOCKET_GET_APRS = 2; + public static final int SOCKET_GET_TYPE = 3; + + /** + * Create a socket. + * @param family The address family of the socket (e.g., APR_INET). + * @param type The type of the socket (e.g., SOCK_STREAM). + * @param protocol The protocol of the socket (e.g., APR_PROTO_TCP). + * @param cont The parent pool to use + * @return The new socket that has been set up. + */ + public static native long create(int family, int type, + int protocol, long cont) + throws Exception; + + + /** + * Shutdown either reading, writing, or both sides of a socket. + *
+ * This does not actually close the socket descriptor, it just + * controls which calls are still valid on the socket. + * @param thesocket The socket to close + * @param how How to shutdown the socket. One of: + *
+     * APR_SHUTDOWN_READ         no longer allow read requests
+     * APR_SHUTDOWN_WRITE        no longer allow write requests
+     * APR_SHUTDOWN_READWRITE    no longer allow read or write requests
+     * 
+ */ + public static native int shutdown(long thesocket, int how); + + /** + * Close a socket. + * @param thesocket The socket to close + */ + public static native int close(long thesocket); + + /** + * Destroy a pool associated with socket + * @param thesocket The destroy + */ + public static native void destroy(long thesocket); + + /** + * Bind the socket to its associated port + * @param sock The socket to bind + * @param sa The socket address to bind to + * This may be where we will find out if there is any other process + * using the selected port. + */ + public static native int bind(long sock, long sa); + + /** + * Listen to a bound socket for connections. + * @param sock The socket to listen on + * @param backlog The number of outstanding connections allowed in the sockets + * listen queue. If this value is less than zero, the listen + * queue size is set to zero. + */ + public static native int listen(long sock, int backlog); + + /** + * Accept a new connection request + * @param sock The socket we are listening on. + * @param pool The pool for the new socket. + * @return A copy of the socket that is connected to the socket that + * made the connection request. This is the socket which should + * be used for all future communication. + */ + public static native long acceptx(long sock, long pool) + throws Exception; + + /** + * Accept a new connection request + * @param sock The socket we are listening on. + * @return A copy of the socket that is connected to the socket that + * made the connection request. This is the socket which should + * be used for all future communication. + */ + public static native long accept(long sock) + 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, + * otherwise return false. + */ + public static native boolean atmark(long sock); + + /** + * Issue a connection request to a socket either on the same machine + * or a different one. + * @param sock The socket we wish to use for our side of the connection + * @param sa The address of the machine we wish to connect to. + */ + public static native int connect(long sock, long sa); + + /** + * Send data over a network. + *
+     * This functions acts like a blocking write by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     *
+     * It is possible for both bytes to be sent and an error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to send the data over. + * @param buf The buffer which contains the data to be sent. + * @param offset Offset in the byte buffer. + * @param len The number of bytes to write; (-1) for full array. + * @return The number of bytes send. + * + */ + public static native int send(long sock, byte[] buf, int offset, int len); + + /** + * Send data over a network. + *
+     * This functions acts like a blocking write by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     *
+     * It is possible for both bytes to be sent and an error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to send the data over. + * @param buf The Byte buffer which contains the data to be sent. + * @param offset The offset within the buffer array of the first buffer from + * which bytes are to be retrieved; must be non-negative + * and no larger than buf.length + * @param len The maximum number of buffers to be accessed; must be non-negative + * and no larger than buf.length - offset + * @return The number of bytes send. + * + */ + public static native int sendb(long sock, ByteBuffer buf, + int offset, int len); + /** + * Send data over a network using internally set ByteBuffer + */ + public static native int sendbb(long sock, + int offset, int len); + + /** + * Send multiple packets of data over a network. + *
+     * This functions acts like a blocking write by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     * The number of bytes actually sent is stored in argument 3.
+     *
+     * It is possible for both bytes to be sent and an error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to send the data over. + * @param vec The array from which to get the data to send. + * + */ + public static native int sendv(long sock, byte[][] vec); + + /** + * @param sock The socket to send from + * @param where The apr_sockaddr_t describing where to send the data + * @param flags The flags to use + * @param buf The data to send + * @param offset Offset in the byte buffer. + * @param len The length of the data to send + */ + public static native int sendto(long sock, long where, int flags, + byte[] buf, int offset, int len); + + /** + * Read data from a network. + * + *
+     * This functions acts like a blocking read by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     * The number of bytes actually received is stored in argument 3.
+     *
+     * It is possible for both bytes to be received and an APR_EOF or
+     * other error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to read the data from. + * @param buf The buffer to store the data in. + * @param offset Offset in the byte buffer. + * @param nbytes The number of bytes to read (-1) for full array. + * @return the number of bytes received. + */ + public static native int recv(long sock, byte[] buf, int offset, int nbytes); + + /** + * Read data from a network with timeout. + * + *
+     * This functions acts like a blocking read by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     * The number of bytes actually received is stored in argument 3.
+     *
+     * It is possible for both bytes to be received and an APR_EOF or
+     * other error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to read the data from. + * @param buf The buffer to store the data in. + * @param offset Offset in the byte buffer. + * @param nbytes The number of bytes to read (-1) for full array. + * @param timeout The socket timeout in microseconds. + * @return the number of bytes received. + */ + public static native int recvt(long sock, byte[] buf, int offset, + int nbytes, long timeout); + + /** + * Read data from a network. + * + *
+     * This functions acts like a blocking read by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     * The number of bytes actually received is stored in argument 3.
+     *
+     * It is possible for both bytes to be received and an APR_EOF or
+     * other error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to read the data from. + * @param buf The buffer to store the data in. + * @param offset Offset in the byte buffer. + * @param nbytes The number of bytes to read (-1) for full array. + * @return the number of bytes received. + */ + public static native int recvb(long sock, ByteBuffer buf, + int offset, int nbytes); + /** + * Read data from a network using internally set ByteBuffer + */ + public static native int recvbb(long sock, + int offset, int nbytes); + /** + * Read data from a network with timeout. + * + *
+     * This functions acts like a blocking read by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     * The number of bytes actually received is stored in argument 3.
+     *
+     * It is possible for both bytes to be received and an APR_EOF or
+     * other error to be returned.
+     *
+     * APR_EINTR is never returned.
+     * 
+ * @param sock The socket to read the data from. + * @param buf The buffer to store the data in. + * @param offset Offset in the byte buffer. + * @param nbytes The number of bytes to read (-1) for full array. + * @param timeout The socket timeout in microseconds. + * @return the number of bytes received. + */ + public static native int recvbt(long sock, ByteBuffer buf, + int offset, int nbytes, long timeout); + /** + * Read data from a network with timeout using internally set ByteBuffer + */ + public static native int recvbbt(long sock, + int offset, int nbytes, long timeout); + + /** + * @param from The apr_sockaddr_t to fill in the recipient info + * @param sock The socket to use + * @param flags The flags to use + * @param buf The buffer to use + * @param offset Offset in the byte buffer. + * @param nbytes The number of bytes to read (-1) for full array. + * @return the number of bytes received. + */ + public static native int recvfrom(long from, long sock, int flags, + byte[] buf, int offset, int nbytes); + + /** + * Setup socket options for the specified socket + * @param sock The socket to set up. + * @param opt The option we would like to configure. One of: + *
+     * APR_SO_DEBUG      --  turn on debugging information
+     * APR_SO_KEEPALIVE  --  keep connections active
+     * APR_SO_LINGER     --  lingers on close if data is present
+     * APR_SO_NONBLOCK   --  Turns blocking on/off for socket
+     *                       When this option is enabled, use
+     *                       the APR_STATUS_IS_EAGAIN() macro to
+     *                       see if a send or receive function
+     *                       could not transfer data without
+     *                       blocking.
+     * APR_SO_REUSEADDR  --  The rules used in validating addresses
+     *                       supplied to bind should allow reuse
+     *                       of local addresses.
+     * APR_SO_SNDBUF     --  Set the SendBufferSize
+     * APR_SO_RCVBUF     --  Set the ReceiveBufferSize
+     * 
+ * @param on Value for the option. + */ + public static native int optSet(long sock, int opt, int on); + + /** + * Query socket options for the specified socket + * @param sock The socket to query + * @param opt The option we would like to query. One of: + *
+     * APR_SO_DEBUG      --  turn on debugging information
+     * APR_SO_KEEPALIVE  --  keep connections active
+     * APR_SO_LINGER     --  lingers on close if data is present
+     * APR_SO_NONBLOCK   --  Turns blocking on/off for socket
+     * APR_SO_REUSEADDR  --  The rules used in validating addresses
+     *                       supplied to bind should allow reuse
+     *                       of local addresses.
+     * APR_SO_SNDBUF     --  Set the SendBufferSize
+     * APR_SO_RCVBUF     --  Set the ReceiveBufferSize
+     * APR_SO_DISCONNECTED -- Query the disconnected state of the socket.
+     *                       (Currently only used on Windows)
+     * 
+ * @return Socket option returned on the call. + */ + public static native int optGet(long sock, int opt) + throws Exception; + + /** + * Setup socket timeout for the specified socket + * @param sock The socket to set up. + * @param t Value for the timeout in microseconds. + *
+     * t > 0  -- read and write calls return APR_TIMEUP if specified time
+     *           elapsess with no data read or written
+     * t == 0 -- read and write calls never block
+     * t < 0  -- read and write calls block
+     * 
+ */ + public static native int timeoutSet(long sock, long t); + + /** + * Query socket timeout for the specified socket + * @param sock The socket to query + * @return Socket timeout returned from the query. + */ + public static native long timeoutGet(long sock) + throws Exception; + + /** + * Send a file from an open file descriptor to a socket, along with + * optional headers and trailers. + *
+ * This functions acts like a blocking write by default. To change + * this behavior, use apr_socket_timeout_set() or the + * APR_SO_NONBLOCK socket option. + * The number of bytes actually sent is stored in the len parameter. + * The offset parameter is passed by reference for no reason; its + * value will never be modified by the apr_socket_sendfile() function. + * @param sock The socket to which we're writing + * @param file The open file from which to read + * @param headers Array containing the headers to send + * @param trailers Array containing the trailers to send + * @param offset Offset into the file where we should begin writing + * @param len Number of bytes to send from the file + * @param flags APR flags that are mapped to OS specific flags + * @return Number of bytes actually sent, including headers, + * file, and trailers + * + */ + public static native long sendfile(long sock, long file, byte [][] headers, + byte[][] trailers, long offset, + long len, int flags); + + /** + * Send a file without header and trailer arrays. + */ + public static native long sendfilen(long sock, long file, long offset, + long len, int flags); + + /** + * Create a child pool from associated socket pool. + * @param thesocket The socket to use + */ + public static native long pool(long thesocket) + throws Exception; + + /** + * Private method for geting the socket struct members + * @param socket The soocket to use + * @param what Struct member to obtain + *
+     * SOCKET_GET_POOL  - The socket pool
+     * SOCKET_GET_IMPL  - The socket implementation object
+     * SOCKET_GET_APRS  - APR socket
+     * SOCKET_GET_TYPE  - Socket type
+     * 
+ * @return The stucture member address + */ + private static native long get(long socket, int what); + + /** + * Set internal send ByteBuffer. + * This function will preset internal Java ByteBuffer for + * consecutive sendbb calls. + * @param sock The socket to use + * @param buf The ByteBuffer + */ + public static native void setsbb(long sock, ByteBuffer buf); + + /** + * Set internal receive ByteBuffer. + * This function will preset internal Java ByteBuffer for + * consecutive revcvbb/recvbbt calls. + * @param sock The socket to use + * @param buf The ByteBuffer + */ + public static native void setrbb(long sock, ByteBuffer buf); +} Added: geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Status.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Status.java?rev=1214761&view=auto ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Status.java (added) +++ geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Status.java Thu Dec 15 13:55:25 2011 @@ -0,0 +1,265 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tomcat.jni; + +/** Status + * + * @author Mladen Turk + * @version $Id: Status.java 939351 2010-04-29 15:41:54Z kkolinko $ + */ + +public class Status { + + /** + * APR_OS_START_ERROR is where the APR specific error values start. + */ + public static final int APR_OS_START_ERROR = 20000; + /** + * APR_OS_ERRSPACE_SIZE is the maximum number of errors you can fit + * into one of the error/status ranges below -- except for + * APR_OS_START_USERERR, which see. + */ + public static final int APR_OS_ERRSPACE_SIZE = 50000; + /** + * APR_OS_START_STATUS is where the APR specific status codes start. + */ + public static final int APR_OS_START_STATUS = (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE); + + /** + * APR_OS_START_USERERR are reserved for applications that use APR that + * layer their own error codes along with APR's. Note that the + * error immediately following this one is set ten times farther + * away than usual, so that users of apr have a lot of room in + * which to declare custom error codes. + */ + public static final int APR_OS_START_USERERR = (APR_OS_START_STATUS + APR_OS_ERRSPACE_SIZE); + /** + * APR_OS_START_USEERR is obsolete, defined for compatibility only. + * Use APR_OS_START_USERERR instead. + */ + public static final int APR_OS_START_USEERR = APR_OS_START_USERERR; + /** + * APR_OS_START_CANONERR is where APR versions of errno values are defined + * on systems which don't have the corresponding errno. + */ + public static final int APR_OS_START_CANONERR = (APR_OS_START_USERERR + (APR_OS_ERRSPACE_SIZE * 10)); + + /** + * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into + * apr_status_t values. + */ + public static final int APR_OS_START_EAIERR = (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE); + /** + * APR_OS_START_SYSERR folds platform-specific system error values into + * apr_status_t values. + */ + public static final int APR_OS_START_SYSERR = (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE); + + /** no error. */ + public static final int APR_SUCCESS = 0; + + /** + * APR Error Values + *
+     * APR ERROR VALUES
+     * APR_ENOSTAT      APR was unable to perform a stat on the file
+     * APR_ENOPOOL      APR was not provided a pool with which to allocate memory
+     * APR_EBADDATE     APR was given an invalid date
+     * APR_EINVALSOCK   APR was given an invalid socket
+     * APR_ENOPROC      APR was not given a process structure
+     * APR_ENOTIME      APR was not given a time structure
+     * APR_ENODIR       APR was not given a directory structure
+     * APR_ENOLOCK      APR was not given a lock structure
+     * APR_ENOPOLL      APR was not given a poll structure
+     * APR_ENOSOCKET    APR was not given a socket
+     * APR_ENOTHREAD    APR was not given a thread structure
+     * APR_ENOTHDKEY    APR was not given a thread key structure
+     * APR_ENOSHMAVAIL  There is no more shared memory available
+     * APR_EDSOOPEN     APR was unable to open the dso object.  For more
+     *                  information call apr_dso_error().
+     * APR_EGENERAL     General failure (specific information not available)
+     * APR_EBADIP       The specified IP address is invalid
+     * APR_EBADMASK     The specified netmask is invalid
+     * APR_ESYMNOTFOUND Could not find the requested symbol
+     * 
+ * + */ + public static final int APR_ENOSTAT = (APR_OS_START_ERROR + 1); + public static final int APR_ENOPOOL = (APR_OS_START_ERROR + 2); + public static final int APR_EBADDATE = (APR_OS_START_ERROR + 4); + public static final int APR_EINVALSOCK = (APR_OS_START_ERROR + 5); + public static final int APR_ENOPROC = (APR_OS_START_ERROR + 6); + public static final int APR_ENOTIME = (APR_OS_START_ERROR + 7); + public static final int APR_ENODIR = (APR_OS_START_ERROR + 8); + public static final int APR_ENOLOCK = (APR_OS_START_ERROR + 9); + public static final int APR_ENOPOLL = (APR_OS_START_ERROR + 10); + public static final int APR_ENOSOCKET = (APR_OS_START_ERROR + 11); + public static final int APR_ENOTHREAD = (APR_OS_START_ERROR + 12); + public static final int APR_ENOTHDKEY = (APR_OS_START_ERROR + 13); + public static final int APR_EGENERAL = (APR_OS_START_ERROR + 14); + public static final int APR_ENOSHMAVAIL = (APR_OS_START_ERROR + 15); + public static final int APR_EBADIP = (APR_OS_START_ERROR + 16); + public static final int APR_EBADMASK = (APR_OS_START_ERROR + 17); + public static final int APR_EDSOOPEN = (APR_OS_START_ERROR + 19); + public static final int APR_EABSOLUTE = (APR_OS_START_ERROR + 20); + public static final int APR_ERELATIVE = (APR_OS_START_ERROR + 21); + public static final int APR_EINCOMPLETE = (APR_OS_START_ERROR + 22); + public static final int APR_EABOVEROOT = (APR_OS_START_ERROR + 23); + public static final int APR_EBADPATH = (APR_OS_START_ERROR + 24); + public static final int APR_EPATHWILD = (APR_OS_START_ERROR + 25); + public static final int APR_ESYMNOTFOUND = (APR_OS_START_ERROR + 26); + public static final int APR_EPROC_UNKNOWN = (APR_OS_START_ERROR + 27); + public static final int APR_ENOTENOUGHENTROPY = (APR_OS_START_ERROR + 28); + + /** APR Status Values + *
+     * APR STATUS VALUES
+     * APR_INCHILD        Program is currently executing in the child
+     * APR_INPARENT       Program is currently executing in the parent
+     * APR_DETACH         The thread is detached
+     * APR_NOTDETACH      The thread is not detached
+     * APR_CHILD_DONE     The child has finished executing
+     * APR_CHILD_NOTDONE  The child has not finished executing
+     * APR_TIMEUP         The operation did not finish before the timeout
+     * APR_INCOMPLETE     The operation was incomplete although some processing
+     *                    was performed and the results are partially valid
+     * APR_BADCH          Getopt found an option not in the option string
+     * APR_BADARG         Getopt found an option that is missing an argument
+     *                    and an argument was specified in the option string
+     * APR_EOF            APR has encountered the end of the file
+     * APR_NOTFOUND       APR was unable to find the socket in the poll structure
+     * APR_ANONYMOUS      APR is using anonymous shared memory
+     * APR_FILEBASED      APR is using a file name as the key to the shared memory
+     * APR_KEYBASED       APR is using a shared key as the key to the shared memory
+     * APR_EINIT          Ininitalizer value.  If no option has been found, but
+     *                    the status variable requires a value, this should be used
+     * APR_ENOTIMPL       The APR function has not been implemented on this
+     *                    platform, either because nobody has gotten to it yet,
+     *                    or the function is impossible on this platform.
+     * APR_EMISMATCH      Two passwords do not match.
+     * APR_EBUSY          The given lock was busy.
+     * 
+ * + */ + public static final int APR_INCHILD = (APR_OS_START_STATUS + 1); + public static final int APR_INPARENT = (APR_OS_START_STATUS + 2); + public static final int APR_DETACH = (APR_OS_START_STATUS + 3); + public static final int APR_NOTDETACH = (APR_OS_START_STATUS + 4); + public static final int APR_CHILD_DONE = (APR_OS_START_STATUS + 5); + public static final int APR_CHILD_NOTDONE = (APR_OS_START_STATUS + 6); + public static final int APR_TIMEUP = (APR_OS_START_STATUS + 7); + public static final int APR_INCOMPLETE = (APR_OS_START_STATUS + 8); + public static final int APR_BADCH = (APR_OS_START_STATUS + 12); + public static final int APR_BADARG = (APR_OS_START_STATUS + 13); + public static final int APR_EOF = (APR_OS_START_STATUS + 14); + public static final int APR_NOTFOUND = (APR_OS_START_STATUS + 15); + public static final int APR_ANONYMOUS = (APR_OS_START_STATUS + 19); + public static final int APR_FILEBASED = (APR_OS_START_STATUS + 20); + public static final int APR_KEYBASED = (APR_OS_START_STATUS + 21); + public static final int APR_EINIT = (APR_OS_START_STATUS + 22); + public static final int APR_ENOTIMPL = (APR_OS_START_STATUS + 23); + public static final int APR_EMISMATCH = (APR_OS_START_STATUS + 24); + public static final int APR_EBUSY = (APR_OS_START_STATUS + 25); + + public static final int TIMEUP = (APR_OS_START_USERERR + 1); + public static final int EAGAIN = (APR_OS_START_USERERR + 2); + public static final int EINTR = (APR_OS_START_USERERR + 3); + public static final int EINPROGRESS = (APR_OS_START_USERERR + 4); + public static final int ETIMEDOUT = (APR_OS_START_USERERR + 5); + + private static native boolean is(int err, int idx); + /** + * APR_STATUS_IS Status Value Tests + *
Warning : For any particular error condition, more than one of these tests + * may match. This is because platform-specific error codes may not + * always match the semantics of the POSIX codes these tests (and the + * corresponding APR error codes) are named after. A notable example + * are the APR_STATUS_IS_ENOENT and APR_STATUS_IS_ENOTDIR tests on + * Win32 platforms. The programmer should always be aware of this and + * adjust the order of the tests accordingly. + * + */ + public static final boolean APR_STATUS_IS_ENOSTAT(int s) { return is(s, 1); } + public static final boolean APR_STATUS_IS_ENOPOOL(int s) { return is(s, 2); } + /* empty slot: +3 */ + public static final boolean APR_STATUS_IS_EBADDATE(int s) { return is(s, 4); } + public static final boolean APR_STATUS_IS_EINVALSOCK(int s) { return is(s, 5); } + public static final boolean APR_STATUS_IS_ENOPROC(int s) { return is(s, 6); } + public static final boolean APR_STATUS_IS_ENOTIME(int s) { return is(s, 7); } + public static final boolean APR_STATUS_IS_ENODIR(int s) { return is(s, 8); } + public static final boolean APR_STATUS_IS_ENOLOCK(int s) { return is(s, 9); } + public static final boolean APR_STATUS_IS_ENOPOLL(int s) { return is(s, 10); } + public static final boolean APR_STATUS_IS_ENOSOCKET(int s) { return is(s, 11); } + public static final boolean APR_STATUS_IS_ENOTHREAD(int s) { return is(s, 12); } + public static final boolean APR_STATUS_IS_ENOTHDKEY(int s) { return is(s, 13); } + public static final boolean APR_STATUS_IS_EGENERAL(int s) { return is(s, 14); } + public static final boolean APR_STATUS_IS_ENOSHMAVAIL(int s){ return is(s, 15); } + public static final boolean APR_STATUS_IS_EBADIP(int s) { return is(s, 16); } + public static final boolean APR_STATUS_IS_EBADMASK(int s) { return is(s, 17); } + /* empty slot: +18 */ + public static final boolean APR_STATUS_IS_EDSOPEN(int s) { return is(s, 19); } + public static final boolean APR_STATUS_IS_EABSOLUTE(int s) { return is(s, 20); } + public static final boolean APR_STATUS_IS_ERELATIVE(int s) { return is(s, 21); } + public static final boolean APR_STATUS_IS_EINCOMPLETE(int s){ return is(s, 22); } + public static final boolean APR_STATUS_IS_EABOVEROOT(int s) { return is(s, 23); } + public static final boolean APR_STATUS_IS_EBADPATH(int s) { return is(s, 24); } + public static final boolean APR_STATUS_IS_EPATHWILD(int s) { return is(s, 25); } + public static final boolean APR_STATUS_IS_ESYMNOTFOUND(int s) { return is(s, 26); } + public static final boolean APR_STATUS_IS_EPROC_UNKNOWN(int s) { return is(s, 27); } + public static final boolean APR_STATUS_IS_ENOTENOUGHENTROPY(int s) { return is(s, 28); } + + /* + * APR_Error + */ + public static final boolean APR_STATUS_IS_INCHILD(int s) { return is(s, 51); } + public static final boolean APR_STATUS_IS_INPARENT(int s) { return is(s, 52); } + public static final boolean APR_STATUS_IS_DETACH(int s) { return is(s, 53); } + public static final boolean APR_STATUS_IS_NOTDETACH(int s) { return is(s, 54); } + public static final boolean APR_STATUS_IS_CHILD_DONE(int s) { return is(s, 55); } + public static final boolean APR_STATUS_IS_CHILD_NOTDONE(int s) { return is(s, 56); } + public static final boolean APR_STATUS_IS_TIMEUP(int s) { return is(s, 57); } + public static final boolean APR_STATUS_IS_INCOMPLETE(int s) { return is(s, 58); } + /* empty slot: +9 */ + /* empty slot: +10 */ + /* empty slot: +11 */ + public static final boolean APR_STATUS_IS_BADCH(int s) { return is(s, 62); } + public static final boolean APR_STATUS_IS_BADARG(int s) { return is(s, 63); } + public static final boolean APR_STATUS_IS_EOF(int s) { return is(s, 64); } + public static final boolean APR_STATUS_IS_NOTFOUND(int s) { return is(s, 65); } + /* empty slot: +16 */ + /* empty slot: +17 */ + /* empty slot: +18 */ + public static final boolean APR_STATUS_IS_ANONYMOUS(int s) { return is(s, 69); } + public static final boolean APR_STATUS_IS_FILEBASED(int s) { return is(s, 70); } + public static final boolean APR_STATUS_IS_KEYBASED(int s) { return is(s, 71); } + public static final boolean APR_STATUS_IS_EINIT(int s) { return is(s, 72); } + public static final boolean APR_STATUS_IS_ENOTIMPL(int s) { return is(s, 73); } + public static final boolean APR_STATUS_IS_EMISMATCH(int s) { return is(s, 74); } + public static final boolean APR_STATUS_IS_EBUSY(int s) { return is(s, 75); } + + /* Socket errors */ + public static final boolean APR_STATUS_IS_EAGAIN(int s) { return is(s, 90); } + public static final boolean APR_STATUS_IS_ETIMEDOUT(int s) { return is(s, 91); } + public static final boolean APR_STATUS_IS_ECONNABORTED(int s) { return is(s, 92); } + public static final boolean APR_STATUS_IS_ECONNRESET(int s) { return is(s, 93); } + public static final boolean APR_STATUS_IS_EINPROGRESS(int s) { return is(s, 94); } + public static final boolean APR_STATUS_IS_EINTR(int s) { return is(s, 95); } + public static final boolean APR_STATUS_IS_ENOTSOCK(int s) { return is(s, 96); } + public static final boolean APR_STATUS_IS_EINVAL(int s) { return is(s, 97); } + +} Added: geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Stdlib.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Stdlib.java?rev=1214761&view=auto ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Stdlib.java (added) +++ geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Stdlib.java Thu Dec 15 13:55:25 2011 @@ -0,0 +1,90 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tomcat.jni; + +/** Stdlib + * + * @author Mladen Turk + * @version $Id: Stdlib.java 939351 2010-04-29 15:41:54Z kkolinko $ + */ + +public class Stdlib { + + /** + * Read from plain memory + * @param dst Destination byte array + * @param src Source memory address + * @param sz Number of bytes to copy. + */ + public static native boolean memread(byte [] dst, long src, int sz); + + /** + * Write to plain memory + * @param dst Destination memory address + * @param src Source byte array + * @param sz Number of bytes to copy. + */ + public static native boolean memwrite(long dst, byte [] src, int sz); + + /** + * Sets buffers to a specified character + * @param dst Destination memory address + * @param c Character to set. + * @param sz Number of characters. + */ + public static native boolean memset(long dst, int c, int sz); + + /** + * Allocates memory blocks. + * @param sz Bytes to allocate. + */ + public static native long malloc(int sz); + + /** + * Reallocate memory blocks. + * @param mem Pointer to previously allocated memory block. + * @param sz New size in bytes. + */ + public static native long realloc(long mem, int sz); + + /** + * Allocates an array in memory with elements initialized to 0. + * @param num Number of elements. + * @param sz Length in bytes of each element. + */ + public static native long calloc(int num, int sz); + + /** + * Deallocates or frees a memory block. + * @param mem Previously allocated memory block to be freed. + */ + public static native void free(long mem); + + /** + * Get current process pid. + * @return current pid or < 1 in case of error. + */ + public static native int getpid(); + + /** + * Get current process parent pid. + * @return parent pid or < 1 in case of error. + */ + public static native int getppid(); + +} Added: geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Time.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Time.java?rev=1214761&view=auto ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Time.java (added) +++ geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/Time.java Thu Dec 15 13:55:25 2011 @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tomcat.jni; + +/** Time + * + * @author Mladen Turk + * @version $Id: Time.java 939351 2010-04-29 15:41:54Z kkolinko $ + */ + +public class Time { + + /** number of microseconds per second */ + public static final long APR_USEC_PER_SEC = 1000000L; + /** number of miliseconds per microsecond */ + public static final long APR_MSEC_PER_USEC = 1000L; + + /** @return apr_time_t as a second */ + public static long sec(long t) + { + return t / APR_USEC_PER_SEC; + } + + /** @return apr_time_t as a msec */ + public static long msec(long t) + { + return t / APR_MSEC_PER_USEC; + } + + /** + * number of microseconds since 00:00:00 january 1, 1970 UTC + * @return the current time + */ + public static native long now(); + + /** + * Formats dates in the RFC822 + * format in an efficient manner. + * @param t the time to convert + */ + public static native String rfc822(long t); + + /** + * Formats dates in the ctime() format + * in an efficient manner. + * Unlike ANSI/ISO C ctime(), apr_ctime() does not include + * a \n at the end of the string. + * @param t the time to convert + */ + public static native String ctime(long t); + + /** + * Sleep for the specified number of micro-seconds. + *
Warning : May sleep for longer than the specified time. + * @param t desired amount of time to sleep. + */ + public static native void sleep(long t); + +} Added: geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/User.java URL: http://svn.apache.org/viewvc/geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/User.java?rev=1214761&view=auto ============================================================================== --- geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/User.java (added) +++ geronimo/external/trunk/tomcat-parent-6.0.35/catalina/src/main/java/org/apache/tomcat/jni/User.java Thu Dec 15 13:55:25 2011 @@ -0,0 +1,127 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tomcat.jni; + +/** User + * + * @author Mladen Turk + * @version $Id: User.java 939351 2010-04-29 15:41:54Z kkolinko $ + */ + +public class User { + + /** + * Get the userid (and groupid) of the calling process + * This function is available only if APR_HAS_USER is defined. + * @param p The pool from which to allocate working space + * @return Returns the user id + */ + public static native long uidCurrent(long p) + throws Error; + + /** + * Get the groupid of the calling process + * This function is available only if APR_HAS_USER is defined. + * @param p The pool from which to allocate working space + * @return Returns the group id + */ + public static native long gidCurrent(long p) + throws Error; + + + /** + * Get the userid for the specified username + * This function is available only if APR_HAS_USER is defined. + * @param username The username to lookup + * @param p The pool from which to allocate working space + * @return Returns the user id + */ + public static native long uid(String username, long p) + throws Error; + + /** + * Get the groupid for the specified username + * This function is available only if APR_HAS_USER is defined. + * @param username The username to lookup + * @param p The pool from which to allocate working space + * @return Returns the user's group id + */ + public static native long usergid(String username, long p) + throws Error; + + /** + * Get the groupid for a specified group name + * This function is available only if APR_HAS_USER is defined. + * @param groupname The group name to look up + * @param p The pool from which to allocate working space + * @return Returns the user's group id + */ + public static native long gid(String groupname, long p) + throws Error; + + /** + * Get the user name for a specified userid + * This function is available only if APR_HAS_USER is defined. + * @param userid The userid + * @param p The pool from which to allocate the string + * @return New string containing user name + */ + public static native String username(long userid, long p) + throws Error; + + /** + * Get the group name for a specified groupid + * This function is available only if APR_HAS_USER is defined. + * @param groupid The groupid + * @param p The pool from which to allocate the string + * @return New string containing group name + */ + public static native String groupname(long groupid, long p) + throws Error; + + /** + * Compare two user identifiers for equality. + * This function is available only if APR_HAS_USER is defined. + * @param left One uid to test + * @param right Another uid to test + * @return APR_SUCCESS if the apr_uid_t strutures identify the same user, + * APR_EMISMATCH if not, APR_BADARG if an apr_uid_t is invalid. + */ + public static native int uidcompare(long left, long right); + + /** + * Compare two group identifiers for equality. + * This function is available only if APR_HAS_USER is defined. + * @param left One gid to test + * @param right Another gid to test + * @return APR_SUCCESS if the apr_gid_t strutures identify the same group, + * APR_EMISMATCH if not, APR_BADARG if an apr_gid_t is invalid. + */ + public static native int gidcompare(long left, long right); + + /** + * Get the home directory for the named user + * This function is available only if APR_HAS_USER is defined. + * @param username The named user + * @param p The pool from which to allocate the string + * @return New string containing directory name + */ + public static native String homepath(String username, long p) + throws Error; + +}