X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=config.cpp;h=9ff0a039d7f641c62404c041df299ed190584bdb;hp=f474f8c495f2cd07c624bd87a9e7a0f4d58f3f6c;hb=4934a0983fee26765a3c1a5b6bf5834ba6e7e52c;hpb=0eac9253f23925734e256c63081e157c68c70704 diff --git a/config.cpp b/config.cpp index f474f8c..9ff0a03 100644 --- a/config.cpp +++ b/config.cpp @@ -19,7 +19,7 @@ using namespace std; -#define DEFAULT_BACKLOG_SIZE 1048576 +#define DEFAULT_BACKLOG_SIZE 10485760 struct ConfigLine { string keyword; @@ -188,7 +188,7 @@ bool parse_port(const ConfigLine &line, Config *config) } AcceptorConfig acceptor; - acceptor.addr = CreateAnyAddress(port); + acceptor.addr = create_any_address(port); config->acceptors.push_back(acceptor); return true; @@ -235,6 +235,13 @@ bool parse_stream(const ConfigLine &line, Config *config) stream.backlog_size = atoi(backlog_it->second.c_str()); } + map::const_iterator prebuffer_it = line.parameters.find("force_prebuffer"); + if (prebuffer_it == line.parameters.end()) { + stream.prebuffering_bytes = 0; + } else { + stream.prebuffering_bytes = atoi(prebuffer_it->second.c_str()); + } + // Parse encoding. map::const_iterator encoding_parm_it = line.parameters.find("encoding"); if (encoding_parm_it == line.parameters.end() || @@ -315,6 +322,26 @@ bool parse_udpstream(const ConfigLine &line, Config *config) return true; } +bool parse_ping(const ConfigLine &line, Config *config) +{ + if (line.arguments.size() != 1) { + log(ERROR, "'ping' takes exactly one argument"); + return false; + } + + PingConfig ping; + ping.url = line.arguments[0]; + + // Parse the CORS origin, if it exists. + map::const_iterator allow_origin_it = line.parameters.find("allow_origin"); + if (allow_origin_it != line.parameters.end()) { + ping.allow_origin = allow_origin_it->second; + } + + config->pings.push_back(ping); + return true; +} + bool parse_error_log(const ConfigLine &line, Config *config) { if (line.arguments.size() != 0) { @@ -416,6 +443,10 @@ bool parse_config(const string &filename, Config *config) if (!parse_udpstream(line, config)) { return false; } + } else if (line.keyword == "ping") { + if (!parse_ping(line, config)) { + return false; + } } else if (line.keyword == "error_log") { if (!parse_error_log(line, config)) { return false;