1#ifndef __DCL_SSL_SOCKET_H__
2#define __DCL_SSL_SOCKET_H__ 20110923
4#ifndef __DCL_CONFIG_H__
9 #include <openssl/ssl.h>
10#elif __DCL_USE_SCHANNEL
11 #define SECURITY_WIN32
15 #pragma comment(lib, "secur32.lib")
19#ifndef __DCL_SOCKET_H__
33#elif __DCL_USE_SCHANNEL
55 virtual size_t available()
const
59 virtual size_t read(
void* _buf,
size_t _n)
62 virtual size_t write(
const void* _buf,
size_t _n)
73 void bind(
const Addr& _my_addr,
74 int _type = SOCK_STREAM,
int _protocol = 0,
bool _reuse =
true
80 void connect(
const Addr& _serv_addr)
98 void create(
int _domain = AF_INET,
int _type = SOCK_STREAM,
int _protocol = 0)
104 void bind(const struct sockaddr* _my_addr, socklen_t _addrlen)
107 void listen(
unsigned _backlog = 5)
110 void accept(
SSLSocket&
r, struct sockaddr* _addr, socklen_t* _addrlen)
114 virtual void connect(
const sockaddr* _serv_addr, socklen_t _addrlen)
120 virtual size_t send(
const void* _buf,
size_t _n,
int _flags = 0)
126 virtual
size_t recv(
void* _buf,
size_t _n,
int _flags = 0)
137#elif __DCL_USE_SCHANNEL
#define __DCL_THROWS2(e1, e2)
#define DECLARE_CLASSINFO(class_name)
virtual String toString() const
Exception(Exception *_cause=NULL)
virtual size_t send(const void *_buf, size_t _n, int _flags=0) __DCL_THROWS1(IOException *)
virtual size_t recv(void *_buf, size_t _n, int _flags=0) __DCL_THROWS1(IOException *)
SSLSocket() __DCL_THROWS1(SSLException *)
virtual void close() __DCL_THROWS1(IOException *)
SSLSocket(const String &_addr, uint16_t _port) __DCL_THROWS2(IOException *
bool isPeerCertificateVerified() const
virtual void connect(const sockaddr *_serv_addr, socklen_t _addrlen) __DCL_THROWS1(IOException *)
void construct() __DCL_THROWS1(SSLException *)
String getPeerCertificateCommonName() const