Merge "Add new socket mode DISCONNECT_AFTER_READING_REQUEST"
diff --git a/src/main/java/com/google/mockwebserver/MockWebServer.java b/src/main/java/com/google/mockwebserver/MockWebServer.java
index 5e3a1d7..f7930bc 100644
--- a/src/main/java/com/google/mockwebserver/MockWebServer.java
+++ b/src/main/java/com/google/mockwebserver/MockWebServer.java
@@ -330,6 +330,10 @@
requestCount.incrementAndGet();
requestQueue.add(request);
MockResponse response = dispatcher.dispatch(request);
+ if (response.getSocketPolicy() == SocketPolicy.DISCONNECT_AFTER_READING_REQUEST) {
+ logger.info("Received request: " + request + " and disconnected without responding");
+ return false;
+ }
writeResponse(out, response);
if (response.getSocketPolicy() == SocketPolicy.DISCONNECT_AT_END) {
in.close();
diff --git a/src/main/java/com/google/mockwebserver/SocketPolicy.java b/src/main/java/com/google/mockwebserver/SocketPolicy.java
index 3a6797b..121fe80 100644
--- a/src/main/java/com/google/mockwebserver/SocketPolicy.java
+++ b/src/main/java/com/google/mockwebserver/SocketPolicy.java
@@ -51,6 +51,12 @@
DISCONNECT_AT_START,
/**
+ * Request immediate close of connection after reading the entire
+ * request (and before any response is sent).
+ */
+ DISCONNECT_AFTER_READING_REQUEST,
+
+ /**
* Don't trust the client during the SSL handshake.
*/
FAIL_HANDSHAKE,