Hi Rebase on top of current master.
- Lauri
>From 1a384616dcc7fd42c4bd4344613fa05596c1edd2 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen <[email protected]> Date: Mon, 18 Jun 2012 19:23:08 +0300 Subject: [PATCH] monkey: Properly use extern for the globals This drops the size of each plugin by about 2kb (they were getting the global variables too!), and makes it easier to find unused global variables. Signed-off-by: Lauri Kasanen <[email protected]> --- src/include/mk_cache.h | 16 ++++++++-------- src/include/mk_clock.h | 4 ++-- src/include/mk_config.h | 2 +- src/include/mk_header.h | 22 +++++++++++----------- src/include/mk_http.h | 22 +++++++++++----------- src/include/mk_iov.h | 14 +++++++------- src/include/mk_plugin.h | 10 ++++++---- src/include/mk_request.h | 38 +++++++++++++++++++------------------- src/include/mk_scheduler.h | 4 ++-- src/include/mk_user.h | 3 --- src/include/monkey.h | 6 +++--- src/mk_cache.c | 10 ++++++++++ src/mk_clock.c | 3 +++ src/mk_config.c | 2 ++ src/mk_header.c | 13 +++++++++++++ src/mk_http.c | 13 +++++++++++++ src/mk_iov.c | 8 ++++++++ src/mk_plugin.c | 6 ++++++ src/mk_request.c | 22 ++++++++++++++++++++++ src/mk_scheduler.c | 4 ++++ src/monkey.c | 4 ++++ 21 files changed, 155 insertions(+), 71 deletions(-) diff --git a/src/include/mk_cache.h b/src/include/mk_cache.h index 510a55d..0177568 100644 --- a/src/include/mk_cache.h +++ b/src/include/mk_cache.h @@ -22,13 +22,13 @@ #ifndef MK_CACHE_H #define MK_CACHE_H -pthread_key_t mk_cache_iov_header; -pthread_key_t mk_cache_header_lm; -pthread_key_t mk_cache_header_cl; -pthread_key_t mk_cache_header_ka; -pthread_key_t mk_cache_header_ka_max; -pthread_key_t mk_cache_utils_gmtime; -pthread_key_t mk_cache_utils_gmt_text; +extern pthread_key_t mk_cache_iov_header; +extern pthread_key_t mk_cache_header_lm; +extern pthread_key_t mk_cache_header_cl; +extern pthread_key_t mk_cache_header_ka; +extern pthread_key_t mk_cache_header_ka_max; +extern pthread_key_t mk_cache_utils_gmtime; +extern pthread_key_t mk_cache_utils_gmt_text; struct mk_cache_date_t { @@ -38,7 +38,7 @@ struct mk_cache_date_t mk_pointer date; }; -struct mk_cache_date_t *mk_cache_file_date; +extern struct mk_cache_date_t *mk_cache_file_date; void mk_cache_thread_init(void); void *mk_cache_get(pthread_key_t key); diff --git a/src/include/mk_clock.h b/src/include/mk_clock.h index cf50190..02ffcf3 100644 --- a/src/include/mk_clock.h +++ b/src/include/mk_clock.h @@ -27,8 +27,8 @@ #include <time.h> #include "memory.h" -time_t log_current_utime; -time_t monkey_init_time; +extern time_t log_current_utime; +extern time_t monkey_init_time; extern mk_pointer log_current_time; extern mk_pointer header_current_time; diff --git a/src/include/mk_config.h b/src/include/mk_config.h index 7e420bf..2a7140d 100644 --- a/src/include/mk_config.h +++ b/src/include/mk_config.h @@ -141,7 +141,7 @@ struct server_config struct mk_config *config; }; -struct server_config *config; +extern struct server_config *config; /* Custom error page */ struct error_page { diff --git a/src/include/mk_header.h b/src/include/mk_header.h index c67a91a..2854a49 100644 --- a/src/include/mk_header.h +++ b/src/include/mk_header.h @@ -91,10 +91,6 @@ struct header_status_response { #define MK_HEADER_SHORT_LOCATION "Location: " #define MK_HEADER_SHORT_CT "Content-Type: " -mk_pointer mk_header_short_date; -mk_pointer mk_header_short_location; -mk_pointer mk_header_short_ct; - /* Accept ranges */ #define MK_HEADER_ACCEPT_RANGES "Accept-Ranges: bytes" MK_CRLF @@ -109,14 +105,18 @@ mk_pointer mk_header_short_ct; #define MK_HEADER_LAST_MODIFIED "Last-Modified: " +extern mk_pointer mk_header_short_date; +extern mk_pointer mk_header_short_location; +extern mk_pointer mk_header_short_ct; + /* mk pointers with response server headers */ -mk_pointer mk_header_conn_ka; -mk_pointer mk_header_conn_close; -mk_pointer mk_header_content_length; -mk_pointer mk_header_content_encoding; -mk_pointer mk_header_accept_ranges; -mk_pointer mk_header_te_chunked; -mk_pointer mk_header_last_modified; +extern mk_pointer mk_header_conn_ka; +extern mk_pointer mk_header_conn_close; +extern mk_pointer mk_header_content_length; +extern mk_pointer mk_header_content_encoding; +extern mk_pointer mk_header_accept_ranges; +extern mk_pointer mk_header_te_chunked; +extern mk_pointer mk_header_last_modified; int mk_header_send(int fd, struct client_session *cs, struct session_request *sr); void mk_header_response_reset(struct response_headers *header); diff --git a/src/include/mk_http.h b/src/include/mk_http.h index c5062a9..2335981 100644 --- a/src/include/mk_http.h +++ b/src/include/mk_http.h @@ -39,13 +39,6 @@ #define HTTP_METHOD_PUT_STR "PUT" #define HTTP_METHOD_DELETE_STR "DELETE" -mk_pointer mk_http_method_get_p; -mk_pointer mk_http_method_post_p; -mk_pointer mk_http_method_head_p; -mk_pointer mk_http_method_put_p; -mk_pointer mk_http_method_delete_p; -mk_pointer mk_http_method_null_p; - #define HTTP_PROTOCOL_UNKNOWN (-1) #define HTTP_PROTOCOL_09 (9) #define HTTP_PROTOCOL_10 (10) @@ -55,10 +48,17 @@ mk_pointer mk_http_method_null_p; #define HTTP_PROTOCOL_10_STR "HTTP/1.0" #define HTTP_PROTOCOL_11_STR "HTTP/1.1" -mk_pointer mk_http_protocol_09_p; -mk_pointer mk_http_protocol_10_p; -mk_pointer mk_http_protocol_11_p; -mk_pointer mk_http_protocol_null_p; +extern mk_pointer mk_http_method_get_p; +extern mk_pointer mk_http_method_post_p; +extern mk_pointer mk_http_method_head_p; +extern mk_pointer mk_http_method_put_p; +extern mk_pointer mk_http_method_delete_p; +extern mk_pointer mk_http_method_null_p; + +extern mk_pointer mk_http_protocol_09_p; +extern mk_pointer mk_http_protocol_10_p; +extern mk_pointer mk_http_protocol_11_p; +extern mk_pointer mk_http_protocol_null_p; #include "mk_request.h" #include "mk_memory.h" diff --git a/src/include/mk_iov.h b/src/include/mk_iov.h index 861c7a6..a3a7239 100644 --- a/src/include/mk_iov.h +++ b/src/include/mk_iov.h @@ -40,13 +40,13 @@ #include "mk_memory.h" -mk_pointer mk_iov_crlf; -mk_pointer mk_iov_crlfcrlf; -mk_pointer mk_iov_lf; -mk_pointer mk_iov_space; -mk_pointer mk_iov_slash; -mk_pointer mk_iov_none; -mk_pointer mk_iov_equal; +extern mk_pointer mk_iov_crlf; +extern mk_pointer mk_iov_crlfcrlf; +extern mk_pointer mk_iov_lf; +extern mk_pointer mk_iov_space; +extern mk_pointer mk_iov_slash; +extern mk_pointer mk_iov_none; +extern mk_pointer mk_iov_equal; struct mk_iov { diff --git a/src/include/mk_plugin.h b/src/include/mk_plugin.h index 1223d36..ce68dae 100644 --- a/src/include/mk_plugin.h +++ b/src/include/mk_plugin.h @@ -169,10 +169,10 @@ struct plugin_stagemap struct plugin_stagem *stage_50; }; -struct plugin_stagemap *plg_stagemap; +extern struct plugin_stagemap *plg_stagemap; /* Network map calls */ -struct plugin_network_io *plg_netiomap; +extern struct plugin_network_io *plg_netiomap; /* API functions exported to plugins */ struct plugin_api @@ -287,11 +287,13 @@ struct plugin_api void (*stacktrace)(void); #endif }; -struct plugin_api *api; + +extern struct plugin_api *api; + typedef pthread_key_t mk_plugin_key_t; /* Plugin events thread key */ -pthread_key_t mk_plugin_event_k; +extern pthread_key_t mk_plugin_event_k; struct plugin_event { diff --git a/src/include/mk_request.h b/src/include/mk_request.h index 34aa491..83cb402 100644 --- a/src/include/mk_request.h +++ b/src/include/mk_request.h @@ -36,8 +36,8 @@ #define MK_CRLF "\r\n" #define MK_ENDBLOCK "\r\n\r\n" -mk_pointer mk_crlf; -mk_pointer mk_endblock; +extern mk_pointer mk_crlf; +extern mk_pointer mk_endblock; /* Headers */ #define RH_ACCEPT "Accept:" @@ -57,22 +57,22 @@ mk_pointer mk_endblock; #define RH_RANGE "Range:" #define RH_USER_AGENT "User-Agent:" -mk_pointer mk_rh_accept; -mk_pointer mk_rh_accept_charset; -mk_pointer mk_rh_accept_encoding; -mk_pointer mk_rh_accept_language; -mk_pointer mk_rh_connection; -mk_pointer mk_rh_cookie; -mk_pointer mk_rh_content_length; -mk_pointer mk_rh_content_range; -mk_pointer mk_rh_content_type; -mk_pointer mk_rh_if_modified_since; -mk_pointer mk_rh_host; -mk_pointer mk_rh_last_modified; -mk_pointer mk_rh_last_modified_since; -mk_pointer mk_rh_referer; -mk_pointer mk_rh_range; -mk_pointer mk_rh_user_agent; +extern mk_pointer mk_rh_accept; +extern mk_pointer mk_rh_accept_charset; +extern mk_pointer mk_rh_accept_encoding; +extern mk_pointer mk_rh_accept_language; +extern mk_pointer mk_rh_connection; +extern mk_pointer mk_rh_cookie; +extern mk_pointer mk_rh_content_length; +extern mk_pointer mk_rh_content_range; +extern mk_pointer mk_rh_content_type; +extern mk_pointer mk_rh_if_modified_since; +extern mk_pointer mk_rh_host; +extern mk_pointer mk_rh_last_modified; +extern mk_pointer mk_rh_last_modified_since; +extern mk_pointer mk_rh_referer; +extern mk_pointer mk_rh_range; +extern mk_pointer mk_rh_user_agent; /* String limits */ #define MAX_REQUEST_METHOD 10 @@ -259,7 +259,7 @@ struct client_session struct mk_list _head; }; -pthread_key_t request_list; +extern pthread_key_t request_list; /* Request plugin Handler, each request can be handled by * several plugins, we handle list in a simple list */ diff --git a/src/include/mk_scheduler.h b/src/include/mk_scheduler.h index b32852b..cd4b939 100644 --- a/src/include/mk_scheduler.h +++ b/src/include/mk_scheduler.h @@ -61,7 +61,7 @@ struct sched_list_node struct client_session *request_handler; }; -struct sched_list_node *sched_list; +extern struct sched_list_node *sched_list; /* Struct under thread context */ typedef struct @@ -71,7 +71,7 @@ typedef struct int max_events; } sched_thread_conf; -pthread_key_t worker_sched_node; +extern pthread_key_t worker_sched_node; extern pthread_mutex_t mutex_worker_init; diff --git a/src/include/mk_user.h b/src/include/mk_user.h index fdaba9d..89ccfaf 100644 --- a/src/include/mk_user.h +++ b/src/include/mk_user.h @@ -25,9 +25,6 @@ /* User home string */ #define MK_USER_HOME '~' -gid_t egid; -uid_t euid; - /* user.c */ int mk_user_init(struct client_session *cs, struct session_request *sr); int mk_user_set_uidgid(void); diff --git a/src/include/monkey.h b/src/include/monkey.h index 2e8b72b..8e0ae8b 100644 --- a/src/include/monkey.h +++ b/src/include/monkey.h @@ -32,11 +32,11 @@ #define SH_CGI 1 /* Monkey Protocol */ -mk_pointer mk_monkey_protocol; +extern mk_pointer mk_monkey_protocol; /* Process UID/GID */ -gid_t EGID; -gid_t EUID; +extern gid_t EGID; +extern gid_t EUID; void mk_thread_keys_init(); diff --git a/src/mk_cache.c b/src/mk_cache.c index 82eea6a..0e4b33d 100644 --- a/src/mk_cache.c +++ b/src/mk_cache.c @@ -31,6 +31,16 @@ #include "mk_macros.h" #include "mk_utils.h" +pthread_key_t mk_cache_iov_header; +pthread_key_t mk_cache_header_lm; +pthread_key_t mk_cache_header_cl; +pthread_key_t mk_cache_header_ka; +pthread_key_t mk_cache_header_ka_max; +pthread_key_t mk_cache_utils_gmtime; +pthread_key_t mk_cache_utils_gmt_text; + +struct mk_cache_date_t *mk_cache_file_date; + /* This function is called when a thread is created */ void mk_cache_thread_init() { diff --git a/src/mk_clock.c b/src/mk_clock.c index 2728f8d..5d0ce4a 100644 --- a/src/mk_clock.c +++ b/src/mk_clock.c @@ -31,6 +31,9 @@ #include "mk_clock.h" #include "mk_utils.h" +time_t log_current_utime; +time_t monkey_init_time; + mk_pointer log_current_time = { NULL, LOG_TIME_BUFFER_SIZE - 2 }; mk_pointer header_current_time = { NULL, HEADER_TIME_BUFFER_SIZE - 1 }; diff --git a/src/mk_config.c b/src/mk_config.c index e734842..38d9ea3 100644 --- a/src/mk_config.c +++ b/src/mk_config.c @@ -53,6 +53,8 @@ static void mk_config_print_error_msg(char *variable, char *path) exit(EXIT_FAILURE); } +struct server_config *config; + /* Raise a configuration schema error */ void mk_config_error(const char *path, int line, const char *msg) { diff --git a/src/mk_header.c b/src/mk_header.c index 831d064..8225adc 100644 --- a/src/mk_header.c +++ b/src/mk_header.c @@ -38,6 +38,19 @@ #include "mk_string.h" #include "mk_macros.h" + +mk_pointer mk_header_short_date; +mk_pointer mk_header_short_location; +mk_pointer mk_header_short_ct; + +mk_pointer mk_header_conn_ka; +mk_pointer mk_header_conn_close; +mk_pointer mk_header_content_length; +mk_pointer mk_header_content_encoding; +mk_pointer mk_header_accept_ranges; +mk_pointer mk_header_te_chunked; +mk_pointer mk_header_last_modified; + static struct header_status_response status_response[] = { /* diff --git a/src/mk_http.c b/src/mk_http.c index 018eed5..0cdefb0 100644 --- a/src/mk_http.c +++ b/src/mk_http.c @@ -46,6 +46,19 @@ #include "mk_plugin.h" #include "mk_macros.h" +mk_pointer mk_http_method_get_p; +mk_pointer mk_http_method_post_p; +mk_pointer mk_http_method_head_p; +mk_pointer mk_http_method_put_p; +mk_pointer mk_http_method_delete_p; +mk_pointer mk_http_method_null_p; + +mk_pointer mk_http_protocol_09_p; +mk_pointer mk_http_protocol_10_p; +mk_pointer mk_http_protocol_11_p; +mk_pointer mk_http_protocol_null_p; + + int mk_http_method_check(mk_pointer method) { if (strncmp(method.data, HTTP_METHOD_GET_STR, method.len) == 0) { diff --git a/src/mk_iov.c b/src/mk_iov.c index 55fd2e4..ea35629 100644 --- a/src/mk_iov.c +++ b/src/mk_iov.c @@ -35,6 +35,14 @@ #include "mk_utils.h" #include "mk_iov.h" +mk_pointer mk_iov_crlf; +mk_pointer mk_iov_crlfcrlf; +mk_pointer mk_iov_lf; +mk_pointer mk_iov_space; +mk_pointer mk_iov_slash; +mk_pointer mk_iov_none; +mk_pointer mk_iov_equal; + inline int mk_iov_add_entry(struct mk_iov *mk_io, char *buf, int len, mk_pointer sep, int free) { diff --git a/src/mk_plugin.c b/src/mk_plugin.c index 0e73e18..ae54e47 100644 --- a/src/mk_plugin.c +++ b/src/mk_plugin.c @@ -34,6 +34,12 @@ #include "mk_plugin.h" #include "mk_macros.h" +pthread_key_t mk_plugin_event_k; + +struct plugin_stagemap *plg_stagemap; +struct plugin_network_io *plg_netiomap; +struct plugin_api *api; + static int mk_plugin_event_set_list(struct mk_list *list) { return pthread_setspecific(mk_plugin_event_k, (void *) list); diff --git a/src/mk_request.c b/src/mk_request.c index 78d16f0..cc1f268 100644 --- a/src/mk_request.c +++ b/src/mk_request.c @@ -59,6 +59,28 @@ #include "mk_plugin.h" #include "mk_macros.h" +mk_pointer mk_crlf; +mk_pointer mk_endblock; + +mk_pointer mk_rh_accept; +mk_pointer mk_rh_accept_charset; +mk_pointer mk_rh_accept_encoding; +mk_pointer mk_rh_accept_language; +mk_pointer mk_rh_connection; +mk_pointer mk_rh_cookie; +mk_pointer mk_rh_content_length; +mk_pointer mk_rh_content_range; +mk_pointer mk_rh_content_type; +mk_pointer mk_rh_if_modified_since; +mk_pointer mk_rh_host; +mk_pointer mk_rh_last_modified; +mk_pointer mk_rh_last_modified_since; +mk_pointer mk_rh_referer; +mk_pointer mk_rh_range; +mk_pointer mk_rh_user_agent; + +pthread_key_t request_list; + /* Create a memory allocation in order to handle the request data */ static void mk_request_init(struct session_request *request) { diff --git a/src/mk_scheduler.c b/src/mk_scheduler.c index af1c187..f0dc218 100644 --- a/src/mk_scheduler.c +++ b/src/mk_scheduler.c @@ -42,6 +42,10 @@ #include "mk_utils.h" #include "mk_macros.h" +pthread_key_t worker_sched_node; + +struct sched_list_node *sched_list; + static pthread_mutex_t mutex_sched_init = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex_worker_init = PTHREAD_MUTEX_INITIALIZER; diff --git a/src/monkey.c b/src/monkey.c index bbf009c..6d5e8d7 100644 --- a/src/monkey.c +++ b/src/monkey.c @@ -42,6 +42,10 @@ static const char MONKEY_BUILT[] = __DATE__ " " __TIME__; static const char MONKEY_BUILT[] = "Unknown"; #endif +mk_pointer mk_monkey_protocol; +gid_t EGID; +gid_t EUID; + void mk_thread_keys_init(void) { /* Create thread keys */ -- 1.7.2.1
_______________________________________________ Monkey mailing list [email protected] http://lists.monkey-project.com/listinfo/monkey
