ret_t cherokee_validator_configure (cherokee_config_node_t *conf, void *config_entry) { ret_t ret; cherokee_list_t *i; cherokee_config_node_t *subconf; cherokee_config_entry_t *entry = CONF_ENTRY(config_entry); cherokee_config_node_foreach (i, conf) { subconf = CONFIG_NODE(i); if (equal_buf_str (&subconf->key, "realm")) { TRACE(ENTRIES, "Realm: %s\n", subconf->val.buf); ret = cherokee_buffer_dup (&subconf->val, &entry->auth_realm); if (ret != ret_ok) return ret; } else if (equal_buf_str (&subconf->key, "methods")) { TRACE(ENTRIES, "Methods: %s\n", subconf->val.buf); ret = cherokee_config_node_read_list (subconf, NULL, add_method, entry); if (ret != ret_ok) return ret; } else if (equal_buf_str (&subconf->key, "users")) { if (entry->users == NULL) { cherokee_avl_new (&entry->users); } ret = cherokee_config_node_read_list (subconf, NULL, add_user, entry->users); if (ret != ret_ok) return ret; } }
ret_t cherokee_x_real_ip_configure (cherokee_x_real_ip_t *real_ip, cherokee_config_node_t *config) { ret_t ret; cherokee_config_node_t *subconf; cherokee_config_node_read_bool (config, "x_real_ip_enabled", &real_ip->enabled); cherokee_config_node_read_bool (config, "x_real_ip_access_all", &real_ip->access_all); ret = cherokee_config_node_get (config, "x_real_ip_access", &subconf); if (ret == ret_ok) { ret = cherokee_config_node_read_list (subconf, NULL, add_access, real_ip); if (ret != ret_ok) { LOG_ERROR_S (CHEROKEE_ERROR_LOGGER_X_REAL_IP_PARSE); return ret_error; } } return ret_ok; }
ret_t cherokee_handler_dirlist_configure (cherokee_config_node_t *conf, cherokee_server_t *srv, cherokee_module_props_t **_props) { ret_t ret; cherokee_list_t *i; cherokee_handler_dirlist_props_t *props; const char *theme = NULL; cherokee_buffer_t theme_path = CHEROKEE_BUF_INIT; UNUSED(srv); if (*_props == NULL) { CHEROKEE_NEW_STRUCT (n, handler_dirlist_props); cherokee_handler_props_init_base (HANDLER_PROPS(n), MODULE_PROPS_FREE(cherokee_handler_dirlist_props_free)); n->show_size = true; n->show_date = true; n->show_user = false; n->show_group = false; n->show_icons = true; n->show_symlinks = true; n->redir_symlinks = false; n->show_hidden = false; n->show_backup = false; cherokee_buffer_init (&n->header); cherokee_buffer_init (&n->footer); cherokee_buffer_init (&n->entry); cherokee_buffer_init (&n->css); cherokee_buffer_init (&n->icon_web_dir); cherokee_buffer_add_str (&n->icon_web_dir, ICON_WEB_DIR_DEFAULT); INIT_LIST_HEAD (&n->notice_files); INIT_LIST_HEAD (&n->hidden_files); *_props = MODULE_PROPS(n); } props = PROP_DIRLIST(*_props); cherokee_config_node_foreach (i, conf) { cherokee_config_node_t *subconf = CONFIG_NODE(i); /* Convert the properties */ if (equal_buf_str (&subconf->key, "size")) { props->show_size = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "date")) { props->show_date = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "user")) { props->show_user = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "group")) { props->show_group = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "symlinks")) { props->show_symlinks = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "redir_symlinks")) { props->redir_symlinks = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "hidden")) { props->show_hidden = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "backup")) { props->show_backup = !! atoi (subconf->val.buf); } else if (equal_buf_str (&subconf->key, "theme")) { theme = subconf->val.buf; } else if (equal_buf_str (&subconf->key, "icon_dir")) { cherokee_buffer_clean (&props->icon_web_dir); cherokee_buffer_add_buffer (&props->icon_web_dir, &subconf->val); } else if (equal_buf_str (&subconf->key, "notice_files")) { ret = cherokee_config_node_read_list (subconf, NULL, file_match_add_cb, &props->notice_files); if (unlikely (ret != ret_ok)) return ret; } else if (equal_buf_str (&subconf->key, "hidden_files")) { ret = cherokee_config_node_read_list (subconf, NULL, file_match_add_cb, &props->hidden_files); if (unlikely (ret != ret_ok)) return ret; } }