]> git.sesse.net Git - cubemap/blobdiff - config.cpp
Add a simple HTTP endpoint that returns a very short string.
[cubemap] / config.cpp
index aa0f670a4b78a0607db4bf8af1d1232a14f21426..9ff0a039d7f641c62404c041df299ed190584bdb 100644 (file)
@@ -322,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<string, string>::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) {
@@ -423,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;