From 53c89f7a4387f568f6e44907c53922788fc3a1c1 Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Fri, 27 May 2016 00:26:25 +0200
Subject: [PATCH] JS API: added `upnp` method

---
 app/controllers/webmin.controller.js | 5 ++---
 index.js                             | 3 +--
 server.js                            | 7 +++++++
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/app/controllers/webmin.controller.js b/app/controllers/webmin.controller.js
index 04d85bad7..19fe14c22 100644
--- a/app/controllers/webmin.controller.js
+++ b/app/controllers/webmin.controller.js
@@ -7,7 +7,6 @@ var _ = require('underscore');
 var Q = require('q');
 let co = require('co');
 let ucoin = require('../../index');
-var upnp = require('../lib/upnp');
 let ucp = require('../lib/ucp');
 let constants = require('../lib/constants');
 let base58 = require('../lib/base58');
@@ -88,7 +87,7 @@ function WebAdmin (dbConf, overConf) {
 
   this.openUPnP = () => co(function *() {
     yield pluggedDALP;
-    return upnp(server.conf.port, server.conf.remoteport);
+    return server.upnp();
   });
 
   this.regularUPnP = () => co(function *() {
@@ -97,7 +96,7 @@ function WebAdmin (dbConf, overConf) {
       server.upnpAPI.stopRegular();
     }
     try {
-      server.upnpAPI = yield upnp(server.conf.port, server.conf.remoteport);
+      yield server.upnp();
       server.upnpAPI.startRegular();
     } catch (e) {
       logger.error(e);
diff --git a/index.js b/index.js
index 16e2bb4ca..6ee44fcab 100644
--- a/index.js
+++ b/index.js
@@ -4,7 +4,6 @@ var co = require('co');
 var Server = require('./server');
 var bma  = require('./app/lib/streams/bma');
 var webmin  = require('./app/lib/streams/webmin');
-var upnp = require('./app/lib/upnp');
 var logger = require('./app/lib/logger')('ucoin');
 
 module.exports = function (dbConf, overConf) {
@@ -50,7 +49,7 @@ module.exports.statics = {
         if (server.upnpAPI) {
           server.upnpAPI.stopRegular();
         }
-        server.upnpAPI = yield upnp(server.conf.port, server.conf.remoteport);
+        yield server.upnp();
         server.upnpAPI.startRegular();
       } catch (e) {
         logger.warn(e);
diff --git a/server.js b/server.js
index 2f5d1fc64..5eef3cec0 100644
--- a/server.js
+++ b/server.js
@@ -18,6 +18,7 @@ var directory   = require('./app/lib/directory');
 var dos2unix    = require('./app/lib/dos2unix');
 var Synchroniser = require('./app/lib/sync');
 var multicaster = require('./app/lib/streams/multicaster');
+var upnp        = require('./app/lib/upnp');
 
 function Server (dbConf, overrideConf) {
 
@@ -443,6 +444,12 @@ function Server (dbConf, overrideConf) {
       // The multicaster may answer 'unreachable peer'
       .pipe(this.router());
   };
+
+  this.upnp = () => co(function *() {
+    let upnpAPI = yield upnp(that.conf.port, that.conf.remoteport);
+    that.upnpAPI = upnpAPI;
+    return upnpAPI;
+  });
 }
 
 util.inherits(Server, stream.Duplex);
-- 
GitLab