mark_pools->insert(make_pair(mark_range, mark_pool));
return mark_pool;
}
+
+MarkPool *parse_mark_pool(map<pair<int, int>, MarkPool *> *mark_pools, const string &mark_str)
+{
+ size_t split = mark_str.find_first_of('-');
+ if (split == string::npos) {
+ fprintf(stderr, "WARNING: Invalid mark specification '%s' (expected 'X-Y'), ignoring.\n",
+ mark_str.c_str());
+ return NULL;
+ }
+
+ string from_str(mark_str.begin(), mark_str.begin() + split);
+ string to_str(mark_str.begin() + split + 1, mark_str.end());
+ int from = atoi(from_str.c_str());
+ int to = atoi(to_str.c_str());
+
+ if (from <= 0 || from >= 65536 || to <= 0 || to >= 65536) {
+ fprintf(stderr, "WARNING: Mark pool range %d-%d is outside legal range [1,65536>, ignoring.\n",
+ from, to);
+ return NULL;
+ }
+
+ return get_mark_pool(mark_pools, from, to);
+}
int main(int argc, char **argv)
{
// Set up marks, if so desired.
if (config[i].parameters.count("mark")) {
- string mark_str = config[i].parameters["mark"];
- size_t split = mark_str.find_first_of('-');
- if (split == string::npos) {
- fprintf(stderr, "WARNING: Invalid mark specification '%s' (expected 'X-Y'), ignoring.\n",
- mark_str.c_str());
- continue;
- }
-
- string from_str(mark_str.begin(), mark_str.begin() + split);
- string to_str(mark_str.begin() + split + 1, mark_str.end());
- int from = atoi(from_str.c_str());
- int to = atoi(to_str.c_str());
-
- if (from <= 0 || from >= 65536 || to <= 0 || to >= 65536) {
- fprintf(stderr, "WARNING: Mark pool range %d-%d is outside legal range [1,65536>, ignoring.\n",
- from, to);
- continue;
- }
-
- MarkPool *mark_pool = get_mark_pool(&mark_pools, from, to);
+ MarkPool *mark_pool = parse_mark_pool(&mark_pools, config[i].parameters["mark"]);
servers->set_mark_pool(stream_id, mark_pool);
}
}