GNU CommonC++
|
#include <ssl.h>
Public Member Functions | |
SSLStream (Family family=IPV4, bool throwflag=true, timeout_t to=0) | |
void | disconnect (void) |
SSLStream (const IPV4Host &host, tpport_t port, unsigned mss=536, bool throwflag=true, timeout_t to=0) | |
SSLStream (const IPV6Host &host, tpport_t port, unsigned mss=536, bool throwflag=true, timeout_t to=0) | |
SSLStream (const char *name, Family family=IPV4, unsigned mss=536, bool throwflag=false, timeout_t to=0) | |
SSLStream (const SSLStream &ssl) | |
bool | isSSL (void) |
bool | getSession (void) |
void | endStream (void) |
virtual | ~SSLStream () |
ssize_t | readLine (char *str, size_t max, timeout_t to=0) |
ssize_t | readData (void *buf, size_t len, char separator=0, timeout_t to=0) |
ssize_t | writeData (void *buf, size_t len, timeout_t to=0) |
![]() | |
TCPStream (Family family=IPV4, bool throwflag=true, timeout_t to=0) | |
The constructor required for building other classes or to start an unconnected TCPStream for connect. | |
int | getSegmentSize (void) |
Get protocol segment size. | |
TCPStream (TCPSocket &server, bool throwflag=true, timeout_t timeout=0) | |
Create a TCP stream by accepting a connection from a bound TCP socket acting as a server. | |
TCPStream (TCPV6Socket &server, bool throwflag=true, timeout_t timeout=0) | |
void | connect (TCPSocket &server) |
Accept a connection from a TCP Server. | |
void | connect (TCPV6Socket &server) |
TCPStream (const IPV4Host &host, tpport_t port, unsigned mss=536, bool throwflag=true, timeout_t timeout=0) | |
Create a TCP stream by connecting to a TCP socket (on a remote machine). | |
TCPStream (const IPV6Host &host, tpport_t port, unsigned mss=536, bool throwflag=true, timeout_t timeout=0) | |
TCPStream (const char *name, Family family=IPV4, unsigned mss=536, bool throwflag=false, timeout_t timer=0) | |
Construct a named TCP Socket connected to a remote machine. | |
void | setTimeout (timeout_t timer) |
Set the I/O operation timeout for socket I/O operations. | |
TCPStream (const TCPStream &source) | |
A copy constructor creates a new stream buffer. | |
virtual | ~TCPStream () |
Flush and empty all buffers, and then remove the allocated buffers. | |
int | sync (void) |
Flushes the stream input and output buffers, writes pending output. | |
size_t | printf (const char *format,...) |
Print content into a socket. | |
bool | isPending (Pending pend, timeout_t timeout=TIMEOUT_INF) |
Get the status of pending stream data. | |
ssize_t | peek (void *buf, size_t len) |
Examine contents of next waiting packet. | |
size_t | getBufferSize (void) const |
Return the size of the current stream buffering used. | |
![]() | |
virtual | ~Socket () |
The socket base class may be "thrown" as a result of an error, and the "catcher" may then choose to destroy the object. | |
Socket & | operator= (const Socket &from) |
Sockets may also be duplicated by the assignment operator. | |
virtual IPV4Host | getIPV4Sender (tpport_t *port=NULL) const |
May be used to examine the origin of data waiting in the socket receive queue. | |
IPV4Host | getSender (tpport_t *port=NULL) const |
virtual IPV6Host | getIPV6Sender (tpport_t *port=NULL) const |
IPV4Host | getIPV4Peer (tpport_t *port=NULL) const |
Get the host address and port of the socket this socket is connected to. | |
IPV4Host | getPeer (tpport_t *port=NULL) const |
IPV6Host | getIPV6Peer (tpport_t *port=NULL) const |
IPV4Host | getIPV4Local (tpport_t *port=NULL) const |
Get the local address and port number this socket is currently bound to. | |
IPV4Host | getLocal (tpport_t *port=NULL) const |
IPV6Host | getIPV6Local (tpport_t *port=NULL) const |
IPV4Host | getIPV4NAT (tpport_t *port=NULL) const |
Perform NAT table lookup for this socket. | |
IPV4Host | getNAT (tpport_t *port) const |
IPV6Host | getIPV6NAT (tpport_t *port=NULL) const |
void | setCompletion (bool immediate) |
Used to specify blocking mode for the socket. | |
Error | setLinger (bool linger) |
Enable lingering sockets on close. | |
Error | setKeepAlive (bool enable) |
Set the keep-alive status of this socket and if keep-alive messages will be sent. | |
Error | setTypeOfService (Tos service) |
Set packet scheduling on platforms which support ip quality of service conventions. | |
bool | isConnected (void) const |
Can test to see if this socket is "connected", and hence whether a "catch" can safely call getPeer(). | |
bool | isActive (void) const |
Test to see if the socket is at least operating or if it is mearly initialized. | |
bool | operator! () const |
Operator based testing to see if a socket is currently active. | |
bool | isBroadcast (void) const |
Return if broadcast has been enabled for the specified socket. | |
bool | isRouted (void) const |
Return if socket routing is enabled. | |
Error | getErrorNumber (void) const |
Often used by a "catch" to fetch the last error of a thrown socket. | |
const char * | getErrorString (void) const |
Often used by a "catch" to fetch the user set error string of a thrown socket, but only if EXTENDED error codes are used. | |
long | getSystemError (void) const |
const char * | getSystemErrorString (void) const |
Protected Attributes | |
SSL * | ssl |
![]() | |
timeout_t | timeout |
size_t | bufsize |
Family | family |
char * | gbuf |
char * | pbuf |
![]() | |
struct { | |
bool thrown: 1 | |
bool broadcast: 1 | |
bool route: 1 | |
bool keepalive: 1 | |
bool loopback: 1 | |
bool multicast: 1 | |
bool completion: 1 | |
bool linger: 1 | |
unsigned ttl: 8 | |
} | flags |
SOCKET volatile | so |
the actual socket descriptor, in Windows, unlike posix it cannot be used as an file descriptor that way madness lies – jfc | |
State volatile | state |
Additional Inherited Members | |
![]() | |
enum | Family { IPV6 = AF_INET6, IPV4 = AF_INET } |
enum | Error { errSuccess = 0, errCreateFailed, errCopyFailed, errInput, errInputInterrupt, errResourceFailure, errOutput, errOutputInterrupt, errNotConnected, errConnectRefused, errConnectRejected, errConnectTimeout, errConnectFailed, errConnectInvalid, errConnectBusy, errConnectNoRoute, errBindingFailed, errBroadcastDenied, errRoutingDenied, errKeepaliveDenied, errServiceDenied, errServiceUnavailable, errMulticastDisabled, errTimeout, errNoDelay, errExtended, errLookupFail, errSearchErr, errInvalidValue } |
enum | Tos { tosLowDelay = 0, tosThroughput, tosReliability, tosMinCost, tosInvalid } |
enum | Pending { pendingInput, pendingOutput, pendingError } |
typedef enum Family | Family |
typedef enum Error | Error |
typedef enum Tos | Tos |
typedef enum Pending | Pending |
![]() | |
static bool | check (Family fam) |
See if a specific protocol family is available in the current runtime environment. | |
![]() | |
enum | State { INITIAL, AVAILABLE, BOUND, CONNECTED, CONNECTING, STREAM } |
typedef enum State | State |
![]() | |
void | allocate (size_t size) |
Used to allocate the buffer space needed for iostream operations. | |
int | underflow () |
This streambuf method is used to load the input buffer through the established tcp socket connection. | |
int | uflow () |
This streambuf method is used for doing unbuffered reads through the establish tcp socket connection when in interactive mode. | |
int | overflow (int ch) |
This streambuf method is used to write the output buffer through the established tcp connection. | |
void | connect (const IPV4Host &host, tpport_t port, unsigned mss=536) |
Create a TCP stream by connecting to a TCP socket (on a remote machine). | |
void | connect (const IPV6Host &host, tpport_t port, unsigned mss=536) |
void | connect (const char *name, unsigned mss=536) |
Connect a TCP stream to a named destination host and port number, using getaddrinfo interface if available. | |
std::iostream * | tcp (void) |
Used in derived classes to refer to the current object via it's iostream. | |
![]() | |
static Mutex | mutex |
ost::SSLStream::SSLStream | ( | const IPV4Host & | host, |
tpport_t | port, | ||
unsigned | mss = 536 , |
||
bool | throwflag = true , |
||
timeout_t | to = 0 |
||
) |
ost::SSLStream::SSLStream | ( | const IPV6Host & | host, |
tpport_t | port, | ||
unsigned | mss = 536 , |
||
bool | throwflag = true , |
||
timeout_t | to = 0 |
||
) |
ost::SSLStream::SSLStream | ( | const char * | name, |
Family | family = IPV4 , |
||
unsigned | mss = 536 , |
||
bool | throwflag = false , |
||
timeout_t | to = 0 |
||
) |
ost::SSLStream::SSLStream | ( | const SSLStream & | ssl | ) |
|
virtual |
void ost::SSLStream::disconnect | ( | void | ) |
Reimplemented from ost::TCPStream.
void ost::SSLStream::endStream | ( | void | ) |
Reimplemented from ost::TCPStream.
bool ost::SSLStream::getSession | ( | void | ) |
|
inline |
References ssl.
|
virtual |
Reimplemented from ost::Socket.
ssize_t ost::SSLStream::readLine | ( | char * | str, |
size_t | max, | ||
timeout_t | to = 0 |
||
) |
Reimplemented from ost::Socket.
ssize_t ost::SSLStream::writeData | ( | void * | buf, |
size_t | len, | ||
timeout_t | to = 0 |
||
) |
|
protected |
Referenced by isSSL().