mirror of
https://github.com/corda/corda.git
synced 2025-06-20 08:03:53 +00:00
clean up exception handling in java-nio.cpp
This commit is contained in:
@ -95,8 +95,7 @@ init(JNIEnv* e, sockaddr_in* address, jstring hostString, jint port)
|
|||||||
hostent* host = gethostbyname(chars);
|
hostent* host = gethostbyname(chars);
|
||||||
e->ReleaseStringUTFChars(hostString, chars);
|
e->ReleaseStringUTFChars(hostString, chars);
|
||||||
if (host == 0) {
|
if (host == 0) {
|
||||||
// herror("init: gethostbyname");
|
throwIOException(e, hstrerror(h_errno));
|
||||||
throwIOException(e);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memset(address, 0, sizeof(sockaddr_in));
|
memset(address, 0, sizeof(sockaddr_in));
|
||||||
@ -236,7 +235,10 @@ makeSocket(JNIEnv* e, bool blocking = false)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
int s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
if (s < 0) { throwIOException(e); return s; }
|
if (s < 0) {
|
||||||
|
throwIOException(e);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
if (not blocking) makeNonblocking(e, s);
|
if (not blocking) makeNonblocking(e, s);
|
||||||
|
|
||||||
@ -260,9 +262,11 @@ Java_java_nio_channels_ServerSocketChannel_natDoListen(JNIEnv *e,
|
|||||||
{
|
{
|
||||||
int s = makeSocket(e);
|
int s = makeSocket(e);
|
||||||
if (s < 0) return s;
|
if (s < 0) return s;
|
||||||
|
if (e->ExceptionOccurred()) return 0;
|
||||||
|
|
||||||
sockaddr_in address;
|
sockaddr_in address;
|
||||||
init(e, &address, host, port);
|
init(e, &address, host, port);
|
||||||
|
if (e->ExceptionOccurred()) return 0;
|
||||||
|
|
||||||
::doListen(e, s, &address);
|
::doListen(e, s, &address);
|
||||||
return s;
|
return s;
|
||||||
@ -276,9 +280,11 @@ Java_java_nio_channels_SocketChannel_natDoConnect(JNIEnv *e,
|
|||||||
jbooleanArray retVal)
|
jbooleanArray retVal)
|
||||||
{
|
{
|
||||||
int s = makeSocket(e);
|
int s = makeSocket(e);
|
||||||
|
if (e->ExceptionOccurred()) return 0;
|
||||||
|
|
||||||
sockaddr_in address;
|
sockaddr_in address;
|
||||||
init(e, &address, host, port);
|
init(e, &address, host, port);
|
||||||
|
if (e->ExceptionOccurred()) return 0;
|
||||||
|
|
||||||
jboolean connected = ::doConnect(e, s, &address);
|
jboolean connected = ::doConnect(e, s, &address);
|
||||||
e->SetBooleanArrayRegion(retVal, 0, 1, &connected);
|
e->SetBooleanArrayRegion(retVal, 0, 1, &connected);
|
||||||
|
Reference in New Issue
Block a user