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]