@@ -413,6 +413,13 @@ public class OneDriveStorage: NetworkStorage, URLSessionTaskDelegate, URLSession
413413
414414 let task = URLSession . shared. dataTask ( with: request) { data, response, error in
415415 self . callSemaphore. signal ( )
416+ var waittime = self . callWait
417+ if let error = error {
418+ print ( error)
419+ if ( error as NSError ) . code == - 1009 {
420+ waittime += 30
421+ }
422+ }
416423 do {
417424 guard let data = data else {
418425 throw RetryError . Retry
@@ -437,7 +444,7 @@ public class OneDriveStorage: NetworkStorage, URLSessionTaskDelegate, URLSession
437444 }
438445 catch RetryError . Retry {
439446 if callCount < 20 {
440- DispatchQueue . global ( ) . asyncAfter ( deadline: . now( ) + self . callWait+ Double. random ( in: 0 ..< self . callWait ) ) {
447+ DispatchQueue . global ( ) . asyncAfter ( deadline: . now( ) + self . callWait+ Double. random ( in: 0 ..< waittime ) ) {
441448 self . getLink ( fileId: fileId, start: start, length: length, callCount: callCount+ 1 , onFinish: onFinish)
442449 }
443450 return
@@ -475,13 +482,17 @@ public class OneDriveStorage: NetworkStorage, URLSessionTaskDelegate, URLSession
475482
476483 let task = URLSession . shared. dataTask ( with: request) { data, response, error in
477484 self . callSemaphore. signal ( )
485+ var waittime = self . callWait
478486 if let error = error {
479487 print ( error)
488+ if ( error as NSError ) . code == - 1009 {
489+ waittime += 30
490+ }
480491 }
481492 if let l = length {
482493 if data? . count ?? 0 != l {
483494 if callCount < 50 {
484- DispatchQueue . global ( ) . asyncAfter ( deadline: . now( ) + Double. random ( in: 0 ..< self . callWait ) ) {
495+ DispatchQueue . global ( ) . asyncAfter ( deadline: . now( ) + Double. random ( in: 0 ..< waittime ) ) {
485496 self . getBody ( downLink: downLink, start: start, length: length, callCount: callCount+ 1 , onFinish: onFinish)
486497 }
487498 return
0 commit comments