From fab95483e83f8ce8010ee18be22805f86a864a80 Mon Sep 17 00:00:00 2001 From: Andrew Dryga Date: Wed, 27 Mar 2024 18:48:27 -0600 Subject: [PATCH] hotfix: reload dns config before sending it --- elixir/apps/api/lib/api/client/channel.ex | 4 +++- elixir/apps/api/test/api/client/channel_test.exs | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/elixir/apps/api/lib/api/client/channel.ex b/elixir/apps/api/lib/api/client/channel.ex index 67fc43342..ce93c5e24 100644 --- a/elixir/apps/api/lib/api/client/channel.ex +++ b/elixir/apps/api/lib/api/client/channel.ex @@ -88,12 +88,14 @@ defmodule API.Client.Channel do end def handle_info(:config_changed, socket) do + account = Accounts.fetch_account_by_id!(socket.assigns.client.account_id) + :ok = push(socket, "config_changed", %{ interface: Views.Interface.render(%{ socket.assigns.client - | account: socket.assigns.subject.account + | account: account }) }) diff --git a/elixir/apps/api/test/api/client/channel_test.exs b/elixir/apps/api/test/api/client/channel_test.exs index 1e3dba0b7..48c295fce 100644 --- a/elixir/apps/api/test/api/client/channel_test.exs +++ b/elixir/apps/api/test/api/client/channel_test.exs @@ -242,10 +242,22 @@ defmodule API.Client.ChannelTest do describe "handle_info/2 :config_changed" do test "sends updated configuration", %{ + account: account, client: client, socket: socket } do channel_pid = socket.channel_pid + + Fixtures.Accounts.update_account( + account, + config: %{ + clients_upstream_dns: [ + %{protocol: "ip_port", address: "1.2.3.1"}, + %{protocol: "ip_port", address: "1.8.8.1:53"} + ] + } + ) + send(channel_pid, :config_changed) assert_push "config_changed", %{interface: interface} @@ -254,8 +266,8 @@ defmodule API.Client.ChannelTest do ipv4: client.ipv4, ipv6: client.ipv6, upstream_dns: [ - %{protocol: :ip_port, address: "1.1.1.1:53"}, - %{protocol: :ip_port, address: "8.8.8.8:53"} + %{protocol: :ip_port, address: "1.2.3.1:53"}, + %{protocol: :ip_port, address: "1.8.8.1:53"} ] } end