|
@@ -1018,34 +1018,36 @@ struct mg_context {
|
|
struct mg_connection {
|
|
struct mg_connection {
|
|
struct mg_request_info request_info;
|
|
struct mg_request_info request_info;
|
|
struct mg_context *ctx;
|
|
struct mg_context *ctx;
|
|
- SSL *ssl; /* SSL descriptor */
|
|
|
|
- SSL_CTX *client_ssl_ctx; /* SSL context for client connections */
|
|
|
|
- struct socket client; /* Connected client */
|
|
|
|
- time_t conn_birth_time; /* Time (wall clock) when connection was
|
|
|
|
- * established */
|
|
|
|
- struct timespec
|
|
|
|
- req_time; /* Time (since system start) when the request was received */
|
|
|
|
- int64_t num_bytes_sent; /* Total bytes sent to client */
|
|
|
|
- int64_t content_len; /* Content-Length header value */
|
|
|
|
- int64_t consumed_content; /* How many bytes of content have been read */
|
|
|
|
- int is_chunked; /* Transfer-encoding is chunked: 0=no, 1=yes: data
|
|
|
|
- * available, 2: all data read */
|
|
|
|
- size_t chunk_remainder; /* Unread data from the last chunk */
|
|
|
|
- char *buf; /* Buffer for received data */
|
|
|
|
- char *path_info; /* PATH_INFO part of the URL */
|
|
|
|
- int must_close; /* 1 if connection must be closed */
|
|
|
|
- int in_error_handler; /* 1 if in handler for user defined error pages */
|
|
|
|
- int buf_size; /* Buffer size */
|
|
|
|
- int request_len; /* Size of the request + headers in a buffer */
|
|
|
|
- int data_len; /* Total size of data in a buffer */
|
|
|
|
- int status_code; /* HTTP reply status code, e.g. 200 */
|
|
|
|
- int throttle; /* Throttling, bytes/sec. <= 0 means no throttle */
|
|
|
|
|
|
+ SSL *ssl; /* SSL descriptor */
|
|
|
|
+ SSL_CTX *client_ssl_ctx; /* SSL context for client connections */
|
|
|
|
+ struct socket client; /* Connected client */
|
|
|
|
+ time_t conn_birth_time; /* Time (wall clock) when connection was
|
|
|
|
+ * established */
|
|
|
|
+ struct timespec req_time; /* Time (since system start) when the request
|
|
|
|
+ * was received */
|
|
|
|
+ int64_t num_bytes_sent; /* Total bytes sent to client */
|
|
|
|
+ int64_t content_len; /* Content-Length header value */
|
|
|
|
+ int64_t consumed_content; /* How many bytes of content have been read */
|
|
|
|
+ int is_chunked; /* Transfer-encoding is chunked: 0=no, 1=yes:
|
|
|
|
+ * data available, 2: all data read */
|
|
|
|
+ size_t chunk_remainder; /* Unread data from the last chunk */
|
|
|
|
+ char *buf; /* Buffer for received data */
|
|
|
|
+ char *path_info; /* PATH_INFO part of the URL */
|
|
|
|
+ int must_close; /* 1 if connection must be closed */
|
|
|
|
+ int in_error_handler; /* 1 if in handler for user defined error
|
|
|
|
+ * pages */
|
|
|
|
+ int buf_size; /* Buffer size */
|
|
|
|
+ int request_len; /* Size of the request + headers in a buffer */
|
|
|
|
+ int data_len; /* Total size of data in a buffer */
|
|
|
|
+ int status_code; /* HTTP reply status code, e.g. 200 */
|
|
|
|
+ int throttle; /* Throttling, bytes/sec. <= 0 means no
|
|
|
|
+ * throttle */
|
|
time_t last_throttle_time; /* Last time throttled data was sent */
|
|
time_t last_throttle_time; /* Last time throttled data was sent */
|
|
int64_t last_throttle_bytes; /* Bytes sent this second */
|
|
int64_t last_throttle_bytes; /* Bytes sent this second */
|
|
- pthread_mutex_t mutex; /* Used by mg_lock_connection/mg_unlock_connection to
|
|
|
|
- * ensure atomic transmissions for websockets */
|
|
|
|
|
|
+ pthread_mutex_t mutex; /* Used by mg_(un)lock_connection to ensure
|
|
|
|
+ * atomic transmissions for websockets */
|
|
#if defined(USE_LUA) && defined(USE_WEBSOCKET)
|
|
#if defined(USE_LUA) && defined(USE_WEBSOCKET)
|
|
- void *lua_websocket_state; /* Lua_State for a websocket connection */
|
|
|
|
|
|
+ void *lua_websocket_state; /* Lua_State for a websocket connection */
|
|
#endif
|
|
#endif
|
|
};
|
|
};
|
|
|
|
|