diff options
Diffstat (limited to 'src/starter/confread.c')
-rw-r--r-- | src/starter/confread.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c index e9b9028d5..6ebdaf58b 100644 --- a/src/starter/confread.c +++ b/src/starter/confread.c @@ -671,6 +671,41 @@ static void load_conn(starter_conn_t *conn, kw_list_t *kw, starter_config_t *cfg } break; } + case KW_MARK: + { + char *pos, *endptr; + + pos = strchr(kw->value, '/'); + if (pos) + { + *pos = '\0'; + conn->mark_mask = strtoul(pos+1, &endptr, 0); + if (*endptr != '\0') + { + plog("# invalid mark mask: %s", pos+1); + cfg->err++; + break; + } + } + else + { + conn->mark_mask = 0xffffffff; + } + if (*kw->value == '\0') + { + conn->mark_value = 0; + } + else + { + conn->mark_value = strtoul(kw->value, &endptr, 0); + if (*endptr != '\0') + { + plog("# invalid mark value: %s", kw->value); + cfg->err++; + } + } + break; + } case KW_KEYINGTRIES: if (streq(kw->value, "%forever")) { |