mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
|
/*
|
||
|
* Concrete Vio around OpenSSL's SSL structure.
|
||
|
*/
|
||
|
|
||
|
#ifdef __GNUC__
|
||
|
#pragma interface /* gcc class implementation */
|
||
|
#endif
|
||
|
|
||
|
VIO_NS_BEGIN
|
||
|
|
||
|
class VioSocket;
|
||
|
|
||
|
class VioSSL : public Vio
|
||
|
{
|
||
|
public:
|
||
|
enum {
|
||
|
state_connect = 1,
|
||
|
state_accept = 2
|
||
|
};
|
||
|
public:
|
||
|
VioSSL(int fd, vio_ptr ssl_context, int state);
|
||
|
VioSSL(VioSocket* sd, vio_ptr ssl_context, int state);
|
||
|
virtual ~VioSSL();
|
||
|
virtual bool open() const;
|
||
|
virtual int read( vio_ptr buf, int size);
|
||
|
virtual int write( const vio_ptr buf, int size);
|
||
|
virtual bool blocking() const;
|
||
|
virtual int blocking(bool onoff);
|
||
|
virtual int fastsend(bool onoff=true);
|
||
|
virtual int keepalive(bool onoff);
|
||
|
virtual bool fcntl() const;
|
||
|
virtual bool should_retry() const;
|
||
|
virtual int close();
|
||
|
virtual const char* description() const;
|
||
|
virtual const char* peer_addr() const;
|
||
|
virtual const char* peer_name() const;
|
||
|
virtual const char* cipher_description() const;
|
||
|
|
||
|
private:
|
||
|
int init_bio_(int fd,
|
||
|
vio_ptr ssl_context,
|
||
|
int state,
|
||
|
int bio_flags);
|
||
|
vio_ptr bio_;
|
||
|
vio_ptr ssl_con_;
|
||
|
vio_ptr ssl_cip_;
|
||
|
char desc_[100];
|
||
|
bool open_;
|
||
|
VioSocket* sd_;
|
||
|
};
|
||
|
|
||
|
VIO_NS_END
|
||
|
|
||
|
#endif /* VIO_HAVE_OPENSSL */
|