From 0d1363253d3e239d933d73acb29881d66cd366a4 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Sat, 4 Dec 2021 15:05:21 +0100
Subject: [PATCH] matrix: Use node --dns-result-order=ipv4first to work around
 bug

Node's address lookup strips the scope ID from link-local IPv6
addresses, making them invalid and unable to be connected to.

We're getting hit with this since Node 17 because it now defaults to the
`verbatim` dns-result-order and this happens to return the link-local
IPv6 address for `matrix.archlinux.org` first.

Specify `ipv4first` so we return to Node 16's behavior.
---
 roles/matrix/files/matrix-appservice-irc.service | 2 +-
 roles/matrix/files/mjolnir.service               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/roles/matrix/files/matrix-appservice-irc.service b/roles/matrix/files/matrix-appservice-irc.service
index ae5cc980d..fc052efa5 100644
--- a/roles/matrix/files/matrix-appservice-irc.service
+++ b/roles/matrix/files/matrix-appservice-irc.service
@@ -6,7 +6,7 @@ After=network.target synapse.service
 [Service]
 User=synapse
 WorkingDirectory=/var/lib/synapse/matrix-appservice-irc
-ExecStart=/usr/bin/node app.js \
+ExecStart=/usr/bin/node --dns-result-order=ipv4first app.js \
   -c /etc/synapse/irc-bridge.yaml \
   -f /etc/synapse/appservice-registration-irc.yaml
 AmbientCapabilities=CAP_NET_BIND_SERVICE
diff --git a/roles/matrix/files/mjolnir.service b/roles/matrix/files/mjolnir.service
index 59cdb6564..729633a2e 100644
--- a/roles/matrix/files/mjolnir.service
+++ b/roles/matrix/files/mjolnir.service
@@ -8,7 +8,7 @@ User=synapse
 WorkingDirectory=/var/lib/synapse/mjolnir
 Environment=NODE_ENV=production
 Environment=NODE_CONFIG_DIR=/etc/synapse/mjolnir
-ExecStart=/usr/bin/node lib/index.js
+ExecStart=/usr/bin/node --dns-result-order=ipv4first lib/index.js
 
 [Install]
 WantedBy=multi-user.target
-- 
GitLab