diff options
| author | 2017-01-05 15:38:52 -0800 | |
|---|---|---|
| committer | 2017-01-05 23:52:30 +0000 | |
| commit | 7a8c36aa4e6a1b5e48f0ee5a787f10bcfece7587 (patch) | |
| tree | 6e2ab820e4882f7ff3ec209b107d58e3c13f369f | |
| parent | 1fe99a819cba0437a520b0786625cff32702265f (diff) | |
Prevent LocalSocket from creating an fd if fd is already there
Any LocalSocket created with a FileDescriptor will throw IOExceptions
when performing most opperations due to the fact that the LocalSocket
tries to create an implementation but fails since there is a FileDescriptor
already set.
Bug: 34095140
Test: Setup using tap&go
Change-Id: Ie8f50def6156c16617697d939d6c0ab570281642
| -rw-r--r-- | core/java/android/net/LocalSocket.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/net/LocalSocket.java b/core/java/android/net/LocalSocket.java index 3f8d9d3b6723..d9ad74beb016 100644 --- a/core/java/android/net/LocalSocket.java +++ b/core/java/android/net/LocalSocket.java @@ -73,6 +73,7 @@ public class LocalSocket implements Closeable { this(new LocalSocketImpl(fd), SOCKET_UNKNOWN); isBound = true; isConnected = true; + implCreated = true; } private LocalSocket(LocalSocketImpl impl, int sockType) { @@ -223,11 +224,11 @@ public class LocalSocket implements Closeable { implCreateIfNeeded(); impl.shutdownOutput(); } - + public void setReceiveBufferSize(int size) throws IOException { impl.setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size)); } - + public int getReceiveBufferSize() throws IOException { return ((Integer) impl.getOption(SocketOptions.SO_RCVBUF)).intValue(); } @@ -235,7 +236,7 @@ public class LocalSocket implements Closeable { public void setSoTimeout(int n) throws IOException { impl.setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(n)); } - + public int getSoTimeout() throws IOException { return ((Integer) impl.getOption(SocketOptions.SO_TIMEOUT)).intValue(); } @@ -243,7 +244,7 @@ public class LocalSocket implements Closeable { public void setSendBufferSize(int n) throws IOException { impl.setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(n)); } - + public int getSendBufferSize() throws IOException { return ((Integer) impl.getOption(SocketOptions.SO_SNDBUF)).intValue(); } @@ -328,5 +329,5 @@ public class LocalSocket implements Closeable { */ public FileDescriptor getFileDescriptor() { return impl.getFileDescriptor(); - } + } } |