You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by al...@apache.org on 2017/02/07 15:37:19 UTC
cordova-paramedic git commit: Retry creating LocalServer if port got
taken during initialization
Repository: cordova-paramedic
Updated Branches:
refs/heads/master 6bbae689d -> 1ed075d57
Retry creating LocalServer if port got taken during initialization
Project: http://git-wip-us.apache.org/repos/asf/cordova-paramedic/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-paramedic/commit/1ed075d5
Tree: http://git-wip-us.apache.org/repos/asf/cordova-paramedic/tree/1ed075d5
Diff: http://git-wip-us.apache.org/repos/asf/cordova-paramedic/diff/1ed075d5
Branch: refs/heads/master
Commit: 1ed075d57cbba1b4242e0f36c2c3e721d80b0039
Parents: 6bbae68
Author: Alexander Sorokin <al...@akvelon.com>
Authored: Tue Feb 7 18:35:31 2017 +0300
Committer: Alexander Sorokin <al...@akvelon.com>
Committed: Tue Feb 7 18:35:31 2017 +0300
----------------------------------------------------------------------
lib/LocalServer.js | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-paramedic/blob/1ed075d5/lib/LocalServer.js
----------------------------------------------------------------------
diff --git a/lib/LocalServer.js b/lib/LocalServer.js
index 0ea814c..79602d6 100644
--- a/lib/LocalServer.js
+++ b/lib/LocalServer.js
@@ -44,21 +44,38 @@ util.inherits(LocalServer, EventEmitter);
LocalServer.startServer = function (ports, externalServerUrl, useTunnel) {
logger.normal("local-server: scanning ports from " + ports.start + " to " + ports.end);
+ var startServerOnPort = function (port) {
+ var d = Q.defer();
- return LocalServer.getFirstAvailablePort(ports.start, ports.end)
- .then(function (port) {
- logger.normal("local-server: port " + port + " is available");
- logger.info("local-server: starting local medic server");
+ logger.normal("local-server: port " + port + " is available");
+ logger.info("local-server: starting local medic server");
+ try {
var localServer = new LocalServer(port, externalServerUrl);
localServer.createSocketListener();
if (useTunnel) {
return localServer.createTunnel();
}
+ } catch (e) {
+ d.reject();
+ }
- return localServer;
- });
+ d.resolve(localServer);
+
+ return d.promise;
+ };
+
+ return LocalServer.getFirstAvailablePort(ports.start, ports.end)
+ .then(startServerOnPort)
+ .fail(function () {
+ if (ports.end <= ports.start) {
+ throw new Error('LocalServer couldn\'t find a free port');
+ }
+ // sometimes the port gets busy real quick, let's retry
+ return LocalServer.getFirstAvailablePort(ports.start + 1, ports.end)
+ .then(startServerOnPort);
+ });
};
LocalServer.prototype.cleanUp = function () {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org