summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/darwin/src/MGLNetworkConfiguration.h8
-rw-r--r--platform/darwin/src/http_file_source.mm4
2 files changed, 12 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLNetworkConfiguration.h b/platform/darwin/src/MGLNetworkConfiguration.h
index 6c56050aae..91932c2d1d 100644
--- a/platform/darwin/src/MGLNetworkConfiguration.h
+++ b/platform/darwin/src/MGLNetworkConfiguration.h
@@ -32,6 +32,14 @@ MGL_EXPORT
*/
@property (atomic, strong, null_resettable) NSURLSessionConfiguration *sessionConfiguration;
+/**
+A Boolean value indicating whether the current `NSURLSessionConfiguration` stops
+making network requests.
+
+The default value of this property is `NO`.
+*/
+@property (atomic, assign) BOOL stopsRequests;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/platform/darwin/src/http_file_source.mm b/platform/darwin/src/http_file_source.mm
index b0f69f4a7f..09562e0347 100644
--- a/platform/darwin/src/http_file_source.mm
+++ b/platform/darwin/src/http_file_source.mm
@@ -229,6 +229,10 @@ NSURL *resourceURLWithAccountType(const Resource& resource, NSInteger accountTyp
std::unique_ptr<AsyncRequest> HTTPFileSource::request(const Resource& resource, Callback callback) {
auto request = std::make_unique<HTTPRequest>(callback);
auto shared = request->shared; // Explicit copy so that it also gets copied into the completion handler block below.
+
+ if ([MGLNetworkConfiguration sharedManager].stopsRequests) {
+ return std::move(request);
+ }
@autoreleasepool {
NSURL *url = resourceURLWithAccountType(resource, impl->accountType);