message: Reject if the error *includes* one of these lines
diff: @@ -28,6 +28,12 @@ const PING_RATE_MS = 1000 * 60;
  // String reply of any CTCP Version requests
  const CTCP_VERSION = 'matrix-appservice-irc, part of the Matrix.org Network';
  +const CONN_LIMIT_MESSAGES = [
  + "too many host connections", // ircd-seven
  + "no more connections allowed in your connection class",
  + "this server is full", // unrealircd
  +]
  +
  // Log an Error object to stderr
  function logError(err) {
  if (!err || !err.message) {
  @@ -118,7 +124,7 @@ ConnectionInstance.prototype.disconnect = function(reason) {
  }
  if (this.state !== "connected") {
  // we never resolved this defer, so reject it.
  - this.reject(new Error(reason));
  + this._connectDefer.reject(new Error(reason));
  }
  if (this.state === "connected" && this.onDisconnect) {
  // we only invoke onDisconnect once we've had a successful connect.
  @@ -215,7 +221,9 @@ ConnectionInstance.prototype._listenForErrors = function() {
  self.disconnect("banned").catch(logError);
  return;
  }
  - const tooManyHosts = errText.startsWith("Too many host connections");
  + const tooManyHosts = CONN_LIMIT_MESSAGES.find((connLimitMsg) => {
  + return errText.includes(connLimitMsg);
  + }) !== undefined;
  if (tooManyHosts) {
  self.disconnect("toomanyconns").catch(logError);
  return;
  