]> jfr.im git - irc/rqf/shadowircd.git/commitdiff
Add channel::admin_on_channel_create, which gives users creating new channels +ao...
authorB.Greenham <redacted>
Thu, 29 Jul 2010 18:22:33 +0000 (14:22 -0400)
committerB.Greenham <redacted>
Thu, 29 Jul 2010 18:22:33 +0000 (14:22 -0400)
doc/example.conf
doc/reference.conf
include/s_conf.h
modules/m_info.c
src/channel.c
src/newconf.c
src/s_conf.c

index f730b8388ed30e5a2441495de0cae3f6aa9dca4d..2bc25deeb83eadcc89cf338900ea243840698442 100755 (executable)
@@ -377,6 +377,7 @@ exempt {
 
 channel {
        autochanmodes = "nt";
+       admin_on_channel_create = no;
        exemptchanops = "NT";
        use_halfop = yes;
        use_admin = yes;
index 0c21b389db3344bee83b4408affe2f96bf976a9c..6d6f2ce5bf9ad25c038a7fe37055ae213197275e 100755 (executable)
@@ -770,6 +770,11 @@ channel {
         */
        autochanmodes = "nt";
 
+       /* admin_on_channel_create: If set to yes, users joining new channels
+        * will be given +ao instead of just +o. Requires use_admin.
+        */
+       admin_on_channel_create = no;
+
        /* exemptchanops: Channel modes that any form of channel ops (+aoh) 
         * will be exempt from. Even if the mode is set, it will not apply to the
         * channel ops if it is listed in this option. Valid modes are cCDTNGK.
index ec3a222baba7d471b15d2020c8a10404949c1c15..d8a7fcb2e3aa7fc1ce6785fa5e15f773b9e3efdf 100644 (file)
@@ -239,6 +239,7 @@ struct config_channel_entry
 {
        char * autochanmodes;
        char * exemptchanops;
+       int admin_on_channel_create;
        int use_halfop;
        int use_admin;
        int use_except;
index 1491180b2cd7d05d66efd7a5fef06787e39afda7..c8ab7de296b6dd19922332a9ef2dd804d790ca5a 100644 (file)
@@ -625,6 +625,12 @@ static struct InfoStruct info_table[] = {
                &ConfigChannel.host_in_topic,
                "Defines whether a topicsetters host or just nick is shown on TOPIC",
        },
+       {
+               "admin_on_channel_create",
+               OUTPUT_BOOLEAN_YN,
+               &ConfigChannel.admin_on_channel_create,
+               "Give users +ao on channel create",
+       },
        {
                "use_halfop",
                OUTPUT_BOOLEAN_YN,
index 9c95fb736b01b94f686bbb04496b7a9eca8c2291..3e47278ead4ec05195787b9adb394681ddc9520d 100644 (file)
@@ -1873,7 +1873,10 @@ void user_join(struct Client * client_p, struct Client * source_p, const char *
                                continue;
                        }
 
-                       flags = CHFL_CHANOP;
+                       if(ConfigChannel.admin_on_channel_create)
+                               flags = CHFL_ADMIN | CHFL_CHANOP;
+                       else
+                               flags = CHFL_CHANOP;
                }
 
                if((rb_dlink_list_length(&source_p->user->channel) >=
index df662d8db912be75bb994e971c85dd962f9d2730..6071fa9cea4de6e2519c587ddac59900c92d9ed8 100644 (file)
@@ -2279,6 +2279,7 @@ static struct ConfEntry conf_channel_table[] =
        { "only_ascii_channels", CF_YESNO, NULL, 0, &ConfigChannel.only_ascii_channels },
        { "cycle_host_change",  CF_YESNO, NULL, 0, &ConfigChannel.cycle_host_change },
        { "host_in_topic",      CF_YESNO, NULL, 0, &ConfigChannel.host_in_topic },
+       { "admin_on_channel_create", CF_YESNO, NULL, 0, &ConfigChannel.admin_on_channel_create },
        { "use_halfop",         CF_YESNO, NULL, 0, &ConfigChannel.use_halfop            },
        { "use_admin",          CF_YESNO, NULL, 0, &ConfigChannel.use_admin             },
        { "use_except",         CF_YESNO, NULL, 0, &ConfigChannel.use_except            },
index f54dc8032cb4073feb6c253565f171c7a6cffb3d..045c3c2d3704e38a6d22ee62a78ea641b91bf240 100644 (file)
@@ -764,6 +764,7 @@ set_default_conf(void)
 
        ConfigChannel.autochanmodes = rb_strdup("nt");
        ConfigChannel.exemptchanops = rb_strdup("");
+       ConfigChannel.admin_on_channel_create = NO;
        ConfigChannel.use_halfop = YES;
        ConfigChannel.use_admin = YES;
        ConfigChannel.use_except = YES;