From 83cf6d5b7504abda93420d04efa4f96d5f86a1df Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 7 Nov 2014 14:41:24 -0800 Subject: Defeat connection reuse to really cancel. Otherwise servers may continue streaming large downloads into the kept-alive socket. This changes to always close the socket, sending a clear signal to server. Bug: 16153076 Change-Id: I3e7fefce4f82b5f80abaab58874cc4c4374d2bfb --- src/com/android/providers/downloads/DownloadThread.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 51e71b27..c0f5a5e9 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -792,6 +792,10 @@ public class DownloadThread implements Runnable { // easily resume partial downloads. conn.setRequestProperty("Accept-Encoding", "identity"); + // Defeat connection reuse, since otherwise servers may continue + // streaming large downloads after cancelled. + conn.setRequestProperty("Connection", "close"); + if (resuming) { if (mInfoDelta.mETag != null) { conn.addRequestProperty("If-Match", mInfoDelta.mETag); -- cgit v1.2.3