|
unsigned int | httpVersion () |
|
void | sendWsMessage (const std::string &msg) |
|
void | sendWsBinary (const char *buf, size_t len) |
|
void | startWsBinStream (size_t len) |
|
void | startWsTxtStream (size_t len) |
|
void | abortWsStream () |
|
void | sendWsClose (uint16_t code, std::string msg) |
|
void | setOwner (Task *new_owner) override |
| Set the given task as owner of the socket.
|
|
void | streamWsResponse () |
|
const unsigned char * | responseMask () const |
|
size_t | wsIncomingBytesLeft () const |
|
size_t | wsBytesReceived () const |
|
size_t | wsOutgoingBytesLeft () const |
|
size_t | wsBytesSent () const |
|
bool | isWebsocket () const |
|
| SocketConnection (const std::string &label, Task *owner, const std::string &hostname, uint16_t port, uint16_t iptype=0, struct addrinfo *local_addr=nullptr) |
|
void | enableTLS () |
| Notify that the connection will be encrypted (SSL).
|
|
bool | is_tls () const |
| Return true if the connection will be encrypted (SSL).
|
|
gnutls_session_t | cache_session () |
| Store SSL session in cache.
|
|
void | insert_cached_session (gnutls_session_t &old_session) |
| Reuse cached SSL session.
|
|
virtual PollState | connected () |
| Will be called when the connection is established. More...
|
|
virtual void | connectionFailed (const std::string &err_msg) |
| Will be called if the connection couldn't be established.
|
|
virtual void | closedByPeer () |
|
virtual PollState | readData (char *, size_t) |
| Callback, called when data has arrived; len > 0. More...
|
|
virtual PollState | unexpectedData (char *buf, size_t len) |
| Peer has sent data when it wasn't supposed to. More...
|
|
virtual PollState | writeData () |
| Callback, called when socket is writable. More...
|
|
size_t | sendData (const char *buf, size_t len) |
| Try to send len bytes from the given buffer. Return the amount sent. More...
|
|
void | asyncSendData (const char *buf, size_t len) |
| Send data to peer as soon as possible. More...
|
|
void | asyncSendData (const std::string data) |
| Send data to peer as soon as possible. More...
|
|
size_t | asyncBufferSize () const |
| Return number of bytes left to send after calling SocketConnection::asyncSendData.
|
|
const std::string & | peerIp () const |
| Return peer's IP address.
|
|
uint16_t | peerPort () const |
| Return peer's port number.
|
|
void | dbgOn (bool b=true) |
| Enable debug output of data sent and received.
|
|
bool | dbgIsOn () |
| Return true if socket debugging is enabled.
|
|
| Socket (const std::string &label, Task *owner, const std::string &hostname, uint16_t port) |
|
| Socket (const std::string &label, Task *owner, int fd) |
|
Task * | owner () const |
| Return task owning the socket.
|
|
std::string | hostname () const |
| Return name of the host to which the socket is supposed to connect.
|
|
uint16_t | port () const |
| Return port number to which the socket is supposed to connect.
|
|
PollState | state () const |
| Return current socket state.
|
|
int | getUnixDomainPeer () const |
| Return the peer socket descriptor. More...
|
|
virtual std::string | cacheLabel () |
| Return the socket's cache group, or an empty string. More...
|
|
int | id () const |
| Return unique connection ID if connected. More...
|
|
void | setExpiry (double s) |
| Set a time to live for the socket. More...
|
|
bool | hasExpired (const TimePoint &when) const |
| Return true if the given TimePoint is after the socket's expiry.
|
|
const char * | localIp () const |
| Return local IP address in static buffer.
|
|
struct addrinfo * | getAddressInfo (uint16_t iptype=0) |
| Perform DNS lookup of remote host.
|
|
| Logger (std::string label) |
|
std::string | label () const |
| Return the object's log label.
|
|
void | resetLabel (const std::string &new_label) |
| Modify the object's log label.
|
|
|
| HttpConnection (const std::string &label, Task *owner, const std::string &hostname, uint16_t port, uint16_t iptype=0, struct addrinfo *local_addr=nullptr) |
|
| HttpConnection (const std::string &label, Task *owner, int fd, const char *ip, uint16_t port) |
|
void | set_http_version (unsigned int major, unsigned int minor) |
|
void | send_ws_handshake (const std::string &key) |
|
void | send_ws_bin_header (size_t len) |
|
void | send_ws_txt_header (size_t len) |
|
void | send_ws_pong () |
|
PollState | incoming_ws_data (const char *buf, size_t len) |
|
PollState | incoming_ws_header (const char *buf, size_t len) |
|
PollState | wsReadData (const char *buf, size_t len) |
|
PollState | wsWriteData () |
|
| SocketConnection (const std::string &label, Task *owner, int fd, const char *ip, uint16_t port) |
|
PollState | tellOwner (const std::string &msg) |
|
virtual PollState | checkReadBlock () |
| This will be called regularly on READ_BLOCKED sockets to check if the block can be lifted. More...
|
|
void | setWantToSend () |
| Notify intention of sending large amounts of data. More...
|
|
int | socket () const |
| Return file descriptor.
|
|
void | closeMe () |
| Tell the network engine that the connection should be closed.
|
|
void | createNonBlockingSocket (struct addrinfo *addressEntry, struct addrinfo *localAddr=nullptr) |
| Create socket and initiate the connection. More...
|
|
bool | setNonBlocking (int fd) |
| Set socket as non-blocking.
|
|
bool | inError () const |
| Return true if the socket has encountered a fatal error.
|
|
std::ostream & | errno_log () const |
| Write a line of error log after a failed system call has set the global errno to a non-zero value. More...
|
|
std::ostream & | err_log () const |
| Write a line of error log. More...
|
|
std::ostream & | warn_log () const |
| Write a line of warning log. More...
|
|
std::ostream & | log () const |
| Write a line of info log. More...
|
|
std::ostream & | dbg_log () const |
| Write a line of debug log. More...
|
|
|
static uint64_t | totBytesSent () |
| Number of bytes sent by current thread.
|
|
static uint64_t | totBytesReceived () |
| Number of bytes recieved by current thread.
|
|
static void | resetByteCounter () |
| Reset counter for SocketConnection::totBytesSent and SocketConnection::totBytesReceived.
|
|
static const char * | getIp (int fd, uint16_t *port=nullptr, bool peer=true) |
| Return IP address of connected socket in static buffer. More...
|
|
static const char * | getIp (struct sockaddr *address, uint16_t *port=nullptr) |
| Return IP address in static buffer.
|
|
static const char * | getIp (struct addrinfo *address, uint16_t *port=nullptr) |
| Return IP address in static buffer.
|
|
static void | setLogFile (std::ostream &stream) |
| Set global log destination. More...
|
|
static void | reopenLogFile (const std::string &filename) |
| If current log is a file (ofstream), reopen it with new filename:
|
|
static void | setLogLimit (unsigned int loglines=0, unsigned int warnlines=0, unsigned int errlines=0) |
| Set max number of lines of info/warn/err log. More...
|
|
static void | sayTime (std::ostream &stream) |
| Write current local time to the given stream.
|
|
static bool | inError () |
| Return true if any error has been logged (globally since start)
|
|
static std::ostream & | err_log (const std::string &label) |
| Write a line of error log. More...
|
|
static std::ostream & | warn_log (const std::string &label) |
| Write a line of warning log. More...
|
|
static std::ostream & | log (const std::string &label) |
| Write a line of info log. More...
|
|
static void | flushLogFile () |
|
static void | pauseLogging () |
| Disable all log output until next call to Logger::setLogFile.
|
|
static double | secondsSince (const TimePoint &t) |
|
static double | secondsTo (const TimePoint &t) |
|
static int64_t | msSince (const TimePoint &t) |
|
static int64_t | msTo (const TimePoint &t) |
|
static bool | hasExpired (const TimePoint &t) |
| Return true if current time is after the given TimePoint.
|
|
static TimePoint | timeNow () |
| Return current time.
|
|
static TimePoint | timeAfter (double s) |
| Return current time plus s seconds.
|
|
static TimePoint | timeMax () |
| Return a very distant time.
|
|
static std::chrono::microseconds | toUs (double t) |
| Convert s (seconds) to std::chrono::microseconds.
|
|
static std::string | dateString (time_t t=0) |
| Return local time, formatted as 2023-10-14T09:38:47+0200.
|
|
static std::string | dateString2 (time_t t=0) |
| Return local time, formatted as Sat, 14 Oct 2023 09:38:47.
|
|
static std::string | createHashKey (unsigned int length=20) |
| Return a random string. More...
|
|
static bool | isTempError () |
| Return true unless last syscall encountered a fatal error.
|
|
static int | closeSocket (int fd) |
| Close a file descriptor.
|
|
static bool | socketInError (int fd) |
| Return true if the file descriptor has encountered a fatal error.
|
|