X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=config.cpp;h=0b5ed20bdb5192ffa60e7ca2783844836f3741a7;hp=aa0f670a4b78a0607db4bf8af1d1232a14f21426;hb=d0aad5446b9896e3ba15c8a50c345e185dc1631f;hpb=6889a665614e926437484a556124a5ff60363568 diff --git a/config.cpp b/config.cpp index aa0f670..0b5ed20 100644 --- a/config.cpp +++ b/config.cpp @@ -322,6 +322,26 @@ bool parse_udpstream(const ConfigLine &line, Config *config) return true; } +bool parse_gen204(const ConfigLine &line, Config *config) +{ + if (line.arguments.size() != 1) { + log(ERROR, "'gen204' takes exactly one argument"); + return false; + } + + Gen204Config gen204; + gen204.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()) { + gen204.allow_origin = allow_origin_it->second; + } + + config->pings.push_back(gen204); + return true; +} + bool parse_error_log(const ConfigLine &line, Config *config) { if (line.arguments.size() != 0) { @@ -423,6 +443,10 @@ bool parse_config(const string &filename, Config *config) if (!parse_udpstream(line, config)) { return false; } + } else if (line.keyword == "gen204") { + if (!parse_gen204(line, config)) { + return false; + } } else if (line.keyword == "error_log") { if (!parse_error_log(line, config)) { return false;