From a7f7c248c719a5e9b7dbe629e016ef73f89ce0e7 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Wed, 8 Jul 2015 12:57:15 +0100 Subject: [PATCH] Switch shutdownInput / shutdownOutput to using Os.shutdown. Bug: 3106438 Change-Id: I2c4817e435c6b253d6c507ea57bdfdfe45df8862 --- core/java/android/net/LocalSocketImpl.java | 13 +++++++++--- core/jni/android_net_LocalSocketImpl.cpp | 24 ---------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/core/java/android/net/LocalSocketImpl.java b/core/java/android/net/LocalSocketImpl.java index 72395d28a0ec0..b83fb260d6f1e 100644 --- a/core/java/android/net/LocalSocketImpl.java +++ b/core/java/android/net/LocalSocketImpl.java @@ -201,7 +201,6 @@ class LocalSocketImpl int namespace) throws IOException; private native void bindLocal(FileDescriptor fd, String name, int namespace) throws IOException; - private native void shutdown(FileDescriptor fd, boolean shutdownInput); private native Credentials getPeerCredentials_native( FileDescriptor fd) throws IOException; @@ -405,7 +404,11 @@ class LocalSocketImpl throw new IOException("socket not created"); } - shutdown(fd, true); + try { + Os.shutdown(fd, OsConstants.SHUT_RD); + } catch (ErrnoException e) { + throw e.rethrowAsIOException(); + } } /** @@ -419,7 +422,11 @@ class LocalSocketImpl throw new IOException("socket not created"); } - shutdown(fd, false); + try { + Os.shutdown(fd, OsConstants.SHUT_WR); + } catch (ErrnoException e) { + throw e.rethrowAsIOException(); + } } protected FileDescriptor getFileDescriptor() diff --git a/core/jni/android_net_LocalSocketImpl.cpp b/core/jni/android_net_LocalSocketImpl.cpp index c1516b67b0920..c137b17426e00 100644 --- a/core/jni/android_net_LocalSocketImpl.cpp +++ b/core/jni/android_net_LocalSocketImpl.cpp @@ -112,29 +112,6 @@ socket_bind_local (JNIEnv *env, jobject object, jobject fileDescriptor, } } -/* private native void shutdown(FileDescriptor fd, boolean shutdownInput) */ - -static void -socket_shutdown (JNIEnv *env, jobject object, jobject fileDescriptor, - jboolean shutdownInput) -{ - int ret; - int fd; - - fd = jniGetFDFromFileDescriptor(env, fileDescriptor); - - if (env->ExceptionCheck()) { - return; - } - - ret = shutdown(fd, shutdownInput ? SHUT_RD : SHUT_WR); - - if (ret < 0) { - jniThrowIOException(env, errno); - return; - } -} - /** * Processes ancillary data, handling only * SCM_RIGHTS. Creates appropriate objects and sets appropriate @@ -523,7 +500,6 @@ static JNINativeMethod gMethods[] = { {"connectLocal", "(Ljava/io/FileDescriptor;Ljava/lang/String;I)V", (void*)socket_connect_local}, {"bindLocal", "(Ljava/io/FileDescriptor;Ljava/lang/String;I)V", (void*)socket_bind_local}, - {"shutdown", "(Ljava/io/FileDescriptor;Z)V", (void*)socket_shutdown}, {"read_native", "(Ljava/io/FileDescriptor;)I", (void*) socket_read}, {"readba_native", "([BIILjava/io/FileDescriptor;)I", (void*) socket_readba}, {"writeba_native", "([BIILjava/io/FileDescriptor;)V", (void*) socket_writeba},