Copyright | (c) 2010-2019 Vincent Hanquez <vincent@snarc.org> |
---|---|
License | BSD-style |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Network.Socks5.Types
Description
Synopsis
- data SocksVersion = SocksVer5
- data SocksCommand
- data SocksMethod
- data SocksHostAddress
- = SocksAddrIPV4 !HostAddress
- | SocksAddrDomainName !SocksFQDN
- | SocksAddrIPV6 !HostAddress6
- data SocksAddress = SocksAddress !SocksHostAddress !PortNumber
- data SocksReply
- data SocksVersionNotSupported = SocksVersionNotSupported
- data SocksError
- type SocksFQDN = ByteString
Documentation
data SocksVersion Source #
Type representing SOCKS protocol versions.
Constructors
SocksVer5 | SOCKS Protocol Version 5. The only version implemented by the library. |
Instances
Show SocksVersion Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksVersion -> ShowS show :: SocksVersion -> String showList :: [SocksVersion] -> ShowS | |
Eq SocksVersion Source # | |
Defined in Network.Socks5.Types | |
Ord SocksVersion Source # | |
Defined in Network.Socks5.Types Methods compare :: SocksVersion -> SocksVersion -> Ordering (<) :: SocksVersion -> SocksVersion -> Bool (<=) :: SocksVersion -> SocksVersion -> Bool (>) :: SocksVersion -> SocksVersion -> Bool (>=) :: SocksVersion -> SocksVersion -> Bool max :: SocksVersion -> SocksVersion -> SocksVersion min :: SocksVersion -> SocksVersion -> SocksVersion |
data SocksCommand Source #
Type representing commands that can be sent or received under the SOCKS protocol.
Constructors
SocksCommandConnect | The CONNECT request. |
SocksCommandBind | The BIND request. Not implemented by the library. |
SocksCommandUdpAssociate | The UDP ASSOCIATE request. Not implemented by the library. |
SocksCommandOther !Word8 | Other requests. None are specified by the SOCKS Protocol Version 5. |
Instances
data SocksMethod Source #
Type representing authentication methods available under the SOCKS protocol.
Only SocksMethodNone
is effectively implemented, but other values are
enumerated for completeness.
Constructors
SocksMethodNone | NO AUTHENTICATION REQUIRED. |
SocksMethodGSSAPI | GSSAPI. |
SocksMethodUsernamePassword | USERNAME/PASSWORD. |
SocksMethodOther !Word8 | IANA ASSIGNED or RESERVED FOR PRIVATE METHODS. |
SocksMethodNotAcceptable | NO ACCEPTABLE METHODS. |
Instances
data SocksHostAddress Source #
Type representing host addresses under the SOCKS protocol.
Constructors
SocksAddrIPV4 !HostAddress | A version-4 IP address. |
SocksAddrDomainName !SocksFQDN | A fully-qualified domain name (FQDN). |
SocksAddrIPV6 !HostAddress6 | A version-6 IP address. |
Instances
Show SocksHostAddress Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksHostAddress -> ShowS show :: SocksHostAddress -> String showList :: [SocksHostAddress] -> ShowS | |
Eq SocksHostAddress Source # | |
Defined in Network.Socks5.Types Methods (==) :: SocksHostAddress -> SocksHostAddress -> Bool (/=) :: SocksHostAddress -> SocksHostAddress -> Bool | |
Ord SocksHostAddress Source # | |
Defined in Network.Socks5.Types Methods compare :: SocksHostAddress -> SocksHostAddress -> Ordering (<) :: SocksHostAddress -> SocksHostAddress -> Bool (<=) :: SocksHostAddress -> SocksHostAddress -> Bool (>) :: SocksHostAddress -> SocksHostAddress -> Bool (>=) :: SocksHostAddress -> SocksHostAddress -> Bool max :: SocksHostAddress -> SocksHostAddress -> SocksHostAddress min :: SocksHostAddress -> SocksHostAddress -> SocksHostAddress |
data SocksAddress Source #
Type representing socket addresses under the SOCKS protocol.
Constructors
SocksAddress !SocksHostAddress !PortNumber |
Instances
Show SocksAddress Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksAddress -> ShowS show :: SocksAddress -> String showList :: [SocksAddress] -> ShowS | |
Eq SocksAddress Source # | |
Defined in Network.Socks5.Types | |
Ord SocksAddress Source # | |
Defined in Network.Socks5.Types Methods compare :: SocksAddress -> SocksAddress -> Ordering (<) :: SocksAddress -> SocksAddress -> Bool (<=) :: SocksAddress -> SocksAddress -> Bool (>) :: SocksAddress -> SocksAddress -> Bool (>=) :: SocksAddress -> SocksAddress -> Bool max :: SocksAddress -> SocksAddress -> SocksAddress min :: SocksAddress -> SocksAddress -> SocksAddress |
data SocksReply Source #
Type representing replies under the SOCKS protocol.
Constructors
SocksReplySuccess | The server reports that the request succeeded. |
SocksReplyError SocksError | The server reports that the request did not succeed. |
Instances
Data SocksReply Source # | |
Defined in Network.Socks5.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SocksReply -> c SocksReply gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SocksReply toConstr :: SocksReply -> Constr dataTypeOf :: SocksReply -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SocksReply) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SocksReply) gmapT :: (forall b. Data b => b -> b) -> SocksReply -> SocksReply gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SocksReply -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SocksReply -> r gmapQ :: (forall d. Data d => d -> u) -> SocksReply -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SocksReply -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SocksReply -> m SocksReply gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksReply -> m SocksReply gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksReply -> m SocksReply | |
Enum SocksReply Source # | |
Defined in Network.Socks5.Types Methods succ :: SocksReply -> SocksReply pred :: SocksReply -> SocksReply toEnum :: Int -> SocksReply fromEnum :: SocksReply -> Int enumFrom :: SocksReply -> [SocksReply] enumFromThen :: SocksReply -> SocksReply -> [SocksReply] enumFromTo :: SocksReply -> SocksReply -> [SocksReply] enumFromThenTo :: SocksReply -> SocksReply -> SocksReply -> [SocksReply] | |
Show SocksReply Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksReply -> ShowS show :: SocksReply -> String showList :: [SocksReply] -> ShowS | |
Eq SocksReply Source # | |
Defined in Network.Socks5.Types | |
Ord SocksReply Source # | |
Defined in Network.Socks5.Types Methods compare :: SocksReply -> SocksReply -> Ordering (<) :: SocksReply -> SocksReply -> Bool (<=) :: SocksReply -> SocksReply -> Bool (>) :: SocksReply -> SocksReply -> Bool (>=) :: SocksReply -> SocksReply -> Bool max :: SocksReply -> SocksReply -> SocksReply min :: SocksReply -> SocksReply -> SocksReply |
data SocksVersionNotSupported Source #
Type representing exceptions.
Constructors
SocksVersionNotSupported | The SOCKS protocol version is not supported. This library only implements SOCKS Protocol Version 5. |
Instances
Data SocksVersionNotSupported Source # | |
Defined in Network.Socks5.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SocksVersionNotSupported -> c SocksVersionNotSupported gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SocksVersionNotSupported toConstr :: SocksVersionNotSupported -> Constr dataTypeOf :: SocksVersionNotSupported -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SocksVersionNotSupported) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SocksVersionNotSupported) gmapT :: (forall b. Data b => b -> b) -> SocksVersionNotSupported -> SocksVersionNotSupported gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SocksVersionNotSupported -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SocksVersionNotSupported -> r gmapQ :: (forall d. Data d => d -> u) -> SocksVersionNotSupported -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SocksVersionNotSupported -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SocksVersionNotSupported -> m SocksVersionNotSupported gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksVersionNotSupported -> m SocksVersionNotSupported gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksVersionNotSupported -> m SocksVersionNotSupported | |
Exception SocksVersionNotSupported Source # | |
Defined in Network.Socks5.Types Methods toException :: SocksVersionNotSupported -> SomeException fromException :: SomeException -> Maybe SocksVersionNotSupported displayException :: SocksVersionNotSupported -> String backtraceDesired :: SocksVersionNotSupported -> Bool | |
Show SocksVersionNotSupported Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksVersionNotSupported -> ShowS show :: SocksVersionNotSupported -> String showList :: [SocksVersionNotSupported] -> ShowS |
data SocksError Source #
Type representing SOCKS errors that can be part of a SOCKS reply.
Constructors
SocksErrorGeneralServerFailure | General SOCKS server failure. |
SocksErrorConnectionNotAllowedByRule | Connection not allowed by ruleset. |
SocksErrorNetworkUnreachable | Network unreachable. |
SocksErrorHostUnreachable | Host unreachable. |
SocksErrorConnectionRefused | Connection refused. |
SocksErrorTTLExpired | TTL expired. |
SocksErrorCommandNotSupported | Command not supported. |
SocksErrorAddrTypeNotSupported | Address type not supported. |
SocksErrorOther Word8 | Other error. Unassigned in SOCKS Protocol Version 5. |
Instances
Data SocksError Source # | |
Defined in Network.Socks5.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SocksError -> c SocksError gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SocksError toConstr :: SocksError -> Constr dataTypeOf :: SocksError -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SocksError) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SocksError) gmapT :: (forall b. Data b => b -> b) -> SocksError -> SocksError gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SocksError -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SocksError -> r gmapQ :: (forall d. Data d => d -> u) -> SocksError -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> SocksError -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> SocksError -> m SocksError gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksError -> m SocksError gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SocksError -> m SocksError | |
Enum SocksError Source # | |
Defined in Network.Socks5.Types Methods succ :: SocksError -> SocksError pred :: SocksError -> SocksError toEnum :: Int -> SocksError fromEnum :: SocksError -> Int enumFrom :: SocksError -> [SocksError] enumFromThen :: SocksError -> SocksError -> [SocksError] enumFromTo :: SocksError -> SocksError -> [SocksError] enumFromThenTo :: SocksError -> SocksError -> SocksError -> [SocksError] | |
Exception SocksError Source # | |
Defined in Network.Socks5.Types Methods toException :: SocksError -> SomeException fromException :: SomeException -> Maybe SocksError displayException :: SocksError -> String backtraceDesired :: SocksError -> Bool | |
Show SocksError Source # | |
Defined in Network.Socks5.Types Methods showsPrec :: Int -> SocksError -> ShowS show :: SocksError -> String showList :: [SocksError] -> ShowS | |
Eq SocksError Source # | |
Defined in Network.Socks5.Types | |
Ord SocksError Source # | |
Defined in Network.Socks5.Types Methods compare :: SocksError -> SocksError -> Ordering (<) :: SocksError -> SocksError -> Bool (<=) :: SocksError -> SocksError -> Bool (>) :: SocksError -> SocksError -> Bool (>=) :: SocksError -> SocksError -> Bool max :: SocksError -> SocksError -> SocksError min :: SocksError -> SocksError -> SocksError |
type SocksFQDN = ByteString Source #
Type synonym representing fully-qualified domain names (FQDN). The SOCKS
Protocol Version 5 does not specify an encoding for a FQDN other than there
is no terminating NUL
octet (byte).
This library's API assumes that FQDN values comprise only ASCII characters. Domain names that include other Unicode code points should be Punycode encoded.