summaryrefslogtreecommitdiffstats
path: root/src/daemon/settings.c
diff options
context:
space:
mode:
authorGravatar Paulius Ratkevičius <paulius.ratkevicius@ktu.edu> 2019-05-19 18:14:28 +0300
committerGravatar Paulius Ratkevičius <paulius.ratkevicius@ktu.edu> 2019-05-19 18:14:28 +0300
commit18121c9b69df99540141453758fe64e99a4efa9a (patch)
treea0a9ab74318111fee1672673d053fd8d4881c789 /src/daemon/settings.c
parentf09430b7de693d56d3ea0510501150227e3816cd (diff)
downloadusurpation-18121c9b69df99540141453758fe64e99a4efa9a.tar.gz
usurpation-18121c9b69df99540141453758fe64e99a4efa9a.tar.bz2
usurpation-18121c9b69df99540141453758fe64e99a4efa9a.zip
daemon: Handle new settings vars.
Part of ticket #33 Signed-off-by: Paulius Ratkevičius <paulius.ratkevicius@ktu.edu>
Diffstat (limited to 'src/daemon/settings.c')
-rw-r--r--src/daemon/settings.c45
1 files changed, 41 insertions, 4 deletions
diff --git a/src/daemon/settings.c b/src/daemon/settings.c
index 2b07b98..822397d 100644
--- a/src/daemon/settings.c
+++ b/src/daemon/settings.c
@@ -38,13 +38,14 @@
*/
void settings_init(void)
{
+ atexit(free_strings);
unset_flag(flag_daemonize);
settings.port = 6996;
settings.verboselevel = USURP_VERBOSITY;
- settings.progname = program_invocation_short_name;
- settings.im_user = "user";
- settings.im_password = "password";
- settings.im_proto = "prpl-irc";
+ settings.progname = strdup(program_invocation_short_name);
+ settings.im_user = strdup("user");
+ settings.im_password = strdup("password");
+ settings.im_proto = strdup("prpl-irc");
#define macro2str(a) _macro2str(a)
#define _macro2str(a) #a
setting_readconf("/" macro2str(SYSCONFDIR) "/usurpation.conf");
@@ -190,3 +191,39 @@ static void set_verbosity(const void * const arg)
settings.verboselevel = strtol(a, NULL, 0);
}
+
+static void set_progname(const void * const arg)
+{
+ const char * const a = arg;
+ free(settings.progname);
+ settings.progname = strdup(a);
+}
+
+static void set_im_user(const void * const arg)
+{
+ const char * const a = arg;
+ free(settings.im_user);
+ settings.im_user = strdup(a);
+}
+
+static void set_im_password(const void * const arg)
+{
+ const char * const a = arg;
+ free(settings.im_password);
+ settings.im_password = strdup(a);
+}
+
+static void set_im_proto(const void * const arg)
+{
+ const char * const a = arg;
+ free(settings.im_proto);
+ settings.im_proto = strdup(a);
+}
+
+static void free_strings(void)
+{
+ free(settings.progname);
+ free(settings.im_user);
+ free(settings.im_password);
+ free(settings.im_proto);
+}