From: Steinar H. Gunderson Date: Wed, 10 Apr 2013 21:35:08 +0000 (+0200) Subject: Small refactoring in main.cpp. X-Git-Tag: 1.0.0~158^2 X-Git-Url: https://git.sesse.net/?p=cubemap;a=commitdiff_plain;h=3b2b74d6be17096c2fe830bfa07fbcecb4460b81;ds=sidebyside Small refactoring in main.cpp. --- diff --git a/main.cpp b/main.cpp index a4a4dbe..dc52bdc 100644 --- a/main.cpp +++ b/main.cpp @@ -191,6 +191,29 @@ MarkPool *get_mark_pool(map, MarkPool *> *mark_pools, int from, i mark_pools->insert(make_pair(mark_range, mark_pool)); return mark_pool; } + +MarkPool *parse_mark_pool(map, 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) { @@ -260,26 +283,7 @@ 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); } }