Review suggestions

pull/233/head
Beaudan 6 years ago
parent eaea7d9b7d
commit 8c20a31dd4

@ -50,8 +50,15 @@ class LokiSnodeAPI {
}
async getMyLokiIp() {
const address = await resolveCname(this.localUrl);
return resolve4(address);
try {
const address = await resolveCname(this.localUrl);
return resolve4(address);
} catch (e) {
throw new window.textsecure.LokiIpError(
'Failed to resolve localhost.loki',
e
);
}
}
async getMyLokiAddress() {

@ -167,6 +167,22 @@
}
inherit(ReplayableError, DNSResolutionError);
function LokiIpError(message, resolutionError) {
this.name = 'LokiIpError';
this.message = message;
this.error = resolutionError;
Error.call(this, message);
// Maintains proper stack trace, where our error was thrown (only available on V8)
// via https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
if (Error.captureStackTrace) {
Error.captureStackTrace(this);
}
appendStack(this, resolutionError);
}
window.textsecure.UnregisteredUserError = UnregisteredUserError;
window.textsecure.SendMessageNetworkError = SendMessageNetworkError;
window.textsecure.IncomingIdentityKeyError = IncomingIdentityKeyError;
@ -178,4 +194,5 @@
window.textsecure.PoWError = PoWError;
window.textsecure.EmptySwarmError = EmptySwarmError;
window.textsecure.DNSResolutionError = DNSResolutionError;
window.textsecure.LokiIpError = LokiIpError;
})();

@ -119,22 +119,22 @@ MessageReceiver.prototype.extend({
let myServerPort;
try {
myLokiIp = await window.lokiSnodeAPI.getMyLokiIp();
} catch (e) {
window.log.warn(
'Failed to get my loki address to bind server to, will retry in 30 seconds'
);
setTimeout(this.startLocalServer.bind(this), 30 * 1000);
}
try {
myServerPort = await localLokiServer.start(localServerPort, myLokiIp);
window.log.info(`Local Server started at ${myLokiIp}:${myServerPort}`);
libloki.api.broadcastOnlineStatus();
localLokiServer.on('message', this.handleP2pMessage.bind(this));
} catch (e) {
window.log.warn('Failed to start local loki server, will retry in 30 seconds');
if (e instanceof textsecure.LokiIpError) {
window.log.warn(
'Failed to get my loki address to bind server to, will retry in 30 seconds'
);
} else {
window.log.warn(
'Failed to start local loki server, will retry in 30 seconds'
);
}
setTimeout(this.startLocalServer.bind(this), 30 * 1000);
}
window.log.info(`Local Server started at ${myLokiIp}:${myServerPort}`);
libloki.api.broadcastOnlineStatus();
localLokiServer.on('message', this.handleP2pMessage.bind(this));
},
handleP2pMessage(message) {
this.httpPollingResource.handleMessage(message, true);

Loading…
Cancel
Save