úÎGŒDÓ     portable experimental#Vincent Hanquez <vincent@snarc.org>NoneDShared values (certificate store, sessions, ..) between connections PAt the moment, this is only strictly needed to shared sessions and certificates & when using a TLS enabled connection. :This opaque type represent a connection to a destination. this is set to  on EOF 6return a simple tuple of the port and hostname that we're connected to. >TLS Settings that can be either expressed as simple settings, ' or as full blown TLS.Params settings. IUnless you need access to parameters that are not accessible through the 4 simple settings, you should use TLSSettingsSimple. Dfull blown TLS Settings directly using TLS.Params. for power users. )Simple TLS settings. recommended to use. -Disable certificate verification completely,  this make TLS/!SSL vulnerable to a MITM attack. , not recommended to use, but for testing. Disable session management. TLS/SSL connections - will always re-established their context.  Not Implemented Yet. 0Use server name extension. Not Implemented Yet. #Socks settings for the connection. MThe simple settings is just the hostname and portnumber of the proxy server. That'2s for now the only settings in the SOCKS package, N socks password, or any sort of other authentications is not yet implemented. 1Connection Parameters to establish a Connection. 0The strict minimum is an hostname and the port. @If you need to establish a TLS connection, you should make sure ' connectionUseSecure is correctly set. =If you need to connect through a SOCKS, you should make sure & connectionUseSocks is correctly set. host name to connect to. port number to connect to. optional TLS parameters. optional Socks configuration. OSimple backend enumeration, either using a raw connection or a tls connection. !"#$  %&'!"#$  %&!"#$    &%'portable experimental#Vincent Hanquez <vincent@snarc.org>None HThis is the exception raised if we reached the user specified limit for  the line in ConnectionGetLine. BInitialize the library with shared parameters between connection. AUse an already established handle to create a connection object. Fif the TLS Settings is set, it will do the handshake with the server. N The SOCKS settings have no impact here, as the handle is already established -connect to a destination using the parameter 'Put a block of data in the connection. "Get some bytes from a connection. JThe size argument is just the maximum that could be returned to the user. & The call will return as soon as there's data, even if there's less ) than requested. Hence, it behaves like (. On end of input, , returns 0, but subsequent calls will throw  an ) exception. 0Get the next block of data from the connection. Like /, but return the unused portion to the buffer, ' where it will be the next chunk read. :Get the next line, using ASCII LF as the line terminator. This throws an  isEOFError1 exception on end of input, and LineTooLong when K the number of bytes gathered is over the limit without a line terminator. JThe actual line returned can be bigger than the limit specified, provided H that the last chunk returned by the underlaying backend contains a LF. M In another world only when we need more input and limit is reached that the ' LineTooLong exception will be raised. GAn end of file will be considered as a line terminator too, if line is  not empty. Close a connection. 6Activate secure layer using the parameters specified. @This is typically used to negociate a TLS channel on an already @ establish channel, e.g. supporting a STARTTLS command. it also < flush the received buffer to prevent application confusing 4 received data before and after the setSecure call. >If the connection is already using TLS, nothing else happens. 8Returns if the connection is establish securely or not. *+,-./'The global context of this connection. AThe parameters for this connection (where to connect, and such). +The new established connection on success. 0?Maximum number of bytes before raising a LineTooLong exception  Connection &The received line with the LF trimmed 1234   *+,-./012345       !"#$%&'()*+,--./01234567connection-0.1.3Network.ConnectionNetwork.Connection.TypesConnectionContext Connection connectionID TLSSettingsTLSSettingsSimple#settingDisableCertificateValidationsettingDisableSessionsettingUseServerName SockSettingsSockSettingsSimpleConnectionParamsconnectionHostnameconnectionPortconnectionUseSecureconnectionUseSocks LineTooLonginitConnectionContextconnectFromHandle connectTo connectionPut connectionGetconnectionGetChunkconnectionGetChunk'connectionGetLineconnectionCloseconnectionSetSecureconnectionIsSecureconnectionBufferbase Data.MaybeNothingConnectionBackendglobalCertificateStoreconnectionBackend ConnectionTLSConnectionStream$fDefaultTLSSettingsbytestring-0.10.0.2Data.ByteStringhGetSomeSystem.IO.Error isEOFErrorConnectionSessionManagerManager makeTLSParams withBackend connectionNewconnectionGetChunkBasethrowEOF tlsEstablish($fSessionManagerConnectionSessionManager$fExceptionLineTooLong