miscellaneous bugfixes and indentation fixes
[srvx.git] / src / opserv.c
index a63c0e148141ec2dd45c3823c7f87f386a6d4d1d..26dab12415b486e4941e7de64899ffd4fd46fc0b 100644 (file)
@@ -1047,6 +1047,7 @@ static MODCMD_FUNC(cmd_kickbanall)
         change->args[0].hostmask = "*!*@*";
     }
     modcmd_chanmode_announce(change);
+    mod_chanmode_free(change);
     if (argc < 2) {
        reason = alloca(strlen(OSMSG_KICK_REQUESTED)+strlen(user->nick)+1);
        sprintf(reason, OSMSG_KICK_REQUESTED, user->nick);
@@ -4022,8 +4023,10 @@ void
 init_opserv(const char *nick)
 {
     OS_LOG = log_register_type("OpServ", "file:opserv.log");
-    if (nick)
-        opserv = AddService(nick, "Oper Services", NULL);
+    if (nick) {
+        const char *modes = conf_get_data("services/opserv/modes", RECDB_QSTRING);
+        opserv = AddService(nick, modes ? modes : NULL, "Oper Services", NULL);
+    }
     conf_register_reload(opserv_conf_read);
 
     memset(level_strings, 0, sizeof(level_strings));