ret_t cherokee_rule_header_new (cherokee_rule_header_t **rule) { CHEROKEE_NEW_STRUCT (n, rule_header); /* Parent class constructor */ cherokee_rule_init_base (RULE(n), PLUGIN_INFO_PTR(header)); /* Virtual methods */ RULE(n)->match = (rule_func_match_t) match; RULE(n)->configure = (rule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ n->pcre = NULL; n->type = rule_header_type_regex; cherokee_buffer_init (&n->match); *rule = n; return ret_ok; }
ret_t cherokee_rule_extensions_new (cherokee_rule_extensions_t **rule) { CHEROKEE_NEW_STRUCT (n, rule_extensions); /* Parent class constructor */ cherokee_rule_init_base (RULE(n), PLUGIN_INFO_PTR(extensions)); /* Virtual methods */ RULE(n)->match = (rule_func_match_t) match; RULE(n)->configure = (rule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ n->check_local_file = false; n->use_iocache = true; cherokee_avl_init (&n->extensions); *rule = n; return ret_ok; }
ret_t cherokee_rule_geoip_new (cherokee_rule_t **rule) { CHEROKEE_NEW_STRUCT (n, rule_geoip); /* Parent class constructor */ cherokee_rule_init_base (RULE(n), PLUGIN_INFO_PTR(geoip)); /* Virtual methods */ RULE(n)->match = (rule_func_match_t) match; RULE(n)->configure = (rule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ n->geoip = geoip_get(); if (n->geoip == NULL) return ret_error; cherokee_avl_init (&n->countries); *rule = RULE(n); return ret_ok; }
ret_t cherokee_logger_ncsa_new (cherokee_logger_t **logger, cherokee_virtual_server_t *vsrv, cherokee_config_node_t *config) { ret_t ret; CHEROKEE_NEW_STRUCT (n, logger_ncsa); /* Init the base class object */ cherokee_logger_init_base (LOGGER(n), PLUGIN_INFO_PTR(ncsa), config); MODULE(n)->init = (logger_func_init_t) cherokee_logger_ncsa_init; MODULE(n)->free = (logger_func_free_t) cherokee_logger_ncsa_free; LOGGER(n)->flush = (logger_func_flush_t) cherokee_logger_ncsa_flush; LOGGER(n)->reopen = (logger_func_reopen_t) cherokee_logger_ncsa_reopen; LOGGER(n)->write_access = (logger_func_write_access_t) cherokee_logger_ncsa_write_access; n->writer_access = NULL; ret = cherokee_logger_ncsa_init_base (n, VSERVER(vsrv), config); if (unlikely(ret < ret_ok)) { cherokee_logger_free (LOGGER(n)); return ret; } /* Return the object */ *logger = LOGGER(n); return ret_ok; }
ret_t cherokee_rule_not_new (cherokee_rule_t **rule) { CHEROKEE_NEW_STRUCT (n, rule_not); /* Parent class constructor */ cherokee_rule_init_base (RULE(n), PLUGIN_INFO_PTR(not)); /* Virtual methods */ RULE(n)->match = (rule_func_match_t) match; RULE(n)->configure = (rule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ n->right = NULL; *rule = RULE(n); return ret_ok; }
ret_t cherokee_rule_directory_new (cherokee_rule_directory_t **rule) { CHEROKEE_NEW_STRUCT (n, rule_directory); /* Parent class constructor */ cherokee_rule_init_base (RULE(n), PLUGIN_INFO_PTR(directory)); /* Virtual methods */ RULE(n)->match = (rule_func_match_t) match; RULE(n)->configure = (rule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ cherokee_buffer_init (&n->directory); *rule = n; return ret_ok; }
ret_t cherokee_vrule_v_or_new (cherokee_vrule_t **vrule) { CHEROKEE_NEW_STRUCT (n, vrule_or); /* Parent class constructor */ cherokee_vrule_init_base (VRULE(n), PLUGIN_INFO_PTR(v_or)); /* Virtual methods */ VRULE(n)->match = (vrule_func_match_t) match; VRULE(n)->configure = (vrule_func_configure_t) configure; MODULE(n)->free = (module_func_free_t) _free; /* Properties */ n->left = NULL; n->right = NULL; *vrule = VRULE(n); return ret_ok; }