From 20d22f63951a48a9fbc56ab261e5df9a1d8c0a67 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 21 Feb 2019 15:08:41 -0500 Subject: [PATCH] Add user agent for proxied requests. --- SignalServiceKit/src/Network/ProxiedContentDownloader.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Network/ProxiedContentDownloader.swift b/SignalServiceKit/src/Network/ProxiedContentDownloader.swift index eea007546..a9cee113a 100644 --- a/SignalServiceKit/src/Network/ProxiedContentDownloader.swift +++ b/SignalServiceKit/src/Network/ProxiedContentDownloader.swift @@ -657,6 +657,8 @@ open class ProxiedContentDownloader: NSObject, URLSessionTaskDelegate, URLSessio return } + let userAgent = "Signal iOS (+https://signal.org/download)" + if assetRequest.state == .waiting { // If asset request hasn't yet determined the resource size, // try to do so now, by requesting a small initial segment. @@ -669,6 +671,7 @@ open class ProxiedContentDownloader: NSObject, URLSessionTaskDelegate, URLSessio request.httpShouldUsePipelining = true let rangeHeaderValue = "bytes=\(segmentStart)-\(segmentStart + segmentLength - 1)" request.addValue(rangeHeaderValue, forHTTPHeaderField: "Range") + request.addValue(userAgent, forHTTPHeaderField: "User-Agent") padRequestSize(request: &request) let task = downloadSession.dataTask(with: request, completionHandler: { data, response, error -> Void in self.handleAssetSizeResponse(assetRequest: assetRequest, data: data, response: response, error: error) @@ -689,6 +692,7 @@ open class ProxiedContentDownloader: NSObject, URLSessionTaskDelegate, URLSessio request.httpShouldUsePipelining = true let rangeHeaderValue = "bytes=\(assetSegment.segmentStart)-\(assetSegment.segmentStart + assetSegment.segmentLength - 1)" request.addValue(rangeHeaderValue, forHTTPHeaderField: "Range") + request.addValue(userAgent, forHTTPHeaderField: "User-Agent") padRequestSize(request: &request) let task: URLSessionDataTask = downloadSession.dataTask(with: request) task.assetRequest = assetRequest @@ -740,7 +744,7 @@ open class ProxiedContentDownloader: NSObject, URLSessionTaskDelegate, URLSessio result += percentEncodedQuery.count } if let allHTTPHeaderFields = request.allHTTPHeaderFields { - if allHTTPHeaderFields.count != 1 { + if allHTTPHeaderFields.count != 2 { owsFailDebug("Request has unexpected number of headers.") } for (key, value) in allHTTPHeaderFields {