summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/main.c b/main.c
index 111ea33..fd6b2aa 100644
--- a/main.c
+++ b/main.c
@@ -31,6 +31,7 @@
#define DEFAULT_HOMEDIR_PATH "/home/david/intest"
#define DEFAULT_MAIN_CONFIG_FILE_PATH "./mcproxy.conf"
+#define DEFAULT_ANNOUNCE_INTERVAL 3
/* Global */
struct cfg *cfg = NULL;
@@ -196,7 +197,8 @@ cfg_free(struct uring_task *task)
enum mcfg_keys {
MCFG_KEY_INVALID = 0,
MCFG_KEY_IGMP,
- MCFG_KEY_IGMP_IFACE
+ MCFG_KEY_IGMP_IFACE,
+ MCFG_KEY_ANN_INTERVAL,
};
struct cfg_key_value_map mcfg_key_map[] = {
@@ -209,6 +211,10 @@ struct cfg_key_value_map mcfg_key_map[] = {
.key_value = MCFG_KEY_IGMP_IFACE,
.value_type = CFG_VAL_TYPE_STRING,
}, {
+ .key_name = "announce_interval",
+ .key_value = MCFG_KEY_ANN_INTERVAL,
+ .value_type = CFG_VAL_TYPE_UINT16,
+ }, {
.key_name = NULL,
.key_value = MCFG_KEY_INVALID,
.value_type = CFG_VAL_TYPE_INVALID,
@@ -293,6 +299,10 @@ cfg_read()
break;
+ case MCFG_KEY_ANN_INTERVAL:
+ cfg->announce_interval = value.uint16;
+ break;
+
case MCFG_KEY_INVALID:
default:
die("main config file (%s) invalid", path);
@@ -387,6 +397,7 @@ cfg_init(int argc, char **argv)
if (!cfg)
die("malloc: %m");
+ cfg->announce_interval = DEFAULT_ANNOUNCE_INTERVAL;
cfg->uid = geteuid();
cfg->gid = getegid();
uring_task_init(&cfg->task, "main", NULL, cfg_free);