[IRCServices Coding] Chanserv patch for reg chans only
Andrew Church
achurch at achurch.org
Wed Apr 30 14:06:30 PDT 2003
Added for 5.0.19.
--Andrew Church
achurch at achurch.org
http://achurch.org/
>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> [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