diff --git a/client/components/MessageTypes/whois.vue b/client/components/MessageTypes/whois.vue
index a3c1cfbd..b198a823 100644
--- a/client/components/MessageTypes/whois.vue
+++ b/client/components/MessageTypes/whois.vue
@@ -81,6 +81,11 @@
Yes
+
+ Certificate:
+ {{ message.whois.certfp }}
+
+
Connected to:
diff --git a/package.json b/package.json
index f2ac12a4..625fe0f0 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"file-type": "14.6.2",
"filenamify": "4.1.0",
"got": "11.5.0",
- "irc-framework": "4.8.1",
+ "irc-framework": "4.9.0",
"is-utf8": "0.2.1",
"ldapjs": "2.0.0",
"linkify-it": "3.0.2",
diff --git a/src/models/network.js b/src/models/network.js
index dd4ae958..f19adae5 100644
--- a/src/models/network.js
+++ b/src/models/network.js
@@ -173,8 +173,10 @@ Network.prototype.createIrcFramework = function (client) {
enable_echomessage: true,
enable_setname: true,
auto_reconnect: true,
- auto_reconnect_wait: 10000 + Math.floor(Math.random() * 1000), // If multiple users are connected to the same network, randomize their reconnections a little
- auto_reconnect_max_retries: 360, // At least one hour (plus timeouts) worth of reconnections
+
+ // Exponential backoff maxes out at 300 seconds after 9 reconnects,
+ // it will keep trying for well over an hour (plus the timeouts)
+ auto_reconnect_max_retries: 30,
});
this.setIrcFrameworkOptions(client);
diff --git a/src/plugins/irc-events/connection.js b/src/plugins/irc-events/connection.js
index d271a65b..029eefc2 100644
--- a/src/plugins/irc-events/connection.js
+++ b/src/plugins/irc-events/connection.js
@@ -178,14 +178,9 @@ module.exports = function (irc, network) {
network.channels[0].pushMessage(
client,
new Msg({
- text:
- "Disconnected from the network. Reconnecting in " +
- Math.round(data.wait / 1000) +
- " seconds… (Attempt " +
- data.attempt +
- " of " +
- data.max_retries +
- ")",
+ text: `Disconnected from the network. Reconnecting in ${Math.round(
+ data.wait / 1000
+ )} seconds… (Attempt ${data.attempt})`,
}),
true
);
diff --git a/src/plugins/irc-events/ctcp.js b/src/plugins/irc-events/ctcp.js
index 5a898a01..70a46de8 100644
--- a/src/plugins/irc-events/ctcp.js
+++ b/src/plugins/irc-events/ctcp.js
@@ -8,7 +8,7 @@ const pkg = require("../../../package.json");
const ctcpResponses = {
CLIENTINFO: () =>
- Object.getOwnPropertyNames(ctcpResponses) // TODO: This is currently handled by irc-framework
+ Object.getOwnPropertyNames(ctcpResponses)
.filter((key) => key !== "CLIENTINFO" && typeof ctcpResponses[key] === "function")
.join(" "),
PING: ({message}) => message.substring(5),
diff --git a/yarn.lock b/yarn.lock
index e1f69b9e..d5b226fc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2494,7 +2494,7 @@ core-js-pure@^3.0.0:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
-core-js@^3.0.1:
+core-js@^3.6.5:
version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
@@ -3469,11 +3469,16 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-eventemitter3@^2.0.2, eventemitter3@^2.0.3:
+eventemitter3@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
+eventemitter3@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
+ integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
+
events@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59"
@@ -4430,13 +4435,20 @@ husky@4.2.5:
slash "^3.0.0"
which-pm-runs "^1.0.0"
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+iconv-lite@0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
+iconv-lite@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
+ integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
icss-utils@^4.0.0, icss-utils@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
@@ -4589,19 +4601,19 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-irc-framework@4.8.1:
- version "4.8.1"
- resolved "https://registry.yarnpkg.com/irc-framework/-/irc-framework-4.8.1.tgz#79972989c682e1650520197e764d7f0b24fd41ba"
- integrity sha512-p/o58T25CSlnLFlpyBit2SN765HuvekICebiKlOeIsGLteRl8eqCHaWwk+zJxfoqSfbImKFye2dK/CPlPhME5g==
+irc-framework@4.9.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/irc-framework/-/irc-framework-4.9.0.tgz#7c27a20d87099e47f32023edf1cab6da6d7a05b9"
+ integrity sha512-cUYMnnKwcNpXtEw/CXnEwUtglmaWZbfu0E/0iI7bENC3bASPNfcvcyTsFQcdknpnoFLyh5kXpQCjPBWKTbOQAQ==
dependencies:
- core-js "^3.0.1"
- eventemitter3 "^2.0.2"
+ core-js "^3.6.5"
+ eventemitter3 "^4.0.3"
grapheme-splitter "^1.0.4"
- iconv-lite "^0.4.24"
+ iconv-lite "^0.6.2"
isomorphic-textencoder "^1.0.1"
- lodash "^4.17.11"
+ lodash "^4.17.15"
middleware-handler "^0.2.0"
- regenerator-runtime "^0.13.2"
+ regenerator-runtime "^0.13.5"
socksjs "^0.5.0"
is-absolute-url@^2.0.0:
@@ -7727,7 +7739,7 @@ regenerate@^1.4.0:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f"
integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==
-regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4:
+regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5:
version "0.13.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
@@ -8043,7 +8055,7 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==