You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2015/05/23 10:42:59 UTC
svn commit: r1681291 - in /tomcat/native/trunk/native/src: file.c network.c
Author: rjung
Date: Sat May 23 08:42:58 2015
New Revision: 1681291
URL: http://svn.apache.org/r1681291
Log:
Sync trunk with 1.1 branch: Forward ports
r1350280 | rjung | 2012-06-14 16:54:48 +0200 (Thu, 14 Jun 2012) | 3 lines
Cast pointers to fix compiler warnings about
pointer signedness differences on Solaris.
r1403635 | mturk | 2012-10-30 08:27:04 +0100 (Tue, 30 Oct 2012) | 1 line
Try to fix BZ54064. In case nothing was written, don't loop endlesly
Modified:
tomcat/native/trunk/native/src/file.c
tomcat/native/trunk/native/src/network.c
Modified: tomcat/native/trunk/native/src/file.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/file.c?rev=1681291&r1=1681290&r2=1681291&view=diff
==============================================================================
--- tomcat/native/trunk/native/src/file.c (original)
+++ tomcat/native/trunk/native/src/file.c Sat May 23 08:42:58 2015
@@ -381,13 +381,13 @@ TCN_IMPLEMENT_CALL(jint, File, writev)(T
for (i = 0; i < nvec; i++) {
ba[i] = (*e)->GetObjectArrayElement(e, bufs, i);
vec[i].iov_len = (*e)->GetArrayLength(e, ba[i]);
- vec[i].iov_base = (*e)->GetByteArrayElements(e, ba[i], NULL);
+ vec[i].iov_base = (void *)((*e)->GetByteArrayElements(e, ba[i], NULL));
}
ss = apr_file_writev(f, vec, nvec, &written);
for (i = 0; i < nvec; i++) {
- (*e)->ReleaseByteArrayElements(e, ba[i], vec[i].iov_base, JNI_ABORT);
+ (*e)->ReleaseByteArrayElements(e, ba[i], (jbyte *)vec[i].iov_base, JNI_ABORT);
}
if (ss == APR_SUCCESS)
return (jint)written;
@@ -415,7 +415,7 @@ TCN_IMPLEMENT_CALL(jint, File, writevFul
for (i = 0; i < nvec; i++) {
ba[i] = (*e)->GetObjectArrayElement(e, bufs, i);
vec[i].iov_len = (*e)->GetArrayLength(e, ba[i]);
- vec[i].iov_base = (*e)->GetByteArrayElements(e, ba[i], NULL);
+ vec[i].iov_base = (void *)((*e)->GetByteArrayElements(e, ba[i], NULL));
}
#if (APR_VERSION_MAJOR >= 1) && (APR_VERSION_MINOR >= 1)
ss = apr_file_writev_full(f, vec, nvec, &written);
@@ -424,7 +424,7 @@ TCN_IMPLEMENT_CALL(jint, File, writevFul
#endif
for (i = 0; i < nvec; i++) {
- (*e)->ReleaseByteArrayElements(e, ba[i], vec[i].iov_base,
+ (*e)->ReleaseByteArrayElements(e, ba[i], (jbyte *)vec[i].iov_base,
JNI_ABORT);
}
if (ss == APR_SUCCESS)
Modified: tomcat/native/trunk/native/src/network.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/network.c?rev=1681291&r1=1681290&r2=1681291&view=diff
==============================================================================
--- tomcat/native/trunk/native/src/network.c (original)
+++ tomcat/native/trunk/native/src/network.c Sat May 23 08:42:58 2015
@@ -601,7 +601,7 @@ TCN_IMPLEMENT_CALL(jint, Socket, sendbb)
while (sent < nbytes) {
apr_size_t wr = nbytes - sent;
ss = (*s->net->send)(s->opaque, s->jsbbuff + offset + sent, &wr);
- if (ss != APR_SUCCESS)
+ if (ss != APR_SUCCESS || wr == 0)
break;
sent += wr;
}
@@ -666,13 +666,13 @@ TCN_IMPLEMENT_CALL(jint, Socket, sendv)(
for (i = 0; i < nvec; i++) {
ba[i] = (*e)->GetObjectArrayElement(e, bufs, i);
vec[i].iov_len = (*e)->GetArrayLength(e, ba[i]);
- vec[i].iov_base = (*e)->GetByteArrayElements(e, ba[i], NULL);
+ vec[i].iov_base = (void *)((*e)->GetByteArrayElements(e, ba[i], NULL));
}
ss = (*s->net->sendv)(s->opaque, vec, nvec, &written);
for (i = 0; i < nvec; i++) {
- (*e)->ReleaseByteArrayElements(e, ba[i], vec[i].iov_base, JNI_ABORT);
+ (*e)->ReleaseByteArrayElements(e, ba[i], (jbyte*)vec[i].iov_base, JNI_ABORT);
}
if (ss == APR_SUCCESS || ((APR_STATUS_IS_EAGAIN(ss) || ss == TCN_EAGAIN) && written > 0))
return (jint)written;
@@ -1219,12 +1219,12 @@ TCN_IMPLEMENT_CALL(jlong, Socket, sendfi
for (i = 0; i < nh; i++) {
hba[i] = (*e)->GetObjectArrayElement(e, headers, i);
hvec[i].iov_len = (*e)->GetArrayLength(e, hba[i]);
- hvec[i].iov_base = (*e)->GetByteArrayElements(e, hba[i], NULL);
+ hvec[i].iov_base = (void *)((*e)->GetByteArrayElements(e, hba[i], NULL));
}
for (i = 0; i < nt; i++) {
tba[i] = (*e)->GetObjectArrayElement(e, trailers, i);
tvec[i].iov_len = (*e)->GetArrayLength(e, tba[i]);
- tvec[i].iov_base = (*e)->GetByteArrayElements(e, tba[i], NULL);
+ tvec[i].iov_base = (void *)((*e)->GetByteArrayElements(e, tba[i], NULL));
}
hdrs.headers = &hvec[0];
hdrs.numheaders = nh;
@@ -1242,11 +1242,11 @@ TCN_IMPLEMENT_CALL(jlong, Socket, sendfi
#endif
for (i = 0; i < nh; i++) {
- (*e)->ReleaseByteArrayElements(e, hba[i], hvec[i].iov_base, JNI_ABORT);
+ (*e)->ReleaseByteArrayElements(e, hba[i], (jbyte*)hvec[i].iov_base, JNI_ABORT);
}
for (i = 0; i < nt; i++) {
- (*e)->ReleaseByteArrayElements(e, tba[i], tvec[i].iov_base, JNI_ABORT);
+ (*e)->ReleaseByteArrayElements(e, tba[i], (jbyte*)tvec[i].iov_base, JNI_ABORT);
}
/* Return Number of bytes actually sent,
* including headers, file, and trailers
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org