diff options
| author | 2015-07-08 12:57:15 +0100 | |
|---|---|---|
| committer | 2015-07-10 12:30:07 +0100 | |
| commit | a7f7c248c719a5e9b7dbe629e016ef73f89ce0e7 (patch) | |
| tree | 766dea24641e21b3fcaa236557990e7427cb03b0 | |
| parent | 43a2aca4c279d3db8abdf4692249134fdd69bd96 (diff) | |
Switch shutdownInput / shutdownOutput to using Os.shutdown.
Bug: 3106438
Change-Id: I2c4817e435c6b253d6c507ea57bdfdfe45df8862
| -rw-r--r-- | core/java/android/net/LocalSocketImpl.java | 13 | ||||
| -rw-r--r-- | 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 72395d28a0ec..b83fb260d6f1 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 c1516b67b092..c137b17426e0 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}, |