diff -uNr ircservices-5.0.14/Changes ircservices-5.0.15/Changes --- ircservices-5.0.14/Changes 2003-03-04 13:39:58.000000000 +0900 +++ ircservices-5.0.15/Changes 2003-04-08 00:12:54.000000000 +0900 @@ -1,5 +1,10 @@ Version 5.0 ----------- +2003/04/08 .15 Support for trircd 4.x removed, and for 5.1 added, on + recommendation from Yusuf Iskenderoglu + +2003/03/06 Fixed typo in English language file. Reported by + 2003/03/04 .14 Fixed compilation error on some systems. 2003/03/03 .13 Build number is no longer updated if no files have changed (this avoids "make ; make install" incrementing the value diff -uNr ircservices-5.0.14/TODO ircservices-5.0.15/TODO --- ircservices-5.0.14/TODO 2003-02-27 18:48:13.000000000 +0900 +++ ircservices-5.0.15/TODO 2003-04-06 23:18:39.000000000 +0900 @@ -1,5 +1,7 @@ Things to probably do: +CS Send message sender to KICK callback + [Georges Berscheid ] CS Clearer message when CLEAR used with bad "what" parameter [Craig McLure ] ** Allow switching encryption methods for databases (i.e. none->MD5) diff -uNr ircservices-5.0.14/conffile.c ircservices-5.0.15/conffile.c --- ircservices-5.0.14/conffile.c 2003-03-04 13:42:56.000000000 +0900 +++ ircservices-5.0.15/conffile.c 2003-04-08 00:21:35.000000000 +0900 @@ -457,8 +457,8 @@ * lines belonging to other modules */ if (current_module) { /* Inside a Module/EndModule pair: discard lines belonging - * to other modules, and handle Module directives. If we - * reach EndModule for the module we're supposed to be + * to other modules, and handle EndModule directives. If + * we reach EndModule for the module we're supposed to be * processing, exit the loop to avoid unneeded processing. */ char tmpbuf[CONFIG_LINEMAX]; /* leave `buf' alone */ if (strlen(buf) >= sizeof(tmpbuf)) { diff -uNr ircservices-5.0.14/docs/1.html ircservices-5.0.15/docs/1.html --- ircservices-5.0.14/docs/1.html 2002-10-22 14:56:16.000000000 +0900 +++ ircservices-5.0.15/docs/1.html 2003-03-21 12:19:41.000000000 +0900 @@ -295,8 +295,9 @@
  • ftp://ftp.esper.net/ircservices/ (Western USA)
  • ftp://ftp.electrocity.com/pub/ircservices/ (Eastern USA)
  • http://ftp.freenet.de/pub/ftp.esper.net/ircservices/ (Germany, also accessible via FTP) -
  • http://www.irc.gr/ircservices/ (Greece)
  • ftp://ftp.ircd.com.br/ircservices/ (Brazil) +
  • http://www.irc.gr/ircservices/ (Greece) +
  • http://ircservices.swissirc.ch/ (Switzerland)

    Back to top @@ -386,8 +387,9 @@ Ian Justman, Michael Raff, Michael Haardt, -Sotiris Tsimbonis, and -Andre Arruda. +Andre Arruda, +Sotiris Tsimbonis, +and Marcel Stutz.

    Back to top diff -uNr ircservices-5.0.14/docs/2.html ircservices-5.0.15/docs/2.html --- ircservices-5.0.14/docs/2.html 2003-03-03 10:46:19.000000000 +0900 +++ ircservices-5.0.15/docs/2.html 2003-04-07 19:43:03.000000000 +0900 @@ -103,8 +103,8 @@ <(experimental) ptlink tr-ircd - [tr-ircd.sourceforge.net] 4.0, 5.0 - and above + [tr-ircd.sourceforge.net] 5.1 and + above trircd UltimateIRCD 2.8.1 dreamforge diff -uNr ircservices-5.0.14/docs/faq.html ircservices-5.0.15/docs/faq.html --- ircservices-5.0.14/docs/faq.html 2003-01-23 18:03:31.000000000 +0900 +++ ircservices-5.0.15/docs/faq.html 2003-03-23 09:36:51.000000000 +0900 @@ -78,6 +78,8 @@
    C.9. I sometimes get errors in the log file about "user record not found", "non-existent nick", or "unknown channel". What are these? +
    C.10. Long messages from Services sometimes get a colon + (":") inserted in the middle.

    D. NickServ features

    D.1. Some people get nick collided when their nickname is @@ -494,11 +496,20 @@ receive the /join before it receives the disconnection message from Services. Services will then receive the /join for what it thinks is a user who no longer exists, and reports that - in the log. + it received a message for a non-existent nickname.

    These messages do not indicate a bug or other problem, and can be safely ignored. - + + + +

    C.10. Long messages from Services sometimes get a colon + (":") inserted in the middle. +

    + This is reported to be a bug in some IRC clients (at least the + mIRC client for Windows computers), and there is nothing Services + can do to fix it. +


    diff -uNr ircservices-5.0.14/lang/en_us.l ircservices-5.0.15/lang/en_us.l --- ircservices-5.0.14/lang/en_us.l 2003-01-22 23:45:12.000000000 +0900 +++ ircservices-5.0.15/lang/en_us.l 2003-03-06 13:26:56.000000000 +0900 @@ -3719,8 +3719,7 @@ Founder Full access to %S functions; automatic   opping upon entering channel. Note that   only one person may have founder status (it -   status (it cannot be given using the ACCESS -   command). +   cannot be given using the ACCESS command).  %4d Access to AKICK command; automatic opping.  %4d Automatic opping. CHAN_HELP_ACCESS_LEVELS_HALFOP @@ -4959,4 +4958,4 @@ # version of the master (English) language file was used to create a # translated file. -# CVS: $Revision: 2.187 $ +# CVS: $Revision: 2.188 $ diff -uNr ircservices-5.0.14/modules/protocol/trircd.c ircservices-5.0.15/modules/protocol/trircd.c --- ircservices-5.0.14/modules/protocol/trircd.c 2003-03-04 13:42:57.000000000 +0900 +++ ircservices-5.0.15/modules/protocol/trircd.c 2003-04-08 00:21:37.000000000 +0900 @@ -32,11 +32,6 @@ static char *NetworkDomain = NULL; -/* Macros to get and set protocol version number in use. */ -static int current_protocol_version = 4; -#define GET_PROTOCOL_VERSION() (current_protocol_version) -#define SET_PROTOCOL_VERSION(v) (current_protocol_version = (v)) - /* * We import `s_ChanServ' from the "chanserv/main" module; this variable * holds a pointer to `s_ChanServ', obtained via get_module_symbol(). When @@ -94,15 +89,13 @@ /* Only opers can join channel */ {'I', {0x80000000,1,1,0,MI_MULTIPLE}}, /* INVITE hosts */ {'e', {0x80000000,1,1,0,MI_MULTIPLE}}, /* ban exceptions */ -}; -/* following modes are for v5 only */ -static const struct modedata_init new_chanmodes_v5[] = { {'M', {0x80000000,1,1,0,MI_MULTIPLE}}, /* moderated hosts */ {'z', {0x80000000,1,1,0,MI_MULTIPLE}}, /* zapped channels */ {'f', {0x00800000,1,0}}, /* Flood limit */ {'T', {0x04000000,0,0}}, /* /topic only by protected (+a) */ {'x', {0x08000000,0,0}}, /* Hide ops (show no .@%+ prefixes) */ {'N', {0x10000000,0,0}}, /* No clients with unresolved hostnames */ + {'d', {0x20000000,0,0}}, /* Hide part/quit reasons (5.1 or later) */ }; static const struct modedata_init new_chanusermodes[] = { @@ -274,11 +267,9 @@ /*************************************************************************/ -static TokenInfo trircd5_tokens[]; static void m_capab(char *source, int ac, char **av) { - - int got_dtone = 0; + int got_dtone = 0, got_trircd5 = 0; int i; for (i = 0; i < ac; i++) { @@ -287,23 +278,18 @@ else if (stricmp(av[i], "DT1") == 0) got_dtone = 1; else if (stricmp(av[i], "TRIRCD5") == 0) - SET_PROTOCOL_VERSION(5); + got_trircd5 = 1; + } + if (!got_trircd5) { + send_error("Only trircd 5.1 and later are supported"); + quitmsg = (char *)"Remote server version is not 5.1 or later"; + quitting = 1; } if (!got_dtone) { send_error("Need DT1 protocol"); quitmsg = (char *)"Remote server doesn't support DT1 protocol change"; quitting = 1; } - if (GET_PROTOCOL_VERSION() == 5) { - if (!init_token(module, trircd5_tokens) || !init_halfop(module)) { - send_error("Internal initialization error"); - quitmsg = (char *)"Error initializing tokens/halfops for trircd5"; - quitting = 1; - } - for (i = 0; i < lenof(new_chanmodes_v5); i++) - chanmodes[new_chanmodes_v5[i].mode] = new_chanmodes_v5[i].data; - mode_setup(); - } } /*************************************************************************/ @@ -968,8 +954,8 @@ module = module_; protocol_name = "trircd"; - protocol_version = "4.0+"; - protocol_features = PF_SZLINE | PF_SVSJOIN | PF_AKILL_EXCL; + protocol_version = "5.1+"; + protocol_features = PF_SZLINE | PF_SVSJOIN | PF_AKILL_EXCL | PF_HALFOP; protocol_nickmax = 30; if (!register_messages(trircd_messages)) { @@ -994,9 +980,11 @@ } if (!init_banexcept(module) - || !init_sjoin(module) + || !init_halfop(module) || !init_chanprot(module) + || !init_sjoin(module) || !init_svsnick(module) + || !init_token(module, trircd5_tokens) ) { exit_module(1); return 0; @@ -1039,14 +1027,12 @@ return 0; } - if (GET_PROTOCOL_VERSION() == 5) { - exit_halfop(); - exit_token(); - } - exit_banexcept(); + exit_token(); + exit_svsnick(); exit_sjoin(); + exit_halfop(); exit_chanprot(); - exit_svsnick(); + exit_banexcept(); remove_callback(NULL, "set topic", do_set_topic); remove_callback(NULL, "clear channel", do_clear_ban); remove_callback(NULL, "user MODE", do_user_mode); diff -uNr ircservices-5.0.14/version.sh ircservices-5.0.15/version.sh --- ircservices-5.0.14/version.sh 2003-03-04 13:39:36.000000000 +0900 +++ ircservices-5.0.15/version.sh 2003-04-08 00:12:30.000000000 +0900 @@ -3,7 +3,7 @@ # Build the version.c file which contains all the version related info and # needs to be updated on a per-build basis. -VERSION=5.0.14 +VERSION=5.0.15 # Increment Services build number if [ -f version.c ] ; then