|
@@ -2325,20 +2325,38 @@ enum {
|
|
|
};
|
|
|
|
|
|
|
|
|
+// struct mg_phys_context {
|
|
|
struct mg_context {
|
|
|
- volatile int stop_flag; /* Should we stop event loop */
|
|
|
- SSL_CTX *ssl_ctx; /* SSL context */
|
|
|
- char *config[NUM_OPTIONS]; /* Civetweb configuration parameters */
|
|
|
- struct mg_callbacks callbacks; /* User-defined callback function */
|
|
|
- void *user_data; /* User-defined data */
|
|
|
- int context_type; /* See CONTEXT_* above */
|
|
|
+
|
|
|
+ /* Connection related */
|
|
|
+ int context_type; /* See CONTEXT_* above */
|
|
|
|
|
|
struct socket *listening_sockets;
|
|
|
struct pollfd *listening_socket_fds;
|
|
|
unsigned int num_listening_sockets;
|
|
|
|
|
|
+ struct mg_connection *worker_connections; /* The connection struct, pre-
|
|
|
+ * allocated for each worker */
|
|
|
+
|
|
|
+#if defined(USE_SERVER_STATS)
|
|
|
+ int active_connections;
|
|
|
+ int max_connections;
|
|
|
+ int64_t total_connections;
|
|
|
+ int64_t total_requests;
|
|
|
+ int64_t total_data_read;
|
|
|
+ int64_t total_data_written;
|
|
|
+#endif
|
|
|
+
|
|
|
+ /* Thread related */
|
|
|
+ volatile int stop_flag; /* Should we stop event loop */
|
|
|
pthread_mutex_t thread_mutex; /* Protects (max|num)_threads */
|
|
|
|
|
|
+ pthread_t masterthreadid; /* The master thread ID */
|
|
|
+ unsigned int
|
|
|
+ cfg_worker_threads; /* The number of configured worker threads. */
|
|
|
+ pthread_t *worker_threadids; /* The worker thread IDs */
|
|
|
+
|
|
|
+/* Connection to thread dispatching */
|
|
|
#ifdef ALTERNATIVE_QUEUE
|
|
|
struct socket *client_socks;
|
|
|
void **client_wait_events;
|
|
@@ -2350,50 +2368,55 @@ struct mg_context {
|
|
|
pthread_cond_t sq_empty; /* Signaled when socket is consumed */
|
|
|
#endif
|
|
|
|
|
|
+ /* Memory related */
|
|
|
unsigned int max_request_size; /* The max request size */
|
|
|
|
|
|
- pthread_t masterthreadid; /* The master thread ID */
|
|
|
- unsigned int
|
|
|
- cfg_worker_threads; /* The number of configured worker threads. */
|
|
|
- pthread_t *worker_threadids; /* The worker thread IDs */
|
|
|
- struct mg_connection *worker_connections; /* The connection struct, pre-
|
|
|
- * allocated for each worker */
|
|
|
+#if defined(USE_SERVER_STATS)
|
|
|
+ struct mg_memory_stat ctx_memory;
|
|
|
+#endif
|
|
|
|
|
|
+ /* Operating system related */
|
|
|
+ char *systemName; /* What operating system is running */
|
|
|
time_t start_time; /* Server start time, used for authentication
|
|
|
* and for diagnstics. */
|
|
|
|
|
|
+#if defined(USE_TIMERS)
|
|
|
+ struct ttimers *timers;
|
|
|
+#endif
|
|
|
+
|
|
|
+/* Background operations */
|
|
|
+#if defined(USE_LUA)
|
|
|
+ void *lua_background_state;
|
|
|
+#endif
|
|
|
+
|
|
|
+ /* Server nonce */
|
|
|
uint64_t auth_nonce_mask; /* Mask for all nonce values */
|
|
|
pthread_mutex_t nonce_mutex; /* Protects nonce_count */
|
|
|
unsigned long nonce_count; /* Used nonces, used for authentication */
|
|
|
|
|
|
- char *systemName; /* What operating system is running */
|
|
|
-
|
|
|
- /* linked list of uri handlers */
|
|
|
- struct mg_handler_info *handlers;
|
|
|
+ /* Unsorted yet */
|
|
|
+ SSL_CTX *ssl_ctx; /* SSL context */
|
|
|
+ char *config[NUM_OPTIONS]; /* Civetweb configuration parameters */
|
|
|
+ struct mg_callbacks callbacks; /* User-defined callback function */
|
|
|
+ void *user_data; /* User-defined data */
|
|
|
+ struct mg_handler_info *handlers; /* linked list of uri handlers */
|
|
|
|
|
|
#if defined(USE_LUA) && defined(USE_WEBSOCKET)
|
|
|
/* linked list of shared lua websockets */
|
|
|
struct mg_shared_lua_websocket_list *shared_lua_websockets;
|
|
|
#endif
|
|
|
+};
|
|
|
|
|
|
-#if defined(USE_TIMERS)
|
|
|
- struct ttimers *timers;
|
|
|
-#endif
|
|
|
|
|
|
-#if defined(USE_LUA)
|
|
|
- void *lua_background_state;
|
|
|
-#endif
|
|
|
-
|
|
|
-#if defined(USE_SERVER_STATS)
|
|
|
- int active_connections;
|
|
|
- int max_connections;
|
|
|
- int64_t total_connections;
|
|
|
- int64_t total_requests;
|
|
|
- struct mg_memory_stat ctx_memory;
|
|
|
- int64_t total_data_read;
|
|
|
- int64_t total_data_written;
|
|
|
-#endif
|
|
|
+#if 0
|
|
|
+struct mg_context_ {
|
|
|
+ /* Physical context: Threads, ports, timeouts, ... */
|
|
|
+ struct mg_phys_context pc;
|
|
|
+ /* Logical context: Hostname, certificate, doc-root, ... */
|
|
|
+ struct mg_log_context lc[256];
|
|
|
+ int num_log_contexts;
|
|
|
};
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
#if defined(USE_SERVER_STATS)
|