strongswan-sql 1.1.0.0 → 1.2.0.0
raw patch · 7 files changed
+80/−47 lines, 7 filesdep ~networkPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: network
API changes (from Hackage documentation)
+ StrongSwan.SQL: EAPUnspecified :: EAPType
+ StrongSwan.SQL: [_childSAMark] :: ChildSAConfig -> Maybe Text
+ StrongSwan.SQL: childSAMark :: Lens' ChildSAConfig (Maybe Text)
- StrongSwan.SQL: ChildSAConfig :: Maybe Int -> Text -> Word32 -> Word32 -> Word32 -> Maybe Text -> Bool -> SAMode -> SAAction -> SAAction -> SAAction -> Bool -> Word32 -> ChildSAConfig
+ StrongSwan.SQL: ChildSAConfig :: Maybe Int -> Text -> Word32 -> Word32 -> Word32 -> Maybe Text -> Bool -> SAMode -> SAAction -> SAAction -> SAAction -> Bool -> Word32 -> Maybe Text -> ChildSAConfig
Files
- app/CLI/Commands/ChildSA.hs +7/−0
- app/CLI/Commands/PeerCfg.hs +11/−4
- app/CLI/Types.hs +21/−19
- src/StrongSwan/SQL/Encoding.hs +5/−2
- src/StrongSwan/SQL/Statements.hs +3/−3
- src/StrongSwan/SQL/Types.hs +28/−14
- strongswan-sql.cabal +5/−5
app/CLI/Commands/ChildSA.hs view
@@ -33,6 +33,7 @@ cfgCloseAction cfgIPCompression cfgReqID+ cfgMark setChildSA :: Text -> StateT AppState IO Action setChildSA name = do@@ -132,6 +133,12 @@ param "req-id" "<SA request ID>" integer $ \reqID -> do ipsecSettings . getChildSAConfig . childSAReqID .= reqID flushIt++cfgMark :: Commands ()+cfgMark =+ param "mark" "<value[/mask]>" string $ \mark -> do+ ipsecSettings . getChildSAConfig . childSAMark .= Just mark+ flushIt flushChildSA :: StateT AppState IO Action flushChildSA = do
app/CLI/Commands/PeerCfg.hs view
@@ -1,7 +1,8 @@+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} module CLI.Commands.PeerCfg where -import Control.Lens ((.=))+import Control.Lens ((.=), use) import Control.Monad (void, when) import Control.Monad.IO.Class (liftIO) import Control.Monad.Trans.Maybe (MaybeT(..), runMaybeT)@@ -202,15 +203,17 @@ showPeer' = do AppState{_ipsecSettings = IPSecSettings{_getPeerConfig=PeerConfig{..}}} <- get let iD = _peerCfgId >>= return . show+ localId <- fetchIdentity _peerCfgLocalId+ remoteId <- fetchIdentity _peerCfgRemoteId liftIO $ do putStr "Peer Config " when (_peerCfgName /= "") $ putStr $ '\'': unpack _peerCfgName ++ "' " putStrLn $ "(ID: " ++ fromMaybe "*uncommitted*" iD ++ ")" putStrLn $ "=================================="; putStrLn $ "IKE version: " ++ show _peerCfgIKEVersion- putStrLn $ "IKE config ID: " ++ show _peerCfgIKEConfigId- putStrLn $ "Local identity: " ++ show _peerCfgLocalId- putStrLn $ "Remote identity: " ++ show _peerCfgRemoteId+ putStrLn $ "IKE config ID: " ++ maybe "<not set>" show _peerCfgIKEConfigId+ putStrLn $ "Local identity: " ++ maybe "<not set>" show localId+ putStrLn $ "Remote identity: " ++ maybe "<not set>" show remoteId putStrLn $ "Cert. policy: " ++ nameOf _peerCfgCertPolicy putStrLn $ "Unique Ids: " ++ nameOf _peerCfgUniqueIds putStrLn $ "Auth method: " ++ nameOf _peerCfgAuthMethod@@ -229,3 +232,7 @@ putStrLn $ "Mediated by: " ++ show _peerCfgMediatedBy putStrLn $ "Peer ID: " ++ show _peerCfgPeerId return NoAction+ where fetchIdentity ident = runMaybeT $ do+ db <- lift $ use dbContext+ iD <- MaybeT $ return ident+ findIdentity iD db
app/CLI/Types.hs view
@@ -91,25 +91,27 @@ fromName str = failure $ InvalidValue str instance Nameable SQL.EAPType where- nameOf SQL.EAPMD5 = "md5"- nameOf SQL.EAPGTC = "gtc"- nameOf SQL.EAPTLS = "tls"- nameOf SQL.EAPSIM = "sim"- nameOf SQL.EAPTTLS = "ttls"- nameOf SQL.EAPAKA = "aka"- nameOf SQL.EAPMSCHAPV2 = "mschapv2"- nameOf SQL.EAPTNC = "tnc"- nameOf SQL.EAPRADIUS = "radius"- fromName "md5" = return SQL.EAPMD5- fromName "gtc" = return SQL.EAPGTC- fromName "tls" = return SQL.EAPTLS- fromName "sim" = return SQL.EAPSIM- fromName "ttls" = return SQL.EAPTTLS- fromName "aka" = return SQL.EAPAKA- fromName "mschapv2" = return SQL.EAPMSCHAPV2- fromName "tnc" = return SQL.EAPTNC- fromName "radius" = return SQL.EAPRADIUS- fromName str = failure $ InvalidValue str+ nameOf SQL.EAPUnspecified = "unspecified"+ nameOf SQL.EAPMD5 = "md5"+ nameOf SQL.EAPGTC = "gtc"+ nameOf SQL.EAPTLS = "tls"+ nameOf SQL.EAPSIM = "sim"+ nameOf SQL.EAPTTLS = "ttls"+ nameOf SQL.EAPAKA = "aka"+ nameOf SQL.EAPMSCHAPV2 = "mschapv2"+ nameOf SQL.EAPTNC = "tnc"+ nameOf SQL.EAPRADIUS = "radius"+ fromName "md5" = return SQL.EAPMD5+ fromName "gtc" = return SQL.EAPGTC+ fromName "tls" = return SQL.EAPTLS+ fromName "sim" = return SQL.EAPSIM+ fromName "ttls" = return SQL.EAPTTLS+ fromName "aka" = return SQL.EAPAKA+ fromName "mschapv2" = return SQL.EAPMSCHAPV2+ fromName "tnc" = return SQL.EAPTNC+ fromName "radius" = return SQL.EAPRADIUS+ fromName "unspecified" = return SQL.EAPUnspecified+ fromName str = failure $ InvalidValue str instance Nameable SQL.AuthMethod where nameOf = fmap toLower . show
src/StrongSwan/SQL/Encoding.hs view
@@ -116,7 +116,8 @@ toSQL $ toTinyInt _childSADPDAction, toSQL $ toTinyInt _childSACloseAction, toSQL $ toTinyInt _childSAIPCompression,- toSQL $ toInt _childSAReqID ]+ toSQL $ toInt _childSAReqID,+ toSQL $ toVarChar _childSAMark ] fromValues (iD: name : lifeTime :@@ -130,6 +131,7 @@ closeAction : ipCompression : reqID :+ mark : []) = ChildSAConfig { _childSAId = return . fromInt $ fromSQL iD, _childSAName = fromJust . fromVarChar $ fromSQL name,@@ -143,7 +145,8 @@ _childSADPDAction = fromTinyInt $ fromSQL dpdAction, _childSACloseAction = fromTinyInt $ fromSQL closeAction, _childSAIPCompression = fromTinyInt $ fromSQL ipCompression,- _childSAReqID = fromInt $ fromSQL reqID+ _childSAReqID = fromInt $ fromSQL reqID,+ _childSAMark = fromVarChar $ fromSQL mark } fromValues xs = throw $ SQLValuesMismatch "ChildSAConfig" (show xs)
src/StrongSwan/SQL/Statements.hs view
@@ -153,13 +153,13 @@ deleteIKEStatement = "DELETE FROM ike_configs WHERE id = ?;" updateChildSAStatement :: SQL.Query-updateChildSAStatement = "UPDATE child_configs SET name = ?, lifetime = ?, rekeytime = ?, jitter = ?, updown = ?, hostaccess = ?, mode = ?, start_action = ?, dpd_action = ?, close_action = ?, ipcomp = ?, reqid = ? WHERE id = ?"+updateChildSAStatement = "UPDATE child_configs SET name = ?, lifetime = ?, rekeytime = ?, jitter = ?, updown = ?, hostaccess = ?, mode = ?, start_action = ?, dpd_action = ?, close_action = ?, ipcomp = ?, reqid = ?, mark = ? WHERE id = ?" createChildSATableStatement :: SQL.Query-createChildSATableStatement = "CREATE TABLE `child_configs` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(32) collate utf8_unicode_ci NOT NULL, `lifetime` mediumint(8) unsigned NOT NULL default '1500', `rekeytime` mediumint(8) unsigned NOT NULL default '1200', `jitter` mediumint(8) unsigned NOT NULL default '60', `updown` varchar(128) collate utf8_unicode_ci default NULL, `hostaccess` tinyint(1) unsigned NOT NULL default '0', `mode` tinyint(4) unsigned NOT NULL default '2', `start_action` tinyint(4) unsigned NOT NULL default '0', `dpd_action` tinyint(4) unsigned NOT NULL default '0', `close_action` tinyint(4) unsigned NOT NULL default '0', `ipcomp` tinyint(4) unsigned NOT NULL default '0', `reqid` mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (`id`), INDEX (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"+createChildSATableStatement = "CREATE TABLE `child_configs` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(32) collate utf8_unicode_ci NOT NULL, `lifetime` mediumint(8) unsigned NOT NULL default '1500', `rekeytime` mediumint(8) unsigned NOT NULL default '1200', `jitter` mediumint(8) unsigned NOT NULL default '60', `updown` varchar(128) collate utf8_unicode_ci default NULL, `hostaccess` tinyint(1) unsigned NOT NULL default '0', `mode` tinyint(4) unsigned NOT NULL default '2', `start_action` tinyint(4) unsigned NOT NULL default '0', `dpd_action` tinyint(4) unsigned NOT NULL default '0', `close_action` tinyint(4) unsigned NOT NULL default '0', `ipcomp` tinyint(4) unsigned NOT NULL default '0', `reqid` mediumint(8) unsigned NOT NULL default '0', `mark` varchar(32) collate utf8_unicode_ci default NULL, PRIMARY KEY (`id`), INDEX (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;" createChildSAStatement :: SQL.Query-createChildSAStatement = "INSERT INTO child_configs (name, lifetime, rekeytime, jitter, updown, hostaccess, mode, start_action, dpd_action, close_action, ipcomp, reqid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"+createChildSAStatement = "INSERT INTO child_configs (name, lifetime, rekeytime, jitter, updown, hostaccess, mode, start_action, dpd_action, close_action, ipcomp, reqid, mark) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);" findChildSAByNameStatement :: SQL.Query findChildSAByNameStatement = "SELECT * FROM child_configs WHERE name = ?;"
src/StrongSwan/SQL/Types.hs view
@@ -75,8 +75,17 @@ | IPv6AddrID (Maybe Int) IPv6 -- IPv6 Address | ASN1ID (Maybe Int) [ASN1] -- DER encoded ASN.1 distinguished name | OpaqueID (Maybe Int) ByteString -- Opaque octet string as ID- deriving (Eq, Show)+ deriving (Eq) +instance Show Identity where+ show (AnyID iD) = "%any (" ++ show iD ++ ")"+ show (IPv4AddrID iD ipv4) = "ipv4: " ++ show ipv4 ++ " (" ++ show iD ++ ")"+ show (NameID iD name) = "fqdn: " ++ T.unpack name ++ " (" ++ show iD ++ ")"+ show (EmailID iD mbox domain) = "email: " ++ T.unpack mbox ++ '@':T.unpack domain ++ " (" ++ show iD ++ ")"+ show (IPv6AddrID iD ipv6) = "ipv6: " ++ show ipv6 ++ " (" ++ show iD ++ ")"+ show (ASN1ID iD asn1s) = "asn1: " ++ show asn1s ++ " (" ++ show iD ++ ")"+ show (OpaqueID iD bytes) = "opaque:" ++ unpack bytes ++ " (" ++ show iD ++ ")"+ getIdentityId :: Identity -> Maybe Int getIdentityId (AnyID iD) = iD getIdentityId (IPv4AddrID iD _) = iD@@ -289,7 +298,8 @@ toEnum 4 = XAUTH toEnum x = throw $ UnknownAuthMethod x -data EAPType = EAPMD5+data EAPType = EAPUnspecified+ | EAPMD5 | EAPGTC | EAPTLS | EAPSIM@@ -301,16 +311,18 @@ deriving (Eq, Show) instance Enum EAPType where- fromEnum EAPMD5 = 4- fromEnum EAPGTC = 6- fromEnum EAPTLS = 13- fromEnum EAPSIM = 18- fromEnum EAPTTLS = 21- fromEnum EAPAKA = 23- fromEnum EAPMSCHAPV2 = 26- fromEnum EAPTNC = 38- fromEnum EAPRADIUS = 253+ fromEnum EAPUnspecified = 0+ fromEnum EAPMD5 = 4+ fromEnum EAPGTC = 6+ fromEnum EAPTLS = 13+ fromEnum EAPSIM = 18+ fromEnum EAPTTLS = 21+ fromEnum EAPAKA = 23+ fromEnum EAPMSCHAPV2 = 26+ fromEnum EAPTNC = 38+ fromEnum EAPRADIUS = 253 + toEnum 0 = EAPUnspecified toEnum 4 = EAPMD5 toEnum 6 = EAPGTC toEnum 13 = EAPTLS@@ -397,7 +409,8 @@ _childSADPDAction :: SAAction, _childSACloseAction :: SAAction, _childSAIPCompression :: Bool,- _childSAReqID :: Word32+ _childSAReqID :: Word32,+ _childSAMark :: Maybe Text } deriving (Eq, Show) instance Default ChildSAConfig where@@ -414,7 +427,8 @@ _childSADPDAction = None, _childSACloseAction = None, _childSAIPCompression = False,- _childSAReqID = 0+ _childSAReqID = 0,+ _childSAMark = Nothing } data PeerConfig = PeerConfig {@@ -454,7 +468,7 @@ _peerCfgCertPolicy = SendIfAsked, _peerCfgUniqueIds = True, _peerCfgAuthMethod = PubKey,- _peerCfgEAPType = EAPMSCHAPV2,+ _peerCfgEAPType = EAPUnspecified, _peerCfgEAPVendor = 0, _peerCfgKeyingTries = 3, _peerCfgRekeyTime = 7200,
strongswan-sql.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 8e901b023b4ac4274a0d123daf925a7dbcda18addb33e2bf88f710374ce1813d+-- hash: 6f32d30a00fb61271491341c0c55cdade3033598fbb9b665676f78315947f5ae name: strongswan-sql-version: 1.1.0.0+version: 1.2.0.0 synopsis: Interface library for strongSwan SQL backend description: Interface library and companion CLI tool to configure strongSwan IPsec over MySQL backend category: Console, Library, Network APIs, SQL@@ -52,7 +52,7 @@ , lens >=4.17 && <4.18 , mtl >=2.2 && <2.3 , mysql-haskell >=0.8.4 && <0.8.5- , network >=3.0 && <3.1+ , network >=2.8 && <3.1 , structured-cli >=2.5.0.3 && <2.6 , text >=1.2 && <1.3 , transformers >=0.4.2 && <0.6@@ -86,7 +86,7 @@ , lens >=4.17 && <4.18 , mtl >=2.2 && <2.3 , mysql-haskell >=0.8.4 && <0.8.5- , network >=3.0 && <3.1+ , network >=2.8 && <3.1 , strongswan-sql , structured-cli >=2.5.0.3 && <2.6 , text >=1.2 && <1.3@@ -116,7 +116,7 @@ , lens >=4.17 && <4.18 , mtl >=2.2 && <2.3 , mysql-haskell >=0.8.4 && <0.8.5- , network >=3.0 && <3.1+ , network >=2.8 && <3.1 , strongswan-sql , structured-cli >=2.5.0.3 && <2.6 , text >=1.2 && <1.3