úÎ8!5Ð     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. 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, ; socks password, or authentication 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 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, / however the call will returns as soon as there's data, even if there's less  data than expected. 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. 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. +,   $%&'()*+,-       !"##$%&'()*+connection-0.1.1Network.ConnectionNetwork.Connection.TypesConnectionContext Connection connectionID TLSSettingsTLSSettingsSimple#settingDisableCertificateValidationsettingDisableSessionsettingUseServerName SockSettingsSockSettingsSimpleConnectionParamsconnectionHostnameconnectionPortconnectionUseSecureconnectionUseSocksinitConnectionContextconnectFromHandle connectTo connectionPut connectionGetconnectionGetChunkconnectionGetChunk'connectionCloseconnectionSetSecureconnectionIsSecureConnectionBackendglobalCertificateStoreconnectionBackendconnectionBuffer ConnectionTLSConnectionStream$fDefaultTLSSettingsConnectionSessionManagerManager makeTLSParams withBackend withBuffer connectionNew tlsEstablish($fSessionManagerConnectionSessionManager