From 4f5d1bffaf4aeccee665d7b5bd3701468109fab1 Mon Sep 17 00:00:00 2001 From: tjpc3 Date: Mon, 31 Jul 2017 22:01:45 -0400 Subject: [PATCH] fix node.js crash due to error messages being called with invalid error keys (#1728) * Comments * More Comments * Added new error message * Fixed error message * Removing temporary comments * Fixed error messages * Added more new error messages * Removed trailing space * Removed other trailing space * Changed error key * Changed error key used --- src/client/voice/VoiceWebSocket.js | 6 +++--- src/errors/Messages.js | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/client/voice/VoiceWebSocket.js b/src/client/voice/VoiceWebSocket.js index 4184a22ad..c5927d57a 100644 --- a/src/client/voice/VoiceWebSocket.js +++ b/src/client/voice/VoiceWebSocket.js @@ -65,7 +65,7 @@ class VoiceWebSocket extends EventEmitter { if (this.dead) return; if (this.ws) this.reset(); if (this.attempts >= 5) { - this.emit('debug', new Error(`Too many connection attempts (${this.attempts}).`)); + this.emit('debug', new Error('VOICE_CONNECTION_ATTEMPTS_EXCEEDED', this.attempts)); return; } @@ -123,7 +123,7 @@ class VoiceWebSocket extends EventEmitter { session_id: this.voiceConnection.authentication.sessionID, }, }).catch(() => { - this.emit('error', new Error('Tried to send join packet, but the WebSocket is not open.')); + this.emit('error', new Error('VOICE_JOIN_SOCKET_CLOSED')); }); } @@ -204,7 +204,7 @@ class VoiceWebSocket extends EventEmitter { */ setHeartbeat(interval) { if (!interval || isNaN(interval)) { - this.onError(new Error('Tried to set voice heartbeat but no valid interval was specified.')); + this.onError(new Error('VOICE_INVALID_HEARTBEAT')); return; } if (this.heartbeatInterval) { diff --git a/src/errors/Messages.js b/src/errors/Messages.js index eda968dcb..43f47f370 100644 --- a/src/errors/Messages.js +++ b/src/errors/Messages.js @@ -53,6 +53,8 @@ const Messages = { VOICE_SESSION_ABSENT: 'Session ID not supplied.', VOICE_INVALID_ENDPOINT: 'Invalid endpoint received.', VOICE_NO_BROWSER: 'Voice connections are not available in browsers.', + VOICE_CONNECTION_ATTEMPTS_EXCEEDED: attempts => `Too many connection attempts (${attempts}).`, + VOICE_JOIN_SOCKET_CLOSED: 'Tried to send join packet, but the WebSocket is not open.', OPUS_ENGINE_MISSING: 'Couldn\'t find an Opus engine.',