From 3d54e3fd8c4af1b6d94219e5ddf1a45c073b692f Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Tue, 20 Nov 2018 17:57:56 +0100 Subject: [PATCH] [fix] WS2P: UPnP local host interface can be forced (in case of UPnP fail for example) --- app/modules/upnp-provider.ts | 8 ++++++-- app/modules/ws2p/index.ts | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/modules/upnp-provider.ts b/app/modules/upnp-provider.ts index cc7a396f9..dcda0a301 100644 --- a/app/modules/upnp-provider.ts +++ b/app/modules/upnp-provider.ts @@ -32,6 +32,7 @@ export class UpnpProvider { private upnpInterval = 300, private ttl = 600, private logger?:any, + private host = '' ) {} async checkUPnPisAvailable() { @@ -72,7 +73,10 @@ export class UpnpProvider { const client = upnp.createClient() client.portMapping({ 'public': this.currentConfig.port, - 'private': this.currentConfig.port, + 'private': { + host: this.currentConfig.host, + port: this.currentConfig.port, + }, 'ttl': this.ttl, 'description': this.getUpnpDescription() }, (err:any) => { @@ -123,7 +127,7 @@ export class UpnpProvider { } private async getAvailablePort(client:any) { - const localIP = await UpnpProvider.getLocalIP(client) + const localIP = this.host || await UpnpProvider.getLocalIP(client) const remoteIP = await UpnpProvider.getRemoteIP(client) const mappings:{ private: { diff --git a/app/modules/ws2p/index.ts b/app/modules/ws2p/index.ts index 8deb5523c..930962bd2 100644 --- a/app/modules/ws2p/index.ts +++ b/app/modules/ws2p/index.ts @@ -243,7 +243,8 @@ export class WS2PAPI extends stream.Transform { ':ws2p:' + suffix, WS2PConstants.WS2P_UPNP_INTERVAL, WS2PConstants.WS2P_UPNP_TTL, - logger) + logger, + this.conf.ws2p.host) const { host, port, available } = await this.upnpAPI.startRegular() if (available) { // Defaults UPnP to true if not defined and available -- GitLab