radius 0.5.0.2 → 0.6.0.0
raw patch · 3 files changed
+145/−32 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Network.RADIUS.Types: UnknownARAPZoneAccess :: Int -> ARAPZoneAccess
+ Network.RADIUS.Types: UnknownAttribute :: Word8 -> ByteString -> PacketAttribute
+ Network.RADIUS.Types: UnknownFramedCompression :: Int -> FramedCompression
+ Network.RADIUS.Types: UnknownFramedProtocol :: Int -> FramedProtocol
+ Network.RADIUS.Types: UnknownFramedRouting :: Int -> FramedRouting
+ Network.RADIUS.Types: UnknownLoginService :: Int -> LoginService
+ Network.RADIUS.Types: UnknownNASPortType :: Int -> NASPortType
+ Network.RADIUS.Types: UnknownPacketType :: Int -> PacketType
+ Network.RADIUS.Types: UnknownServiceType :: Int -> ServiceType
+ Network.RADIUS.Types: UnknownTerminationAction :: Int -> TerminationAction
+ Network.RADIUS.Types: [getUnknownAttribute] :: PacketAttribute -> ByteString
+ Network.RADIUS.Types: [getUnknownType] :: PacketAttribute -> Word8
- Network.RADIUS.Encoding: getAttributeValue :: (Binary a) => Get a
+ Network.RADIUS.Encoding: getAttributeValue :: Binary a => Get a
- Network.RADIUS.Encoding: getEnum :: (Enum a) => Get a
+ Network.RADIUS.Encoding: getEnum :: Enum a => Get a
- Network.RADIUS.Encoding: putAttribute :: (Binary a) => Word8 -> a -> Put
+ Network.RADIUS.Encoding: putAttribute :: Binary a => Word8 -> a -> Put
- Network.RADIUS.Encoding: putEnum :: (Enum a) => a -> Put
+ Network.RADIUS.Encoding: putEnum :: Enum a => a -> Put
Files
- radius.cabal +4/−4
- src/Network/RADIUS/Encoding.hs +2/−1
- src/Network/RADIUS/Types.hs +139/−27
radius.cabal view
@@ -1,13 +1,13 @@ name: radius-version: 0.5.0.2+version: 0.6.0.0 synopsis: Remote Authentication Dial In User Service (RADIUS) description: This module provides types and on the wire de/coding of RADIUS packets as per RFC2865-homepage: https://gitlab.com/codemonkeylabs/radius#readme+homepage: https://github.com/erickg/radius#readme license: BSD3 license-file: LICENSE author: Erick Gonzalez maintainer: erick@codemonkeylabs.de-copyright: 2018 Erick Gonzalez+copyright: 2017 Erick Gonzalez category: Network build-type: Simple extra-source-files: README.md@@ -29,4 +29,4 @@ source-repository head type: git- location: https://gitlab.com/codemonkeylabs/radius+ location: https://github.com/erickg/radius
src/Network/RADIUS/Encoding.hs view
@@ -197,6 +197,7 @@ putWord8 attrLen putWord8 identity putLazyByteString str+ put (UnknownAttribute attributeType value) = putAttribute attributeType value get = do code <- getWord8@@ -300,7 +301,7 @@ identity <- getWord8 attrData <- getLazyByteString 16 -- CHAP response is always 16 octets return $ CHAPPassword identity attrData-getAttribute n = fail $ "Unknown RADIUS attribute type " ++ show n+getAttribute n = getAttributeStr >>= return . UnknownAttribute n -- | For internal use. getAttributeStr :: Get ByteString
src/Network/RADIUS/Types.hs view
@@ -41,18 +41,19 @@ | AccessChallenge | StatusServer | StatusClient+ | UnknownPacketType Int deriving (Show, Eq) - instance Enum PacketType where- fromEnum AccessRequest = 1- fromEnum AccessAccept = 2- fromEnum AccessReject = 3- fromEnum AccountingRequest = 4- fromEnum AccountingResponse = 5- fromEnum AccessChallenge = 11- fromEnum StatusServer = 12- fromEnum StatusClient = 13+ fromEnum AccessRequest = 1+ fromEnum AccessAccept = 2+ fromEnum AccessReject = 3+ fromEnum AccountingRequest = 4+ fromEnum AccountingResponse = 5+ fromEnum AccessChallenge = 11+ fromEnum StatusServer = 12+ fromEnum StatusClient = 13+ fromEnum (UnknownPacketType x) = x toEnum 1 = AccessRequest toEnum 2 = AccessAccept toEnum 3 = AccessReject@@ -61,7 +62,7 @@ toEnum 11 = AccessChallenge toEnum 12 = StatusServer toEnum 13 = StatusClient- toEnum x = error $ "Invalid RADIUS packet type " ++ show x+ toEnum x = UnknownPacketType x data PacketAttribute = UserNameAttribute { getUserNameAttribute :: ByteString }@@ -132,9 +133,10 @@ | AcctInterimIntervalAttribute { getAcctInterimIntervalAttribute :: Word32 } | NASPortIdAttribute { getNASPortIdAttribute :: ByteString } | FramedPoolAttribute { getFramedPoolAttribute :: ByteString }+ | UnknownAttribute { getUnknownType :: Word8,+ getUnknownAttribute :: ByteString } deriving (Show, Eq, Data) - data ServiceType = LoginService | FramedService | CallbackLoginService@@ -146,6 +148,7 @@ | CallbackNASPrompt | CallCheckService | CallbackAdministrativeService+ | UnknownServiceType Int deriving (Show, Eq, Data) instance Enum ServiceType where@@ -160,6 +163,7 @@ fromEnum CallbackNASPrompt = 9 fromEnum CallCheckService = 10 fromEnum CallbackAdministrativeService = 11+ fromEnum (UnknownServiceType x) = x toEnum 1 = LoginService toEnum 2 = FramedService toEnum 3 = CallbackLoginService@@ -171,7 +175,7 @@ toEnum 9 = CallbackNASPrompt toEnum 10 = CallCheckService toEnum 11 = CallbackAdministrativeService- toEnum x = error $ "Invalid RADIUS service type " ++ show x+ toEnum x = UnknownServiceType x data FramedProtocol = PPPFramedProtocol | SLIPFramedProtocol@@ -179,35 +183,63 @@ | GandalfFramedProtocol | XylogicsFramedProtocol | X75FramedProtocol+ | UnknownFramedProtocol Int deriving (Show, Eq, Data) instance Enum FramedProtocol where- fromEnum PPPFramedProtocol = 1- fromEnum SLIPFramedProtocol = 2- fromEnum ARAPFramedProtocol = 3- fromEnum GandalfFramedProtocol = 4- fromEnum XylogicsFramedProtocol = 5- fromEnum X75FramedProtocol = 6+ fromEnum PPPFramedProtocol = 1+ fromEnum SLIPFramedProtocol = 2+ fromEnum ARAPFramedProtocol = 3+ fromEnum GandalfFramedProtocol = 4+ fromEnum XylogicsFramedProtocol = 5+ fromEnum X75FramedProtocol = 6+ fromEnum (UnknownFramedProtocol x) = x toEnum 1 = PPPFramedProtocol toEnum 2 = SLIPFramedProtocol toEnum 3 = ARAPFramedProtocol toEnum 4 = GandalfFramedProtocol toEnum 5 = XylogicsFramedProtocol toEnum 6 = X75FramedProtocol- toEnum x = error $ "Invalid framed protocol " ++ show x+ toEnum x = UnknownFramedProtocol x data FramedRouting = NoneFramedRouting | SendFramedRouting | ListenFramedRouting | SendAndListenFramedRouting- deriving (Show, Eq, Enum, Data)+ | UnknownFramedRouting Int+ deriving (Show, Eq, Data) +instance Enum FramedRouting where+ fromEnum NoneFramedRouting = 1+ fromEnum SendFramedRouting = 2+ fromEnum ListenFramedRouting = 3+ fromEnum SendAndListenFramedRouting = 4+ fromEnum (UnknownFramedRouting x) = x+ toEnum 1 = NoneFramedRouting+ toEnum 2 = SendFramedRouting+ toEnum 3 = ListenFramedRouting+ toEnum 4 = SendAndListenFramedRouting+ toEnum x = UnknownFramedRouting x+ data FramedCompression = NoCompression | VJTCPIPHeaderCompression | IPXHeaderCompression | StacLZSCompression- deriving (Show, Eq, Enum, Data)+ | UnknownFramedCompression Int+ deriving (Show, Eq, Data) +instance Enum FramedCompression where+ fromEnum NoCompression = 1+ fromEnum VJTCPIPHeaderCompression = 2+ fromEnum IPXHeaderCompression = 3+ fromEnum StacLZSCompression = 4+ fromEnum (UnknownFramedCompression x) = x+ toEnum 1 = NoCompression+ toEnum 2 = VJTCPIPHeaderCompression+ toEnum 3 = IPXHeaderCompression+ toEnum 4 = StacLZSCompression+ toEnum x = UnknownFramedCompression x+ data LoginService = TelnetService | RloginService | TCPClearService@@ -217,11 +249,44 @@ | X25T3POSService | UnusedService | TCPClearQuietService- deriving (Show, Eq, Enum, Data)+ | UnknownLoginService Int+ deriving (Show, Eq, Data) -data TerminationAction = DefaultTerminationAction | RADIUSRequestTerminationAction- deriving (Show, Eq, Enum, Data)+instance Enum LoginService where+ fromEnum TelnetService = 1+ fromEnum RloginService = 2+ fromEnum TCPClearService = 3+ fromEnum PortMasterService = 4+ fromEnum LATService = 5+ fromEnum X25PADService = 6+ fromEnum X25T3POSService = 7+ fromEnum UnusedService = 8+ fromEnum TCPClearQuietService = 9+ fromEnum (UnknownLoginService x) = x+ toEnum 1 = TelnetService+ toEnum 2 = RloginService+ toEnum 3 = TCPClearService+ toEnum 4 = PortMasterService+ toEnum 5 = LATService+ toEnum 6 = X25PADService+ toEnum 7 = X25T3POSService+ toEnum 8 = UnusedService+ toEnum 9 = TCPClearQuietService+ toEnum x = UnknownLoginService x +data TerminationAction = DefaultTerminationAction+ | RADIUSRequestTerminationAction+ | UnknownTerminationAction Int+ deriving (Show, Eq, Data)++instance Enum TerminationAction where+ fromEnum DefaultTerminationAction = 1+ fromEnum RADIUSRequestTerminationAction = 2+ fromEnum (UnknownTerminationAction x) = x+ toEnum 1 = DefaultTerminationAction+ toEnum 2 = RADIUSRequestTerminationAction+ toEnum x = UnknownTerminationAction x+ data NASPortType = AsyncNASPort | SyncNASPort | ISDNSyncPort@@ -242,18 +307,65 @@ | CableNASPort | WirelessOtherNASPort | WirelessIEEE80211NASPort- deriving (Show, Eq, Enum, Data)+ | UnknownNASPortType Int+ deriving (Show, Eq, Data) +instance Enum NASPortType where+ fromEnum AsyncNASPort = 1+ fromEnum SyncNASPort = 2+ fromEnum ISDNSyncPort = 3+ fromEnum ISDNAsyncV120Port = 4+ fromEnum ISDNAsyncV110Port = 5+ fromEnum VirtualNASPort = 6+ fromEnum PIAFSNASPort = 7+ fromEnum HDLCClearChannelNASPort = 8+ fromEnum X25NASPort = 9+ fromEnum X75NASPort = 10+ fromEnum G3FaxNASPort = 11+ fromEnum SDSLNASPort = 12+ fromEnum ADSLCAPNASPort = 13+ fromEnum ADSLDMTNASPort = 14+ fromEnum IDSLNASPort = 15+ fromEnum EthernetNASPort = 16+ fromEnum XDSLNASPort = 17+ fromEnum CableNASPort = 18+ fromEnum WirelessOtherNASPort = 19+ fromEnum WirelessIEEE80211NASPort = 20+ fromEnum (UnknownNASPortType x) = x+ toEnum 1 = AsyncNASPort+ toEnum 2 = SyncNASPort+ toEnum 3 = ISDNSyncPort+ toEnum 4 = ISDNAsyncV120Port+ toEnum 5 = ISDNAsyncV110Port+ toEnum 6 = VirtualNASPort+ toEnum 7 = PIAFSNASPort+ toEnum 8 = HDLCClearChannelNASPort+ toEnum 9 = X25NASPort+ toEnum 10 = X75NASPort+ toEnum 11 = G3FaxNASPort+ toEnum 12 = SDSLNASPort+ toEnum 13 = ADSLCAPNASPort+ toEnum 14 = ADSLDMTNASPort+ toEnum 15 = IDSLNASPort+ toEnum 16 = EthernetNASPort+ toEnum 17 = XDSLNASPort+ toEnum 18 = CableNASPort+ toEnum 19 = WirelessOtherNASPort+ toEnum 20 = WirelessIEEE80211NASPort+ toEnum x = UnknownNASPortType x+ data ARAPZoneAccess = DefaultZoneOnlyARAPAccess | UseZoneFilterInclusivelyARAPAccess | UseZoneFilterExclusivelyARAPAccess+ | UnknownARAPZoneAccess Int deriving (Show, Eq, Data) instance Enum ARAPZoneAccess where toEnum 1 = DefaultZoneOnlyARAPAccess toEnum 2 = UseZoneFilterInclusivelyARAPAccess toEnum 4 = UseZoneFilterExclusivelyARAPAccess- toEnum n = error $ "Invalid RADIUS ARAP Zone Access " ++ show n- fromEnum DefaultZoneOnlyARAPAccess = 1+ toEnum x = UnknownARAPZoneAccess x+ fromEnum DefaultZoneOnlyARAPAccess = 1 fromEnum UseZoneFilterInclusivelyARAPAccess = 2 fromEnum UseZoneFilterExclusivelyARAPAccess = 4+ fromEnum (UnknownARAPZoneAccess x) = x