aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/server.js14
-rw-r--r--src/server/Main.hx2
-rw-r--r--src/server/Utils.hx22
3 files changed, 24 insertions, 14 deletions
diff --git a/build/server.js b/build/server.js
index 81d54d2..70054d6 100644
--- a/build/server.js
+++ b/build/server.js
@@ -3713,9 +3713,9 @@ var server_Main = function() {
if(envPort != null) {
this.port = envPort;
}
+ haxe_Log.trace("Local: http://" + this.localIp + ":" + this.port,{ fileName : "src/server/Main.hx", lineNumber : 88, className : "server.Main", methodName : "new"});
server_Utils.getGlobalIp(function(ip) {
_gthis.globalIp = ip;
- haxe_Log.trace("Local: http://" + _gthis.localIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 90, className : "server.Main", methodName : "new"});
haxe_Log.trace("Global: http://" + _gthis.globalIp + ":" + _gthis.port,{ fileName : "src/server/Main.hx", lineNumber : 91, className : "server.Main", methodName : "new"});
});
var dir = "" + this.rootDir + "/res";
@@ -4440,7 +4440,12 @@ server_Utils.ensureDir = function(path) {
}
};
server_Utils.getGlobalIp = function(callback) {
- js_node_Https.get("https://myexternalip.com/raw",function(r) {
+ var onError = function(e) {
+ haxe_Log.trace("Warning: connection error, server is local.",{ fileName : "src/server/Utils.hx", lineNumber : 16, className : "server.Utils", methodName : "getGlobalIp"});
+ callback("127.0.0.1");
+ };
+ var url = new js_node_url_URL("https://myexternalip.com/raw");
+ js_node_Https.get({ timeout : 5000, protocol : url.protocol, host : url.host, path : url.pathname},function(r) {
r.setEncoding("utf8");
var data_b = "";
r.on("data",function(chunk) {
@@ -4449,10 +4454,7 @@ server_Utils.getGlobalIp = function(callback) {
r.on("end",function(_) {
callback(data_b);
});
- }).on("error",function(e) {
- haxe_Log.trace("Warning: connection error, server is local.",{ fileName : "src/server/Utils.hx", lineNumber : 21, className : "server.Utils", methodName : "getGlobalIp"});
- callback("127.0.0.1");
- });
+ }).on("error",onError).on("timeout",onError);
};
server_Utils.getLocalIp = function() {
var ifaces = js_node_Os.networkInterfaces();
diff --git a/src/server/Main.hx b/src/server/Main.hx
index f0c3d7a..85006c7 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -85,9 +85,9 @@ class Main {
final envPort = (process.env : Dynamic).PORT;
if (envPort != null) port = envPort;
+ trace('Local: http://$localIp:$port');
Utils.getGlobalIp(ip -> {
globalIp = ip;
- trace('Local: http://$localIp:$port');
trace('Global: http://$globalIp:$port');
});
diff --git a/src/server/Utils.hx b/src/server/Utils.hx
index 40fa282..4e2fc9d 100644
--- a/src/server/Utils.hx
+++ b/src/server/Utils.hx
@@ -1,8 +1,9 @@
package server;
-import sys.FileSystem;
+import js.node.url.URL;
import js.node.Https;
import js.node.Os;
+import sys.FileSystem;
class Utils {
@@ -11,16 +12,23 @@ class Utils {
}
public static function getGlobalIp(callback:(ip:String)->Void):Void {
- // untyped to skip second null argument for node < v10
- Https.get(untyped "https://myexternalip.com/raw", r -> {
+ function onError(e):Void {
+ trace("Warning: connection error, server is local.");
+ callback("127.0.0.1");
+ }
+ final url = new URL("https://myexternalip.com/raw");
+ Https.get({ // this overload for node < v10.9.0
+ timeout: 5000,
+ protocol: url.protocol,
+ host: url.host,
+ path: url.pathname
+ }, r -> {
r.setEncoding("utf8");
final data = new StringBuf();
r.on("data", chunk -> data.add(chunk));
r.on("end", _ -> callback(data.toString()));
- }).on("error", e -> {
- trace("Warning: connection error, server is local.");
- callback("127.0.0.1");
- });
+ }).on("error", onError)
+ .on("timeout", onError);
}
public static function getLocalIp():String {
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage