You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2006/07/08 09:18:56 UTC
svn commit: r420070 - in /tomcat/connectors/trunk/jni:
java/org/apache/tomcat/jni/Thread.java native/libtcnative.dsp
native/src/address.c native/src/multicast.c native/src/network.c
native/src/os.c native/src/thread.c native/tcnative.dsp
Author: mturk
Date: Sat Jul 8 00:18:55 2006
New Revision: 420070
URL: http://svn.apache.org/viewvc?rev=420070&view=rev
Log:
Move API specific code to the separate files.
Added:
tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java
tomcat/connectors/trunk/jni/native/src/address.c
tomcat/connectors/trunk/jni/native/src/multicast.c
tomcat/connectors/trunk/jni/native/src/thread.c
Modified:
tomcat/connectors/trunk/jni/native/libtcnative.dsp
tomcat/connectors/trunk/jni/native/src/network.c
tomcat/connectors/trunk/jni/native/src/os.c
tomcat/connectors/trunk/jni/native/tcnative.dsp
Added: tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java (added)
+++ tomcat/connectors/trunk/jni/java/org/apache/tomcat/jni/Thread.java Sat Jul 8 00:18:55 2006
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2000-2005 The Apache Software Foundation
+ *
+ * Licensed 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;
+
+/** Thread
+ *
+ * @author Mladen Turk
+ * @version $Revision: 300969 $, $Date: 2005-07-12 16:56:11 +0200 (uto, 12 srp 2005) $
+ */
+
+public class Thread {
+
+ /**
+ * Get the current thread ID handle.
+ */
+ public static native long current();
+
+}
\ No newline at end of file
Modified: tomcat/connectors/trunk/jni/native/libtcnative.dsp
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/libtcnative.dsp?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/libtcnative.dsp (original)
+++ tomcat/connectors/trunk/jni/native/libtcnative.dsp Sat Jul 8 00:18:55 2006
@@ -92,6 +92,10 @@
# PROP Default_Filter ""
# Begin Source File
+SOURCE=.\src\address.c
+# End Source File
+# Begin Source File
+
SOURCE=.\src\dir.c
# End Source File
# Begin Source File
@@ -124,6 +128,10 @@
# End Source File
# Begin Source File
+SOURCE=.\src\multicast.c
+# End Source File
+# Begin Source File
+
SOURCE=.\src\network.c
# End Source File
# Begin Source File
@@ -165,6 +173,10 @@
# Begin Source File
SOURCE=.\src\stdlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\thread.c
# End Source File
# Begin Source File
Added: tomcat/connectors/trunk/jni/native/src/address.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/address.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/address.c (added)
+++ tomcat/connectors/trunk/jni/native/src/address.c Sat Jul 8 00:18:55 2006
@@ -0,0 +1,105 @@
+/* Copyright 2000-2006 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 416783 $, $Date: 2006-06-23 20:06:15 +0200 (pet, 23 lip 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jlong, Address, info)(TCN_STDARGS,
+ jstring hostname,
+ jint family, jint port,
+ jint flags, jlong pool)
+{
+ apr_pool_t *p = J2P(pool, apr_pool_t *);
+ TCN_ALLOC_CSTRING(hostname);
+ apr_sockaddr_t *sa = NULL;
+ apr_int32_t f;
+
+
+ UNREFERENCED(o);
+ GET_S_FAMILY(f, family);
+ TCN_THROW_IF_ERR(apr_sockaddr_info_get(&sa,
+ J2S(hostname), f, (apr_port_t)port,
+ (apr_int32_t)flags, p), sa);
+
+cleanup:
+ TCN_FREE_CSTRING(hostname);
+ return P2J(sa);
+}
+
+TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS,
+ jlong sa, jint flags)
+{
+ apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+ char *hostname;
+
+ UNREFERENCED(o);
+ if (apr_getnameinfo(&hostname, s, (apr_int32_t)flags) == APR_SUCCESS)
+ return AJP_TO_JSTRING(hostname);
+ else
+ return NULL;
+}
+
+TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa)
+{
+ apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+ char *ipaddr;
+
+ UNREFERENCED(o);
+ if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS)
+ return AJP_TO_JSTRING(ipaddr);
+ else
+ return NULL;
+}
+
+TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which,
+ jlong sock)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ apr_sockaddr_t *sa = NULL;
+
+ UNREFERENCED(o);
+ TCN_THROW_IF_ERR(apr_socket_addr_get(&sa,
+ (apr_interface_e)which, s->sock), sa);
+cleanup:
+ return P2J(sa);
+}
+
+TCN_IMPLEMENT_CALL(jint, Address, equal)(TCN_STDARGS,
+ jlong a, jlong b)
+{
+ apr_sockaddr_t *sa = J2P(a, apr_sockaddr_t *);
+ apr_sockaddr_t *sb = J2P(b, apr_sockaddr_t *);
+
+ UNREFERENCED_STDARGS;
+ return apr_sockaddr_equal(sa, sb) ? JNI_TRUE : JNI_FALSE;
+}
+
+TCN_IMPLEMENT_CALL(jint, Address, getservbyname)(TCN_STDARGS,
+ jlong sa, jstring servname)
+{
+ apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
+ TCN_ALLOC_CSTRING(servname);
+ apr_status_t rv;
+
+ UNREFERENCED(o);
+ rv = apr_getservbyname(s, J2S(servname));
+ TCN_FREE_CSTRING(servname);
+ return (jint)rv;
+}
Added: tomcat/connectors/trunk/jni/native/src/multicast.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/multicast.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/multicast.c (added)
+++ tomcat/connectors/trunk/jni/native/src/multicast.c Sat Jul 8 00:18:55 2006
@@ -0,0 +1,71 @@
+/* Copyright 2000-2006 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 416783 $, $Date: 2006-06-23 20:06:15 +0200 (pet, 23 lip 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, join)(TCN_STDARGS,
+ jlong sock, jlong join,
+ jlong iface, jlong source)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ apr_sockaddr_t *ja = J2P(join, apr_sockaddr_t *);
+ apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+ apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
+ UNREFERENCED_STDARGS;
+ return (jint)apr_mcast_join(s->sock, ja, ia, sa);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, leave)(TCN_STDARGS,
+ jlong sock, jlong addr,
+ jlong iface, jlong source)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ apr_sockaddr_t *aa = J2P(addr, apr_sockaddr_t *);
+ apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+ apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
+ UNREFERENCED_STDARGS;
+ return (jint)apr_mcast_leave(s->sock, aa, ia, sa);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, hops)(TCN_STDARGS,
+ jlong sock, jint ttl)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ UNREFERENCED_STDARGS;
+ return (jint)apr_mcast_hops(s->sock, (apr_byte_t)ttl);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, loopback)(TCN_STDARGS,
+ jlong sock, jboolean opt)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ UNREFERENCED_STDARGS;
+ return (jint)apr_mcast_loopback(s->sock, opt == JNI_TRUE ? 1 : 0);
+};
+
+TCN_IMPLEMENT_CALL(jint, Mulicast, ointerface)(TCN_STDARGS,
+ jlong sock, jlong iface)
+{
+ tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+ apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
+ UNREFERENCED_STDARGS;
+ return (jint)apr_mcast_interface(s->sock, ia);
+};
Modified: tomcat/connectors/trunk/jni/native/src/network.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/network.c?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/network.c (original)
+++ tomcat/connectors/trunk/jni/native/src/network.c Sat Jul 8 00:18:55 2006
@@ -22,7 +22,9 @@
#include "tcn.h"
#ifdef TCN_DO_STATISTICS
+
#include "apr_atomic.h"
+
static volatile apr_uint32_t sp_created = 0;
static volatile apr_uint32_t sp_closed = 0;
static volatile apr_uint32_t sp_cleared = 0;
@@ -45,25 +47,6 @@
static volatile apr_uint32_t sf_num_send = 0;
static volatile apr_off_t sf_tot_send = 0;
-#endif
-
-#if !APR_HAVE_IPV6
-#define APR_INET6 APR_INET
-#endif
-
-#define GET_S_FAMILY(T, F) \
- if (F == 0) T = APR_UNSPEC; \
- else if (F == 1) T = APR_INET; \
- else if (F == 2) T = APR_INET6; \
- else T = F
-
-#define GET_S_TYPE(T, F) \
- if (F == 0) T = SOCK_STREAM; \
- else if (F == 1) T = SOCK_DGRAM; \
- else T = F
-
-#ifdef TCN_DO_STATISTICS
-
void sp_network_dump_statistics()
{
fprintf(stderr, "Network Statistics ......\n");
@@ -90,90 +73,7 @@
}
-#endif
-
-TCN_IMPLEMENT_CALL(jlong, Address, info)(TCN_STDARGS,
- jstring hostname,
- jint family, jint port,
- jint flags, jlong pool)
-{
- apr_pool_t *p = J2P(pool, apr_pool_t *);
- TCN_ALLOC_CSTRING(hostname);
- apr_sockaddr_t *sa = NULL;
- apr_int32_t f;
-
-
- UNREFERENCED(o);
- GET_S_FAMILY(f, family);
- TCN_THROW_IF_ERR(apr_sockaddr_info_get(&sa,
- J2S(hostname), f, (apr_port_t)port,
- (apr_int32_t)flags, p), sa);
-
-cleanup:
- TCN_FREE_CSTRING(hostname);
- return P2J(sa);
-}
-
-TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS,
- jlong sa, jint flags)
-{
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
- char *hostname;
-
- UNREFERENCED(o);
- if (apr_getnameinfo(&hostname, s, (apr_int32_t)flags) == APR_SUCCESS)
- return AJP_TO_JSTRING(hostname);
- else
- return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa)
-{
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
- char *ipaddr;
-
- UNREFERENCED(o);
- if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS)
- return AJP_TO_JSTRING(ipaddr);
- else
- return NULL;
-}
-
-TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which,
- jlong sock)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- apr_sockaddr_t *sa = NULL;
-
- UNREFERENCED(o);
- TCN_THROW_IF_ERR(apr_socket_addr_get(&sa,
- (apr_interface_e)which, s->sock), sa);
-cleanup:
- return P2J(sa);
-}
-
-TCN_IMPLEMENT_CALL(jint, Address, equal)(TCN_STDARGS,
- jlong a, jlong b)
-{
- apr_sockaddr_t *sa = J2P(a, apr_sockaddr_t *);
- apr_sockaddr_t *sb = J2P(b, apr_sockaddr_t *);
-
- UNREFERENCED_STDARGS;
- return apr_sockaddr_equal(sa, sb) ? JNI_TRUE : JNI_FALSE;
-}
-
-TCN_IMPLEMENT_CALL(jint, Address, getservbyname)(TCN_STDARGS,
- jlong sa, jstring servname)
-{
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *);
- TCN_ALLOC_CSTRING(servname);
- apr_status_t rv;
-
- UNREFERENCED(o);
- rv = apr_getservbyname(s, J2S(servname));
- TCN_FREE_CSTRING(servname);
- return (jint)rv;
-}
+#endif /* TCN_DO_STATISTICS */
static apr_status_t sp_socket_cleanup(void *data)
{
@@ -1308,52 +1208,3 @@
TCN_FREE_CSTRING(key);
return rv;
}
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, join)(TCN_STDARGS,
- jlong sock, jlong join,
- jlong iface, jlong source)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- apr_sockaddr_t *ja = J2P(join, apr_sockaddr_t *);
- apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
- apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
- UNREFERENCED_STDARGS;
- return (jint)apr_mcast_join(s->sock, ja, ia, sa);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, leave)(TCN_STDARGS,
- jlong sock, jlong addr,
- jlong iface, jlong source)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- apr_sockaddr_t *aa = J2P(addr, apr_sockaddr_t *);
- apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
- apr_sockaddr_t *sa = J2P(source, apr_sockaddr_t *);
- UNREFERENCED_STDARGS;
- return (jint)apr_mcast_leave(s->sock, aa, ia, sa);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, hops)(TCN_STDARGS,
- jlong sock, jint ttl)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- UNREFERENCED_STDARGS;
- return (jint)apr_mcast_hops(s->sock, (apr_byte_t)ttl);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, loopback)(TCN_STDARGS,
- jlong sock, jboolean opt)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- UNREFERENCED_STDARGS;
- return (jint)apr_mcast_loopback(s->sock, opt == JNI_TRUE ? 1 : 0);
-};
-
-TCN_IMPLEMENT_CALL(jint, Mulicast, ointerface)(TCN_STDARGS,
- jlong sock, jlong iface)
-{
- tcn_socket_t *s = J2P(sock, tcn_socket_t *);
- apr_sockaddr_t *ia = J2P(iface, apr_sockaddr_t *);
- UNREFERENCED_STDARGS;
- return (jint)apr_mcast_interface(s->sock, ia);
-};
Modified: tomcat/connectors/trunk/jni/native/src/os.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/os.c?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/os.c (original)
+++ tomcat/connectors/trunk/jni/native/src/os.c Sat Jul 8 00:18:55 2006
@@ -19,14 +19,8 @@
* @version $Revision$, $Date$
*/
-#include "apr.h"
-#include "apr_pools.h"
-#include "apr_portable.h"
#include "tcn.h"
-
-
-
TCN_IMPLEMENT_CALL(jstring, OS, defaultEncoding)(TCN_STDARGS, jlong pool)
{
apr_pool_t *p = J2P(pool, apr_pool_t *);
@@ -43,8 +37,3 @@
return AJP_TO_JSTRING(apr_os_locale_encoding(p));
}
-TCN_IMPLEMENT_CALL(jlong, OS, threadCurrent)(TCN_STDARGS)
-{
- UNREFERENCED_STDARGS;
- return (jlong)((unsigned long)apr_os_thread_current());
-}
Added: tomcat/connectors/trunk/jni/native/src/thread.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/src/thread.c?rev=420070&view=auto
==============================================================================
--- tomcat/connectors/trunk/jni/native/src/thread.c (added)
+++ tomcat/connectors/trunk/jni/native/src/thread.c Sat Jul 8 00:18:55 2006
@@ -0,0 +1,28 @@
+/* Copyright 2000-2005 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ * @version $Revision: 393735 $, $Date: 2006-04-13 08:41:49 +0200 (Äet, 13 tra 2006) $
+ */
+
+#include "tcn.h"
+
+TCN_IMPLEMENT_CALL(jlong, Thread, current)(TCN_STDARGS)
+{
+ UNREFERENCED_STDARGS;
+ return (jlong)((unsigned long)apr_os_thread_current());
+}
Modified: tomcat/connectors/trunk/jni/native/tcnative.dsp
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jni/native/tcnative.dsp?rev=420070&r1=420069&r2=420070&view=diff
==============================================================================
--- tomcat/connectors/trunk/jni/native/tcnative.dsp (original)
+++ tomcat/connectors/trunk/jni/native/tcnative.dsp Sat Jul 8 00:18:55 2006
@@ -92,6 +92,10 @@
# PROP Default_Filter ""
# Begin Source File
+SOURCE=.\src\address.c
+# End Source File
+# Begin Source File
+
SOURCE=.\src\dir.c
# End Source File
# Begin Source File
@@ -124,6 +128,10 @@
# End Source File
# Begin Source File
+SOURCE=.\src\multicast.c
+# End Source File
+# Begin Source File
+
SOURCE=.\src\network.c
# End Source File
# Begin Source File
@@ -165,6 +173,10 @@
# Begin Source File
SOURCE=.\src\stdlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\thread.c
# End Source File
# Begin Source File
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org