mturk 2005/06/18 07:34:28
Modified: jni/native/include tcn.h
jni/native/src network.c
Log:
Add more assertions to the network for DEBUG builds.
Revision Changes Path
1.24 +6 -5 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.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- tcn.h 18 Jun 2005 14:03:09 -0000 1.23
+++ tcn.h 18 Jun 2005 14:34:28 -0000 1.24
@@ -107,10 +107,11 @@
#define TCN_GETNET_METHOD(FN) method_##FN
-#define TCN_SOCKET_APR 0
-#define TCN_SOCKET_SSL 1
-#define TCN_SOCKET_UNIX 2
-#define TCN_SOCKET_NTPIPE 3
+#define TCN_SOCKET_UNKNOWN 0
+#define TCN_SOCKET_APR 1
+#define TCN_SOCKET_SSL 2
+#define TCN_SOCKET_UNIX 3
+#define TCN_SOCKET_NTPIPE 4
typedef struct {
apr_pool_t *pool;
1.33 +31 -11 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.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- network.c 18 Jun 2005 14:03:09 -0000 1.32
+++ network.c 18 Jun 2005 14:34:28 -0000 1.33
@@ -233,21 +233,24 @@
GET_S_FAMILY(f, family);
GET_S_TYPE(t, type);
- TCN_THROW_IF_ERR(apr_socket_create(&s,
- f, t, protocol, p), a);
-
+ if (family > 0) {
+ TCN_THROW_IF_ERR(apr_socket_create(&s,
+ f, t, protocol, p), a);
+ }
#ifdef TCN_DO_STATISTICS
sp_created++;
#endif
a = (tcn_socket_t *)apr_pcalloc(p, sizeof(tcn_socket_t));
a->sock = s;
a->pool = p;
- a->type = TCN_SOCKET_APR;
- a->recv = APR_socket_recv;
- a->send = APR_socket_send;
- a->sendv = APR_socket_sendv;
- a->shutdown = APR_socket_shutdown;
- a->close = NULL;
+ if (family > 0) {
+ a->type = TCN_SOCKET_APR;
+ a->recv = APR_socket_recv;
+ a->send = APR_socket_send;
+ a->sendv = APR_socket_sendv;
+ a->shutdown = APR_socket_shutdown;
+ a->close = NULL;
+ }
a->opaque = s;
apr_pool_cleanup_register(p, (const void *)a,
sp_socket_cleanup,
@@ -262,6 +265,7 @@
{
tcn_socket_t *s = J2P(sock, tcn_socket_t *);
UNREFERENCED_STDARGS;
+ TCN_ASSERT(sock != 0);
apr_pool_destroy(s->pool);
}
@@ -271,6 +275,7 @@
apr_pool_t *n;
UNREFERENCED(o);
+ TCN_ASSERT(sock != 0);
TCN_THROW_IF_ERR(apr_pool_create(&n, s->pool), n);
cleanup:
return P2J(n);
@@ -313,6 +318,7 @@
UNREFERENCED_STDARGS;
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
return (jint)apr_socket_bind(s->sock, a);
}
@@ -323,6 +329,7 @@
UNREFERENCED_STDARGS;
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
return (jint)apr_socket_listen(s->sock, backlog);
}
@@ -336,6 +343,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_THROW_IF_ERR(apr_socket_accept(&n, s->sock, p), n);
@@ -371,6 +379,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_THROW_IF_ERR(apr_pool_create(&p, s->pool), p);
TCN_THROW_IF_ERR(apr_socket_accept(&n, s->sock, p), n);
@@ -408,6 +417,7 @@
UNREFERENCED_STDARGS;
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
return (jint)apr_socket_connect(s->sock, a);
}
@@ -420,6 +430,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
#ifdef TCN_DO_STATISTICS
sp_max_send = TCN_MAX(sp_max_send, nbytes);
sp_min_send = TCN_MIN(sp_min_send, nbytes);
@@ -430,7 +441,7 @@
if (tosend <= TCN_BUFFER_SZ) {
char sb[TCN_BUFFER_SZ];
(*e)->GetByteArrayRegion(e, buf, offset, tosend, (jbyte *)sb);
- ss = apr_socket_send(s->sock, sb, &nbytes);
+ ss = (*s->send)(s->opaque, sb, &nbytes);
}
else {
jbyte *bytes;
@@ -533,6 +544,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
bytes = (*e)->GetByteArrayElements(e, buf, NULL);
TCN_ASSERT(bytes != NULL);
@@ -611,6 +623,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_ASSERT(buf != NULL);
if ((ss = apr_socket_timeout_get(s->sock, &t)) != APR_SUCCESS)
@@ -705,6 +718,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
TCN_ASSERT(buf != NULL);
+ TCN_ASSERT(s->sock != NULL);
bytes = (char *)(*e)->GetDirectBufferAddress(e, buf);
TCN_ASSERT(bytes != NULL);
@@ -751,6 +765,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_ASSERT(buf != NULL);
ss = apr_socket_recvfrom(f, s->sock, (apr_int32_t)flags, bytes + offset,
&nbytes);
@@ -782,6 +797,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_THROW_IF_ERR(apr_socket_opt_get(s->sock, (apr_int32_t)opt,
&on), on);
cleanup:
@@ -795,6 +811,7 @@
UNREFERENCED_STDARGS;
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
return (jint)apr_socket_timeout_set(s->sock, J2T(timeout));
}
@@ -805,6 +822,7 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
TCN_THROW_IF_ERR(apr_socket_timeout_get(s->sock, &timeout), timeout);
cleanup:
@@ -818,6 +836,8 @@
UNREFERENCED_STDARGS;
TCN_ASSERT(sock != 0);
+ TCN_ASSERT(s->sock != NULL);
+
if (apr_socket_atmark(s->sock, &mark) != APR_SUCCESS)
return JNI_FALSE;
return mark ? JNI_TRUE : JNI_FALSE;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]