X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ChangeLog;h=f119950d43091a8e3db9e0d0039124a0dd66db90;hp=97bc4105bdf371398d7a37bfaef36a8bba32dd84;hb=79f4396535284e060d4a4ada4a4cc897cd5f69d3;hpb=b2a25ac7c38009618f9a6275a946d2a637454041 diff --git a/ChangeLog b/ChangeLog index 97bc410..f119950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,653 @@ +2009-07-05 Michael Poole + + * ircd/m_gline.c (ms_gline): Fix the sense of the test for + strtoul() when parsing G-line lifetimes -- zero indicates failure. + +2009-07-05 Michael Poole + + * ircd/channel.c (mode_parse_client): Ignore anything after a + colon when the mode is CHFL_VOICE or the mode is being removed. + +2009-07-04 Michael Poole + + * ircd/s_auth.c (find_conf_client): New function. + (preregister_user): Use it to avoid assigning a second conf class + on client connection. + (auth_ping_timeout): Send the "T" message only if we do not kill + the client (and thus send a "D" message). + (auth_find_classs_conf): Do not allow IAuth to select a disabled + class. Unlink new conf items from GlobalConfList. + (iauth_cmd_done_client): Handle failures from attach_conf(). + (iauth_parse): Behave decently when a client is killed by the + message handler. + + * tools/iauth-test (%handlers): Add entries to help test this. + +2009-07-04 Michael Poole + + * include/channel.h (RevealDelayedJoinIfNeeded): Declare. + + * ircd/channel.c (RevealDelayedJoinIfNeeded): Implement. + + * ircd/ircd_relay.c (relay_channel_message): Only reveal the user + if he passes the check_target_limit() test. + (relay_channel_notice): Likewise. + + * ircd/m_wallchops.c (m_wallchops): Likewise. + + * ircd/m_wallvoices.c (m_wallvoices): Likewise. + + * ircd/s_user.c (check_target_limit): Micro-optimize to only check + the user's channel list for invites if we are about to deny it. + +2009-03-25 Michael Poole + + * ircd/ircd.c (main): Unconditionally set +6 flag on self. + +2009-03-25 Michael Poole + + * ircd/s_auth.c (iauth_cmd_hostname): Properly assign the spoofed + hostname (yea, even as the "real" host) in the hurry state. + + * tools/iauth-test: Add reminder about perl's RTMIN signal and a + new handler to exercise the N command in the hurry state. + +2009-03-25 Michael Poole + + * ircd/channel.c (mode_parse): Add Doxygen comment. When bouncing + a mode from a desynced U-lined server, do not set the modes or + send the change as a HACK(4) message. + +2009-03-17 Michael Poole + + * ircd/send.c (sendcmdto_match_butone): Move match_it() to the end + of the if() to minimize the number of expensive function calls. + +2009-03-17 Michael Poole + + * patches/diffs/antispambot.diff: Forward port a patch by Dianora + to add rudimentary spam bot detection to ircu. + +2009-02-08 Michael Poole + + * include/client.h (ClearHub): New macro. + + * ircd/ircd.c (main): Set IPv6 flag on &me if appropriate. + + * ircd/ircd_features.c (feature_notify_hub): New function. + (features[]): Register it for FEAT_HUB. + + * ircd/ircd_parser.y (connectblock): Do not default maxlinks to + 65535 unless "hub" is specified. + (clientblock): Reset maxlinks on cleanup. + +2009-02-08 Michael Poole + + * ircd/channel.c (clean_channelname): Delete this function; it is + no longer used, and had the same length-off-by-one bug. + + * ircd/m_join.c (m_join): Use > instead of >= with CHANNELLEN. + + * tests/ircd.conf: Set CHANNELLEN to make it easier to test this. + + * tests/bug-2328334.cmd: New file for regression testing. + +2009-02-08 Michael Poole + + * include/numeric.h (ERR_INVALIDKEY): Define new numeric. + + * ircd/s_err.c (ERR_INVALIDKEY): Give it a text string. + + * ircd/channel.c (is_clean_key): Rename from clean_key(), and make + this function responsible for sending error messages to the client + when necessary. + (mode_parse_key): Update to match the new is_clean_key() behavior. + (mode_parse_upass): Likewise. + (mode_parse_apass): Likewise. + + * tests/channel-keys.cmd: New file for regression testing. + +2009-02-08 Michael Poole + + * include/gline.h (gline_forward_deactivation): Undeclare. + + * ircd/m_gline.c (mo_gline): Remove the special case to call + gline_forward_deactivation(). + + * ircd/gline.c (gline_add): Mention if the new G-line is already + deactivated. + (gline_forward_deactivation): Delete implementation. + + * tests/glines.cmd: Update the expected output to match. + +2009-01-12 Michael Poole + + * ircd/m_topic.c (do_settopic): Just before sending the topic out, + check to see if the user is join-delayed and should be shown. + + * ircd/m_wallchops.c (m_wallchops): Allow this command to expose + join-delayed users. + (ms_wallchops): Likewise. + + * ircd/m_wallvoices.c (m_wallvoices): Allow this command to expose + join-delayed users. + (ms_wallvoices): Likewise. + +2009-01-12 Michael Poole + + * ircd/channel.c (modebuf_mode_uint): Fix bouncing of limit changes. + +2009-01-12 Michael Poole + + * ircd/gline.c (count_users): Accept "flags" mask to limit count + to local users. + (gline_add): Pass the flags to count_users(). + +2009-01-12 Michael Poole + + * include/gline.h (gline_forward_deactivation): Declare. + + * ircd/gline.c (count_users): Use ipmask-based checks too. + (gline_add): Require flags to have exactly one of the GLINE_GLOBAL + and GLINE_LOCAL bits set. + (gline_forward_deactivation): Implement new function. + (gline_find): Only require the GLINE_LOCAL flag to be set in the + gline structure; infer GLINE_GLOBAL when it is cleared. (This + matches the value and usage of GLINE_MASK.) + + * ircd/m_gline.c (ms_gline): Default lastmod to the known lastmod + time for GLINE_LOCAL_{DE,}ACTIVATE. + (mo_gline): Check that expiration times parse as expected. Reject + "*" as a target for GLINE_LOCAL_{DE,}ACTIVATE. Require reason and + expiration time for new G-lines. Allow deactivation of an unknown + G-line without creating it ("so-and-so ... creating new G-line" is + a confusing message for a deactivation). + + * tests/glines.cmd: New test script for G-line parsing tests. + + * tests/ircd.conf: Enable CONFIG_OPERCMDS for glines.cmd. + + * tests/ircd-2.conf: Likewise. + + * tests/readme.txt: Add section on command syntax. + + * tests/test-driver.pl: Report line numbers more clearly. + Fix (somewhat kludgily) the brokenness of consecutive "expect" + lines, as demonstrated by the numeric 219 and 281 expects in + glines.cmd. + +2008-11-17 Michael Poole + + * ircd/m_kick.c (ms_kick): Properly handle crossing net rider and + normal KICKs (in the case where we get the normal kick first). + +2008-11-17 Michael Poole + + * ircd/match.c (match): Fix an error in backtracking (apparently + exacerbated by escapes). + + * ircd/test/ircd_match_t.c: Update headers and make sure we have a + mmap() anonymous request flag. + (test_match): New function. + (do_match_test): Use it instead of calling match() directly. + +2008-09-07 Perry Lorier + + * ircd/m_kill.c: Remove the . from the end of the nickname in kill + messages to make cut and pasting easier. + +2008-03-20 Michael Poole + + * ircd/ircd_string.c (ircd_aton_ip4): Reject strings with more + than 3 dots in them. + + * ircd/test/ircd_in_addr_t.c (test_addrs): Update the expected + parsing for a bare IPv4 address to a IPv4-mapped address. + (test_masks): Add a test for the ircd_string.c change. + +2008-03-20 Kevin L. Mitchell + + * include/client.h: IsLocOp() now checks to see if its MyUser() as + well; IsAnOper() uses IsOper() and IsLocOp() instead of directly + testing the flags + +2008-03-15 Michael Poole + + * ircd/s_bsd.c (init_connection_limits): Remove errant apostrophe. + Print text error message when unable to set max FDs. + +2008-03-15 Michael Poole + + * ircd/s_user.c (set_user_mode): Check for end of argument list + when processing 'r' modes. + +2008-01-09 Kevin L. Mitchell + + * include/patchlevel.h (PATCHLEVEL): bump patchlevel + +2008-01-02 Kevin L. Mitchell + + * ircd/m_burst.c (ms_burst): surround protocol_violation() and + break in braces to do what Jan Krueger was trying to do... + +2008-01-03 Jan Krueger + + * ircd/m_burst.c: prevent leaking the next nick into the current one's + oplevel. Add protocol_violation when an invalid nick flag appears. + +2007-12-28 Kevin L. Mitchell + + * ircd/channel.c: add MODE_REGISTERED, mapped to +R; arrange to + only have it settable or clearable by remote users or /opmode + + * include/supported.h (FEATURESVALUES2): update to include 'R' + channel mode + + * include/channel.h: add MODE_REGISTERED, update infochanmodes to + include 'R' channel mode + +2007-12-13 Kevin L. Mitchell + + * ircd/m_gline.c (ms_gline): if we got an activate or deactivate + for a global G-line we never heard of, and we cannot create it + because no expire time was sent, manually propagate the G-line + instead of trying to call gline_add() + + * ircd/gline.c (make_gline): never allow a G-line to be created + with a 0 expire time + +2007-12-03 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for u2.10.12.12 release. + +2007-12-03 Michael Poole + + * doc/Makefile.in (DATAROOTDIR): Define. + (DATADIR): Likewise. + +2007-11-30 Kevin L. Mitchell + + * ircd/version.c.SH: correct invalid syntax in shell case/esac + + * ircd/ircd_lexer.l: provide an implementation of yywrap() so we + no longer have to link against -lfl + + * configure.in: drop tests on LEXLIB and don't add it to the list + of libs + + * ircd/gline.c (gline_add): apply too-many-users test to realname + G-lines *only* when the origin is my user (or a user, for + remote-local G-lines) + +2007-11-28 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for pre12 development. + +2007-11-28 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for u2.10.12.11 release. + +2007-11-28 Michael Poole + + * tests/test-driver.pl (drv_default): Fix expect for numeric + responses that have non-trivial parameters. + (check_expect): Simplify (and fix) sender name check. + + * tests/bug-1640796.cmd: Update expect NNN for new POE behavior + and part to not try to part the channel named "leaving". + + * tests/bug-1674539.cmd: Update expect NNN for new POE behavior. + + * tests/bug-1840011.cmd: New test script. + +2007-11-28 Michael Poole + + * ircd/channel.c (mode_ban_invalidate): Clarify Doxygen comments. + (apply_ban): Only block narrower bans if the wider ban is active. + +2007-11-24 Michael Poole + + * ircd/m_names.c (do_names): Don't try to re-initialize the start + of buf[] for each line. It's done the first time around and that + can be reused safely. + +2007-11-17 Michael Poole + + * ircd/m_stats.c (m_stats): Properly assign param before it is + used in the hunt_server_cmd() call. + +2007-11-17 Michael Poole + + * ircd/s_auth.c (iauth_disconnect): Avoid destroying invalid + sockets. + (iauth_stderr_callback): Disconnect iauth child if stderr has + EOF (in case stdin notification is delayed somehow). + +2007-11-04 Michael Poole + + * ircd/umkpasswd.c (sum): Typecast buffer to avoid a warning about + the parameter type being passed to strlen(). + +2007-11-04 Michael Poole + + * doc/example.conf: Document /LIST M as controlled by list_chan. + + * include/channel.h (LISTARG_SHOWMODES): Define. + + * ircd/hash.c (list_next_channels): Handle it. + + * ircd/m_list.c (show_usage): Document 'M' flag. + (param_parse): Recognize 'M' as LISTARGS_SHOWMODES. + +2007-11-04 Michael Poole + + * ircd/m_list.c (param_parse): Reverse comparison direction when + converting from minutes to time_t, and which bound is set (so that + T + + * ircd/ircd_lexer.l (YY_INPUT): Redefine to use fbgets(). + (init_lexer): Return a value to indicate failure. Use fbopen(). + (deinit_lexer): New function. + + * ircd/s_conf.c (read_configuration_file): Update extern + declarations. Bail if init_lexer() fails. Call deinit_lexer() + rather than directly munging yyin. + +2007-10-29 Michael Poole + + * include/gline.h: Delete declaration of gline_propagate(). + + * include/whocmds.h: Delete declaration of count_users(). + + * ircd/whocmds.c (count_users): Move to gline.c as a static. + + * ircd/gline.c (whocmds.h): Remove #include. + (gliter): Document boolean trickiness. Add missing trickiness + when gl_flags has bits set besides GLINE_ACTIVE. + (make_gline): Get rid of now-unused "after" variable and the + comments related to overlapping G-lines. + (gline_propagate): Make static. + (count_users): Move from whocmds.c as a static function. + (count_realnames): New function. + (gline_add): Require a force to hit lots of users with a realname + G-line. + +2007-09-05 Michael Poole + + * ircd/m_gline.c (ms_gline): Remove dead branch when 4 < parc < 5. + (mo_gline): Consistently use the last argument as the reason. + +2007-09-05 Michael Poole + + * ircd/Makefile.in: Fix dependencies for version.h generation. + +2007-08-20 Michael Poole + + * ircd/send.c (sendwallto_group_butone): Move a feature_bool() + call out of a loop. Convert HasFlag() uses to appropriate macros + from client.h. + +2007-08-20 Michael Poole + + * ircd/ircd_string.c (ircd_aton_ip4): Allow a sequence of *.* at + the end of an IPv4 mask. + (ipmask_parse): Likewise for *:* at the end of IPv6 masks. + + * ircd/test/ircd_in_addr_t.c (test_masks): Add tests for this. + +2007-08-20 Michael Poole + + * ircd/s_user.c (register_user): Update inv_clients and opers + counts. Call client_set_privs() for local users. + (set_nick_name): Do not call client_set_privs() for remote users. + (set_user_mode): Move oper and invisible client checks inside the + IsRegistered() section. + +2007-08-14 Michael Poole + + * ircd/channel.c (DONE_*): Split key changes into _ADD and _DEL. + (mode_parse_key): Check both, to properly handle -k+k changes. + (mode_parse_upass): Likewise, for -U+U. + (mode_parse_apass): Liekwise, for -A+A (in case that ever happens). + (mode_parse): Update which "done" flag is checked during a wipeout. + +2007-08-13 Michael Poole + + * ircd/s_user.c (whipser): CNOTICEs should not trigger away + messages, only CPRIVMSGs. + +2007-08-13 Michael Poole + + * ircd/m_who.c (m_who): Reorder responses and change the + ERR_QUERYTOOLONG parameter to be consistent with m_whois(). + +2007-08-13 Michael Poole + + * ircd/s_user.c (register_user): Initialize umodev[] in a + C89-compatible way. (gcc 4.1.2 warned about it.) + +2007-08-13 Michael Poole + + * ircd/m_names.c (do_names): Add NAMES_DEL to comment. Avoid use + of strcat(). Get rid of ms_names(), which was basically a copy of + m_names(), and merge the "showingdelayed" changes into m_names(). + Replace the recursion with iteration. + + * ircd/parse.c (msgtab): Use m_names(), not ms_names(). + +2007-08-08 Michael Poole + + * ircd/s_auth.c (report_iauth_conf): Remove end-of-stats message; + m_stats() already does that. + + (report_iauth_stats): Likewise. + +2007-08-08 Michael Poole + + * include/res.h (irc_in_addr_is_ipv4): Fix classification of + addresses like 0.0.0.0. + +2007-07-21 Perry Lorier + + * ircd/s_user.c: Move set_nick_name() to use set_user_mode(), + set_user_mode() now interprets +r usermodes properly (and ignores + them from non servers). This fixes a problem where remote users + weren't being counted properly anymore. + +2007-07-20 Kevin L. Mitchell + + * ircd/m_gline.c: create abs_expire() macro to convert an expire + timestamp from the network into an absolute time, if needed; + rename expire_off to expire globally, since it now represents an + absolute expiration time; use expire - CurrentTime in gline + forwarding statements; in ms_gline(), use abs_expire() to convert + network expiration timestamp into absolute timestamp; in + mo_gline(), add CurrentTime to oper-provided expiration offset to + convert to absolute timestamp + + * ircd/gline.c: assume expire and lifetime arguments to + gline_add() and gline_modify() are already absolute timestamps; + send lifetime parameter as an absolute timestamp, but leave expire + timestamp as relative as first part of a 2-phase update + +2007-07-12 Perry Lorier + Reconsider how we manage modes before registration, to avoid stats + getting out of sync. + + * ircd/s_user.c (set_user_mode): Add new parameter to set_user_mode to + ignore some modes. + (register_user): Use set_user_mode to parse default usermode for + users. + + * ircd/m_user.c: Add extra parameter to set_user_mode call + + * ircd/s_auth.c: Add extra parameter to set_user_mode call + + * ircd/m_mode.c: Add extra parameter to set_user_mode call + + * ircd/s_misc.c: Verify stats are consistant. + + * include/s_user.h: Change prototype, add flag definitions. + + * ircd/m_lusers.c (m_users): Assert that we're generating sane stats, + include "unknowns" in the total user connections to avoid negative + wrap arounds. + +2007-07-12 Perry Lorier + + * ircd/m_user.c (m_luser): Fix broken RFC 2812 on connect user mode + setting + +2007-05-28 Michael Poole + + * include/numeric.h (ERR_INPUTTOOLONG): New numeric. + + * ircd/s_bsd.c (read_packet): Use it. + + * ircd/s_err.c (replyTable): Give it a format string. + +2007-05-20 Michael Poole + + * ircd/m_burst.c (ms_burst): Do not let bursting servers join a + user to a channel more than once. + +2007-05-20 Michael Poole + + * ircd/ircd_features.c (feature_set): Report new value of feature + for /set. + (feature_reset): Likewise, for /reset. + +2007-05-20 Michael Poole + + * ircd/m_burst.c (netride_modes): Return -1 if someone tries to + remove modes in the burst. + (ms_burst): Check for, and handle, that protocol violation. + +2007-05-20 Michael Poole + + * ircd/m_privs.c (mo_privs): Report "no such nickname" for unknown + nicks in the list. (Unfortunately, the nick is lost before ms_privs.) + +2007-05-20 Michael Poole + + * ircd/listener.c (show_ports): Actually hide hidden ports from + clients that should not see them. + +2007-05-20 Michael Poole + + * ircd/s_err.c (ERR_DONTCHEAT): Add apparently missing %s. + +2007-05-20 Michael Poole + + * ircd/m_connect.c (mo_connect): Return an error to a locop who + tries to do a remote connect. + +2007-05-20 Michael Poole + + * ircd/parse.c (msgtab): Make SETTIME consistent with other + oper commands, in using m_not_oper for non-opered clients. + +2007-05-20 Michael Poole + + * ircd/ircd_parser.y (pseudoblock): Forbid pseudo commands that + are not all alphabetic characters. + +2007-05-20 Michael Poole + + * configure.in (maxcon): Check that maximum connections is + sufficiently large to avoid underflow in MAXCLIENTS. + +2007-05-20 Michael Poole + + * include/supported.h (FEATURES2): Remove extra space. + + * ircd/m_admin.c (m_admin): Only check server mask against our + name, so that it cannot leak information about other linked + servers. + + * ircd/m_version.c (m_version): Likewise. + +2007-04-15 Kevin L. Mitchell + + * ircd/m_gline.c: fix minor typo in code that forwards remote + local activations/deactivations: %c takes characters, not + pointers! + (mo_gline): fix similar typo in code forwarding remote local + G-lines by opers + +2007-04-10 Michael Poole + + * ircd/ircd_parser.y (iauth): Avoid problems related to MyFree's + multiple evaluation of its argument. + +2007-04-10 Kevin L. Mitchell + + * ircd/m_gline.c (ms_gline): lastmod must be non-zero + +2007-04-04 Michael Poole + + * ircd/s_conf.c (rehash): Restart resolver after reading the + config file; this un-breaks the resolver after /rehash if the + ircd.conf contains no "dns server = ;" lines. + +2007-04-01 J. R. Lenz + + * ircd/s_user.c (register_user): Check for host-hiding when fully + registering a user. [Comment added by Entrope.] + +2007-03-31 Michael Poole + + * doc/readme.iauth (IAuth M): Document new command. + + * ircd/m_user.c (m_user): Recognize RFC 2812 mode request and a + saner usermode request. + + * ircd/s_auth.c (iauth_cmd_usermode): New command. + (iauth_parse): Dispatch to it. + + * ircd/s_user.c (set_user_mode): Only broadcast usermode changes + for registered clients. + + * tools/iauth-test (127.0.1.3): Test the new M command. + +2007-03-31 Michael Poole + + * ircd/m_mode.c (m_mode): Check and report target/source + violations before calling set_user_mode(). + (ms_mode): Likewise. + + * ircd/s_user.c (set_user_mode): Remove those checks from here. + +2007-03-31 Michael Poole + + * include/ircd_events.h (struct Generators): Convert elements to + be struct GenHeader*. + (timer_next): Update to match. + + * ircd/ircd_events.c (timer_enqueue): Update to match. + (signal_callback): Likewise. + (timer_init): Remove a typecast with something slightly safer. + (timer_run): Update to deal with new type of Generator.g_timer. + (signal_add): Likewise. + (socket_add): Likewise. + +2007-03-28 Michael Poole + + * ircd/m_asll.c (ms_asll): Count hits and report at the end, so + that a client is told whether any match (and has a hint that only + directly linked servers are checked). + (mo_asll): Likewise. + +2007-03-26 Michael Poole + + * ircd/s_stats.c (m_stats): Move check for STAT_FLAG_LOCONLY (and + the assignment to "param") to the hunted server. + 2007-03-26 Michael Poole * ircd/s_auth.c (iauth_parse): Check for missing arguments when