]> jfr.im git - solanum.git/blobdiff - src/newconf.c
Add support for customizing the usable nick length.
[solanum.git] / src / newconf.c
index 95013c53601f7d7b7b054bd22eaef693d5423867..e5afd0ac76d1ef21e7fdb1a70587b6431585a37d 100644 (file)
@@ -260,6 +260,26 @@ conf_set_serverinfo_vhost6(void *data)
 #endif
 }
 
+static void
+conf_set_serverinfo_nicklen(void *data)
+{
+       static int nicklen_set = 0;
+
+       if (nicklen_set)
+               return;
+
+       ConfigFileEntry.nicklen = *(unsigned int *) data;
+
+       if (ConfigFileEntry.nicklen > NICKLEN)
+       {
+               conf_report_error("Warning -- ignoring serverinfo::nicklen -- provided nicklen (%u) is greater than allowed nicklen (%u)",
+                                 ConfigFileEntry.nicklen, NICKLEN);
+               ConfigFileEntry.nicklen = NICKLEN;
+       }
+
+       nicklen_set = 1;
+}
+
 static void
 conf_set_modules_module(void *data)
 {
@@ -2085,6 +2105,8 @@ static struct ConfEntry conf_serverinfo_table[] =
 
        { "default_max_clients",CF_INT,     NULL, 0, &ServerInfo.default_max_clients },
 
+       { "nicklen",            CF_INT,     conf_set_serverinfo_nicklen, 0, NULL },
+
        { "\0", 0, NULL, 0, NULL }
 };