diff -uNr ircservices-5.0.30/Changes ircservices-5.0.31/Changes --- ircservices-5.0.30/Changes 2004-04-14 11:25:26 +0900 +++ ircservices-5.0.31/Changes 2004-04-29 08:54:48 +0900 @@ -1,8 +1,11 @@ Version 5.0 ----------- +2004/04/29 .31 Fixed crash with MLOCK +J when using trircd protocol. + Reported by +2004/04/28 Added stricter checks on module loading order. 2004/04/09 .30 Added logic to configure script to avoid the use of the -fstack-protector option if doing so would trigger a - compiler bug. Reported by Torbjo"rn Svennson + compiler bug. Reported by Torbjorn Svennson 2004/04/06 ChanServ no longer requires an explicit IDENTIFY to use INFO ALL. Reported by Wolfgang Urban @@ -69,6 +72,8 @@ 2003/11/30 Fixed crash on exit in FreeBSD. Reported by Chris Riley 2003/11/30 Fixed memory corruption when unable to open initial log file. +2003/11/28 Fixed crash on long channel mode commands. Reported by + 2003/11/26 .26 Some configuration settings (such as FromAddress in mail/main) which were only checked for validity at startup are now also checked when rehashing the configuration files. diff -uNr ircservices-5.0.30/TODO ircservices-5.0.31/TODO --- ircservices-5.0.30/TODO 2004-04-14 10:16:34 +0900 +++ ircservices-5.0.31/TODO 2004-04-27 10:47:32 +0900 @@ -1,5 +1,7 @@ Things to probably do: +** Add ability to create command aliases in conf file (e.g. REG->REGISTER) + [Stanislav Zahariev ] CS Make DROP work like NickServ: require password for regular users, have separate DROPCHAN command for servadmins ** Rate-limit message floods (e.g. botnet autokill expiration) @@ -54,6 +56,7 @@ Things to think about: +CS Better integration of channel keys with ChanServ CS Option to autokill users entering a forbidden channel (botnets) [] NS "Online as linked nick" field in INFO? eg "Online as SomeNick[away]" diff -uNr ircservices-5.0.30/docs/copyright.html ircservices-5.0.31/docs/copyright.html --- ircservices-5.0.30/docs/copyright.html 2003-07-16 21:28:10 +0900 +++ ircservices-5.0.31/docs/copyright.html 2004-04-26 13:28:13 +0900 @@ -50,7 +50,7 @@
  • Simplicity of dealing with licensing issues when a new version of the GPL is released. Using a single version avoids the hassles of having to deal with two (or more) interpretations of licensing terms. -
  • Because I own all of the source code. As discussed in +
  • Because all of the source code is mine. As discussed in section 6-3 and FAQ Z.8, I rarely accept code from others, and when I do I require that all rights be transferred to me; doing this ensures that I will be able to release diff -uNr ircservices-5.0.30/docs/faq.html ircservices-5.0.31/docs/faq.html --- ircservices-5.0.30/docs/faq.html 2004-02-05 20:56:22 +0900 +++ ircservices-5.0.31/docs/faq.html 2004-04-19 10:14:12 +0900 @@ -117,6 +117,8 @@ mode?
    E.8. If a channel operator sets mode -o+v on himself, ChanServ always sends -v. +
    E.9. ChanServ UNBAN doesn't work properly on + Unreal.

    F. OperServ features

    F.1. Using the OperServ JUPE command results in server @@ -772,6 +774,19 @@ ChanServ VOICE command. + +

    E.9. ChanServ UNBAN doesn't work properly on + Unreal. +

    + In recent versions of Unreal, it is possible to set bans on a + user's IP address. However, Unreal servers do not send client IP + address information to Services, so it is impossible to tell which + IP-address bans match the user; thus the UNBAN command + will fail to remove them. I am working with the Unreal developers + to find a solution to this problem. +

    + +


    @@ -991,7 +1006,8 @@ channels were, or anything else that could be used to find the alleged bug.) Include at least the following information:
      -
    • The version of Services you're using +
    • The version of Services you're using (do not say "the + latest version"--give the actual version number)
    • The operating system (name and version) and type of machine (CPU) you're using
    • What you did that caused the problem diff -uNr ircservices-5.0.30/modules/database/version4.c ircservices-5.0.31/modules/database/version4.c --- ircservices-5.0.30/modules/database/version4.c 2004-04-14 11:33:36 +0900 +++ ircservices-5.0.31/modules/database/version4.c 2004-04-29 09:00:52 +0900 @@ -2753,8 +2753,20 @@ int init_module(Module *module_) { + Module *mod; + + module = module_; + /* Ensure a protocol module has already been loaded--this is a bit of a + * kludge to keep kludges out of the *Serv modules, since those modules + * depend on this one */ + if (protocol_features & PF_UNSET) { + module_log("No protocol module has been loaded! Protocol modules" + " must be loaded before any other modules."); + return 0; + } + if (!add_callback(NULL, "load module", do_load_module) || !add_callback(NULL, "unload module", do_unload_module) ) { diff -uNr ircservices-5.0.30/modules/protocol/trircd.c ircservices-5.0.31/modules/protocol/trircd.c --- ircservices-5.0.30/modules/protocol/trircd.c 2004-04-14 11:33:36 +0900 +++ ircservices-5.0.31/modules/protocol/trircd.c 2004-04-29 09:00:53 +0900 @@ -888,9 +888,13 @@ ci->mlock_on &= ~mode_char_to_flag('J', MODE_CHANNEL); ci->mlock_joindelay = 0; } else { - if (c->joindelay != ci->mlock_joindelay) - set_cmode(s_ChanServ, c, "+J", ci->mlock_joindelay); + if (c->joindelay != ci->mlock_joindelay) { + char buf[32]; + snprintf(buf, sizeof(buf), "%d", ci->mlock_joindelay); + set_cmode(s_ChanServ, c, "+J", buf); + } } + return 1; } } else { /* remove */ switch (mode_flag_to_char(flag, MODE_CHANNEL)) { diff -uNr ircservices-5.0.30/version.sh ircservices-5.0.31/version.sh --- ircservices-5.0.30/version.sh 2004-04-14 11:25:34 +0900 +++ ircservices-5.0.31/version.sh 2004-04-29 08:55:26 +0900 @@ -6,7 +6,7 @@ # $PROGRAM is the string returned as the first part of a /VERSION reply, # and must not contain spaces. It is not used anywhere else. PROGRAM=ircservices -VERSION=5.0.30 +VERSION=5.0.31 # Increment Services build number if [ -f version.c ] ; then