Mercurial > projects > dstep
diff dstep/coreservices/cfnetwork/CFSocketStream.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/cfnetwork/CFSocketStream.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,99 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 22, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.cfnetwork.CFSocketStream; + +//import dstep.Availability; +import dstep.coreservices.cfnetwork.CFHost; +import dstep.coreservices.cfnetwork.CFNetServices; +import dstep.coreservices.cfnetwork.CFNetworkDefs; +import dstep.corefoundation.CFBase; +import dstep.corefoundation.CFStream; + +alias int CFStreamSocketSecurityProtocol; + +extern (C) +{ + extern + { + const CFStringRef kCFStreamPropertySSLPeerCertificates; + const CFStringRef kCFStreamPropertySSLSettings; + const CFStringRef kCFStreamSSLLevel; + const CFStringRef kCFStreamSSLAllowsExpiredCertificates; + const CFStringRef kCFStreamSSLAllowsExpiredRoots; + const CFStringRef kCFStreamSSLAllowsAnyRoot; + const CFStringRef kCFStreamSSLValidatesCertificateChain; + const CFStringRef kCFStreamSSLPeerName; + const CFStringRef kCFStreamSSLCertificates; + const CFStringRef kCFStreamSSLIsServer; + const int kCFStreamErrorDomainWinSock; + const int kCFStreamErrorDomainSOCKS; + const CFStringRef kCFStreamPropertySOCKSProxy; + const CFStringRef kCFStreamPropertySOCKSProxyHost; + const CFStringRef kCFStreamPropertySOCKSProxyPort; + const CFStringRef kCFStreamPropertySOCKSVersion; + const CFStringRef kCFStreamSocketSOCKSVersion4; + const CFStringRef kCFStreamSocketSOCKSVersion5; + const CFStringRef kCFStreamPropertySOCKSUser; + const CFStringRef kCFStreamPropertySOCKSPassword; + const int kCFStreamErrorDomainSSL; + const CFStringRef kCFStreamPropertySocketSecurityLevel; + const CFStringRef kCFStreamSocketSecurityLevelNone; + const CFStringRef kCFStreamSocketSecurityLevelSSLv2; + const CFStringRef kCFStreamSocketSecurityLevelSSLv3; + const CFStringRef kCFStreamSocketSecurityLevelTLSv1; + const CFStringRef kCFStreamSocketSecurityLevelNegotiatedSSL; + const CFStringRef kCFStreamPropertyShouldCloseNativeSocket; + const CFStringRef kCFStreamPropertySocketRemoteHost; + const CFStringRef kCFStreamPropertySocketRemoteNetService; + const CFStringRef kCFStreamPropertyProxyLocalBypass; + } +} + +enum +{ + kCFStreamErrorSOCKSSubDomainNone = 0, + kCFStreamErrorSOCKSSubDomainVersionCode = 1, + kCFStreamErrorSOCKS4SubDomainResponse = 2, + kCFStreamErrorSOCKS5SubDomainUserPass = 3, + kCFStreamErrorSOCKS5SubDomainMethod = 4, + kCFStreamErrorSOCKS5SubDomainResponse = 5 +} + +enum +{ + kCFStreamErrorSOCKS5BadResponseAddr = 1, + kCFStreamErrorSOCKS5BadState = 2, + kCFStreamErrorSOCKSUnknownClientVersion = 3 +} + +enum +{ + kCFStreamErrorSOCKS4RequestFailed = 91, + kCFStreamErrorSOCKS4IdentdFailed = 92, + kCFStreamErrorSOCKS4IdConflict = 93 +} + +enum +{ + kSOCKS5NoAcceptableMethod = 0xFF +} + +enum /*CFStreamSocketSecurityProtocol*/ +{ + kCFStreamSocketSecurityNone = 0, + kCFStreamSocketSecuritySSLv2 = 1, + kCFStreamSocketSecuritySSLv3 = 2, + kCFStreamSocketSecuritySSLv23 = 3, + kCFStreamSocketSecurityTLSv1 = 4 +} + +extern (C) +{ + void CFStreamCreatePairWithSocketToCFHost (CFAllocatorRef alloc, CFHostRef host, int port, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream); + void CFStreamCreatePairWithSocketToNetService (CFAllocatorRef alloc, CFNetServiceRef service, CFReadStreamRef* readStream, CFWriteStreamRef* writeStream); + ubyte CFSocketStreamPairSetSecurityProtocol (CFReadStreamRef socketReadStream, CFWriteStreamRef socketWriteStream, int securityProtocol); +} \ No newline at end of file