From 434aea44a0bac3f75a7b9f24db167436952370b1 Mon Sep 17 00:00:00 2001 From: evshiron Date: Mon, 21 Aug 2017 14:53:05 +0800 Subject: [PATCH] fix(Downloaders): tolerate DNS lookup timeout and use caches --- src/lib/Downloader.ts | 9 +++++++++ src/lib/FFmpegDownloader.ts | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/lib/Downloader.ts b/src/lib/Downloader.ts index c0584a1..82644f7 100644 --- a/src/lib/Downloader.ts +++ b/src/lib/Downloader.ts @@ -67,12 +67,21 @@ export class Downloader extends DownloaderBase { } } catch(err) { + + debug('in fetch', 'err', err); + if(err.code === 'ENOTFOUND' && this.options.useCaches) { + console.info('DNS lookup fails, use local caches at this time.'); + return path; + } + else if(err.code === 'EAI_AGAIN' && this.options.useCaches) { + console.info('DNS lookup timeout, use local caches at this time.'); return path; } else { throw err; } + } await this.download(url, filename, path, showProgress); diff --git a/src/lib/FFmpegDownloader.ts b/src/lib/FFmpegDownloader.ts index c39e2a6..fe03ea4 100644 --- a/src/lib/FFmpegDownloader.ts +++ b/src/lib/FFmpegDownloader.ts @@ -76,12 +76,21 @@ export class FFmpegDownloader extends DownloaderBase { } } catch(err) { + + debug('in fetch', 'err', err); + if(err.code === 'ENOTFOUND' && this.options.useCaches) { + console.info('DNS lookup fails, use local caches at this time.'); + return path; + } + else if(err.code === 'EAI_AGAIN' && this.options.useCaches) { + console.info('DNS lookup timeout, use local caches at this time.'); return path; } else { throw err; } + } await this.download(url, filename, path, showProgress);