mturk 2005/06/18 09:36:15 Modified: jni/java/org/apache/tomcat/jni Socket.java jni/native/include tcn.h jni/native/src network.c Log: Add Socket.get method for obtaining private struct members. Revision Changes Path 1.18 +21 -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.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- Socket.java 18 Jun 2005 08:03:21 -0000 1.17 +++ Socket.java 18 Jun 2005 16:36:15 -0000 1.18 @@ -97,6 +97,12 @@ 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). @@ -468,4 +474,18 @@ 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 + * <PRE> + * SOCKET_GET_POOL - The socket pool + * SOCKET_GET_IMPL - The socket implementation object + * SOCKET_GET_APRS - APR socket + * SOCKET_GET_TYPE - Socket type + * </PRE> + * @return The stucture member address + */ + private static native long get(long socket, int what); + } 1.25 +6 -1 jakarta-tomcat-connectors/jni/native/include/tcn.h Index: tcn.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/include/tcn.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- tcn.h 18 Jun 2005 14:34:28 -0000 1.24 +++ tcn.h 18 Jun 2005 16:36:15 -0000 1.25 @@ -113,6 +113,11 @@ #define TCN_SOCKET_UNIX 3 #define TCN_SOCKET_NTPIPE 4 +#define TCN_SOCKET_GET_POOL 0 +#define TCN_SOCKET_GET_IMPL 1 +#define TCN_SOCKET_GET_APRS 2 +#define TCN_SOCKET_GET_TYPE 3 + typedef struct { apr_pool_t *pool; apr_socket_t *sock; 1.37 +24 -1 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.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- network.c 18 Jun 2005 16:07:59 -0000 1.36 +++ network.c 18 Jun 2005 16:36:15 -0000 1.37 @@ -278,6 +278,29 @@ return P2J(n); } +TCN_IMPLEMENT_CALL(jlong, Socket, get)(TCN_STDARGS, jlong sock, jint what) +{ + tcn_socket_t *s = J2P(sock, tcn_socket_t *); + UNREFERENCED_STDARGS; + TCN_ASSERT(sock != 0); + + switch (what) { + case TCN_SOCKET_GET_POOL: + return P2J(s->pool); + break; + case TCN_SOCKET_GET_IMPL: + return P2J(s->opaque); + break; + case TCN_SOCKET_GET_APRS: + return P2J(s->sock); + break; + case TCN_SOCKET_GET_TYPE: + return P2J(s->type); + break; + } + return 0; +} + TCN_IMPLEMENT_CALL(jint, Socket, shutdown)(TCN_STDARGS, jlong sock, jint how) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]