summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author nharold <nharold@google.com> 2018-01-17 08:45:29 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-01-17 08:45:29 +0000
commit3cff120fcb256969292b5d8a2f2071aa6f834e2b (patch)
tree3e25471a7c1cac022d5fe60bdf72cf57826bbf74
parent809bcfc45eee0076d9ea8ab18688b49426d4a40d (diff)
parentb548d251b7995a5b76e495978b61ad6c3c4183d1 (diff)
Merge "Prevent Closure of Underlying Socket FDs"
-rw-r--r--core/java/android/net/IpSecManager.java35
1 files changed, 5 insertions, 30 deletions
diff --git a/core/java/android/net/IpSecManager.java b/core/java/android/net/IpSecManager.java
index 67d4fcac97d6..2202df3baf92 100644
--- a/core/java/android/net/IpSecManager.java
+++ b/core/java/android/net/IpSecManager.java
@@ -313,9 +313,7 @@ public final class IpSecManager {
public void applyTransportModeTransform(
Socket socket, int direction, IpSecTransform transform)
throws IOException {
- try (ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket)) {
- applyTransportModeTransform(pfd, direction, transform);
- }
+ applyTransportModeTransform(socket.getFileDescriptor$(), direction, transform);
}
/**
@@ -347,9 +345,7 @@ public final class IpSecManager {
*/
public void applyTransportModeTransform(
DatagramSocket socket, int direction, IpSecTransform transform) throws IOException {
- try (ParcelFileDescriptor pfd = ParcelFileDescriptor.fromDatagramSocket(socket)) {
- applyTransportModeTransform(pfd, direction, transform);
- }
+ applyTransportModeTransform(socket.getFileDescriptor$(), direction, transform);
}
/**
@@ -383,18 +379,8 @@ public final class IpSecManager {
FileDescriptor socket, int direction, IpSecTransform transform)
throws IOException {
// We dup() the FileDescriptor here because if we don't, then the ParcelFileDescriptor()
- // constructor takes control and closes the user's FD when we exit the method
- // This is behaviorally the same as the other versions, but the PFD constructor does not
- // dup() automatically, whereas PFD.fromSocket() and PDF.fromDatagramSocket() do dup().
+ // constructor takes control and closes the user's FD when we exit the method.
try (ParcelFileDescriptor pfd = ParcelFileDescriptor.dup(socket)) {
- applyTransportModeTransform(pfd, direction, transform);
- }
- }
-
- /* Call down to activate a transform */
- private void applyTransportModeTransform(
- ParcelFileDescriptor pfd, int direction, IpSecTransform transform) throws IOException {
- try {
mService.applyTransportModeTransform(pfd, direction, transform.getResourceId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -433,9 +419,7 @@ public final class IpSecManager {
*/
public void removeTransportModeTransforms(Socket socket, IpSecTransform transform)
throws IOException {
- try (ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket)) {
- removeTransportModeTransforms(pfd, transform);
- }
+ removeTransportModeTransforms(socket.getFileDescriptor$(), transform);
}
/**
@@ -455,9 +439,7 @@ public final class IpSecManager {
*/
public void removeTransportModeTransforms(DatagramSocket socket, IpSecTransform transform)
throws IOException {
- try (ParcelFileDescriptor pfd = ParcelFileDescriptor.fromDatagramSocket(socket)) {
- removeTransportModeTransforms(pfd, transform);
- }
+ removeTransportModeTransforms(socket.getFileDescriptor$(), transform);
}
/**
@@ -478,13 +460,6 @@ public final class IpSecManager {
public void removeTransportModeTransforms(FileDescriptor socket, IpSecTransform transform)
throws IOException {
try (ParcelFileDescriptor pfd = ParcelFileDescriptor.dup(socket)) {
- removeTransportModeTransforms(pfd, transform);
- }
- }
-
- /* Call down to remove a transform */
- private void removeTransportModeTransforms(ParcelFileDescriptor pfd, IpSecTransform transform) {
- try {
mService.removeTransportModeTransforms(pfd, transform.getResourceId());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();