Changeset 476
- Timestamp:
- 11/30/06 11:40:51 (2 years ago)
- Files:
-
- cherokee/trunk/ChangeLog (modified) (1 diff)
- cherokee/trunk/cherokee/Makefile.am (modified) (1 diff)
- cherokee/trunk/cherokee/balancer.c (modified) (3 diffs)
- cherokee/trunk/cherokee/balancer.h (modified) (1 diff)
- cherokee/trunk/cherokee/balancer_round_robin.c (modified) (4 diffs)
- cherokee/trunk/cherokee/cherokee.h (modified) (1 diff)
- cherokee/trunk/cherokee/config_entry.c (modified) (2 diffs)
- cherokee/trunk/cherokee/config_entry.h (modified) (2 diffs)
- cherokee/trunk/cherokee/encoder.c (modified) (1 diff)
- cherokee/trunk/cherokee/encoder.h (modified) (1 diff)
- cherokee/trunk/cherokee/encoder_gzip.c (modified) (5 diffs)
- cherokee/trunk/cherokee/encoder_gzip.h (modified) (1 diff)
- cherokee/trunk/cherokee/encoder_table.c (modified) (2 diffs)
- cherokee/trunk/cherokee/encoder_table.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler.c (modified) (3 diffs)
- cherokee/trunk/cherokee/handler.h (modified) (4 diffs)
- cherokee/trunk/cherokee/handler_admin.c (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_admin.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_cgi.c (modified) (8 diffs)
- cherokee/trunk/cherokee/handler_cgi.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_cgi_base.c (modified) (9 diffs)
- cherokee/trunk/cherokee/handler_cgi_base.h (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_common.c (modified) (4 diffs)
- cherokee/trunk/cherokee/handler_common.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_dirlist.c (modified) (6 diffs)
- cherokee/trunk/cherokee/handler_dirlist.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_error.c (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_error.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_error_redir.c (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_error_redir.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_fastcgi.c (modified) (6 diffs)
- cherokee/trunk/cherokee/handler_fastcgi.h (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_fcgi.c (modified) (8 diffs)
- cherokee/trunk/cherokee/handler_fcgi.h (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_file.c (modified) (5 diffs)
- cherokee/trunk/cherokee/handler_file.h (modified) (3 diffs)
- cherokee/trunk/cherokee/handler_nn.c (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_nn.h (modified) (1 diff)
- cherokee/trunk/cherokee/handler_phpcgi.c (modified) (5 diffs)
- cherokee/trunk/cherokee/handler_phpcgi.h (modified) (1 diff)
- cherokee/trunk/cherokee/handler_proxy.c (modified) (4 diffs)
- cherokee/trunk/cherokee/handler_proxy.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_redir.c (modified) (4 diffs)
- cherokee/trunk/cherokee/handler_redir.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_scgi.c (modified) (5 diffs)
- cherokee/trunk/cherokee/handler_scgi.h (modified) (2 diffs)
- cherokee/trunk/cherokee/handler_server_info.c (modified) (5 diffs)
- cherokee/trunk/cherokee/handler_server_info.h (modified) (2 diffs)
- cherokee/trunk/cherokee/logger.c (modified) (5 diffs)
- cherokee/trunk/cherokee/logger.h (modified) (1 diff)
- cherokee/trunk/cherokee/logger_combined.c (modified) (3 diffs)
- cherokee/trunk/cherokee/logger_ncsa.c (modified) (4 diffs)
- cherokee/trunk/cherokee/logger_ncsa.h (modified) (1 diff)
- cherokee/trunk/cherokee/logger_w3c.c (modified) (5 diffs)
- cherokee/trunk/cherokee/module.c (modified) (2 diffs)
- cherokee/trunk/cherokee/module.h (modified) (3 diffs)
- cherokee/trunk/cherokee/module_loader.c (deleted)
- cherokee/trunk/cherokee/module_loader.h (deleted)
- cherokee/trunk/cherokee/plugin.h (added)
- cherokee/trunk/cherokee/plugin_loader.c (added)
- cherokee/trunk/cherokee/plugin_loader.h (added)
- cherokee/trunk/cherokee/server-protected.h (modified) (2 diffs)
- cherokee/trunk/cherokee/server.c (modified) (5 diffs)
- cherokee/trunk/cherokee/socket.c (modified) (1 diff)
- cherokee/trunk/cherokee/validator.c (modified) (2 diffs)
- cherokee/trunk/cherokee/validator.h (modified) (3 diffs)
- cherokee/trunk/cherokee/validator_htdigest.c (modified) (6 diffs)
- cherokee/trunk/cherokee/validator_htdigest.h (modified) (2 diffs)
- cherokee/trunk/cherokee/validator_htpasswd.c (modified) (6 diffs)
- cherokee/trunk/cherokee/validator_htpasswd.h (modified) (2 diffs)
- cherokee/trunk/cherokee/validator_ldap.c (modified) (8 diffs)
- cherokee/trunk/cherokee/validator_ldap.h (modified) (2 diffs)
- cherokee/trunk/cherokee/validator_mysql.c (modified) (6 diffs)
- cherokee/trunk/cherokee/validator_mysql.h (modified) (2 diffs)
- cherokee/trunk/cherokee/validator_pam.c (modified) (4 diffs)
- cherokee/trunk/cherokee/validator_pam.h (modified) (1 diff)
- cherokee/trunk/cherokee/validator_plain.c (modified) (6 diffs)
- cherokee/trunk/cherokee/validator_plain.h (modified) (2 diffs)
- cherokee/trunk/cherokee/virtual_server.c (modified) (11 diffs)
- cherokee/trunk/configure.in (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee/trunk/ChangeLog
r475 r476 1 2006-11-30 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 3 * cherokee/handler_redir.c, cherokee/handler_redir.h, 4 cherokee/handler_error_redir.c, cherokee/module_loader.c, 5 cherokee/handler_server_info.c, cherokee/module_loader.h, 6 cherokee/handler_error_redir.h, cherokee/handler_server_info.h, 7 cherokee/plugin_loader.c, cherokee/handler_admin.c, 8 cherokee/handler_cgi_base.c, cherokee/plugin_loader.h, 9 cherokee/handler_admin.h, cherokee/handler_cgi_base.h, 10 cherokee/handler_dirlist.c, cherokee/handler_nn.c, 11 cherokee/handler_dirlist.h, cherokee/virtual_server.c, 12 cherokee/handler_nn.h, cherokee/handler_common.c, 13 cherokee/module.c, cherokee/validator_ldap.c, 14 cherokee/config_entry.c, cherokee/handler_common.h, 15 cherokee/module.h, cherokee/validator_ldap.h, 16 cherokee/config_entry.h, cherokee/validator_plain.c, 17 cherokee/validator_plain.h, cherokee/validator.c, 18 cherokee/encoder_table.c, cherokee/validator.h, 19 cherokee/encoder_table.h, cherokee/validator_htpasswd.c, 20 cherokee/plugin.h, cherokee/validator_htpasswd.h, 21 cherokee/handler_file., cherokee/handler., cherokee/encoder.c, 22 cherokee/handler_file.h, cherokee/handler.h, cherokee/encoder.h, 23 cherokee/Makefile.am, cherokee/handler_fcgi.c, 24 cherokee/balancer_round_robin.c, cherokee/encoder_gzip.c, 25 cherokee/handler_fcgi.h, cherokee/handler_fastcgi.c, 26 cherokee/encoder_gzip.h, cherokee/handler_fastcgi.h, 27 cherokee/balancer.c, cherokee/balancer.h, 28 cherokee/handler_proxy.c, cherokee/handler_scgi.c, 29 cherokee/logger_ncsa.c, cherokee/handler_proxy.h, 30 cherokee/handler_error.c, cherokee/handler_scgi.h, 31 cherokee/logger_ncsa.h, cherokee/handler_error.h, 32 cherokee/handler_cgi.c, cherokee/server-protected.h, 33 cherokee/handler_cgi.h, cherokee/validator_mysql.c, 34 cherokee/logger.c, cherokee/validator_mysql.h, 35 cherokee/validator_htdigest.c, cherokee/logger.h, 36 cherokee/validator_htdigest.h, cherokee/cherokee.h, 37 cherokee/server.c, cherokee/handler_phpcgi.c, 38 cherokee/handler_phpcgi.h, cherokee/logger_combined.c, 39 cherokee/validator_pam.c, cherokee/validator_pam.h, 40 cherokee/socket.c, cherokee/logger_w3c.c: "module" has been 41 splitted into module and plug-in. 42 43 * cherokee/handler_fcgi.c (do_send): Do not move the connection to 44 polling if it receives a ret_eagain when it tries to write the 45 post content. 46 47 * cherokee/socket.c (cherokee_socket_write): Better 48 initialization. Fixes a potential memory corruption problem. 49 1 50 2006-11-22 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 51 3 52 * cherokee/handler_fcgi.c (do_send): Post handling was 4 53 broken. Actually, I broke it with another commit a couple of days 5 ago. It's working again. 54 ago. It's working again. This problem showed up using Gallery 2, 55 there were people who couldn't upload pictures. 6 56 7 57 * cherokee/config_node.c (cherokee_config_node_add): Fixes bug cherokee/trunk/cherokee/Makefile.am
r441 r476 838 838 thread.h \ 839 839 thread.c \ 840 plugin.h \ 840 841 module.h \ 841 842 module.c \ 842 843 validator.h \ 843 844 validator.c \ 844 module_loader.h \845 module_loader.c \845 plugin_loader.h \ 846 plugin_loader.c \ 846 847 icons.h \ 847 848 icons.c \ cherokee/trunk/cherokee/balancer.c
r387 r476 25 25 #include "common-internal.h" 26 26 #include "balancer.h" 27 #include " module_loader.h"27 #include "plugin_loader.h" 28 28 #include "server-protected.h" 29 29 #include "source_interpreter.h" … … 33 33 34 34 ret_t 35 cherokee_balancer_init_base (cherokee_balancer_t *balancer )35 cherokee_balancer_init_base (cherokee_balancer_t *balancer, cherokee_plugin_info_t *info) 36 36 { 37 37 /* Init the base class 38 38 */ 39 cherokee_module_init_base (MODULE(balancer) );39 cherokee_module_init_base (MODULE(balancer), NULL, info); 40 40 41 41 /* Virtual methods … … 199 199 ret_t ret; 200 200 balancer_new_func_t new_func; 201 cherokee_ module_info_t *info = NULL;202 203 ret = cherokee_ module_loader_get (&srv->loader, name->buf, &info);201 cherokee_plugin_info_t *info = NULL; 202 203 ret = cherokee_plugin_loader_get (&srv->loader, name->buf, &info); 204 204 if (ret != ret_ok) return ret; 205 205 206 new_func = (balancer_new_func_t) info-> new_func;206 new_func = (balancer_new_func_t) info->instance; 207 207 ret = new_func (balancer); 208 208 if (ret != ret_ok) return ret; cherokee/trunk/cherokee/balancer.h
r387 r476 55 55 56 56 57 typedef ret_t (* balancer_new_func_t) (cherokee_balancer_t **balancer);58 typedef ret_t (* balancer_free_func_t) (cherokee_balancer_t *balancer);57 typedef ret_t (* balancer_new_func_t) (cherokee_balancer_t **balancer); 58 typedef ret_t (* balancer_free_func_t) (cherokee_balancer_t *balancer); 59 59 60 60 61 ret_t cherokee_balancer_init_base (cherokee_balancer_t *balancer); 61 /* Easy initialization 62 */ 63 #define BALANCER_CONF_PROTOTYPE(name) \ 64 ret_t cherokee_balancer_ ## name ## _configure ( \ 65 cherokee_balancer_t *, \ 66 cherokee_config_node_t *) 67 68 #define PLUGIN_INFO_BALANCER_EASY_INIT(name) \ 69 BALANCER_CONF_PROTOTYPE(name); \ 70 \ 71 PLUGIN_INFO_INIT(name, cherokee_balancer, \ 72 (void *)cherokee_balancer_ ## name ## _new, \ 73 (void *)cherokee_balancer_ ## name ## _configure) 74 75 #define PLUGIN_INFO_BALANCER_EASIEST_INIT(name) \ 76 PLUGIN_EMPTY_INIT_FUNCTION(name) \ 77 PLUGIN_INFO_BALANCER_EASY_INIT(name) 78 79 80 /* Balancer methods 81 */ 82 ret_t cherokee_balancer_init_base (cherokee_balancer_t *balancer, cherokee_plugin_info_t *info); 62 83 ret_t cherokee_balancer_mrproper (cherokee_balancer_t *balancer); 63 84 ret_t cherokee_balancer_configure (cherokee_balancer_t *balancer, cherokee_config_node_t *conf); cherokee/trunk/cherokee/balancer_round_robin.c
r387 r476 26 26 27 27 #include "balancer_round_robin.h" 28 #include "module_loader.h" 28 #include "plugin_loader.h" 29 30 31 /* Plug-in initialization 32 */ 33 PLUGIN_INFO_BALANCER_EASIEST_INIT (round_robin); 34 29 35 30 36 static ret_t … … 35 41 36 42 ret_t 37 cherokee_balancer_round_robin_configure (cherokee_balancer_t *balancer, cherokee_config_node_t *conf)43 cherokee_balancer_round_robin_configure (cherokee_balancer_t *balancer, cherokee_config_node_t *conf) 38 44 { 39 45 ret_t ret; … … 53 59 /* Init 54 60 */ 55 cherokee_balancer_init_base (BAL(n) );61 cherokee_balancer_init_base (BAL(n), PLUGIN_INFO_PTR(round_robin)); 56 62 57 63 MODULE(n)->free = (module_func_free_t) cherokee_balancer_round_robin_free; … … 102 108 103 109 104 105 /* Module stuff106 */107 108 MODULE_INFO_INIT_EASY (balancer, round_robin);109 110 void111 MODULE_INIT(round_robin) (cherokee_module_loader_t *loader)112 {113 }cherokee/trunk/cherokee/cherokee.h
r384 r476 53 53 #include <cherokee/encoder.h> 54 54 #include <cherokee/connection.h> 55 #include <cherokee/module_loader.h> 55 #include <cherokee/plugin.h> 56 #include <cherokee/plugin_loader.h> 56 57 #include <cherokee/nonce.h> 57 58 cherokee/trunk/cherokee/config_entry.c
r446 r476 81 81 82 82 if (entry->validator_properties != NULL) { 83 cherokee_ validator_props_free (entry->validator_properties);83 cherokee_module_props_free (entry->validator_properties); 84 84 entry->validator_properties = NULL; 85 85 } … … 120 120 121 121 ret_t 122 cherokee_config_entry_set_handler (cherokee_config_entry_t *entry, cherokee_ module_info_t *modinfo)123 { 124 return_if_fail ( modinfo != NULL, ret_error);125 126 if ( modinfo->type != cherokee_handler) {122 cherokee_config_entry_set_handler (cherokee_config_entry_t *entry, cherokee_plugin_info_handler_t *plugin_info) 123 { 124 return_if_fail (plugin_info != NULL, ret_error); 125 126 if (PLUGIN_INFO(plugin_info)->type != cherokee_handler) { 127 127 PRINT_ERROR ("Directory '%s' has not a handler module!\n", entry->document_root->buf); 128 128 return ret_error; 129 129 } 130 130 131 entry->handler_new_func = (handler_func_new_t) modinfo->new_func;132 entry->handler_methods = MODULE_INFO_HANDLER(modinfo)->valid_methods;131 entry->handler_new_func = PLUGIN_INFO(plugin_info)->instance; 132 entry->handler_methods = plugin_info->valid_methods; 133 133 134 134 return ret_ok; cherokee/trunk/cherokee/config_entry.h
r387 r476 58 58 */ 59 59 validator_func_new_t validator_new_func; 60 cherokee_ validator_props_t*validator_properties;60 cherokee_module_props_t *validator_properties; 61 61 62 62 cherokee_buffer_t *auth_realm; … … 73 73 ret_t cherokee_config_entry_mrproper (cherokee_config_entry_t *entry); 74 74 75 ret_t cherokee_config_entry_set_handler (cherokee_config_entry_t *entry, cherokee_ module_info_t *modinfo);75 ret_t cherokee_config_entry_set_handler (cherokee_config_entry_t *entry, cherokee_plugin_info_handler_t *modinfo); 76 76 ret_t cherokee_config_entry_complete (cherokee_config_entry_t *entry, cherokee_config_entry_t *parent, cherokee_boolean_t same_type); 77 77 ret_t cherokee_config_entry_inherit (cherokee_config_entry_t *entry); cherokee/trunk/cherokee/encoder.c
r283 r476 28 28 29 29 ret_t 30 cherokee_encoder_init_base (cherokee_encoder_t *enc )30 cherokee_encoder_init_base (cherokee_encoder_t *enc, cherokee_plugin_info_t *info) 31 31 { 32 cherokee_module_init_base (MODULE(enc) );32 cherokee_module_init_base (MODULE(enc), NULL, info); 33 33 34 34 enc->encode = NULL; cherokee/trunk/cherokee/encoder.h
r283 r476 66 66 67 67 68 /* Easy initialization 69 */ 70 #define ENCODER_CONF_PROTOTYPE(name) \ 71 ret_t cherokee_encoder_ ## name ## _configure ( \ 72 cherokee_config_node_t *, \ 73 cherokee_server_t *, \ 74 cherokee_module_props_t **) 75 76 #define PLUGIN_INFO_ENCODER_EASY_INIT(name) \ 77 ENCODER_CONF_PROTOTYPE(name); \ 78 \ 79 PLUGIN_INFO_INIT(name, cherokee_encoder, \ 80 (void *)cherokee_encoder_ ## name ## _new, \ 81 (void *)NULL) 82 83 #define PLUGIN_INFO_ENCODER_EASIEST_INIT(name) \ 84 PLUGIN_EMPTY_INIT_FUNCTION(name) \ 85 PLUGIN_INFO_ENCODER_EASY_INIT(name) 86 87 68 88 /* Methods 69 89 */ 70 ret_t cherokee_encoder_init_base (cherokee_encoder_t *enc );90 ret_t cherokee_encoder_init_base (cherokee_encoder_t *enc, cherokee_plugin_info_t *info); 71 91 92 /* Encoder virtual methods 93 */ 72 94 ret_t cherokee_encoder_free (cherokee_encoder_t *enc); 73 95 ret_t cherokee_encoder_add_headers (cherokee_encoder_t *enc, cherokee_buffer_t *buf); cherokee/trunk/cherokee/encoder_gzip.c
r377 r476 27 27 #include "crc32.h" 28 28 #include "encoder_gzip.h" 29 #include "module_loader.h" 29 #include "plugin_loader.h" 30 31 /* Plug-in initialization 32 */ 33 PLUGIN_INFO_ENCODER_EASIEST_INIT (gzip); 30 34 31 35 /* Specs: … … 64 68 65 69 ret_t 66 cherokee_encoder_gzip_configure (cherokee_config_node_t *conf, cherokee_server_t *srv, void **props)67 {68 return ret_ok;69 }70 71 ret_t72 70 cherokee_encoder_gzip_new (cherokee_encoder_gzip_t **encoder) 73 71 { … … 77 75 /* Init 78 76 */ 79 cherokee_encoder_init_base (ENCODER(n) );77 cherokee_encoder_init_base (ENCODER(n), PLUGIN_INFO_PTR(gzip)); 80 78 81 79 MODULE(n)->init = (encoder_func_init_t) cherokee_encoder_gzip_init; … … 92 90 93 91 workspacesize = zlib_deflate_workspacesize(); 92 94 93 n->workspace = malloc (workspacesize); 95 if (unlikely (n->workspace == NULL)) return ret_nomem; 94 if (unlikely (n->workspace == NULL)) 95 return ret_nomem; 96 96 97 97 memset (n->workspace, 0, workspacesize); … … 312 312 } 313 313 314 315 316 /* Library init function317 */318 319 MODULE_INFO_INIT_EASY (encoder, gzip);320 321 322 static cherokee_boolean_t _gzip_is_init = false;323 324 void325 MODULE_INIT(gzip) (cherokee_module_loader_t *loader)326 {327 /* Init flag328 */329 if (_gzip_is_init) return;330 _gzip_is_init = true;331 }cherokee/trunk/cherokee/encoder_gzip.h
r347 r476 49 49 /* Methods 50 50 */ 51 ret_t cherokee_encoder_gzip_configure (cherokee_config_node_t *conf, cherokee_server_t *srv, void**props);51 ret_t cherokee_encoder_gzip_configure (cherokee_config_node_t *conf, cherokee_server_t *srv, cherokee_module_props_t **props); 52 52 53 53 ret_t cherokee_encoder_gzip_new (cherokee_encoder_gzip_t **encoder); cherokee/trunk/cherokee/encoder_table.c
r441 r476 118 118 119 119 ret_t 120 cherokee_encoder_table_entry_get_info (cherokee_encoder_table_entry_t *eentry, cherokee_ module_info_t *info)120 cherokee_encoder_table_entry_get_info (cherokee_encoder_table_entry_t *eentry, cherokee_plugin_info_t *info) 121 121 { 122 122 if (info->type != cherokee_encoder) { … … 125 125 } 126 126 127 eentry->func_new = info-> new_func;127 eentry->func_new = info->instance; 128 128 return ret_ok; 129 129 } cherokee/trunk/cherokee/encoder_table.h
r283 r476 45 45 /* Encoder table methods 46 46 */ 47 ret_t cherokee_encoder_table_init (cherokee_encoder_table_t *et);48 ret_t cherokee_encoder_table_mrproper (cherokee_encoder_table_t *et);47 ret_t cherokee_encoder_table_init (cherokee_encoder_table_t *et); 48 ret_t cherokee_encoder_table_mrproper (cherokee_encoder_table_t *et); 49 49 50 ret_t cherokee_encoder_table_get (cherokee_encoder_table_t *et, char *encoder, cherokee_encoder_table_entry_t **entry);51 ret_t cherokee_encoder_table_set (cherokee_encoder_table_t *et, char *encoder, cherokee_encoder_table_entry_t *entry);52 ret_t cherokee_encoder_table_new_encoder (cherokee_encoder_table_t *et, char *encoder, char *ext, cherokee_encoder_t **new_encoder);50 ret_t cherokee_encoder_table_get (cherokee_encoder_table_t *et, char *encoder, cherokee_encoder_table_entry_t **entry); 51 ret_t cherokee_encoder_table_set (cherokee_encoder_table_t *et, char *encoder, cherokee_encoder_table_entry_t *entry); 52 ret_t cherokee_encoder_table_new_encoder (cherokee_encoder_table_t *et, char *encoder, char *ext, cherokee_encoder_t **new_encoder); 53 53 54 54 /* Encoder entry methods … … 56 56 ret_t cherokee_encoder_table_entry_new (cherokee_encoder_table_entry_t **eentry); 57 57 ret_t cherokee_encoder_table_entry_free (cherokee_encoder_table_entry_t *eentry); 58 ret_t cherokee_encoder_table_entry_get_info (cherokee_encoder_table_entry_t *eentry, cherokee_ module_info_t *info);58 ret_t cherokee_encoder_table_entry_get_info (cherokee_encoder_table_entry_t *eentry, cherokee_plugin_info_t *info); 59 59 60 60 int cherokee_encoder_entry_has_matching_list (cherokee_encoder_table_entry_t *eentry); cherokee/trunk/cherokee/handler.c
r387 r476 33 33 34 34 ret_t 35 cherokee_handler_init_base (cherokee_handler_t *hdl, void *conn, cherokee_ module_props_t *props)35 cherokee_handler_init_base (cherokee_handler_t *hdl, void *conn, cherokee_handler_props_t *props, cherokee_plugin_info_handler_t *info) 36 36 { 37 37 /* Init the base class 38 38 */ 39 cherokee_module_init_base (MODULE(hdl) );39 cherokee_module_init_base (MODULE(hdl), MODULE_PROPS(props), PLUGIN_INFO(info)); 40 40 41 41 /* Pure virtual methods … … 46 46 /* Parent reference 47 47 */ 48 hdl->connection = conn; 49 hdl->props = props; 48 hdl->connection = conn; 50 49 51 50 return ret_ok; … … 130 129 131 130 131 132 /* Handler properties methods 133 */ 134 135 ret_t 136 cherokee_handler_props_init_base (cherokee_handler_props_t *props, module_func_props_free_t free_func) 137 { 138 props->valid_methods = http_unknown; 139 140 return cherokee_module_props_init_base (MODULE_PROPS(props), free_func); 141 } 142 143 144 ret_t 145 cherokee_handler_props_free_base (cherokee_handler_props_t *props) 146 { 147 return cherokee_module_props_free_base (MODULE_PROPS(props)); 148 } cherokee/trunk/cherokee/handler.h
r446 r476 62 62 typedef ret_t (* handler_func_step_t) (void *handler, cherokee_buffer_t *buffer); 63 63 typedef ret_t (* handler_func_add_headers_t) (void *handler, cherokee_buffer_t *buffer); 64 typedef ret_t (* handler_func_configure_t) (cherokee_config_node_t *, cherokee_server_t *, cherokee_module_props_t **); 65 64 66 65 67 /* Data types … … 67 69 typedef struct { 68 70 cherokee_module_t module; 69 cherokee_module_props_t *props;70 71 71 72 /* Pure virtual methods … … 91 92 #define HANDLER_SUPPORT_ERROR(h) (HANDLER(h)->support & hsupport_error) 92 93 94 95 /* Module information 96 */ 97 typedef struct { 98 cherokee_module_props_t base; 99 cherokee_http_method_t valid_methods; 100 } cherokee_handler_props_t; 101 102 #define HANDLER_PROPS(x) ((cherokee_handler_props_t *)(x)) 103 104 105 /* Easy initialization 106 */ 107 #define HANDLER_CONF_PROTOTYPE(name) \ 108 ret_t cherokee_handler_ ## name ## _configure ( \ 109 cherokee_config_node_t *, \ 110 cherokee_server_t *, \ 111 cherokee_module_props_t **) 112 113 #define PLUGIN_INFO_HANDLER_EASY_INIT(name, methods) \ 114 HANDLER_CONF_PROTOTYPE(name); \ 115 \ 116 PLUGIN_INFO_HANDLER_INIT(name, cherokee_handler, \ 117 (void *)cherokee_handler_ ## name ## _new, \ 118 (void *)cherokee_handler_ ## name ## _configure, \ 119 methods) 120 121 #define PLUGIN_INFO_HANDLER_EASIEST_INIT(name, methods) \ 122 PLUGIN_EMPTY_INIT_FUNCTION(name) \ 123 PLUGIN_INFO_HANDLER_EASY_INIT(name, methods) 124 125 93 126 /* Handler methods 94 127 */ 95 ret_t cherokee_handler_init_base (cherokee_handler_t *hdl, void *conn, cherokee_ module_props_t *props);128 ret_t cherokee_handler_init_base (cherokee_handler_t *hdl, void *conn, cherokee_handler_props_t *props, cherokee_plugin_info_handler_t *info); 96 129 ret_t cherokee_handler_free_base (cherokee_handler_t *hdl); 97 130 … … 103 136 ret_t cherokee_handler_add_headers (cherokee_handler_t *hdl, cherokee_buffer_t *buffer); 104 137 138 /* Handler properties methods 139 */ 140 ret_t cherokee_handler_props_init_base (cherokee_handler_props_t *props, module_func_props_free_t free_func); 141 ret_t cherokee_handler_props_free_base (cherokee_handler_props_t *props); 105 142 106 143 CHEROKEE_END_DECLS cherokee/trunk/cherokee/handler_admin.c
r387 r476 34 34 #define ERR_STR(x) 35 35 36 /* Plug-in initialization 37 */ 38 PLUGIN_INFO_HANDLER_EASIEST_INIT (admin, http_get | http_post); 36 39 37 static ret_t 38 cherokee_handler_admin_configure () 40 41 /* Methods implementation 42 */ 43 ret_t 44 cherokee_handler_admin_configure (cherokee_config_node_t *conf, cherokee_server_t *srv, cherokee_module_props_t **_props) 39 45 { 40 46 return ret_ok; … … 49 55 /* Init the base class object 50 56 */ 51 cherokee_handler_init_base (HANDLER(n), cnt, props);57 cherokee_handler_init_base (HANDLER(n), cnt, HANDLER_PROPS(props), PLUGIN_INFO_HANDLER_PTR(admin)); 52 58 53 59 MODULE(n)->init = (handler_func_init_t) cherokee_handler_admin_init; 54 60 MODULE(n)->free = (module_func_free_t) cherokee_handler_admin_free; 55 MODULE(n)->get_name = (module_func_get_name_t) cherokee_handler_admin_get_name;56 61 HANDLER(n)->step = (handler_func_step_t) cherokee_handler_admin_step; 57 62 HANDLER(n)->add_headers = (handler_func_add_headers_t) cherokee_handler_admin_add_headers; … … 186 191 return ret_ok; 187 192 } 188 189 void190 cherokee_handler_admin_get_name (cherokee_handler_admin_t *ahdl, const char **name)191 {192 *name = "admin";193 }194 195 196 /* Library init function197 */198 void199 MODULE_INIT(admin) (cherokee_module_loader_t *loader)200 {201 }202 203 HANDLER_MODULE_INFO_INIT_EASY (admin, http_get | http_post);cherokee/trunk/cherokee/handler_admin.h
r387 r476 27 27 28 28 #include "handler.h" 29 #include " module_loader.h"29 #include "plugin_loader.h" 30 30 31 31 … … 47 47 /* Library init function 48 48 */ 49 void MODULE_INIT(admi) (cherokee_module_loader_t *loader);49 void PLUGIN_INIT_NAME(admi) (cherokee_plugin_loader_t *loader); 50 50 ret_t cherokee_handler_admin_new (cherokee_handler_t **hdl, void *cnt, cherokee_module_props_t *props); 51 51 cherokee/trunk/cherokee/handler_cgi.c
r446 r476 71 71 72 72 73 /* Plugin initialization 74 */ 75 PLUGIN_INFO_HANDLER_EASY_INIT (cgi, http_get | http_post | http_head); 76 77 78 73 79 static ret_t 74 80 read_from_cgi (cherokee_handler_cgi_base_t *cgi_base, cherokee_buffer_t *buffer) … … 108 114 109 115 ret_t 110 cherokee_handler_cgi_new (cherokee_handler_t **hdl, void *cnt, cherokee_module_props_t *props)116 cherokee_handler_cgi_new (cherokee_handler_t **hdl, void *cnt, cherokee_module_props_t *props) 111 117 { 112 118 int i; … … 115 121 /* Init the base class 116 122 */ 117 cherokee_handler_cgi_base_init (HDL_CGI_BASE(n), cnt, props, cherokee_handler_cgi_add_env_pair, read_from_cgi); 123 cherokee_handler_cgi_base_init (HDL_CGI_BASE(n), cnt, PLUGIN_INFO_HANDLER_PTR(cgi), 124 HANDLER_PROPS(props), cherokee_handler_cgi_add_env_pair, read_from_cgi); 118 125 119 126 /* Virtual methods … … 268 275 CHEROKEE_NEW_STRUCT (n, handler_cgi_props); 269 276 270 cherokee_ module_props_init_base (MODULE_PROPS(n),271 MODULE_PROPS_FREE(cherokee_handler_cgi_props_free));277 cherokee_handler_cgi_base_props_init_base (PROP_CGI_BASE(n), 278 MODULE_PROPS_FREE(cherokee_handler_cgi_props_free)); 272 279 *_props = MODULE_PROPS(n); 273 280 } … … 525 532 /* Change the execution user? 526 533 */ 527 if (H DL_CGI_BASE_PROPS(cgi_base)->change_user) {534 if (HANDLER_CGI_PROPS(cgi_base)->change_user) { 528 535 struct stat info; 529 536 … … 764 771 /* Library init function 765 772 */ 766 767 773 static cherokee_boolean_t _cgi_is_init = false; 768 774 … … 778 784 #endif 779 785 780 void 781 MODULE_INIT(cgi) (cherokee_module_loader_t *loader)786 void 787 PLUGIN_INIT_NAME(cgi) (cherokee_plugin_loader_t *loader) 782 788 { 783 789 if (_cgi_is_init) return; … … 789 795 } 790 796 791 792 HANDLER_MODULE_INFO_INIT_EASY (cgi, http_get | http_post | http_head);cherokee/trunk/cherokee/handler_cgi.h
r387 r476 37 37 #include "list.h" 38 38 #include "handler_cgi_base.h" 39 #include " module_loader.h"39 #include "plugin_loader.h" 40 40 41 41 … … 63 63 } cherokee_handler_cgi_t; 64 64 65 #define HDL_CGI(x) ((cherokee_handler_cgi_t *)(x))66 #define PROP_CGI(x) ((cherokee_handler_cgi_props_t *)(x))67 #define H DL_CGI_PROPS(x) (PROP_CGI(HANDLER(x)->props))65 #define HDL_CGI(x) ((cherokee_handler_cgi_t *)(x)) 66 #define PROP_CGI(x) ((cherokee_handler_cgi_props_t *)(x)) 67 #define HANDLER_CGI_PROPS(x) (PROP_CGI (MODULE(x)->props)) 68 68 69 69 70 70 /* Library init function 71 71 */ 72 void MODULE_INIT(cgi) (cherokee_module_loader_t *loader);72 void PLUGIN_INIT_NAME(cgi) (cherokee_plugin_loader_t *loader); 73 73 74 74 /* Methods cherokee/trunk/cherokee/handler_cgi_base.c
r466 r476 43 43 cherokee_handler_cgi_base_init (cherokee_handler_cgi_base_t *cgi, 44 44 cherokee_connection_t *conn, 45 cherokee_module_props_t *props, 45 cherokee_plugin_info_handler_t *info, 46 cherokee_handler_props_t *props, 46 47 cherokee_handler_cgi_base_add_env_pair_t add_env_pair, 47 48 cherokee_handler_cgi_base_read_from_cgi_t read_from_cgi) … … 51 52 /* Init the base class object 52 53 */ 53 cherokee_handler_init_base (HANDLER(cgi), conn, props );54 cherokee_handler_init_base (HANDLER(cgi), conn, props, info); 54 55 55 56 /* Supported features … … 83 84 /* Read the properties 84 85 */ 85 if (H DL_CGI_BASE_PROPS(cgi)->is_error_handler) {86 if (HANDLER_CGI_BASE_PROPS(cgi)->is_error_handler) { 86 87 HANDLER(cgi)->support |= hsupport_error; 87 88 } … … 124 125 125 126 ret_t 127 cherokee_handler_cgi_base_props_init_base (cherokee_handler_cgi_base_props_t *props, module_func_props_free_t free_func) 128 { 129 return cherokee_handler_props_init_base (HANDLER_PROPS(props), free_func); 130 } 131 132 ret_t 126 133 cherokee_handler_cgi_base_props_free (cherokee_handler_cgi_base_props_t *props) 127 134 { … … 134 141 } 135 142 136 return cherokee_ module_props_free_base (MODULE_PROPS(props));143 return cherokee_handler_props_free_base (HANDLER_PROPS(props)); 137 144 } 138 145 … … 414 4