From 5576e7ae10cc1cde85b69f0a0bc1d0d8ad02c033 Mon Sep 17 00:00:00 2001 From: Owen Shepherd Date: Wed, 26 Jun 2024 15:38:15 +0100 Subject: [PATCH] refactor: Use less brittle tls settings construction This change uses a record update on the default TLSSettings, to prevent changes in available settings causing build failures. For example, crypton-connection added a 'settingClientSupported' field to 'TLSSettings'. --- net-mqtt.cabal | 1 + src/Network/MQTT/Client.hs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/net-mqtt.cabal b/net-mqtt.cabal index efd251b..c791b2b 100644 --- a/net-mqtt.cabal +++ b/net-mqtt.cabal @@ -49,6 +49,7 @@ library , conduit-extra >=1.3.0 && <1.5 , containers >=0.5.0 && <0.7 , crypton-connection >=0.3.0 + , data-default-class , deepseq >=1.4.3.0 && <1.5 , monad-loops >=0.4.3 , network-conduit-tls ==1.4.* diff --git a/src/Network/MQTT/Client.hs b/src/Network/MQTT/Client.hs index 7126d41..522aaca 100644 --- a/src/Network/MQTT/Client.hs +++ b/src/Network/MQTT/Client.hs @@ -56,6 +56,7 @@ import Data.Conduit.Attoparsec (conduitParser) import qualified Data.Conduit.Combinators as C import Data.Conduit.Network (AppData, appSink, appSource, clientSettings, runTCPClient) import Data.Conduit.Network.TLS (runTLSClient, tlsClientConfig, tlsClientTLSSettings) +import Data.Default.Class (def) import Data.Foldable (traverse_) import Data.Map.Strict (Map) import qualified Data.Map.Strict as Map @@ -157,7 +158,10 @@ mqttConfig = MQTTConfig{_hostname="", _port=1883, _connID="", _msgCB=NoCallback, _protocol=Protocol311, _connProps=mempty, _connectTimeout=180000000, - _tlsSettings=TLSSettingsSimple False False False, + _tlsSettings=def + {settingDisableCertificateValidation=False, + settingDisableSession=False, + settingUseServerName=False}, _pingPeriod=30000000, _pingPatience=90000000}