X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ChangeLog;h=9f6e8e72b22eb42bcbb5dbdd8a1cb1914c028c82;hp=49c5f5162025e5be29a3b5e0434a9eca2904f11e;hb=refs%2Fheads%2FKeepConn;hpb=c3727b053aa20cecf3984cc0c9c23b0140edf52c diff --git a/ChangeLog b/ChangeLog index 49c5f51..9f6e8e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1093 @@ +2011-01-23 Michael Poole + + * ircd/gline.c (gline_modify): Notify opers using SNO_AUTO rather + than SNO_GLINE if a G-line had, and still has, an AUTO prefix. + +2011-01-19 Michael Poole + + * ircd/s_auth.c (start_auth): Call start_dns_query() and + start_auth_query() after start_iauth_query() rather than + before. + +2011-08-17 Kevin L. Mitchell + + * include/client.h: Fix minor issue in IsLocOp() test + + * include/patchlevel.h (PATCHLEVEL): bump patchlevel to 14 + +2011-05-15 Michael Poole + + * ircd/s_auth.c (iauth_cmd_done_account): Do not copy the + account's creation timestamp into the account name. + +2010-07-05 Kevin L. Mitchell + + * include/patchlevel.h (PATCHLEVEL): bump patchlevel from -rc2 to + actual 13 + + * ircd/ircd_features.c: bump MAXBANS from 45 to 50, and MAXSILES + from 15 to 25 + +2010-03-28 Michael Poole + + * ircd/gline.c: Replace CurrentTime with TStime(), and remove the + uses of TSoffset, so that all G-line-related times are assumed to + be in network time. + + * ircd/m_gline.c: Likewise. + +2010-03-08 Michael Poole + + * ircd/m_server.c (enum lh_type): New type. + (check_loop_and_lh): Use the enum instead of magic integers. + Make the error message a little clearer when neither "hub" nor + "maxhops" is specified for a server. Clean up the control flow + when we decide to reject the link. + +2010-03-08 Michael Poole + + * ircd/test/ircd_match_t.c (_SC_PAGE_SIZE): Default to + _SC_PAGESIZE if that is defined (as it is on some Unixes). + +2010-03-04 Kevin L. Mitchell + + * ircd/s_bsd.c: use feature_int() to get the integer value of the + feature...and don't try to set the TOS to its index! + +2010-02-02 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump to (u2.10.12.)13-rc2. + +2010-01-13 Michael Poole + + * ircd/m_burst.c (ms_burst): Do not clear keys or limit here -- + MODE_PARSE_WIPEOUT gets modebuf_flush() to do that for us. + +2010-01-06 Michael Poole + + * Makefile.in: Remove doc/Makefile from the build. + + * configure.in: Do not generate doc/Makefile. + + * configure: Regenerate. + + * doc/Makefile.in: Delete. + + * doc/irc.1: Delete. + + * doc/ircd.8: Delete. + + * libs: Delete. + +2010-01-06 Michael Poole + + * ircd/m_topic.c (ms_topic): When no topic timestamp is passed, + use the current time instead of the channel creation time. + +2010-01-06 Michael Poole + + * ircd/m_silence.c (m_silence): Only show the silence list for the + requesting client and for channel services, to help keep other + clients' servers hidden. + +2010-01-06 Michael Poole + + * ircd/gline.c (gline_add): If a forced G-line has already + expired, create it in a deactivated state. + +2010-01-06 Michael Poole + + * ircd/m_burst.c (ms_burst): Gracefully handle the case where a + server sends us a too-large oplevel. Forward oplevels whenever + they are in use, not just when the channel is +A. + +2010-01-04 Kevin L. Mitchell + + * ircd/m_xquery.c (ms_xquery): Resolving my patches with + Entrope's--log extension queries sent to us + + * ircd/m_xreply.c (ms_xreply): Resolving my patches with + Entrope's--swap order of findNUser() and FindNServer() + + * ircd/Makefile.in (IRCD_SRC): Resolving my patches with + Entrope's--swap order of m_xquery.c and m_xreply.c to maintain + alphabetic ordering + +2010-01-03 Kevin L. Mitchell + + * ircd/m_xreply.c (ms_xreply): swap order of numeric resolution so + we can deal with XR directed to users + + * configure: auto-rebuilt with Autoconf 2.63 (was 2.59) + + * ircd/m_xquery.c: need ircd_reply.h; fix a couple of + capitalization errors; log XQUERY directed to "me" + + * ircd/m_xreply.c: need ircd_reply.h and numnicks.h (how'd I miss + the latter??); fix a couple of capitalization errors + + * ircd/Makefile.in (IRCD_SRC): it'd be nice if we actually tried + to compile the two new commands... + + * ircd/s_auth.c: "serv" is passed to find_match_server(), which + does a collapse on the pattern, so it can't be const + +2010-01-03 Michael Poole + + * ircd/engine_devpoll.c: Make some variables that were local to + engine_loop() file-scoped so engine_delete() can see them. + (engine_delete): Discard unprocessed events for the deleted + socket. + (engine_loop): Update to use the new variable names. Change a + frequent debug statement to DEBUG_ENGINE. Fix the type of the + codesize variable. + + * ircd/engine_epoll.c: Same as ircd/engine_devpoll.c, but the + debug statement and codesize variable were already fixed. + + * ircd/engine_kqueue.c: Same as ircd/engine_devpoll.c, but also + fix a typo in an engine_signal() assertion, and get rid of dead + variables in engine_delete(). + +2010-01-03 Michael Poole + + * ircd/s_bsd.c (client_sock_callback): Invalidate cli_fd() when we + receive an EBADF error. + +2010-01-03 Michael Poole + + * ircd/engine_select.c (engine_loop): Remove a bogus assert() that + the structure's FD is correct after the event-handling callback + returns. Also fix a warning about the type of the last parameter + passed to getsockopt(). + +2010-01-03 Michael Poole + + * ircd/m_names.c (m_names): Terminate the buffer used for listing + clients who are not in any channel. + +2010-01-03 Michael Poole + + * ircd/channel.c (find_delayed_joins): Move earlier in the file. + (modebuf_flush_int): Move the checks for changing between +D and + +d to here... + (modebuf_flush): ... from here. + +2010-01-03 Michael Poole + + * ircd/m_server.c (check_loop_and_lh): Never return 1 when we kill + another server. Update the squit message text for maxhops and hub + violations. + +2010-01-03 Michael Poole + + * ircd/Makefile.in (IRCD_SRC): Add m_xquery.c and m_xreply.c to + the build. + + * ircd/m_xquery.c: Add missing include. + (mo_xquery): Fix spelling of struct Client. + (ms_xquery): Likewise. + + * ircd/m_xreply.c: Add missing includes. + (ms_xreply): Fix spelling of struct Client and findNUser(). + +2010-01-01 Kevin L. Mitchell + + * doc/readme.xquery: documentation for design and use of the + extension query mechanism + + * doc/readme.iauth: document X iauth message and X and x server + messages + + * include/msg.h: declare XQUERY/XQ and XREPLY/XR commands/tokens + + * include/handlers.h: declare mo_xquery(), ms_xquery(), and + ms_xreply() message handlers + + * include/s_auth.h: declare auth_send_xreply() to forward replies + to extension queries to the iauth instance + + * ircd/m_xquery.c: process extension queries + + * ircd/m_xreply.c: process replies to extension queries + + * ircd/parse.c: add XQUERY and XREPLY commands to the list + + * ircd/s_auth.c: add support for extension queries to iauth + protocol + +2010-01-01 Michael Poole + + * ircd/s_auth.c (iauth_do_spawn): Add debug output to diagnose + which system call might be failing. + (auth_spawn): Avoid reading past the end of iauth->i_argv[]. When + discarding an existing IAuth instance, use auth_close_unused() to + close the sockets and avoid leaking memory. + +2010-01-01 Michael Poole + + * ircd/channel.c (mode_process_bans): Bypass total ban count and + length checks for OPMODEs. + +2010-01-01 Michael Poole + + * ircd/ircd_features.c (feature_report): If sd->sd_funcdata is + non-zero, report even unchanged features (using prefix 'f'). + + * ircd/s_stats.c (statsinfo): Make "/stats f" case-sensitive, and + use the upper case variant to report all features. + +2009-07-30 Michael Poole + + * ircd/s_user.c (register_user): Move the default-usermodes call + to set_user_mode() to before SetUser(), so that the former does + not increment the UserStats fields. Add back the explicit + adjustments to UserStats for invisible and opered clients. + +2009-07-05 Michael Poole + + * ircd/s_user.c (register_user): Use correct parc for + set_user_mode(). Do not increment UserStats fields here, because + set_user_mode() handles that. + +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 + parsing the iauth message. + + * tests/bug-1685648.cmd: New file to test this. + + * tests/iauth-test: New file to exercise the code path. + + * tests/ircd.conf: Use the iauth-test helper program. + +2007-03-26 Michael Poole + + * ircd/m_silence.c (forward_silences): Do not try twice to process + silences that were both added and deleted. + +2007-03-26 Michael Poole + + * ircd/ircd_parser.y (portblock): Restore old behavior for Port + blocks with no host listed. + +2007-03-26 Michael Poole + + * doc/readme.iauth (iauth I): Fix example and syntax. + +2007-03-18 Michael Poole + + * acinclude.m4 (unet_NONBLOCKING): Properly quote function name. + (unet_SIGNALS): Likewise. + (unet_CHECK_TYPE_SIZES): Likewise. + (AC_LIBRARY_NET): Likewise. + +2007-03-18 Kevin L. Mitchell + + * ircd/m_gline.c (mo_gline): add permissions checks I kept + forgetting to add--remote local modifications require + FEAT_CONFIG_OPERCMDS and PRIV_GLINE, local G-lines require + PRIV_LOCAL_GLINE, and global G-line changes (excluding local + activation/deactivation) require FEAT_CONFIG_OPERCMDS and + PRIV_GLINE + +2007-03-17 Michael Poole + + * doc/example.conf (CRule): Document the support for multiple + server masks in a single CRule block. + (Port): Document the optional additional field for vhost entries. + Document the support for multiple vhost entries in a single Port + block. + + * ircd/ircd_parser.y (USE_IPV4): Shift up by 16 bytes. + (USE_IPV6): Likewise. + (portblock): Iterate over hosts rather than using the single host. + (portitem): Add portvhostnumber alternative production. + (portnumber): Check port number here. If valid, combine address + family and port number in "port" variable. If a port-less item + exists in "hosts", set its port number. + (portvhost): Prepend mask to "hosts" list. + (portvhostnumber): New production. + (cruleblock): Iterate over hosts rather than using the single + host. + (cruleserver): Prepend server mask to "hosts" list. + +2007-03-17 Michael Poole + + * ircd/listener.c (add_listener): Only try to create IPv6 sockets + for IPv6-compatible addresses; likewise for IPv4. + +2007-03-17 Michael Poole + + * doc/example.conf (Operator): Update documentation to mention + more than one host entry is allowed. + (Motd): Likewise. + + * ircd/ircd_parser.y (hosts): New file-scope variable. + (free_slist): New helper function. + (operblock): Iterate over hosts instead of using the single host. + (operhost): Prepend the mask to hosts. + (motdblock): Iterate over hosts instead of using the single host. + (motdhost): Prepend the mask to hosts. + (motdfile): Fix possible leak of "pass" string (the filename). + + * ircd/s_conf.c (conf_parse_userhost): Stop freeing the host + string; operblock (the only caller) frees it now. + +2007-03-17 Michael Poole + + * ircd/list.c (free_link): Only decrement the in-use count of + links if we free a link. + +2007-03-17 Kevin L. Mitchell + + * ircd/s_err.c: update replies to handle new fields in + RPL_STATSGLINE and RPL_GLIST--new fields indicate G-line lastmod, + G-line lifetime, and local activation status + + * ircd/m_gline.c: update function documentation for ms_gline(); + move test for server to before mask processing; don't look up + remote server too early; add code to process local activations and + deactivations early in ms_gline(); implement adding and destroying + local G-lines; don't try to locally activate or deactivate G-lines + that don't exist; add code to keep track of which fields were + available to ms_gline(); implement G-line modification and + creation; remove old ms_gline() code; convert + sendwallto_group_butone() calls to Debug() calls; reimplement + mo_gline() to take into account new syntax + + * ircd/gline.c: change gl_rexpire to gl_lifetime to better reflect + its meaning; make sure to set gl_state to GLOCAL_GLOBAL when + G-line expires; add lifetime parameter to make_gline(); disable + overlapping G-line check; initialize gl_lifetime from lifetime + parameter; initialize gl_state to GLOCAL_GLOBAL; update + gline_propagate() to send lifetime parameter; add lifetime + parameter to gline_add(); remove some old code in gline_add(); + figure out lifetime to set on new G-line; remove test for + make_gline() returning NULL, since it should never do so now; add + modify_gline() for modifying global G-lines; add gline_destroy() + for destroying local G-lines; update gline_burst() to send + lifetime parameter; update gline_resend() to send lifetime + parameter; update gline_list() to add lastmod, lifetime, and local + status indicators; update gline_stats() to send lastmod, lifetime, + and local status indicators; count BADCHANs in + gline_memory_count() + + * include/gline.h: add enum GlineLocalState for keeping track of + local state changes to global G-lines; store state in struct + Gline; document enum GlineAction; add GLINE_EXPIRE, + GLINE_LIFETIME, and GLINE_REASON flags to indicate the presence of + those fields to gline_modify(); add GLINE_UPDATE mask for checking + for the above flags; update GlineIsActive() to take into account + new gl_state field in struct Gline; add lifetime to gline_add(); + add gline_modify() for modifying existing global G-lines, and + gline_destroy() for destroying local G-lines + + * doc/readme.gline: update documentation to reflect changes made + to G-line command syntax + +2007-03-17 Michael Poole + + * ircd/umkpasswd.c (parse_arguments): Exit cleanly rather than + aborting on unrecognized arguments. It isn't nice to core on + "umkpasswd --help".. + +2007-03-16 Michael Poole + + * doc/example.conf (Class): Move the "Recommended client classes" + comment to a better place (and stop recommending them). Clarify + what maxlinks does. Make it clear that Operator password entries + only support umkpasswd formats. + +2007-03-16 Michael Poole + + * ircd/ircd.c (parse_command_line): Emit a warning if using -x + when DEBUGMODE is disabled. + +2007-03-16 Michael Poole + + * ircd/s_conf.c (find_conf_exact): Treat maxlinks == 0 as being + unlimited here, to match attach_conf()'s behavior. + +2007-03-16 Kevin L. Mitchell + + * ircd/s_conf.c (find_kill): check FEAT_DISABLE_GLINES prior to + checking for a G-line matching a new user + + * ircd/m_gline.c (ms_gline): rework ms_gline() to handle new + command syntax--although it can parse the new syntax, it doesn't + yet perform the actions demanded by that syntax + + * ircd/ircd_features.c: trap-door feature FEAT_DISABLE_GLINES to + disable G-lines + + * ircd/gline.c: create gliter() macro which performs an iteration + over all G-lines in a specified G-line list; initialize record + expire in make_gline() (to be redone); check FEAT_DISABLE_GLINES + in do_gline(); add and document what happens if GLINE_LOCAL is + passed to gline_find() + + * include/ircd_features.h: trap-door feature FEAT_DISABLE_GLINES + to disable G-lines; intended use: accidental G-line of *@* + + * include/gline.h: add rexpire (record expiration time) field to + gline description structure; add GlineAction enumeration (still + undocumented) to describe actions that may be performed on G-lines + +2007-03-09 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for .pre11 development. + 2007-03-09 Michael Poole * include/patchlevel.h (PATCHLEVEL): Bump for u2.10.12.10 release.