]> git.sesse.net Git - cubemap/blobdiff - config.cpp
Support SO_MAX_PACING_RATE.
[cubemap] / config.cpp
index cb16cbc33e06f7d1032d2b8d13f20379b20c262a..f5182aac1512e9b8307ac57d16ada0b639260257 100644 (file)
@@ -234,6 +234,14 @@ bool parse_stream(const ConfigLine &line, Config *config)
                stream.mark_pool = allocate_mark_pool(from, to, config);
        }
 
+       // Parse the pacing rate, converting from kilobits to bytes as needed.
+       map<string, string>::const_iterator pacing_rate_it = line.parameters.find("pacing_rate_kbit");
+       if (pacing_rate_it == line.parameters.end()) {
+               stream.pacing_rate = ~0U;
+       } else {
+               stream.pacing_rate = atoi(pacing_rate_it->second.c_str()) * 1024 / 8;
+       }
+
        config->streams.push_back(stream);
        return true;
 }
@@ -316,9 +324,18 @@ bool parse_udpstream(const ConfigLine &line, Config *config)
                udpstream.mark_pool = allocate_mark_pool(from, to, config);
        }
 
+       // Parse the pacing rate, converting from kilobits to bytes as needed.
+       map<string, string>::const_iterator pacing_rate_it = line.parameters.find("pacing_rate_kbit");
+       if (pacing_rate_it == line.parameters.end()) {
+               udpstream.pacing_rate = ~0U;
+       } else {
+               udpstream.pacing_rate = atoi(pacing_rate_it->second.c_str()) * 1024 / 8;
+       }
+
        config->udpstreams.push_back(udpstream);
        return true;
 }
+
 bool parse_error_log(const ConfigLine &line, Config *config)
 {
        if (line.arguments.size() != 0) {