aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/ike/ikev2/IkeSessionOptions.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/ike/ikev2/IkeSessionOptions.java')
-rw-r--r--src/java/com/android/ike/ikev2/IkeSessionOptions.java31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/java/com/android/ike/ikev2/IkeSessionOptions.java b/src/java/com/android/ike/ikev2/IkeSessionOptions.java
index 964e89e9..173c3ea7 100644
--- a/src/java/com/android/ike/ikev2/IkeSessionOptions.java
+++ b/src/java/com/android/ike/ikev2/IkeSessionOptions.java
@@ -177,10 +177,11 @@ public final class IkeSessionOptions {
/** This class can be used to incrementally construct a IkeSessionOptions. */
public static final class Builder {
- private final InetAddress mServerAddress;
- private final UdpEncapsulationSocket mUdpEncapSocket;
private final List<IkeSaProposal> mSaProposalList = new LinkedList<>();
+ private InetAddress mServerAddress;
+ private UdpEncapsulationSocket mUdpEncapSocket;
+
private IkeIdentification mLocalIdentification;
private IkeIdentification mRemoteIdentification;
@@ -190,16 +191,27 @@ public final class IkeSessionOptions {
private boolean mIsIkeFragmentationSupported = false;
/**
- * Returns a new Builder for an IkeSessionOptions.
+ * Sets server address
*
* @param serverAddress IP address of remote IKE server.
+ * @return Builder this, to facilitate chaining.
+ */
+ public Builder setServerAddress(@NonNull InetAddress serverAddress) {
+ mServerAddress = serverAddress;
+ return this;
+ }
+
+ /**
+ * Sets UDP-Encapsulated socket
+ *
* @param udpEncapsulationSocket {@link IpSecManager.UdpEncapsulationSocket} for sending and
* receiving IKE message.
- * @return Builder for an IkeSessionOptions.
+ * @return Builder this, to facilitate chaining.
*/
- public Builder(InetAddress serverAddress, UdpEncapsulationSocket udpEncapsulationSocket) {
- mServerAddress = serverAddress;
+ public Builder setUdpEncapsulationSocket(
+ @NonNull UdpEncapsulationSocket udpEncapsulationSocket) {
mUdpEncapSocket = udpEncapsulationSocket;
+ return this;
}
/**
@@ -302,12 +314,13 @@ public final class IkeSessionOptions {
if (mSaProposalList.isEmpty()) {
throw new IllegalArgumentException("IKE SA proposal not found");
}
- if (mLocalIdentification == null
+ if (mServerAddress == null
+ || mUdpEncapSocket == null
+ || mLocalIdentification == null
|| mRemoteIdentification == null
|| mLocalAuthConfig == null
|| mRemoteAuthConfig == null) {
- throw new IllegalArgumentException(
- "IKE identification or IKE authentication method is not set.");
+ throw new IllegalArgumentException("Necessary parameter missing.");
}
return new IkeSessionOptions(