]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_conf.c
Add user metadata.
[irc/rqf/shadowircd.git] / src / s_conf.c
index 40a18b051bea63fae4bfb10ee62f6f48a351bac6..bbe78c4d2107714514edd90174ea214648e60fce 100644 (file)
@@ -680,6 +680,7 @@ set_default_conf(void)
 
        ConfigFileEntry.default_operstring = rb_strdup("is an IRC operator");
        ConfigFileEntry.default_adminstring = rb_strdup("is a Server Administrator");
+       ConfigFileEntry.default_operhost = rb_strdup("");
        ConfigFileEntry.servicestring = rb_strdup("is a Network Service");
 
        ConfigFileEntry.default_umodes = UMODE_INVISIBLE;       
@@ -747,10 +748,14 @@ set_default_conf(void)
        ConfigFileEntry.oper_snomask = SNO_GENERAL;
 
        ConfigChannel.autochanmodes = rb_strdup("nt");
+       ConfigChannel.exemptchanops = rb_strdup("");
+       ConfigChannel.use_halfop = YES;
+       ConfigChannel.use_owner = YES;
        ConfigChannel.use_except = YES;
        ConfigChannel.use_invex = YES;
        ConfigChannel.use_knock = YES;
        ConfigChannel.use_forward = YES;
+       ConfigChannel.use_local_channels = YES;
        ConfigChannel.knock_delay = 300;
        ConfigChannel.knock_delay_channel = 60;
        ConfigChannel.max_chans_per_user = 15;
@@ -767,6 +772,15 @@ set_default_conf(void)
        ConfigChannel.no_join_on_split = NO;
        ConfigChannel.no_create_on_split = YES;
        ConfigChannel.resv_forcepart = YES;
+       ConfigChannel.kick_no_rejoin_time = 30;
+
+       ConfigChannel.exempt_cmode_c = NO;
+       ConfigChannel.exempt_cmode_C = NO;
+       ConfigChannel.exempt_cmode_D = NO;
+       ConfigChannel.exempt_cmode_T = NO;
+       ConfigChannel.exempt_cmode_N = NO;
+       ConfigChannel.exempt_cmode_G = NO;
+       ConfigChannel.exempt_cmode_K = NO;
 
        ConfigServerHide.flatten_links = 0;
        ConfigServerHide.links_delay = 300;
@@ -863,6 +877,52 @@ validate_conf(void)
                splitmode = 0;
                splitchecking = 0;
        }
+
+       if(!valid_hostname(ConfigFileEntry.default_operhost))
+       {
+               conf_report_error("Warning -- invalid default_operhost specified, ignoring.");
+               ConfigFileEntry.default_operhost = rb_strdup("");
+       }
+
+       /* Parse the exemptchanops option and set the internal variables
+        * that we will use. */
+       char * ech;
+
+       for(ech = ConfigChannel.exemptchanops; *ech; ech++)
+       {
+               if(*ech == 'c')
+               {
+                       ConfigChannel.exempt_cmode_c = 1;
+                       continue;
+               }
+               if(*ech == 'C')
+               {
+                       ConfigChannel.exempt_cmode_C = 1;
+                       continue;
+               }
+               if(*ech == 'D')
+               {
+                       ConfigChannel.exempt_cmode_D = 1;
+                       continue;
+               }
+               if(*ech == 'T')
+               {
+                       ConfigChannel.exempt_cmode_T = 1;
+                       continue;
+               }
+               if(*ech == 'N')
+               {
+                       ConfigChannel.exempt_cmode_N = 1;
+                       continue;
+               }
+               if(*ech == 'G')
+               {
+                       ConfigChannel.exempt_cmode_G = 1;
+                       continue;
+               }
+               if(*ech == 'K')
+                       ConfigChannel.exempt_cmode_K = 1;
+       }
 }
 
 /* add_temp_kline()