diff options
author | lloyd <[email protected]> | 2007-11-14 16:07:18 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2007-11-14 16:07:18 +0000 |
commit | 2de4693562db51f6f0e0b2f3a95e3118c40db05d (patch) | |
tree | 156630241ee90cd2e15bc601d99aaad19cf7b0ea /src | |
parent | f42ff9817bd2d25401bd8fd0cd8186dc82810a63 (diff) |
Remove the ability to load an external configuration file. Applications
needing this functionality probably already have a preexisting configuration
system that they would rather use.
Also remove the documentation about this feature, and the example
configuration (which was pretty out of date, anyway).
RFC on this change sent to the mailing list on 11-13-2007, no responses
after 24 hours. It seems quite likely this code is not in use anywhere.
Diffstat (limited to 'src')
-rw-r--r-- | src/inifile.cpp | 138 | ||||
-rw-r--r-- | src/init_opt.cpp | 9 | ||||
-rw-r--r-- | src/libstate.cpp | 3 |
3 files changed, 0 insertions, 150 deletions
diff --git a/src/inifile.cpp b/src/inifile.cpp deleted file mode 100644 index a75ca654f..000000000 --- a/src/inifile.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/************************************************* -* Configuration Reader Source File * -* (C) 1999-2007 The Botan Project * -*************************************************/ - -#include <botan/config.h> -#include <botan/charset.h> -#include <botan/parsing.h> -#include <botan/exceptn.h> -#include <fstream> -#include <map> - -namespace Botan { - -namespace { - -/************************************************* -* Strip comments and whitespace from line * -*************************************************/ -std::string strip_whitespace(const std::string& line) - { - bool is_escaped = false, in_quote = false, in_string = false; - std::string new_line; - - for(std::string::const_iterator j = line.begin(); j != line.end(); ++j) - { - const char c = *j; - - if(c == '"' && !is_escaped && !in_string) - { in_quote = !in_quote; continue; } - if(c == '\'' && !is_escaped && !in_quote) - { in_string = !in_string; continue; } - if(c == '#' && !is_escaped && !in_quote && !in_string) - return new_line; - if(c == '\\' && !is_escaped) { is_escaped = true; continue; } - - if(Charset::is_space(c) && !in_quote && !in_string && !is_escaped) - continue; - - new_line += c; - is_escaped = false; - } - - return new_line; - } - -/************************************************* -* Do variable interpolation * -*************************************************/ -std::string interpolate(const std::string& value, - const std::map<std::string, std::string>& variables) - { - std::string variable, suffix; - - if(value.find('.') == std::string::npos) - variable = value; - else - { - variable = value.substr(0, value.find('.')); - suffix = value.substr(value.find('.'), std::string::npos); - } - - if(variables.find(variable) != variables.end()) - { - const std::string result = variables.find(variable)->second; - if(variable == result) - return value; - return interpolate(result, variables) + suffix; - } - return value; - } - -} - -/************************************************* -* Load a configuration file * -*************************************************/ -void Config::load_inifile(const std::string& fsname) - { - std::ifstream config(fsname.c_str()); - - if(!config) - throw Config_Error("Could not open config file " + fsname); - - u32bit line_no = 0; - std::string line, section; - std::map<std::string, std::string> variables; - - while(std::getline(config, line)) - { - ++line_no; - - line = strip_whitespace(line); - - if(line == "") - continue; - - if(line[0] == '[' && line[line.size()-1] == ']') - { - section = line.substr(1, line.size() - 2); - if(section == "") - throw Config_Error("Empty section name", line_no); - continue; - } - - if(section == "") - throw Config_Error("Section must be set before assignment", line_no); - - std::vector<std::string> name_and_value; - try { - name_and_value = split_on(line, '='); - } - catch(Format_Error) - { - throw Config_Error("Bad assignment: " + line, line_no); - } - - if(name_and_value.size() != 2) - throw Config_Error("Bad line: " + line, line_no); - const std::string name = name_and_value[0]; - const std::string value = interpolate(name_and_value[1], variables); - - if(variables.find(name) == variables.end()) - variables[name] = value; - - if(section == "oids") - { - set("oid2str", name, value, false); - set("str2oid", value, name, false); - } - else if(section == "aliases") - set("alias", name, value); - else - set("conf", section + '/' + name, value); - } - } - -} diff --git a/src/init_opt.cpp b/src/init_opt.cpp index a92d795b0..48dd00967 100644 --- a/src/init_opt.cpp +++ b/src/init_opt.cpp @@ -86,15 +86,6 @@ bool InitializerOptions::self_test() const } /************************************************* -* Return the config file to load, if any * -*************************************************/ -std::string InitializerOptions::config_file() const - { - std::map<std::string, std::string>::const_iterator i = args.find("config"); - return (i != args.end()) ? i->second : ""; - } - -/************************************************* * Setup an InitializerOptions * *************************************************/ InitializerOptions::InitializerOptions(const std::string& arg_string) diff --git a/src/libstate.cpp b/src/libstate.cpp index 9dda38b1f..7b6a929c5 100644 --- a/src/libstate.cpp +++ b/src/libstate.cpp @@ -340,9 +340,6 @@ void Library_State::initialize(const InitializerOptions& args, timer = modules.timer(); transcoder = modules.transcoder(); - if(args.config_file() != "") - config().load_inifile(args.config_file()); - locks["settings"] = get_mutex(); locks["allocator"] = get_mutex(); locks["rng"] = get_mutex(); |