Contains all of the information needed for quick-event to have a functioning client. More...
#include <qev.h>
Public Attributes | |
| GString * | rbuff |
| Data waiting to be processed. More... | |
| qev_timeout_t * | _ssl_handshake_timeout |
| For SSL: timeout clients that don't complete their handshakes. More... | |
| void * | _locking_thread |
| For the re-entrant part of the lock: holds which thread has the lock. | |
| guint | _lock |
| For acquiring a lock on a client. | |
| struct qev_flags | _flags |
| This client's flags. | |
| gchar | ip [INET6_ADDRSTRLEN] |
| The client's IP. More... | |
| SSL * | ssl |
| For clients. More... | |
| SSL_CTX * | ssl_ctx |
| For server sockets. | |
| qev_cb | timer_fn |
| For timers. | |
Contains all of the information needed for quick-event to have a functioning client.
This struct may be embedded inside another struct, provided qev can access it. If embedding, be sure to define qev_client and QEV_CLIENT_SLOT so that QEV knows where in your struct to look.
| qev_timeout_t* qev_client::_ssl_handshake_timeout |
For SSL: timeout clients that don't complete their handshakes.
| gchar qev_client::ip[INET6_ADDRSTRLEN] |
The client's IP.
Feel free to access this for as long as you have the client.
| GString* qev_client::rbuff |
Data waiting to be processed.
| SSL* qev_client::ssl |
For clients.
Any calls that have the potential for accessing the network MUST lock the client before accessing this: it's possible for a client to be closed (and lose its socket) while anything is happening within OpenSSL. In reality, this means lock around SSL_read(), SSL_write(), and SSL_accept().
1.8.6