aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tdnet/td/net/DarwinHttp.mm14
1 files changed, 13 insertions, 1 deletions
diff --git a/tdnet/td/net/DarwinHttp.mm b/tdnet/td/net/DarwinHttp.mm
index 1b90e59ad..3195c7a0d 100644
--- a/tdnet/td/net/DarwinHttp.mm
+++ b/tdnet/td/net/DarwinHttp.mm
@@ -14,6 +14,18 @@
namespace td {
namespace {
+
+NSURLSession *getSession() {
+ static NSURLSession *urlSession = [] {
+ auto configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
+ configuration.networkServiceType = NSURLNetworkServiceTypeResponsiveData;
+ configuration.timeoutIntervalForResource = 90;
+ configuration.waitsForConnectivity = true;
+ return [NSURLSession sessionWithConfiguration:configuration];
+ }();
+ return urlSession;
+}
+
NSString *to_ns_string(CSlice slice) {
return [NSString stringWithUTF8String:slice.c_str()];
}
@@ -43,7 +55,7 @@ auto http_post(CSlice url, Slice data) {
void http_send(NSURLRequest *request, Promise<BufferSlice> promise) {
__block auto callback = std::move(promise);
NSURLSessionDataTask *dataTask =
- [NSURLSession.sharedSession
+ [getSession()
dataTaskWithRequest:request
completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {