From cfab5a18d3f053b7ccbd61c00d26b3115347f04d Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Tue, 16 Aug 2022 21:31:19 +0100 Subject: [PATCH] move server update to SQL migration (#500) --- .../Agent/Store/SQLite/Migrations.hs | 13 +--------- .../Migrations/M20220811_onion_hosts.hs | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs index d1fd407e8..b0f78635a 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations.hs @@ -18,25 +18,19 @@ where import Control.Monad (forM_) import Data.List (intercalate, sortBy) -import Data.List.NonEmpty (NonEmpty) -import qualified Data.Map as M import Data.Ord (comparing) import Data.Text (Text) -import Data.Text.Encoding (decodeLatin1) import Data.Time.Clock (getCurrentTime) import Database.SQLite.Simple (Connection, Only (..), Query (..)) import qualified Database.SQLite.Simple as DB import Database.SQLite.Simple.QQ (sql) import qualified Database.SQLite3 as SQLite3 -import Simplex.Messaging.Agent.Protocol (extraSMPServerHosts) import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220101_initial import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220301_snd_queue_keys import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220322_notifications import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220608_v2 import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220625_v2_ntf_mode import Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220811_onion_hosts -import Simplex.Messaging.Encoding.String -import Simplex.Messaging.Transport.Client (TransportHost) data Migration = Migration {name :: String, up :: Text} deriving (Show) @@ -64,15 +58,10 @@ get conn migrations = run :: Connection -> [Migration] -> IO () run conn ms = DB.withImmediateTransaction conn . forM_ ms $ - \Migration {name, up} -> insert name >> execSQL up >> updateServers name + \Migration {name, up} -> insert name >> execSQL up where insert name = DB.execute conn "INSERT INTO migrations (name, ts) VALUES (?, ?);" . (name,) =<< getCurrentTime execSQL = SQLite3.exec $ DB.connectionHandle conn - updateServers = \case - "m20220811_onion_hosts" -> forM_ (M.assocs extraSMPServerHosts) $ \(h, h') -> - let hs = decodeLatin1 . strEncode $ ([h, h'] :: NonEmpty TransportHost) - in DB.execute conn "UPDATE servers SET host = ? WHERE host = ?" (hs, decodeLatin1 $ strEncode h) - _ -> pure () initialize :: Connection -> IO () initialize conn = diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20220811_onion_hosts.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20220811_onion_hosts.hs index b383ea6f5..6c48957be 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20220811_onion_hosts.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Migrations/M20220811_onion_hosts.hs @@ -13,4 +13,30 @@ ALTER TABLE conn_confirmations ADD COLUMN smp_client_version INTEGER; UPDATE ntf_servers SET ntf_host = 'ntf2.simplex.im,ntg7jdjy2i3qbib3sykiho3enekwiaqg3icctliqhtqcg6jmoh6cxiad.onion' WHERE ntf_host = 'ntf2.simplex.im'; + +-- same servers as defined in Simplex.Messaging.Agent.Protocol, line 592 + +UPDATE servers +SET host = 'smp4.simplex.im,o5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion' +WHERE host = 'smp4.simplex.im'; + +UPDATE servers +SET host = 'smp5.simplex.im,jjbyvoemxysm7qxap7m5d5m35jzv5qq6gnlv7s4rsn7tdwwmuqciwpid.onion' +WHERE host = 'smp5.simplex.im'; + +UPDATE servers +SET host = 'smp6.simplex.im,bylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion' +WHERE host = 'smp6.simplex.im'; + +UPDATE servers +SET host = 'smp8.simplex.im,beccx4yfxxbvyhqypaavemqurytl6hozr47wfc7uuecacjqdvwpw2xid.onion' +WHERE host = 'smp8.simplex.im'; + +UPDATE servers +SET host = 'smp9.simplex.im,jssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion' +WHERE host = 'smp9.simplex.im'; + +UPDATE servers +SET host = 'smp10.simplex.im,rb2pbttocvnbrngnwziclp2f4ckjq65kebafws6g4hy22cdaiv5dwjqd.onion' +WHERE host = 'smp10.simplex.im'; |]