[IRCServices Coding] Chanserv patch for reg chans only

Craig McLure Craig at chatspike.net
Wed Mar 12 16:41:49 PST 2003


Good Job, i've checked thru it quickly, and dont see any immediate probs, This will be useful for people whos IRCds dont support the ability to "forbid all channels except.." and has been requested a couple of times. it also makes enabeling new channels easier as well, although, you may wanna add is_services_oper or maybe just is_oper support as well, meaning opers or services opers can join.

-----------------------------------------------------------------------
Craig McLure - Craig at chatspike.net
ChatSpike - The users network: http://www.chatspike.net  
InspIRCd - Modular IRC server: http://www.inspircd.org
<`RaSh> how do i install linux i got the cd and i dont see the setup.exe or install.exe
-----------------------------------------------------------------------

============ Original Message ============
>From     : "Stefan Hudson" <hudson at mbay.net>
>Reply-To : ircservices-coding at ircservices.za.net
>To       : ircservices-coding at ircservices.za.net
>Subject  : [IRCServices Coding] Chanserv patch for reg chans only
>Date     : 2003-03-12
>
>
>Here's a patch to add an option for forbiding use unregistered channels
>by normal users.  Yeah, it's a bit fascist, but sometimes this much control
>is needed - on IRC servers that are used for commercial support, where it
>would not be appropriate to have someone create #hotgaysex, for example.
>
>This is the first hack I've done on ircservices, so someone please check
>to make sure I didn't miss something.  I tried to cover all bases.
>
>diff -c -r ircservices-5.0.13/data/example-modules.conf ircservices-5.0.13-local/data/example-modules.conf
>*** ircservices-5.0.13/data/example-modules.conf	Mon Mar  3 01:54:47 2003
>--- ircservices-5.0.13-local/data/example-modules.conf	Wed Mar 12 16:41:23 2003
>***************
>*** 919,924 ****
>--- 919,932 ----
>  
>      #CSForbidShortChannel
>  
>+     # CSRegisteredOnly  [OPTIONAL]
>+     #     When enabled, treats unregistered channels as forbidden, not
>+     #     allowing normal users to join.  If enabled, services opers will
>+     #     need to create any new channels on the network.  For this option
>+     #     to be effective, CSEnableRegister should generally NOT be enabled.
>+ 
>+     #CSRegisteredOnly
>+ 
>  EndModule
>  
>  ################################ SENDPASS module
>diff -c -r ircservices-5.0.13/docs/a.html ircservices-5.0.13-local/docs/a.html
>*** ircservices-5.0.13/docs/a.html	Sun Mar  2 21:18:48 2003
>--- ircservices-5.0.13-local/docs/a.html	Wed Mar 12 16:50:04 2003
>***************
>*** 1722,1727 ****
>--- 1722,1739 ----
>  
>  <p>Example: <tt>CSForbidShortChannel</tt>
>  </ul>
>+ 
>+ <a name="chanserv/main.CSRegisteredOnly"></a>
>+ <p><ul><li>
>+ <tt><b>CSRegisteredOnly</b></tt>&nbsp;&nbsp;&nbsp;&nbsp;[OPTIONAL]
>+ <p>When enabled, treats unregistered channels as forbidden, not
>+ allowing normal users to join.  If enabled, services opers will
>+ need to create any new channels on the network.  For this option
>+ to be effective, CSEnableRegister should generally NOT be enabled.
>+ 
>+ <p>Example: <tt>CSRegisteredOnly</tt>
>+ </ul>
>+ 
>  <a name="chanserv/sendpass"></a>
>  <p><font size="+1"><b>chanserv/sendpass</b> (SENDPASS module)</font>
>  
>diff -c -r ircservices-5.0.13/modules/chanserv/check.c ircservices-5.0.13-local/modules/chanserv/check.c
>*** ircservices-5.0.13/modules/chanserv/check.c	Mon Mar  3 01:54:48 2003
>--- ircservices-5.0.13-local/modules/chanserv/check.c	Wed Mar 12 04:55:35 2003
>***************
>*** 274,281 ****
>  	goto kick;
>      }
>  
>!     if (!ci)
>! 	return 0;
>  
>      if (is_services_admin(user))
>  	return 0;
>--- 274,288 ----
>  	goto kick;
>      }
>  
>!     if (!ci) {
>! 	if(CSRegisteredOnly && !is_oper(user)) {
>! 	    mask = sstrdup("*!*@*");
>! 	    reason = getstring(user->ngi, CHAN_MAY_NOT_BE_USED);
>! 	    goto kick;
>! 	} else {
>! 	    return 0;
>! 	}
>!     }
>  
>      if (is_services_admin(user))
>  	return 0;
>diff -c -r ircservices-5.0.13/modules/chanserv/cs-local.h ircservices-5.0.13-local/modules/chanserv/cs-local.h
>*** ircservices-5.0.13/modules/chanserv/cs-local.h	Mon Mar  3 01:54:48 2003
>--- ircservices-5.0.13-local/modules/chanserv/cs-local.h	Wed Mar 12 04:45:02 2003
>***************
>*** 93,98 ****
>--- 93,99 ----
>  E time_t CSSuspendExpire;
>  E time_t CSSuspendGrace;
>  E int    CSForbidShortChannel;
>+ E int    CSRegisteredOnly;
>  E ChanOpt chanopts[];
>  
>  
>diff -c -r ircservices-5.0.13/modules/chanserv/main.c ircservices-5.0.13-local/modules/chanserv/main.c
>*** ircservices-5.0.13/modules/chanserv/main.c	Mon Mar  3 01:54:48 2003
>--- ircservices-5.0.13-local/modules/chanserv/main.c	Wed Mar 12 03:47:23 2003
>***************
>*** 57,62 ****
>--- 57,63 ----
>         time_t CSSuspendExpire;
>         time_t CSSuspendGrace;
>         int    CSForbidShortChannel;
>+        int    CSRegisteredOnly;
>  EXPORT_VAR(int32,CSMaxReg)
>  
>  /*************************************************************************/
>***************
>*** 1606,1611 ****
>--- 1607,1613 ----
>      { "CSEnableRegister", { { CD_SET, 0, &CSEnableRegister } } },
>      { "CSExpire",         { { CD_TIME, 0, &CSExpire } } },
>      { "CSForbidShortChannel",{{CD_SET, 0, &CSForbidShortChannel } } },
>+     { "CSRegisteredOnly", { { CD_SET, 0, &CSRegisteredOnly } } },
>      { "CSInhabit",        { { CD_TIME, CF_DIRREQ, &CSInhabit } } },
>      { "CSListMax",        { { CD_POSINT, CF_DIRREQ, &CSListMax } } },
>      { "CSListOpersOnly",  { { CD_SET, 0, &CSListOpersOnly } } },
>------------------------------------------------------------------
>To unsubscribe or change your subscription options, visit:
>http://www.ircservices.za.net/mailman/listinfo/ircservices-coding
>.
========= End of Original Message =========