domain-auth-0.2.4: Network/DomainAuth/SPF/Types.hs
{-# LANGUAGE OverloadedStrings #-}
module Network.DomainAuth.SPF.Types where
import Data.ByteString (ByteString)
import Data.IP
import Network.DNS (Domain)
----------------------------------------------------------------
-- See DAResult in Network.DomainAuth.Types
data Qualifier = Q_Pass | Q_HardFail | Q_Softfail | Q_Neutral
deriving (Eq, Enum, Bounded, Show)
-- Depends on Qualifier
qualifierSymbol :: ByteString
qualifierSymbol = "+-~?"
data SPF
= SPF_IPv4Range Qualifier (AddrRange IPv4)
| SPF_IPv6Range Qualifier (AddrRange IPv6)
| SPF_Address Qualifier (Maybe Domain) (Int, Int)
| SPF_MX Qualifier (Maybe Domain) (Int, Int)
| SPF_Include Qualifier Domain
| SPF_All Qualifier
| SPF_Redirect Domain
deriving (Show)
----------------------------------------------------------------
data SpfSeq
= SS_All Qualifier
| SS_IPv4Range Qualifier (AddrRange IPv4)
| SS_IPv6Range Qualifier (AddrRange IPv6)
| SS_IPv4Ranges Qualifier [AddrRange IPv4]
| SS_IPv6Ranges Qualifier [AddrRange IPv6]
| SS_IF_Pass Qualifier [IO SpfSeq]
| SS_SpfSeq [IO SpfSeq]