From 3137de933c3f4059a723d4091286400353f6ba42 Mon Sep 17 00:00:00 2001 From: pk910 Date: Wed, 13 Jul 2011 14:20:26 +0200 Subject: [PATCH] synced with upstream OGN commits 307 - 315 --- ChangeLog | 1068 ++++ Doxyfile | 2 +- Makefile.in | 8 +- configure.in | 2 +- doc/Makefile | 52 - doc/Makefile.in | 52 - doc/history/ChangeLog.11 | 4169 -------------- doc/history/ChangeLog.12 | 11526 ------------------------------------- doc/irc.1 | 82 - doc/ircd.8 | 111 - ircd-patch | 2 +- 11 files changed, 1075 insertions(+), 15999 deletions(-) delete mode 100644 doc/Makefile delete mode 100644 doc/Makefile.in delete mode 100644 doc/history/ChangeLog.11 delete mode 100644 doc/history/ChangeLog.12 delete mode 100644 doc/irc.1 delete mode 100644 doc/ircd.8 diff --git a/ChangeLog b/ChangeLog index 49c5f51..604aacd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1071 @@ +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. diff --git a/Doxyfile b/Doxyfile index be52175..f8a3afb 100644 --- a/Doxyfile +++ b/Doxyfile @@ -23,7 +23,7 @@ PROJECT_NAME = "Undernet IRC Daemon" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = "$Name: u2_10_12_09 $" +PROJECT_NUMBER = "$Name: not supported by cvs2svn $" # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/Makefile.in b/Makefile.in index ff3b25a..580ad54 100644 --- a/Makefile.in +++ b/Makefile.in @@ -28,8 +28,8 @@ AWK = @AWK@ @SET_MAKE@ #### End of system configuration section. #### -SUBDIRS = doc ircd -IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile +SUBDIRS = ircd ircd/test +IRCD_MAKEFILES = Makefile ircd/Makefile ircd/test/Makefile all: build @@ -119,10 +119,10 @@ stamp-h: config.h.in config.status Makefile: Makefile.in config.status ./config.status -doc/Makefile: doc/Makefile.in config.status +ircd/Makefile: ircd/Makefile.in config.status ./config.status -ircd/Makefile: ircd/Makefile.in config.status +ircd/test/Makefile: ircd/test/Makefile.in config.status ./config.status config.status: configure diff --git a/configure.in b/configure.in index afc222e..b4f8b46 100644 --- a/configure.in +++ b/configure.in @@ -762,7 +762,7 @@ if test x"$unet_cv_enable_openssl" = xyes ; then fi dnl Finally really generate all output files: -AC_OUTPUT(Makefile ircd/Makefile doc/Makefile, [echo timestamp > stamp-h]) +AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile, [echo timestamp > stamp-h]) dnl Report configuration AC_MSG_RESULT([ diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 878a9f1..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# doc/Makefile for the Undernet IRC Daemon. -# Copyright (C) 1997, Carlo Wood - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -#### Start of system configuration section. #### - -prefix = /var/run/ircd -top_srcdir = .. -srcdir = . - -INSTALL = /usr/bin/install -c -SHELL = /bin/sh -RM = /bin/rm - - -DATAROOTDIR = ${prefix}/share -DATADIR = ${datarootdir} -MANDIR = ${datarootdir}/man - -#### End of system configuration section. #### - -all: - -build: - -clean: - -distclean: - ${RM} -f Makefile stamp-m - -maintainer-clean: distclean - -depend: - -install: - -uninstall: - diff --git a/doc/Makefile.in b/doc/Makefile.in deleted file mode 100644 index 82f0f31..0000000 --- a/doc/Makefile.in +++ /dev/null @@ -1,52 +0,0 @@ -# doc/Makefile for the Undernet IRC Daemon. -# Copyright (C) 1997, Carlo Wood - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -#### Start of system configuration section. #### - -prefix = @prefix@ -top_srcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ -INSTALL = @INSTALL@ -SHELL = @SHPROG@ -RM = @RMPROG@ -@SET_MAKE@ - -DATAROOTDIR = @datarootdir@ -DATADIR = @datadir@ -MANDIR = @mandir@ - -#### End of system configuration section. #### - -all: - -build: - -clean: - -distclean: - ${RM} -f Makefile stamp-m - -maintainer-clean: distclean - -depend: - -install: - -uninstall: - diff --git a/doc/history/ChangeLog.11 b/doc/history/ChangeLog.11 deleted file mode 100644 index cc8a9ca..0000000 --- a/doc/history/ChangeLog.11 +++ /dev/null @@ -1,4169 +0,0 @@ -2002-01-08 Perry Lorier - * Fixed the build system -- MAKEFILES is *not* a variable you can - just use in a makefile :) - * Added "Quit: " prefix to quit messages. - -2001-10-14 Perry Lorier - * Minor fixes to the below - -2001-09-21 Perry Lorier - * ircd/send.c and various: replace sendcmdto_flag_butone with - sendwallto_group_butone - -2001-09-21 Vampire- - * ircd/ircd_string.c: unique_name_vector round II. - -2001-09-21 mbuna - * configure.in: Add support for darwin - -2001-09-21 Perry Lorier - * ircd/s_user.c I'm stupid, s/acptr/from/, Hektik pointed it out - -2001-09-20 Perry Lorier - - * Pullups from 2.10.10.pl16 - * Added some warnings, and the concept of rate limited snotices - -2001-08-31 Kevin L Mitchell - - * ircd/channel.c: use "%u" to format limit arguments; use - strtoul() to process limit arguments in a /mode command--note: - most clients seem to truncate the integer, probably because - they're using atoi, and perhaps signed ints - -2001-08-17 Kevin L Mitchell - - * ircd/numnicks.c: include stdlib.h for exit() - - * ircd/ircd_log.c: include stdlib.h for exit() - - * ircd/ircd_events.c: include stdlib.h for exit() - - * ircd/s_stats.c: remove description of /stats v, since it's gone - - * ircd/m_wallops.c (mo_wallops): add "*" to the beginning of - /wallops to distinguish wallops from wallusers - - * ircd/m_error.c (mr_error): ignore ERROR from clients that aren't - in the "handshake" or "connecting" states--I think the latter will - never happen, but... - - * doc/Authors: apply delete's Authors patch - - * RELEASE.NOTES: rewrite RELEASE.NOTES, basing it a little on - Braden's version - - * README: rewrite README - -2001-07-31 Kevin L. Mitchell - - * ircd/s_serv.c (server_estab): remove unused variable split - - * ircd/parse.c: add mr_error to the parse table - - * ircd/m_error.c (mr_error): add mr_error() to handle ERRORs from - unregistered connections--if IsUserPort() is true, the ERROR is - ignored, otherwise, the message is saved - -2001-07-28 Kevin L. Mitchell - - * ircd/m_kill.c (ms_kill): another minor typo *sigh* - - * ircd/s_user.c (send_supported): oops, minor typo... - - * ircd/s_user.c: implement send_supported() to send two ISUPPORT - messages containing our feature buffers; make register_user() use - send_supported() - - * ircd/s_misc.c (exit_client): make sure not to give away a remote - server in the ERROR message sent to the client; if the killer is a - server, we substitute our name in its place - - * ircd/m_version.c (m_version): use send_supported() to send the - ISUPPORT values to the user - - * ircd/m_nick.c: shave nick collision kills here a bit, too, for - the same reasons as for m_kill.c - - * ircd/m_kill.c: shave kills a bit so that the results look - exactly the same no matter where you are; if we didn't do this, it - would be possible to map the network by looking at the differences - between kills originating under various circumstances - - * include/supported.h: split the features into two, so as to not - bust the parameter count when sending the features list - - * include/s_user.h: declare new send_supported() function to send - the ISUPPORT information - -2001-07-27 Kevin L. Mitchell - - * ircd/s_bsd.c: disable IP (*not* TCP) options to prevent - source-routed spoofing attacks; this is only available under - u2.10.11, so don't even bother, since no one but testers are using - the source base - -2001-07-25 Kevin L. Mitchell - - * include/ircd_policy.h: enable HEAD_IN_SAND_REMOTE by default - - * ircd/s_err.c: put in a . for reporting link version on /trace, - to match what /version does - -2001-07-21 Kevin L. Mitchell - - * ircd/s_misc.c (exit_client): servers don't understand what the - numeric nick ERROR is supposed to mean, so they ignore error - messages, resulting in not knowing why we were rejected; use - sendcmdto_one for servers and sendrawto_one for clients - -2001-07-17 Kevin L. Mitchell - - * ircd/m_burst.c (ms_burst): in the case of a modeless channel and - a nick collide, a bare BURST may be propagated; adjust the - enforced parameter count to accept the bare BURST - -2001-07-12 Kevin L. Mitchell - - * ircd/s_bsd.c: mark a client as having been IP checked - - * ircd/IPcheck.c (ip_registry_check_remote): remove unneeded - second call to SetIPChecked() - -2001-07-11 Kevin L. Mitchell - - * ircd/engine_poll.c: deal with POLLHUP properly (hopefully) - - * ircd/engine_devpoll.c: deal with POLLHUP properly (hopefully) - -2001-07-09 Kevin L. Mitchell - - * ircd/os_bsd.c (os_get_rusage): move buf into the two ifdef'd - sections so that if neither is used, the declaration of buf will - not elicit an "unused variable" warning under NetBSD - - * ircd/m_map.c: include string.h to declare strcpy (fix warnings - on alpha) - - * ircd/m_away.c: include string.h to declare strcpy/strlen (fix - warnings on alpha) - - * ircd/ircd_log.c: include string.h to declare strcpy/strlen (fix - warnings on alpha) - - * ircd/client.c: include string.h to declare memset (fix warnings - on alpha) - - * ircd/channel.c: remove unused functions next_overlapped_ban, - del_banid, and is_deopped (fix warnings under -O1) - - * ircd/IPcheck.c: include string.h to declare memset/memcpy (fix - warnings on alpha) - -2001-06-29 Kevin L. Mitchell - - * ircd/s_user.c (set_user_mode): clear the snomask if the user - isn't supposed to receive server notices anymore - - * ircd/ircd_features.c: change CONFIG_OPERCMDS to default to FALSE - - * configure.in: use AC_MSG_CHECKING/AC_MSG_RESULT when checking - installation prefix; default devpoll and kqueue to on (they get - turned off if the required headers aren't present) - - * ircd/whocmds.c (do_who): use ircd_snprintf() instead of - sprintf_irc(); it's a bit hackish, but it'll do for now - - * ircd/support.c: remove unused #include - - * ircd/send.c: remove unused #include - - * ircd/s_user.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/s_serv.c: remove unused #include - - * ircd/s_misc.c: use ircd_snprintf() and friends instead of - sprintf_irc() and friends - - * ircd/s_err.c: moved atoi_tab[] from ircd/sprintf_irc.c to - ircd/s_err.c, which is the only other file to refer to it - - * ircd/s_conf.c (conf_add_deny): use ircd_snprintf() instead of - sprintf_irc() - - * ircd/s_bsd.c (connect_server): use ircd_snprintf() instead of - sprintf_irc() - - * ircd/s_auth.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/res.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/m_version.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/m_kill.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/listener.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/gline.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/channel.c: don't include sprintf_irc.h; use ircd_snprintf() - instead of sprintf_irc() - - * ircd/Makefile.in: remove sprintf_irc.c from sources list; run - make depend - - * include/ircd_string.h: remove declaration of sprintf_irc() (what - was it doing here anyway?) - - * include/sprintf_irc.h: removed unneeded source file - - * ircd/sprintf_irc.c: removed unneeded source file - - * ircd/s_debug.c (count_memory): remove some dead code - - * ircd/s_auth.c: remove some dead code - - * ircd/res.c (update_list): remove some dead code - - * ircd/m_whowas.c: remove some dead code - - * ircd/m_whois.c: remove some dead code - - * ircd/m_who.c: remove some dead code - - * ircd/m_wallusers.c: remove some dead code - - * ircd/m_wallops.c: remove some dead code - - * ircd/m_wallchops.c: remove some dead code - - * ircd/m_version.c: remove some dead code - - * ircd/m_userip.c: remove some dead code - - * ircd/m_userhost.c: remove some dead code - - * ircd/m_uping.c: remove some dead code - - * ircd/m_trace.c: remove some dead code - - * ircd/m_topic.c: remove some dead code - - * ircd/m_tmpl.c: remove some dead code - - * ircd/m_time.c: remove some dead code - - * ircd/m_squit.c: remove some dead code - - * ircd/m_silence.c: remove some dead code - - * ircd/m_settime.c: remove some dead code - - * ircd/m_set.c: remove some dead code - - * ircd/m_server.c: remove some dead code - - * ircd/m_rpong.c: remove some dead code - - * ircd/m_rping.c: remove some dead code - - * ircd/m_restart.c: remove some dead code - - * ircd/m_reset.c: remove some dead code - - * ircd/m_rehash.c: remove some dead code - - * ircd/m_quit.c: remove some dead code - - * ircd/m_proto.c: remove some dead code - - * ircd/m_privs.c: remove some dead code - - * ircd/m_privmsg.c: remove some dead code - - * ircd/m_pong.c: remove some dead code - - * ircd/m_ping.c: remove some dead code - - * ircd/m_pass.c: remove some dead code - - * ircd/m_part.c: remove some dead code - - * ircd/m_opmode.c: remove some dead code - - * ircd/m_oper.c: remove some dead code - - * ircd/m_notice.c: remove some dead code - - * ircd/m_nick.c: remove some dead code - - * ircd/m_map.c: remove some dead code - - * ircd/m_lusers.c: remove some dead code - - * ircd/m_list.c: remove some dead code - - * ircd/m_links.c: remove some dead code - - * ircd/m_kill.c: remove some dead code - - * ircd/m_kick.c: remove some dead code - - * ircd/m_jupe.c: remove some dead code - - * ircd/m_join.c: remove some dead code - - * ircd/m_ison.c: remove some dead code - - * ircd/m_invite.c: remove some dead code - - * ircd/m_info.c: remove some dead code - - * ircd/m_help.c: remove some dead code - - * ircd/m_gline.c: remove some dead code - - * ircd/m_get.c: remove some dead code - - * ircd/m_error.c: remove some dead code - - * ircd/m_endburst.c: remove some dead code - - * ircd/m_die.c: remove some dead code - - * ircd/m_desynch.c: remove some dead code - - * ircd/m_destruct.c: remove some dead code - - * ircd/m_defaults.c: remove some dead code - - * ircd/m_create.c: remove some dead code, along with an #if 1 - - * ircd/m_cprivmsg.c: remove some dead code - - * ircd/m_connect.c: remove some dead code - - * ircd/m_close.c: remove some dead code - - * ircd/m_clearmode.c: remove some dead code - - * ircd/m_burst.c: remove some dead code - - * ircd/m_away.c: remove some dead code - - * ircd/m_admin.c: remove some dead code - - * ircd/listener.c (accept_connection): remove some dead code - - * ircd/ircd_reply.c (need_more_params): remove some dead code - - * ircd/channel.c (add_banid): remove some dead code - - * include/support.h: remove some dead code - - * include/querycmds.h: remove some dead code - - * doc/readme.chroot: document how to do chroot operation - -2001-06-28 Kevin L. Mitchell - - * ircd/Makefile.in: tune for VPATH builds/installs; add a rule to - force bin directory to be created if necessary prior to - installation; run make depend - - * doc/Makefile.in (install): tune for VPATH installs by cd'ing to - the ${srcdir} - - * Makefile.in: tune to detect Makefile.in changes in - subdirectories and to create installation directory indicated by - ${prefix} - - * ircd/whocmds.c (count_users): routine to count the number of - users matching a given user@host mask - - * ircd/s_err.c: add error messages for ERR_LONGMASK, - ERR_TOOMANYUSERS, and ERR_MASKTOOWIDE - - * ircd/m_gline.c: look for and advance past '!' flag on G-lines - from operators; only set GLINE_OPERFORCE flag if oper has the - PRIV_WIDE_GLINE privilege - - * ircd/ircd_features.c: add GLINEMAXUSERCOUNT, which is the - maximum number of users a G-line can impact before it has to be - forced; OPER_WIDE_GLINE, to allow operators to use ! to force a - wide G-line to be set; and LOCOP_WIDE_GLINE, to allow local - operators to use ! to force a wide G-line to be set - - * ircd/gline.c: make make_gline() be called with separate user and - host arguments, and not call canon_userhost() directly; implement - gline_checkmask() to verify that a host mask is acceptable; move - BADCHAN check up in gline_add(), and check passed-in mask under - certain circumstances for acceptability; fix call to - sendto_opmask_butone() to handle separation of userhost into user - and host in gline_add(); update call to make_gline() - - * ircd/client.c: use FEAT_OPER_WIDE_GLINE and - FEAT_LOCOP_WIDE_GLINE to set PRIV_WIDE_GLINE for an operator; add - PRIV_WIDE_GLINE to privtab[] for client_report_privs() - - * include/whocmds.h (count_users): declare routine to count users - matching a given user@host mask - - * include/numeric.h: added three new error returns: ERR_LONGMASK - -- mask can't be formatted into a buffer; ERR_TOOMANYUSERS -- too - many users would be impacted by the mask; ERR_MASKTOOWIDE -- mask - contains wildcards in the wrong places - - * include/ircd_features.h: add FEAT_GLINEMAXUSERCOUNT, - FEAT_OPER_WIDE_GLINE, and FEAT_LOCOP_WIDE_GLINE - - * include/gline.h (GLINE_OPERFORCE): provides a way for m_gline() - to signal to gline_add() that the operator attempted to force the - G-line to be set - - * include/client.h (PRIV_WIDE_GLINE): new privilege for operators - - * doc/readme.gline: update to document new "!" prefix to a G-line - user@host mask - - * doc/readme.features: document GLINEMAXUSERCOUNT, - OPER_WIDE_GLINE, and LOCOP_WIDE_GLINE - - * doc/example.conf: update to mention new features along with - their defaults - -2001-06-27 Kevin L. Mitchell - - * doc/example.conf: updated example.conf from Braden - - - * include/supported.h: forward-port from pl15 - -2001-06-25 Kevin L. Mitchell - - * ircd/whocmds.c: include ircd_policy.h and implement - HEAD_IN_SAND_WHO_OPCOUNT--forward-port from pl15 - - * ircd/m_whois.c: forward-port of the idle-time hiding code from - pl15; this also required passing parc into do_whois(), which also - meant passing parc into do_wilds()--*sigh* - - * include/ircd_policy.h: add a couple more HEAD_IN_SAND - #define's--WHOIS_IDLETIME and WHO_HOPCOUNT - -2001-06-22 Kevin L. Mitchell - - * tools/wrapper.c: add a wrapper program that can be used to - adjust file descriptor limits and root directories; program must - be run as root--NOT SETUID!--and given appropriate -u arguments - - * doc/readme.log: documentation of how to configure logging - - * doc/readme.features: documentation of each feature (except for - logging) - -2001-06-21 Kevin L. Mitchell - - * Makefile.in (config): add a deprecation notice with a pointer to - tools/transition - - * tools/transition: shell script to convert old compile-time - options into new compile-time options and appropriate F-lines - - * tools/mkchroot: shell-script to prepare the chroot area by - copying over all the necessary libraries so they can be found - -2001-06-20 Kevin L. Mitchell - - * INSTALL: partial update of INSTALL for u2.10.11 release... - -2001-06-14 Kevin L. Mitchell - - * ircd/table_gen.c (makeTables): finally got tired of the - "overflow in implicit conversion" warning, so just got rid of it - by explicitly casting UCHAR_MAX to a (default) char; diffs show no - differences in the tables generated - -2001-06-11 Kevin L. Mitchell - - * ircd/send.c (sendcmdto_match_butone): don't let the server crash - if a client is in the STAT_CONNECTING status - -2001-06-10 Kevin L. Mitchell - - * ircd/send.c: remove unused vsendcmdto_one(), consolidating it - into sendcmdto_one(); define new sendcmdto_prio_one(), which - places the message into the priority queue - - * ircd/s_user.c (hunt_server_prio_cmd): definition of - hunt_server_prio_cmd(), which simply calls sendcmdto_prio_one() - instead of sendcmdto_one() - - * ircd/m_settime.c: use sendcmdto_prio_one() and - hunt_server_prio_cmd() to send SETTIME - - * ircd/m_server.c: use sendcmdto_prio_one() to send SETTIME - - * include/send.h: removed declaration for unused vsendcmdto_one(); - added a declaration for sendcmdto_prio_one() - - * include/s_user.h: declare hunt_server_prio_cmd(), which calls - sendcmdto_prio_one() - - * ircd/send.c (sendcmdto_flag_butone): oops; /wallops should be - put in the server's priority queue, too... - - * ircd/ircd.c: don't check LPATH for accessibility at all - -2001-06-08 Kevin L. Mitchell - - * ircd/s_serv.c (server_estab): send a +h flag in our SERVER - command if we're configured as a hub; send individual server flags - in SERVER commands - - * ircd/s_bsd.c (completed_connection): send a +h flag in our - SERVER command if we're configured as a hub - - * ircd/m_server.c: implement parv[7] as a mode-like string; +h - sets the FLAGS_HUB flag for a server; +s sets the FLAGS_SERVICE - flag for a server; +hs sets both flags; also modify CMD_SERVER - format string to send the flags - - * include/client.h: define two new flags, FLAGS_HUB and - FLAGS_SERVICE to mark services and hubs as such; define testing - macros, setting macros - - * ircd/s_user.c: remove deprecated struct Gline* argument to - register_user(); remove GLINE rebroadcast; do not send GLINE - acknowledgement parameter to NICK; do not look for GLINE - acknowledgement parameter to NICK while parsing - - * ircd/s_serv.c (server_estab): remove deprecated struct Jupe* - argument to server_estab(); do not send JUPE/GLINE acknowledgement - parameters for SERVER or NICK - - * ircd/m_user.c (m_user): remove deprecated argument to - register_user() - - * ircd/m_server.c: remove deprecated argument to server_estab(); - remove documentation comment regarding JUPE acknowledgement - parameter to SERVER; remove JUPE rebroadcast - - * ircd/m_pong.c (mr_pong): remove deprecated argument to - register_user() - - * ircd/m_nick.c: remove documentation comment regarding GLINE - acknowledgement parameter to NICK - - * ircd/jupe.c: use user's real name in JUPE server notices if - HEAD_IN_SAND_SNOTICES is defined - - * ircd/ircd.c: remove deprecated chroot() code; remove deprecated - setuid code; correct ancient DEBUG vs DEBUGMODE typo - - * ircd/gline.c: use user's real name in GLINE server notices if - HEAD_IN_SAND_SNOTICES is defined - - * ircd/channel.c (modebuf_flush_int): make apparent source be - local server, not oper's server; use user's real name in hack - notices and DESYNC notices if HEAD_IN_SAND_SNOTICES is defined - - * include/s_user.h: remove struct Gline pre-declaration; remove - deprecated struct Gline argument from register_user() - - * include/s_serv.h: remove struct Jupe pre-declaration; remove - deprecated struct Jupe argument from server_estab() - -2001-06-07 Kevin L. Mitchell - - * ircd/s_stats.c (hunt_stats): forward-port from pl15 of all the - changes required to control remote stats - - * ircd/s_numeric.c (do_numeric): rewrite numeric origins if - recipient is not an operator and HEAD_IN_SAND_REWRITE is defined - [forward-port from pl15] - - * ircd/m_whowas.c (m_whowas): report server name only if requester - is an operator [forward-port from pl15] - - * ircd/m_whois.c (do_whois): /whois now correctly reports - my server; if HEAD_IN_SAND_REMOTE is 1, ignore the middle argument - and obtain the report from the user's server [forward-port from - pl15] - - * ircd/m_who.c: add missing include for ircd_policy.h - [forward-port from pl15] - - * ircd/m_version.c (m_version): require oper access for remote - /version if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_time.c (m_time): require oper access for remote /time if - HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_stats.c: pass extra argument to hunt_stats(); correct - missing semicolon [forward-port from pl15] - - * ircd/m_nick.c (ms_nick): hide the origin of certain collision - kills [forward-port from pl15] - - * ircd/m_motd.c (m_motd): require oper access for remote /motd if - HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_lusers.c (m_lusers): require oper access for remote - /lusers if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_burst.c (ms_burst): server-added bans are stored using - local server name, to hide remote server names; modes also are to - originate from the local server [forward-port from pl15] - - * ircd/m_admin.c (m_admin): require oper access for remote /admin - if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/channel.c (add_banid): if a server is adding a ban, use my - server name to hide the remote server's name [forward-port from - pl15] - - * ircd/Makefile.in: ran make depend - - * include/s_stats.h: hunt_stats() has to have an extra argument to - support the forward-port from pl15 - - * include/ircd_policy.h: #define HEAD_IN_SAND_STATS_P; add - HEAD_IN_SAND_{BANWHO,REWRITE,REMOTE} [forward-port from pl15] - - * ircd/engine_poll.c (engine_loop): remove bogus assert that I - forgot to check in the events branch - -2001-06-06 Kevin L. Mitchell - - * ircd/res.c (init_resolver): don't start DNS expires with a 0 - relative timeout--if the server starts slow, timeouts could be - messy...there's probably a better solution, but this'll do for now - - * ircd/os_solaris.c: _XOPEN_SOURCE doesn't get along with Solaris - headers very well; include stropts.h; define an os_set_tos() - - * ircd/os_generic.c (os_set_tos): added an os_set_tos() for - os_generic.c - - * ircd/ircd.c: if there are no C-lines, we don't want to have a - timer that expires at the absolute time of 0--it kinda blocks all - the other timers! - - * ircd/engine_devpoll.c: some includes for open(); declare errcode - and codesize in engine_loop() - - * ircd/list.c (free_client): remove bogus check on timer active - flag - - * ircd/s_auth.c: pull out destruction code in - auth_timeout_request() into an externally-visible - destroy_auth_request(); manage cli_auth pointer in client - structure; use it for an extra assertion check - - * ircd/list.c: include s_auth.h for destroy_auth_request(); add - debugging notices to show flow when deallocating - connections/clients; call destroy_auth_request() when free'ing a - client that has an auth outstanding; don't free the connection if - the process timer is unmarked but still active - - * ircd/ircd_events.c: set GEN_ACTIVE when initializing a generator - and reset it before calling the event handler for an ET_DESTROY - event - - * include/s_auth.h (destroy_auth_request): declare - destroy_auth_request(), which can be used to destroy an - outstanding auth request if a client socket goes away before the - auth exchange is completed - - * include/ircd_events.h: add an active flag to keep track of - whether or not particular generators are active, for the - convenience of functions using the API - - * include/client.h: add a pointer for auth requests to struct - Connection so we can kill outstanding auth requests if a client - socket closes unexpectedly - - * ircd/s_bsd.c: cli_connect() could become 0 during the course of - the sock or timer callback; take that into account in the assert - - * ircd/list.c: add magic number checking and setting--magic - numbers are zero'd on frees to detect double-frees; add back - setting of cli_from() to 0 to break the back-link from the struct - Connection (duh) - - * ircd/ircd.c: set me's magic number correctly - - * include/client.h: define magic numbers and accessor/verifier - macros - - * ircd/list.c: assert that dealloc_client() is called with - cli_connect(cptr) == 0; set cli_connect(cptr) to 0 before calling - dealloc_client(); don't mess with cli_from(cptr) - - * ircd/s_bsd.c: only attempt to dealloc a connection if the - associated client has already been destroyed, or at least delinked - -2001-06-05 Kevin L. Mitchell - - * ircd/list.c (free_client): only try to delete the socket when - the fd hasn't already been closed, avoiding a double-free - - * ircd/list.c (free_connection): make sure the client is really - gone before doing away with the connection - - * ircd/s_bsd.c: record that socket has been added in con_freeflag - field; queue a socket_del() as soon as the socket is close()'d; - use con_freeflag & FREEFLAG_TIMER instead of con_timer; clear - FREEFLAG_SOCKET on ET_DESTROY event in client_sock_callback(), - then dealloc the connection if safe; mark socket as dead when - there's a read error or EOF; clear FREEFLAG_TIMER flag upon entry - to client_timer_callback(); dealloc connection if safe upon - ET_DESTROY event in client_timer_callback() - - * ircd/list.c: use con_freeflag instead of con_timer; only dealloc - the connection if both socket and timer have been destroyed; - destroy both socket and timer explicitly and carefully - - * include/client.h: replace the con_timer field with a - con_freeflag field, to indicate what still needs freeing; define - the freeflags - - * ircd/engine_select.c (engine_loop): duh...sockList[i] could - become 0 - - * ircd/engine_devpoll.c (engine_loop): duh...sockList[i] could - become 0 - - * ircd/s_bsd.c: add some extra assertions to try to track down a - corruption problem - - * ircd/engine_select.c (engine_loop): add an extra assert to try - to track down a corruption problem - - * ircd/engine_poll.c (engine_loop): add an extra assert to try to - track down a corruption problem - - * ircd/engine_kqueue.c (engine_loop): add an extra assert to try - to track down a corruption problem - - * ircd/engine_devpoll.c (engine_loop): skip slots that have become - empty during processing; add an extra assert to try to track down - a corruption problem - - * ircd/engine_kqueue.c (engine_delete): make sure to zero deleted - entries - -2001-06-04 Kevin L. Mitchell - - * ircd/s_bsd.c (client_sock_callback): client is no longer - blocked, so we must mark it as unblocked - - * ircd/engine_select.c: add Debug() calls galore; add handling for - SS_NOTSOCK; use a dummy sock variable to keep things from - disappearing on us; correct timeout calculation; update nfds for - efficiency - - * ircd/engine_poll.c: use new debugging level (DEBUG_ENGINE); - remove a spurious "if (sock)" which will always be true; update - nfds for efficiency - - * ircd/engine_kqueue.c: add Debug() calls galore; add handling for - SS_NOTSOCK (just in case); correct timeout calculation - - * ircd/engine_devpoll.c: add Debug() calls galore; add handling - for SS_NOTSOCK; correct timeout calculation; add EAGAIN handling - - * include/s_debug.h (DEBUG_ENGINE): add new debugging level; - pretty-indent numbers - - * ircd/engine_poll.c (engine_loop): break out SS_NOTSOCK - case--it's not a socket; the check for writability is most likely - not needed, but present for completeness - -2001-05-24 Kevin L. Mitchell - - * ircd/s_bsd.c: add Debug messages; call read_packet() even if the - no newline flag is set; call read_packet() when the timer expires, - regardless of what's in the buffer--read_packet() should be able - to deal properly - - * ircd/IPcheck.c (ip_registry_connect_succeeded): correct a NOTICE - sent to clients to include the client nickname (duh) - - * ircd/ircd_events.c: don't destroy a timer if it's already marked - for destruction; replace a missing ! in socket_del() - - * ircd/engine_poll.c (engine_loop): reference a temporary variable - so we don't have to worry about sockList[i] going away - - * ircd/s_bsd.c (client_sock_callback): add Debug messages - - * ircd/s_auth.c: add Debug messages all over the place - - * ircd/ircd_events.c: add and edit some Debug messages; add a list - of routines to convert some of the enums and flags from numbers - into human-readable strings for the Debug messages - - * ircd/engine_poll.c: hack some Debug messages to use the new name - conversion routines in ircd_events.c; add an extra assert for a - condition that shouldn't ever happen; apparently recv() can return - EAGAIN when poll() returns readable--I wonder why... - - * include/ircd_events.h: declare some helper routines under - DEBUGMODE - -2001-05-23 Kevin L. Mitchell - - * ircd/s_bsd.c (client_sock_callback): add an extra assertion - check - - * ircd/s_auth.c: add more Debug messages - - * ircd/list.c (make_client): add an extra assertion check - - * ircd/ircd_events.c (socket_events): don't call the engine events - changer if we haven't actually made any changes to the event mask - - * ircd/uping.c: add some Debug messages - - * ircd/s_stats.c: document new /STATS e - - * ircd/s_err.c: add RPL_STATSENGINE to report the engine name - - * ircd/s_bsd.c: remove static client_timer variable; in - read_packet(), if there's still data in the client's recvQ after - parsing, add a 2 second timer (con_proc); fix the ET_DESTROY case - of client_sock_callback to handle destroying the timer properly; - rewrote client_timer_callback from scratch to be called on an - individual client - - * ircd/m_stats.c: add /STATS e to report the engine name - - * ircd/list.c: deal with con_timer field in struct Connection - properly; correct a core-level bug in remove_client_from_list--if - the client is the only one in the list, we try to update - GlobalClientList's cli_prev pointer--not good - - * ircd/ircd.c: remove call to init_client_timer() - - * ircd/engine_poll.c: made Debug messages more uniform by - prepending "poll:" to them all; corrected an off-by-one error that - caused poll_count to be 1 less than the actual count and removed - my work-around; added Debug messages to indicate which socket is - being checked and what the results are - - * ircd/Makefile.in: ran a make depend - - * include/s_bsd.h: remove init_client_timer(), since we're doing - it differently now - - * include/numeric.h (RPL_STATSENGINE): a stats reply to report the - engine name - - * include/ircd_policy.h (HEAD_IN_SAND_STATS_E): turn off /stats e - reports for non-opers - - * include/client.h: add con_timer and con_proc fields to struct - Connection and define accessor macros--con_timer marks that - con_proc contains a valid timer, and con_proc is used to pace user - data - - * ircd/s_bsd.c (close_connection): let free_client() destroy the - socket - - * ircd/s_auth.c (start_auth): add a Debug call to indicate when - auth has begun on a client - - * ircd/ircd_events.c: ensure that event_execute() is called with a - non-NULL event; modify event_add() macro to properly zero list - bits; modify gen_dequeue() to not try to clip it out of a list - it's already been clipped out of; change signal socket - initialization to use state SS_NOTSOCK; permit timeout values of - 0 in add_timer(); add many Debug calls; change socket_del() and - timer_del() to always set the GEN_DESTROY flag; use GEN_MARKED in - timer_run() instead of GEN_DESTROY so that event_generate() will - pass on the events; remove the switch and replace with a simpler - if-then-else tree in timer_run(); don't allow destroyed sockets to - be destroyed again, nor their states or event masks to be changed - - * ircd/ircd.c: initialize "running" to 1 - - * ircd/engine_poll.c: deal with SS_NOTSOCK "sockets"; add Debug - messages all over the place; fix a counting problem in - engine_add(); turn wait into a signed integer and set it to -1 - only if timer_next() returns 0; adjust wait time to be relative; - don't call gen_ref_dec() if socket disappeared while we were - processing it - - * include/ircd_events.h: the pipe for signals is not a socket, so - we must mark it as such--added SS_NOTSOCK for that special socket; - events won't be generated if GEN_DESTROY is on, so add GEN_MARKED - for the benefit of timer_run() - - * configure.in: add --enable-pedantic and --enable-warnings to - turn on (and off) -Wall -pedantic in CFLAGS - -2001-05-21 Kevin L. Mitchell - - * ircd/s_conf.c: change "s_addr" element accesses to "address" - element accesses - - * include/s_conf.h: on some systems, "s_addr" is a macro; use - "address" instead - -2001-05-18 Kevin L. Mitchell - - * ircd/engine_kqueue.c: include ircd_alloc.h; set_or_clear returns - void in this file; add a missing semi-colon; declare errcode, - codesize - - * ircd/uping.c (uping_sender_callback): it's pptr, not uping - - * ircd/s_user.c (register_user): comment out spurious reference to - nextping - - * ircd/s_serv.c (server_estab): comment out spurious reference to - nextping - - * ircd/s_conf.c (read_configuration_file): comment out spurious - reference to nextping and nextconnect - - * ircd/s_bsd.c: comment out some spurious references to formerly - global (now non-existant) variables; correct a couple of typos - - * ircd/s_auth.c: pre-declare some functions referenced in the - callback; correct a typo - - * ircd/res.c (start_resolver): pass errno value of ENFILE - - * ircd/listener.c (accept_connection): you know your API is messed - up when...variables that shouldn't have been global crop up in - other files - - * ircd/list.c (free_client): substitution of == for = - - * ircd/ircd_signal.c: include assert.h for assertion checking; - check ev_data() to find out what signal generated event - - * ircd/ircd_events.c: some references to the variable "timer" - should have been references to the variable "ptr" - - * ircd/engine_select.c: it's struct fd_set, not struct fdset; - ev_timer(ev) is already a timer pointer; declare codesize as a - size_t to correct signedness issue; use timer_next(), not - time_next() - - * ircd/engine_poll.c: ev_timer(ev) is already a timer pointer; - select fd out of struct pollfd in assertion checking; declare - errcode and codesize; use timer_next(), not time_next() - - * ircd/engine_kqueue.c: ev_timer(ev) is already a timer pointer; - use function timer_next(), not time_next() - - * ircd/engine_devpoll.c: ev_timer(ev) is already a timer pointer; - use function timer_next(), not time_next() - - * ircd/Makefile.in (IRCD_SRC): add ircd_events.c to the list of - compiled sources; do make depend - - * include/list.h: pre-declare struct Connection - - * include/ircd_events.h (gen_ref_inc): cast to the right structure - name - - * include/s_auth.h: duh; missing */ - -2001-05-10 Kevin L. Mitchell - - * ircd/send.c: update write events status after sending data or - accumulating data to be sent - - * ircd/m_list.c (m_list): update write events status after - canceling a running /list - - * ircd/channel.c (list_next_channels): update write events status - after listing a few channels - - * ircd/s_bsd.c: extensive changes to update to new events model; - remove on_write_unblocked() and the two implementations of - read_message(), which have been deprecated by this change - - * ircd/s_auth.c: set the socket events we're interested in for - clients; simplify some logic that does the connect_nonb followed - by the socket_add - - * ircd/list.c: define free_connection() to free a connection - that's become freeable once the struct Socket has been - deallocated; fix up free_client() to take this new behavior into - account - - * ircd/ircd.c: call init_client_timer() - - * include/s_bsd.h: declare new REGISTER_ERROR_MESSAGE when unable - to register connect-in-progress with events system; declare - init_client_timer() (HACK!) to preserve rate-limiting behavior - - * include/list.h: declare new free_connection() - - * include/client.h: add a struct Socket to struct Connection - -2001-05-09 Kevin L. Mitchell - - * ircd/ircd_signal.c: massage the handlers for SIGHUP, SIGINT, and - SIGTERM into event callbacks; perform the actions in the - callbacks, since they're not called in the context of the signal; - set up the signal callbacks in the event engine - - * ircd/ircd_events.c (signal_callback): we're supposed to look for - a specific signal; don't generate an event if there is no signal - structure for it - - * ircd/ircd.c: nuke nextconnect and nextping and replace them with - connect_timer and ping_timer; massage try_connections() and - check_pings() into timer callbacks that re-add themselves at the - right time; remove ircd.c's "event_loop()"; initialize the event - system and the connect_timer and ping_timer - - * ircd/uping.c: correct a couple more typos - - * ircd/s_auth.c: rework to use new events system - - * ircd/os_solaris.c (os_connect_nonb): update to new interface - - * ircd/os_openbsd.c (os_connect_nonb): update to new interface - - * ircd/os_linux.c (os_connect_nonb): update to new interface - - * ircd/os_generic.c (os_connect_nonb): update to new interface - - * ircd/os_bsd.c (os_connect_nonb): update to new interface - - * include/s_auth.h: remove deprecated members of struct - AuthRequest, replacing them with struct Socket and struct Timer - structures; add flags to indicate when these structures have been - released by the event system; remove the deprecated - timeout_auth_queries() - - * include/ircd_osdep.h (os_connect_nonb): connect could complete - immediately, so change the interface to handle that possibility - - * ircd/uping.c (uping_server): noticed and corrected a typo - - * ircd/listener.c: set up to use ircd_event's struct Socket by - adding an socket_add() call to inetport(), replacing - free_listener() with socket_del() in close_listener(), and - reworking accept_connection to be called as the callback - - * ircd/ircd.c: add a call to IPcheck_init() - - * ircd/IPcheck.c: remove IPcheck_expire(); rework - ip_registry_expire() to be called from a timer; write - IPcheck_init() to set up the expiration timer (hard-coded for a - 60-second expiration time) - - * include/listener.h: add a struct Socket to the struct Listener; - remove accept_connection() - - * include/IPcheck.h: add IPcheck_init(), remove IPcheck_expire() - -2001-05-08 Kevin L. Mitchell - - * ircd/ircd_events.c: include config.h; use USE_KQUEUE and - USE_DEVPOLL instead of HAVE_KQUEUE and HAVE_DEVPOLL_H - - * ircd/engine_select.c: include config.h; set FD_SETSIZE to - MAXCONNECTIONS, not IRCD_FD_SETSIZE... - - * ircd/engine_poll.c: include config.h - - * ircd/engine_kqueue.c: include config.h - - * ircd/engine_devpoll.c: include config.h - - * ircd/Makefile.in: include engine sources in compilation and make - depend steps - - * configure.in: add checks for enabling the /dev/poll- and - kqueue-based engines - - * acconfig.h: add lines for USE_DEVPOLL and USE_KQUEUE - - * ircd/Makefile.in: work in the engine sources - -2001-05-07 Kevin L. Mitchell - - * ircd/m_settime.c: include ircd_snprintf.h - - * ircd/ircd_relay.c: stomp a couple of gcc warnings suggesting - parens around a construct that had both || and && - - * ircd/chkconf.c: #include "config.h" to get some important - definitions - - * ircd/Makefile.in: revamp ircd makefile for new build system - - * doc/Makefile.in: revamp doc makefile for new build system - - * config/*: Removed old build system files - - * stamp-h.in: a stamp file - - * install-sh: install-sh for new build system - - * configure.in: configure.in for new build system - - * configure: configure script for new build system (built by - autoconf) - - * config.sub: config.sub for new build system - - * config.h.in: config.h.in for new build system (built by - autoheader) - - * config.guess: config.guess for new build system - - * aclocal.m4: aclocal.m4 for new build system (built by aclocal - 1.4) - - * acinclude.m4: aclocal.m4 macros for new build system - - * acconfig.h: config.h skeleton for new build system - - * Makefile.in: modify for new build system - -2001-05-01 Kevin L. Mitchell - - * ircd/s_err.c: get rid of the last vestiges of TIME_T_FMT - - * ircd/m_settime.c: get rid of the last vestiges of TIME_T_FMT - - * ircd/m_server.c: get rid of the last vestiges of TIME_T_FMT - -2001-05-01 Perry Lorier - * doc/iauth.doc: Protocol for iauth server. (from hybrid). - * doc/linux-poll.patch: Patch to make Linux under 2.2 not deadlock - when you have far far too many sockets in use. - * {include,ircd}/iauth.c: A start on iauth support. - -2001-05-01 Perry Lorier - * ircd/s_err.c: Suggested wording change. - * ircd/s_user.c: Users aren't target limited against +k users. - * ircd/chkconf.c: Made it compile again, who knows if it works, but - now I can at least make install - * various: Cleanups on m_*.c files. - - -2001-04-23 Kevin L. Mitchell - - * ircd/s_misc.c (exit_client): make netsplit server notice say the - right thing - - * ircd/m_links.c (m_links_redirect): forward-port RPL_ENDOFLINKS - change to make Khaled happy... - - * ircd/m_whois.c (do_whois): pull-up of m_whois() fix - (do_whois): duh... - -2001-04-21 Kevin L. Mitchell - - * ircd/msgq.c: finally remove the msgq_integrity() hack, as it's - turned up no more bugs - - * ircd/ircd.c: use /* */ comments instead of // comments--all the - world's not gcc :( - - * ircd/s_conf.c (conf_add_server): use /* */ comments instead of - // comments--all the world's not gcc :( - - * ircd/runmalloc.c: finally garbage-collect unused file - - * include/runmalloc.h: finally garbage-collect unused file - - * ircd/: addition of '#include "config.h"' before - all other includes in most .c files - - * include/: remove includes of config.h, which are - now going into the raw .c files - -2001-04-20 Kevin L. Mitchell - - * ircd/m_whois.c (do_whois): display proper server name if the - user is looking up himself - - * ircd/m_who.c (m_who): disable match by servername or display of - server names by non-opers - - * include/ircd_policy.h: add define for - HEAD_IN_SAND_WHO_SERVERNAME to cover full intent of sub-motion 15 - of CFV 165 - -2001-04-18 Kevin L. Mitchell - - * ircd/s_conf.c: keep the $R in memory so we can see it clearly - when we do a /stats k - - * ircd/s_user.c (set_user_mode): pull-up of changes to prevent - users from turning on +s and +g - - * ircd/s_misc.c (exit_client): pull-up of changes to turn off - net.split notice - - * ircd/parse.c: pull-up of changes to disable /trace, /links, and - /map for users - - * ircd/m_whois.c (do_whois): pull-up of server name masking for - /whois - - * ircd/m_user.c (m_user): removal of umode and snomask defaulting - functions, pull-up - - * ircd/m_stats.c (m_stats): pull-up of stats-disabling stuff - - * ircd/m_map.c (m_map_redirect): pull-up of m_map_redirect() - - * ircd/m_links.c (m_links_redirect): pull-up of m_links_redirect() - - * ircd/channel.c (channel_modes): pull-up of channel key display - as * - - * include/ircd_policy.h: pull-up of ircd_policy.h - - * include/client.h: pull-up of Set/ClearServNotice() - - * ircd/gline.c (do_gline): report client name in G-line message - (pull-up) - - * ircd/s_user.c (register_user): pull-up--show IP address in some - server notices dealing only with users; report which connection - class has filled up - - * ircd/s_stats.c (report_deny_list): use conf->flags & - DENY_FLAGS_IP insteaf of conf->ip_kill - - * ircd/m_stats.c (report_klines): use conf->flags & DENY_FLAGS_IP - insteaf of conf->ip_kill - - * ircd/s_conf.c: use flags field in struct DenyConf; pull-up of - K-line by real name - - * include/s_conf.h: use a flags field in struct DenyConf; define - DENY_FLAGS_FILE, DENY_FLAGS_IP, and DENY_FLAGS_REALNAME for - pull-up of K-line by real name - - * ircd/m_trace.c: pull-up of IP show for user connections - - * doc/example.conf: pull-up of the realname K-line documentation - - * ircd/ircd.c: forward port of pid file advisory locking mechanism - -2001-04-16 Kevin L. Mitchell - - * ircd/send.c (sendcmdto_flag_butone): recast to just broadcast to - all servers, rather than to only servers that have +w/+g/whatever - users on them; among other things, this removes that atrocity - known as sentalong[] from this function - - * ircd/m_admin.c: must include ircd.h to declare "me"; must - include hash.h to declare FindUser() - - * ircd/m_wallusers.c: implementation of WALLUSERS - - * ircd/m_desynch.c (ms_desynch): only send DESYNCHs to opers - - * ircd/m_wallops.c: only send WALLOPS to opers - - * ircd/parse.c: add WALLUSERS command to parser table - - * include/handlers.h: declare wallusers handlers - - * include/msg.h: add WALLUSERS command - - * ircd/send.c (sendcmdto_flag_butone): if FLAGS_OPER is or'd with - flag, send only to appropriate opers - -2001-04-13 Kevin L. Mitchell - - * ircd/uping.c: refit to use the new events interface - - * ircd/res.c: refit to use the new events interface - - * ircd/ircd_events.c: create timer_chg(), which permits a - (non-periodic) timer's expire time to be modified; change the - logic in timer_run() so that timers that were re-added while the - event was being processed will not be destroyed prematurely - - * include/uping.h: include the events header, declare some extra - fields in struct UPing, remove timeout value, and define some - flags for marking which cleanup items have yet to be done - - * include/ircd_events.h: add a prototype for timer_chg() to change - the expire time of a running timer - -2001-03-13 Joseph Bongaarts - * ircd/os_openbsd.c: Tweaked the openbsd hack a bit. - -2001-03-07 Joseph Bongaarts - - * config/configure.in: Add check for OpenBSD - - * ircd/os_openbsd.c: Add seperate os dep file for openbsd which - differs from generic BSD, particularly in its handling of - _XOPEN_SOURCE. - -2001-02-12 Kevin L. Mitchell - - * ircd/m_gline.c (ms_gline): propagate a G-line that happened to - have been added by a U-lined server, rather than going through the - activate/deactivate logic; propagate G-line removals by U-lined - servers as well - - * ircd/gline.c: rename propagate_gline() to gline_propagate(); - make gline_propagate() return an int 0 (convenience return); only - update lastmod in gline_activate() and gline_deactivate() if the - current lastmod is non-zero, since 0 lastmod is our flag of a - U-lined server having added a G-line - - * include/gline.h (gline_propagate): exporting the G-line - propagation function - - * ircd/m_list.c (m_list): duh; permit explicit channel name - specification only when /list gets two arguments ("Kev - #wasteland") rather than when /list gets more than two - arguments--nice braino - -2001-01-29 Thomas Helvey - - * ircd/ircd_reply.c (need_more_params): fix bug that allowed - unregistered clients to spam opers with protocol violation - messages. Note: the bugfix may have eliminated some useful - protocol violation messages. - Please send protocol violation messages explicitly from the - functions they are discovered in, you have much better context - for the error there and it helps to document the behavior of the - server. This was also a design bug in that it violated the - "A function should do one thing" heuristic. Patching this one - would have resulted in a continuous spawning of other bugs over - the next 3 years, so I killed it. Check around for stuff this - broke and readd the calls to protocol_violation in the functions - that need to send the message. - -2001-01-29 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_ban): stopper a tiny leak--if a ban - already existed, then the logic would (attempt to) skip it, but - would not free the ban string; now the ban string is free'd and - the ban count is decremented, releasing the ban for use - - * ircd/s_user.c: make send_umode_out() take a prop argument - instead of testing for the PRIV_PROPAGATE privilege itself; fix - set_umode() to use this new argument, calculating it before - calculating the new privileges for a -o'd user - - * ircd/m_oper.c (m_oper): pass the new prop argument to - send_umode_out() - - * ircd/channel.c (mode_parse_ban): turn off MODE_ADD bit in bans - that we're not actually going to add because they already exist; - test that particular bit before adding to the linked list - - * include/s_user.h: add a prop argument to send_umode_out() to - indicate whether or not to propagate the user mode - -2001-01-24 Kevin L. Mitchell - - * ircd/msgq.c: ircd_vsnprintf() returns the number of bytes that - it would have written; upper-bound the number to prevent overflows - by proxy; also, tune buffer size given to ircd_vsnprintf() to take - into account the fact that ircd_vsnprintf() already takes the - terminal \0 into account - -2001-01-22 Kevin L. Mitchell - - * ircd/msgq.c: add an incredibly ugly hack to attempt to track - down an apparent buffer overflow; remove msgq_map(), since it's no - longer used anywhere; slight tweaks to prevent off-by-one errors, - but these can't explain the problems we've seen - - * include/msgq.h: remove msgq_map(), since it's no longer used - anywhere - -2001-01-18 Kevin L. Mitchell - - * ircd/s_user.c (set_nick_name): call client_set_privs() after - parsing user modes - -2001-01-17 Kevin L. Mitchell - - * ircd/s_bsd.c (read_message): fix a typo in the select version of - read_message() - - * ircd/whowas.c (whowas_free): MyFree() is a macro that expects - its argument to be an lvalue, which means we can't use - whowas_clean()'s handy-dandy "return ww" feature - - * ircd/ircd_features.c: default LOCOP_KILL to TRUE--oops... - -2001-01-16 Kevin L. Mitchell - - * ircd/ircd_events.c (timer_run): it's possible that the timer got - deleted during the callback processing, so don't go to the bother - of requeuing it if the destroy flag is set - - * ircd/engine_select.c: define FD_SETSIZE to be IRCD_FD_SETSIZE - out of config.h if this is a *BSD; include errno.h (oops); - decrement error count after an hour using a timer; use FD_SETSIZE - constant instead of IRCD_FD_SETSIZE constant; fill in event - processing code - - * ircd/engine_poll.c: include errno.h (oops); decrement error - count after an hour using a timer; fill in event processing code - - * ircd/engine_kqueue.c: include errno.h (oops); decrement error - count after an hour using a timer; assert events filter is either - EVFILT_READ or EVFILT_WRITE; fill in event processing code - - * ircd/engine_devpoll.c: include errno.h (oops); decrement error - count after an hour using a timer; fill in event processing code - -2001-01-15 Kevin L. Mitchell - - * ircd/client.c: fixed feattab; basically, when I changed features - to use small integers specifying bit positions, instead of the - bits themselves, I forgot to update feattab to not | these - privileges together; also fixed a bug in the antiprivs masking - loop in client_set_privs()--last index wouldn't get parsed - -2001-01-11 Kevin L. Mitchell - - * ircd/ircd_events.c: call event_generate() with new data - argument; make it set that field in struct Event; make - socket_add() return the value of the eng_add callback - - * ircd/engine_select.c: make engine_add() return a - successful/unsuccessful status; add bounds-checking outside of an - assert; use accessor macros; use log_write(), not the deprecated - ircd_log(); add an assert to engine_loop() to double-check for - data structure corruption - - * ircd/engine_poll.c: make engine_add() return a - successful/unsuccessful status; add bounds-checking outside of an - assert; use accessor macros; use log_write(), not the deprecated - ircd_log(); add an assert to engine_loop() to double-check for - data structure corruption - - * ircd/engine_kqueue.c: implementation of an engine for kqueue() - - * ircd/engine_devpoll.c: implementation of an engine for /dev/poll - - * include/ircd_events.h: define some accessor macros; add ev_data - to struct Event for certain important data--errno values, for - instance; make EngineAdd callback tell us if it was successful or - not; add extra argument to event_generate(); make socket_add() - return the status from EngineAdd - -2001-01-10 Kevin L. Mitchell - - * ircd/ircd_events.c: pass initializer information about how many - total _filedescriptors_ may be opened at once - - * ircd/ircd.c: use exported "running" instead of unexported - thisServer.running - - * ircd/engine_select.c: implementation of an event engine based on - select() - - * ircd/engine_poll.c: implementation of an event engine based on - poll() - - * include/ircd_events.h: pass the engine initializer an integer - specifing how many _filedescriptors_ may be opened at once - - * include/ircd.h: running has to be exported for the engine_* - event loops - -2001-01-09 Kevin L. Mitchell - - * ircd/ircd_events.c: include some needed headers; add some - comments; make evEngines[] const; bundle sig_sock and sig_fd into - a struct named sigInfo; rework struct evInfo to have a queue of - _generators_, and only when threaded; added a gen_init() function - to centralize generator initialization; fix various compile-time - errors; rework event_add() for new queueing scheme and checked for - compile-time errors; add casts where needed; spell evEngines[] - correctly; make engine_name() return const char* - - * include/ircd_events.h: type EventCallBack depends on struct - Event, so pre-declare it; put _event_ queue into generators, and - only when threaded; give engine data a union to store both ints - and pointers; make engine name a const; fix gen_ref_dec() macro; - make engine_name() return a const char* - - * ircd/ircd_events.c: gen_dequeue() is now exported, so move it - down with the non-static functions; modify event_execute() to use - the new gen_ref_dec() to simplify code; make sure event_generate() - does not generate new events for generators marked for destruction - - * include/ircd_events.h: the engines, at least, may need to modify - reference counts to keep generators from going away while - something still points at them, so add reference counter - manipulators and export gen_dequeue() for them - - * ircd/ircd_events.c: set up the list of engines to try; set up - the signal struct Socket; rename netInfo to evInfo; move static - functions near the beginning of the file; do away with - signal_signal() (since we no longer keep a signal count ourselves) - and call event_generate() directly from signal_callback--also - renamed some functions; allow signal_callback() to read up to - SIGS_PER_SOCK at once from the signal pipe; add event_init() to - initialize the entire event system; add event_loop() to call the - engine's event loop; initialize new struct GenHeader member, - gh_engdata; remove timer_next(); add socket_add() function to add - a socket; add socket_del() to mark a socket for deletion; add - socket_state() to transition a socket between states; add - socket_events() to set what events we're interested in on the - socket; add engine_name() to retrieve event engine's name - - * include/ircd_events.h: add engine data field to struct - GenHeader; rename SOCK_ACTION_REMOVE to SOCK_ACTION_DEL; add a - note about states vs s_events; remove signal count; fold union - Generator back into struct Event; remove count members from struct - Generators; redefine engine callbacks to not take a struct - Engine*; add explanatory comments to callback definitions; add - some engine callbacks to handle operations; remove struct Engine - flag member--can detect single flag from eng_signal member; add - event_init(), event_loop(), engine_name(), and the socket_*() - functions; make timer_next() a macro to avoid a function call - -2001-01-08 Kevin L. Mitchell - - * include/ircd_events.h: rename to ircd_events.h, since it handles - events, not just networking stuff; add signal support; more - structural rearrangement - - * ircd/ircd_events.c: rename to ircd_events.c, since it handles - events, not just networking stuff; add signal support; more - structural rearrangement - -2001-01-07 Kevin L. Mitchell - - * ircd/ircd_network.c: implement timer API; add reference counts - appropriately - - * include/ircd_network.h: firm up some pieces of the interface; - split out members everything has into a separate structure; add - reference counts; add timer API - -2001-01-06 Kevin L. Mitchell - - * ircd/ircd_network.c: static data and event manipulation - functions for new event processing system - - * include/ircd_network.h: data structures for new event processing - system - -2001-01-03 Kevin L. Mitchell - - * ircd/whowas.c: Completely re-did the old allocation scheme by - turning it into a linked list, permitting the - NICKNAMEHISTORYLENGTH feature to be changed on the fly - - * ircd/s_debug.c (count_memory): use FEAT_NICKNAMEHISTORYLENGTH - feature instead of old #define - - * ircd/ircd_features.c: add NICKNAMEHISTORYLENGTH feature as an - integer feature with a notify callback (whowas_realloc) - - * ircd/client.c (client_set_privs): second memset was supposed to - be over antiprivs, not privs; thanks, Chris Behrens - for pointing that out... - - * include/whowas.h: new elements for an extra linked list in - struct Whowas; a notify function for feature value changes - - * include/ircd_features.h: new feature--FEAT_NICKNAMEHISTORYLENGTH - - * config/config-sh.in: NICKNAMEHISTORYLENGTH is now a feature - -2001-01-02 Kevin L. Mitchell - - * config/config-sh.in: get rid of DEFAULT_LIST_PARAMETER - compile-time option--now in features subsystem - - * ircd/motd.c (motd_init): rework motd_init() to be called as the - notify function for MPATH and RPATH features (should probably - split it up a bit, though...) - - * ircd/m_privs.c (mo_privs): if called with no parameters, return - privs of the caller, rather than an error - - * ircd/m_list.c: pull usage message into its own function; pull - list parameter processing into its own function that does not - modify the contents of the parameter; add list_set_default() to - set the default list parameter (uses the notify hook); rework - m_list() to make use of these functions; removed dead code - - * ircd/ircd_log.c (log_feature_mark): make sure to return 0, since - we have no notify handler - - * ircd/ircd_features.c: add notify callback for notification of - value changes; give mark callback an int return value to indicate - whether or not to call the notify callback; fix up feature macros - for new notify callback; add DEFAULT_LIST_PARAM feature; rewrite - string handling in feature_set() to deal with def_str being a null - pointer; wrote feature_init() to set up all defaults appropriately - - * ircd/ircd.c (main): call feature_init() instead of - feature_mark(), to avoid calling notify functions while setting up - defaults - - * ircd/client.c: updated to deal with new privileges structure - - * ircd/class.c: updated so init_class() can be called should one - of PINGFREQUENCY, CONNECTFREQUENCY, MAXIMUM_LINKS, or - DEFAULTMAXSENDQLENGTH be changed - - * include/ircd_log.h: log_feature_mark() updated to fit with new - API changes - - * include/ircd_features.h: added DEFAULT_LIST_PARAM feature and - feature_init() function (found necessary since adding the notify - stuff and notifying motd.c during start-up...before we defined - RPATH!) - - * include/client.h: move privs around to enable addition of more - bits if necessary; based on the FD_* macros - - * include/channel.h: declare list_set_default (actually located in - m_list.c *blanche*) - - * ircd/s_user.c: retrieve MAXSILES and MAXSILELENGTH (now - AVBANLEN*MAXSILES) from features subsystem - - * ircd/s_debug.c (debug_serveropts): CMDLINE_CONFIG doesn't go to - anything anymore - - * ircd/s_bsd.c: retrieve HANGONGOODLINK and HANGONRETRYDELAY from - the features subsystem - - * ircd/s_auth.c (start_auth): NODNS migrated to the features - subsystem - - * ircd/random.c: created random_seed_set() function to set seed - value, along with some stuff to make ircrandom() a little more - random--state preserving, xor of time instead of direct usage, - etc.; it's still a pseudo-random number generator, though, and - hopefully I haven't broken the randomness - - * ircd/m_version.c: FEATUREVALUES makes use of feature_int() calls - - * ircd/m_join.c: use features interface to retrieve - MAXCHANNELSPERUSER - - * ircd/ircd_features.c: add NODISP flag for super-secret features; - add a whole bunch of new features migrated over from make config - - * ircd/ircd.c: use features interface to retrieve PINGFREQUENCY, - CONNECTTIMEOUT, and TIMESEC - - * ircd/client.c (client_get_ping): use features interface to - retrieve PINGFREQUENCY - - * ircd/class.c: use features interface to retrieve PINGFREQUENCY, - CONNECTFREQUENCY, MAXIMUM_LINKS, and DEFAULTMAXSENDQLENGTH - - * ircd/chkconf.c (DEFAULTMAXSENDQLENGTH): since it's now in the - features subsystem, we have to add something explicit - - * ircd/channel.c: use features interface to retrieve - KILLCHASETIMELIMIT, MAXBANLENGTH, MAXBANS, and MAXCHANNELSPERUSER; - note that MAXBANLENGTH is now calculated dynamically from MAXBANS - and AVBANLEN - - * ircd/Makefile.in: run make depend - - * include/supported.h (FEATURESVALUES): update to reference - feature settings - - * include/random.h: add prototype for random_seed_set - - * include/ircd_features.h: add several more features - - * include/channel.h: move MAXBANS and MAXBANLENGTH into feature - subsystem - - * config/config-sh.in: feature-ized some more stuff - - * include/motd.h: some new elements in motd.h for motd.c changes - - * ircd/motd.c: motd_cache() now searches a list of already cached - MOTD files; saves us from having duplicate caches in memory if - there are two identical T-lines for two different sites... - -2001-01-02 Perry Lorier - * ircd/motd.c: don't core if the motd isn't found. Bug found by - Amarande. - -2001-01-02 Perry Lorier - * ircd/s_err.c: Added third param to 004 - the channel modes that tage params. Used by hybrid/epic. - * ircd/s_channels.c: Added fix for msg'ing a -n+m channel - thanks - to guppy for noticing, and hektik for providing the fix. - * misc others: Minor cleanups, added more protocol_violations, ripped - out more P09 stuffs, bit more protocol neg stuff. - -2000-12-19 Kevin L. Mitchell - - * ircd/m_ison.c (m_ison): Dianora says that ISON has to end with a - space (*sigh* stupid clients...) - - * ircd/s_user.c: make WALLOPS_OPER_ONLY a feature managed through - ircd_features.[ch] - - * ircd/s_err.c: get rid of GODMODE conditionals - - * ircd/s_debug.c (debug_serveropts): switch to using appropriate - calls into the features subsystem for various serveropts - characters - - * ircd/s_conf.c (find_conf_entry): get rid of USEONE conditional - - * ircd/s_bsd.c: remove GODMODE conditional; use features subsystem - to get value of VIRTUAL_HOST and CLIENT_FLOOD; remove - NOFLOWCONTROL conditional - - * ircd/s_auth.c: use features subsystem to determine value of - KILL_IPMISMATCH - - * ircd/parse.c: get rid of NOOPER and GODMODE conditionals; use - features subsystem to determine the setting of IDLE_FROM_MSG - - * ircd/numnicks.c: get rid of EXTENDED_NUMERICS conditionals - - * ircd/motd.c: get value of NODEFAULTMOTD from features subsystem; - use features subsystem to get motd file names - - * ircd/m_settime.c: get value of RELIABLE_CLOCK from features - subsystem - - * ircd/m_server.c: get rid of CRYPT_LINK_PASSWORD, since it does - us no good; use features subsystem to figure out if we need to do - HUB-type stuff; make TESTNET debugging sendto_opmask_butone's use - the Debug(()) macro instead; get value of RELIABLE_CLOCK from - features subsystem - - * ircd/m_privmsg.c: get IDLE_FROM_MSG from the features subsystem - - * ircd/m_oper.c: get CRYPT_OPER_PASSWORD from the features - subsystem - - * ircd/m_connect.c: get SERVER_PORT from the features subsystem - - * ircd/ircd_log.c (log_set_file): fix a bug that kept log files - from getting marked if they were already set to something... - - * ircd/ircd_features.c: add a flag to indicates read-only access; - add several new features that used to be compile-time selected - - * ircd/ircd.c: grab pidfile out of feature subsystem; don't check - access to motd files (what the heck?); make sure to initialize the - feature subsystem before trying to write the config file - - * ircd/dbuf.c: use feature_int() to retrieve BUFFERPOOL settings; - use feature_bool() to figure out if we're using the FERGUSON - flusher - - * ircd/Makefile.in: MPATH and RPATH are now done differently, so - remove the clause that creates empty files of that name; also ran - make depend - - * include/sys.h: CLIENT_FLOOD is now a feature; unfortunately, - there is no easy way to bounds-check it at present - - * include/querycmds.h: make sure ircd_features.h is included; use - feature_str(FEAT_DOMAINNAME) in calls to match() - - * include/ircd_features.h: many new features that used to be - compile-time selected - - * config/config-sh.in: add * to DOMAINNAME; try also using first - argument to search in /etc/resolv.conf; removed many compile-time - options that now can be configured through the features system - -2000-12-18 Kevin L. Mitchell - - * doc/api/log.txt: how to use the logging API - - * doc/api/features.txt: how to use the features API - - * doc/api/api.txt: how to write API documentation - - * include/ircd_features.h: rearranged a couple of features for - neatness purposes - - * ircd/ircd_features.c: cleaned up the macros some; rearranged - some code to all go into the switch; rearranged a couple of - features for neatness purposes - -2000-12-16 Greg Sikorski - * ircd/os_bsd.c: Added os_set_tos for BSD users. - -2000-12-16 Kevin L. Mitchell - - * ircd/ircd_features.c: Isomer almost got it right; you need to - use F_I(), since it's an integer value, not a boolean value. The - asserts in feature_int would catch you out... Also made the F_* - macros take flags - - * ircd/s_err.c: define RPL_PRIVS reply - - * ircd/parse.c: put new PRIVS command into command table - - * ircd/m_privs.c (mo_privs): message handler to report operator - privileges - - * ircd/ircd_features.c: declare new features OPER_SET and - LOCOP_SET; redo boolean testing routine to accept TRUE, YES, and - ON for boolean TRUE, and FALSE, NO, and OFF for boolean FALSE - - * ircd/client.c: simplify client_set_privs() with a table that - defines what features to test for; add new client_report_privs() - - * ircd/Makefile.in: compile new m_privs.c; run make depend - - * include/numeric.h (RPL_PRIVS): new reply numeric for displaying - an operator's privileges - - * include/msg.h: define new command: PRIVS - - * include/ircd_features.h: create new features OPER_SET and - LOCOP_SET for controlling access to /set - - * include/handlers.h (mo_privs): declare message handler for - reporting oper privileges - - * include/client.h (client_report_privs): declare function to - report what privileges an oper has - - * ircd/m_whois.c (do_whois): fix a bug that caused /whois to - report that a user is an oper if the oper doing the /whois had - PRIV_SEE_OPERS - -2000-12-17 Isomer - * ircd/listener.c: added support for TOS twiddling as a 'feature'. - -2000-12-17 Isomer - * ircd/os_linux.c: add TOS stuffs - - * ircd/listener.c: add TOS stuffs - -2000-12-16 Kevin L. Mitchell - - * ircd/whocmds.c (do_who): use HasPriv to determine whether or not - to indicate a user is an oper - - * ircd/s_user.c: clear privileges setting when deopping; don't - propagate +o unless user has PRIV_PROPAGATE privilege - - * ircd/s_debug.c (debug_serveropts): created debug_serveropts() - function and replaced how the server option string is generated - - * ircd/parse.c: remove conditional on CONFIG_OPERCMDS - - * ircd/m_whois.c (do_whois): use HasPriv to determine whether or - not to indicate the user is an operator - - * ircd/m_who.c: use HasPriv to determine whether or not a user - should be displayed in the list of opers - - * ircd/m_version.c: call debug_serveropts() to get server option - string - - * ircd/m_userip.c (userip_formatter): use HasPriv to determine - whether or not to show oper status - - * ircd/m_userhost.c (userhost_formatter): use HasPriv to determine - whether or not to show oper status - - * ircd/m_restart.c (mo_restart): replace ugly #ifdef conditional - checks with HasPriv check; remove dead code - - * ircd/m_rehash.c (mo_rehash): replace ugly #ifdef conditional - checks with HasPriv check - - * ircd/m_opmode.c (mo_opmode): use HasPriv to check permissions; - use feature_bool to check if disabled - - * ircd/m_oper.c (m_oper): set oper priviliges - - * ircd/m_mode.c (m_mode): replace #ifdef conditional with HasPriv - check - - * ircd/m_kill.c (mo_kill): use HasPriv checks to determine if we - can kill - - * ircd/m_kick.c (m_kick): replace #ifdef conditional with HasPriv - check - - * ircd/m_jupe.c (mo_jupe): rework permissions checking structure; - use feature_bool to check if disabled - - * ircd/m_join.c (m_join): remove BADCHAN conditional; replace - #ifdef conditional with a HasPriv check - - * ircd/m_gline.c (mo_gline): rework permissions checking - structure; use feature_bool to check if any part is disabled - - * ircd/m_die.c: replace ugly #ifdef conditionals with HasPriv - check; remove dead code - - * ircd/m_clearmode.c: use feature_bool() to detect if we're - disabled; use HasPriv to figure out what we're permitted to do; - only allow clearmode on moded channels - - * ircd/ircd_features.c: define various features; use HasPriv to - verify permissions to set/reset - - * ircd/gline.c (gline_add): use HasPriv instead of #ifdef - conditionals - - * ircd/client.c (client_set_privs): function to set an oper's - privileges - - * ircd/channel.c: use HasPriv calls instead of #ifdef conditionals - - * include/whocmds.h: deconditionalize several macros and - substitute appropriate calls to HasPriv() - - * include/s_debug.h: get rid of global serveropts[]; define new - function debug_serveropts() to build that string on the fly - - * include/ircd_features.h: define some features - - * include/client.h: add privs member to struct Connection; define - various priviledges - - * include/channel.h: no longer using IsOperOnLocalChannel; remove - conditional of MAGIC_OPER_OVERRIDE on OPER_WALK_THROUGH_LMODES - - * doc/Configure.help: remove help information for deprecated - options - - * config/config-sh.in: remove certain deprecated options having to - do with what opers can and cannot do--first stage in moving - compile-time constants into the .conf - -2000-12-16 Isomer - * ircd/parse.c: detect if the prefix is missing and try and recover - instead of coring. - -2000-12-15 Kevin L. Mitchell - - * ircd/ircd_log.c: found and fixed some bugs in the debug logging - code that would sometimes result in the log file not being - reopened--which meant that a user could connect and get the - logging output--oops - - * ircd/Makefile.in: run make depend... - - * ircd/s_stats.c: get rid of report_feature_list() - - * ircd/s_err.c: add the 'bad value' error message, shift error - messages over somewhat - - * ircd/s_debug.c (debug_init): call log_debug_init with the - use_tty flag - - * ircd/s_conf.c (read_configuration_file): unmark features before - reading the config file, then reset unmarked features after - reading the config file - - * ircd/m_stats.c: use feature_report() instead of - report_feature_list() - - * ircd/ircd_log.c: fix log_debug_file (bogus assertion); add - special 'mark' flags and use them; add the stuff needed by the - features API - - * ircd/ircd_features.c: rework the features API and add gobs of - comments to try to explain what some of these complex functions - are actually doing - - * include/s_stats.h: get rid of report_feature_list(); use - feature_report() instead - - * include/numeric.h: added a new error message and shifted old - values over some--this is, after all, an alpha - - * include/ircd_log.h: log_debug_init now takes an integer to tell - it if it should be using the tty; added a couple of functions - required by the features API - - * include/ircd_features.h: add an enum and some more functions to - flesh out the feature API--it should now be possible to put all - those compile-time constants in the config file! - - * ircd/send.c: got the direction of the assert incorrect... - - * ircd/send.c: implement the efficiency of flush_connections by - creating a linked list of struct Connection's with queued data; - also get rid of flush_sendq_except and make sure to yank - connections out of the list when their sendQs become empty (notice - the assertion in flush_connections!) - - * ircd/s_bsd.c (close_connection): must yank the Connection out of - the sendq list - - * ircd/list.c (dealloc_connection): must yank the Connection out - of the sendq list - - * ircd/dbuf.c (dbuf_put): call flush_connections instead of the - deprecated flush_sendq_except - - * ircd/client.c: define a couple new helper functions for sendq - threading--this will make the flush_connections function in send.c - considerably more efficient by creating a linked list of - Connections that have queued data to send - - * include/send.h: remove flush_sendq_except, as it's not used - anymore - - * include/client.h: declare a couple new helper functions for the - sendq threading system - -2000-12-14 Kevin L. Mitchell - - * ircd/m_ison.c (m_ison): Apply Diane Bruce's patch to make ISON - parse all arguments - - * ircd/s_debug.c (count_memory): modify to report for clients and - connections, not local clients and remote clients - - * ircd/list.c: fiddle with the client-fiddling functions to take - into account the divorce of struct Connection from struct Client - - * ircd/ircd.c: define a struct Connection for me, initialize it, - and link it into the right place (ewww, globals!) - - * include/client.h: remove CLIENT_{LOCAL,REMOTE}_SIZE; split - struct Client into struct Client and struct Connection; redefine - local-portion accessor macros to go through struct Client to the - struct Connection; define struct Connection accessor macros - -2000-12-13 Kevin L. Mitchell - - * ircd/whowas.c: missed a couple of accesses to a struct Client - - * ircd/uping.c: missed a couple of accesses to a struct Client - - * ircd/send.c: missed a couple of accesses to a struct Client - - * ircd/s_user.c: missed a couple of accesses to a struct Client - - * ircd/s_misc.c: missed a couple of accesses to a struct Client - - * ircd/s_conf.c: missed a couple of accesses to a struct Client - - * ircd/s_bsd.c: missed a couple of accesses to a struct Client - - * ircd/s_auth.c: missed a couple of accesses to a struct Client - - * ircd/res.c: missed a couple of accesses to a struct Client - - * ircd/parse.c: missed a couple of accesses to a struct Client - - * ircd/m_whois.c: use new accessor macros for struct Client - - * ircd/m_who.c: use new accessor macros for struct Client - - * ircd/m_wallchops.c: use new accessor macros for struct Client - - * ircd/m_version.c: use new accessor macros for struct Client - - * ircd/m_userip.c: use new accessor macros for struct Client - - * ircd/m_userhost.c: use new accessor macros for struct Client - - * ircd/m_user.c: use new accessor macros for struct Client - - * ircd/m_uping.c: use new accessor macros for struct Client - - * ircd/m_trace.c: use new accessor macros for struct Client - - * ircd/m_topic.c: use new accessor macros for struct Client - - * ircd/m_time.c: use new accessor macros for struct Client - - * ircd/m_stats.c: use new accessor macros for struct Client - - * ircd/m_squit.c: use new accessor macros for struct Client - - * ircd/m_silence.c: use new accessor macros for struct Client - - * ircd/m_server.c: use new accessor macros for struct Client; - remove dead code - - * ircd/m_rpong.c: use new accessor macros for struct Client - - * ircd/m_rping.c: use new accessor macros for struct Client - - * ircd/m_quit.c: use new accessor macros for struct Client - - * ircd/m_privmsg.c: use new accessor macros for struct Client - - * ircd/m_pong.c: use new accessor macros for struct Client; remove - dead code - - * ircd/m_ping.c: use new accessor macros for struct Client - - * ircd/m_pass.c: use new accessor macros for struct Client - - * ircd/m_part.c: use new accessor macros for struct Client - - * ircd/m_oper.c: use new accessor macros for struct Client - - * ircd/m_notice.c: use new accessor macros for struct Client - - * ircd/m_nick.c: use new accessor macros for struct Client - - * ircd/m_names.c: use new accessor macros for struct Client - - * ircd/m_mode.c: use new accessor macros for struct Client - - * ircd/m_map.c: use new accessor macros for struct Client - - * ircd/m_list.c: use new accessor macros for struct Client - - * ircd/m_links.c: use new accessor macros for struct Client; - remove some dead code - - * ircd/m_kill.c: use new accessor macros for struct Client; remove - some dead code - - * ircd/m_kick.c: use new accessor macros for struct Client - - * ircd/m_join.c: use new accessor macros for struct Client; remove - some dead code - - * ircd/m_ison.c: use new accessor macros for struct Client - - * ircd/m_invite.c: use new accessor macros for struct Client - - * ircd/m_info.c: use new accessor macros for struct Client - - * ircd/m_gline.c: use new accessor macros for struct Client - - * ircd/m_error.c: use new accessor macros for struct Client - - * ircd/m_create.c: use new accessor macros for struct Client - - * ircd/m_connect.c: use new accessor macros for struct Client; - removed some dead code - - * ircd/m_burst.c: use new accessor macros for struct Client - - * ircd/m_away.c: use new accessor macros for struct Client - - * ircd/m_admin.c: use new accessor macros for struct Client - - * ircd/hash.c: missed a couple of accesses to a struct Client - - * ircd/gline.c: missed a couple of accesses to a struct Client - - * ircd/crule.c: missed a couple of accesses to a struct Client - - * ircd/class.c: missed an access to a struct Client - - * ircd/channel.c: missed a couple of accesses to a struct Client - - * ircd/IPcheck.c: missed an access to a struct Client - - * include/querycmds.h: fix a couple of stats macros to use - structure accessor macros - - * include/client.h: change structure member names to highlight any - places in the code I've missed - -2000-12-12 Kevin L. Mitchell - - * ircd/whowas.c: use new struct Client accessor macros - - * ircd/whocmds.c: use new struct Client accessor macros - - * ircd/send.c: use new struct Client accessor macros - - * ircd/s_user.c: use new struct Client accessor macros; removed - some dead code - - * ircd/s_serv.c: use new struct Client accessor macros; removed - some dead code - - * ircd/s_numeric.c: use new struct Client accessor macros - - * ircd/s_misc.c: use new struct Client accessor macros - - * ircd/s_debug.c: use new struct Client accessor macros - - * ircd/s_conf.c: use new struct Client accessor macros - - * ircd/s_bsd.c: use new struct Client accessor macros - - * ircd/s_auth.c: use new struct Client accessor macros - - * ircd/parse.c: use new struct Client accessor macros - - * ircd/packet.c: use new struct Client accessor macros - - * ircd/numnicks.c: use new struct Client accessor macros - - * ircd/motd.c: use new struct Client accessor macros - - * ircd/listener.c: use new struct Client accessor macros - - * ircd/list.c: use new struct Client accessor macros - - * ircd/jupe.c: use new struct Client accessor macros - - * ircd/ircd_snprintf.c: use new struct Client accessor macros - - * ircd/ircd_reply.c: use new struct Client accessor macros - - * ircd/ircd_relay.c: use new struct Client accessor macros - - * ircd/ircd.c: use new struct Client accessor macros - - * ircd/gline.c: catch some instances of me. I missed - previously - - * ircd/client.c: use cli_ instead of con_ - - * ircd/class.c: use cli_ instead of con_ - - * ircd/channel.c: use cli_ instead of con_ - - * ircd/IPcheck.c: use cli_ instead of con_; catch some instances - of me. I missed previously - - * include/client.h: use cli_ instead of con_...seemed like a good - idea at the time *shrug* - -2000-12-11 Kevin L. Mitchell - - * ircd/hash.c: use struct Client accessor macros - - * ircd/gline.c: use struct Client accessor macros - - * ircd/crule.c: use struct Client accessor macros - - * ircd/client.c: use struct Client accessor macros; remove some - dead code - - * ircd/class.c: use struct Client accessor macros - - * ircd/channel.c: use struct Client accessor macros; remove some - dead code - - * ircd/IPcheck.c: use struct Client accessor macros - - * include/numnicks.h: use struct Client accessor macros - - * include/client.h: first step to divorcing struct Client and - struct Connection--define accessor macros and use them - - * ircd/gline.c: When Uworld removed Uworld-set G-lines, only the - uplink would remove them. This is because the removal protocol - message wasn't being sent to the uplinks. This is fixed by fixing - propagate_gline() to send the proper number of arguments depending - on whether or not we're adding or deleting the Uworld gline, and - by having gline_deactivate() make sure to turn off the active bit - and call propagate_gline() if it's a Uworld gline - -2000-12-10 Kevin L. Mitchell - - * ircd/os_generic.c: make sure IOV_MAX gets defined, just in case - - * ircd/os_bsd.c: apparently BSD doesn't have IOV_MAX defined - anywhere intelligent... - -2000-12-09 Kevin L. Mitchell - - * ircd/send.c (send_queued): call deliver_it with appropriate - arguments - - * ircd/s_serv.c: reorder a couple of headers--cosmetic - - * ircd/s_bsd.c (deliver_it): make deliver_it work with a struct - MsgQ - - * ircd/os_solaris.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_linux.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_generic.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_bsd.c (os_sendv_nonb): function for calling writev with - appropriate iovec - - * ircd/msgq.c (msgq_mapiov): add a len_p argument for totalling up - exactly how much we're trying to write out to the fd - - * include/s_bsd.h: make deliver_it take a struct MsgQ - - * include/msgq.h: add a len_p argument to msgq_mapiov to help - detect short writes that indicate possible socket blocking - - * include/ircd_osdep.h: declare os_sendv_nonb() - - * ircd/channel.c (modebuf_mode): don't add empty modes... - -2000-12-08 Kevin L. Mitchell - - * include/send.h: add prio argument to send_buffer to select - between normal and priority queues - - * ircd/s_user.c (send_user_info): add prio argument to send_buffer - call - - * ircd/m_ison.c (m_ison): add prio argument to send_buffer call - - * ircd/ircd_reply.c (send_reply): add prio argument to send_buffer - call - - * ircd/channel.c (send_channel_modes): add prio argument to - send_buffer call - - * ircd/send.c (send_buffer): add a prio argument to select the - priority queue; update send.c functions to use it - - * ircd/msgq.c (msgq_add): remove msgq_prio; fold msgq_link and - msgq_add; add a prio argument to msgq_add to select the priority - queue - - * include/msgq.h: remove msgq_prio; add a prio argument to - msgq_add - - * ircd/send.c: remove sendbuf; remove GODMODE code; switch to - using msgq functions instead of dbuf functions; remove old, dead - sendto_* functions; redo send_buffer to take a struct MsgBuf; - rework sendcmdto_* functions to make use of the new struct MsgBuf - - * ircd/s_user.c: remove hunt_server; restructure send_user_info to - make appropriate use of struct MsgBuf - - * ircd/s_debug.c (count_memory): count memory used by the MsgQ - system and report it - - * ircd/s_conf.c (read_configuration_file): use - sendto_opmask_butone instead of the now dead sendto_op_mask - - * ircd/s_bsd.c: switch to using appropriate MsgQLength and other - calls on sendQ - - * ircd/parse.c (parse_server): get rid of a piece of GODMODE code - - * ircd/msgq.c: add msgq_append and msgq_bufleft; fix a bug in - msgq_clean - - * ircd/m_version.c: fix spelling in comments marking dead code - - * ircd/m_userip.c (userip_formatter): restructure to make use of - struct MsgBuf - - * ircd/m_userhost.c (userhost_formatter): restructure to make use - of struct MsgBuf - - * ircd/m_stats.c: use MsgQLength on a sendQ - - * ircd/m_settime.c: use MsgQLength instead of DBufLength on a - sendQ; mark a piece of dead code - - * ircd/m_names.c: use send_reply instead of sendto_one - - * ircd/m_mode.c: use new mode; remove old dead code - - * ircd/m_ison.c (m_ison): restructure to make use of struct MsgBuf - - * ircd/m_burst.c: use BUFSIZE instead of IRC_BUFSIZE; remove old - dead code - - * ircd/listener.c (accept_connection): use sendto_opmask_butone - instead of sendto_op_mask - - * ircd/list.c (free_client): use MsgQClear to clear sendQ - - * ircd/ircd_reply.c: remove send_error_to_client; restructure - send_reply to make use of struct MsgBuf - - * ircd/dbuf.c (dbuf_put): remove argument to flush_sendq_except, - since its no longer used (at least currently) - - * ircd/channel.c: restructure send_channel_modes to make use of - struct MsgBuf; remove set_mode, add_token_to_sendbuf, cancel_mode, - and send_hack_notice; use BUFSIZE instead of IRC_BUFSIZE - - * ircd/Makefile.in: add msgq.c to list of sources; run make depend - - * ircd/IPcheck.c: use sendcmdto_one instead of sendto_one - - * include/send.h: send_buffer now takes a struct MsgBuf * instead - of a char *; flush_sendq_except now takes no arguments, as sendq - flushing currently only happens in dbuf.h and sendQ is a struct - MsgQ; remove prototypes for a lot of old sendto_* functions that - aren't used anymore; remove sendbuf and IRC_BUFSIZE--the former is - no longer needed, and the latter is identical to BUFSIZE in - ircd_defs.h - - * include/s_user.h: make InfoFormatter take a struct MsgBuf* - instead of a char *; also make it return void, instead of char * - - * include/msgq.h: add msgq_append and msgq_bufleft functions - - * include/client.h: use a struct MsgQ instead of a struct DBuf for - sendq - - * doc/Configure.help: Remove help for compile-time options that - have gone away - - * config/config-sh.in: remove CONFIG_NEWMODE - - * ircd/m_server.c (mr_server): don't send server IPs in any server - notices - - * ircd/msgq.c (msgq_vmake): add \r\n to messages - -2000-12-07 Kevin L. Mitchell - - * include/msgq.h: declare the MsgQ API - - * ircd/msgq.c: implementation of new MsgQ system - -2000-12-06 Kevin L. Mitchell - - * ircd/ircd_features.c: #include was supposed to be for - ircd_features.h, not features.h--missed when I had to do a - rename because of namespace collision - -2000-12-05 Greg Sikorski - * ircd/m_topic.c: Added missing braces that caused all remote - topics to be ignored. - -2000-12-04 Kevin L. Mitchell - - * ircd/m_create.c: I'm tired of the exit_client warning :) - (ms_create): discovered that exit_client() was being called with - too few arguments - - * ircd/s_misc.c (exit_client): remove all dependance on - FNAME_USERLOG, since that's now gone; log only to LS_USER - - * ircd/s_debug.c: USE_SYSLOG no longer means anything - - * ircd/m_oper.c (m_oper): no longer log to LS_OPERLOG--we already - log to LS_OPER - - * ircd/m_kill.c: no longer conditionalize on SYSLOG_KILL - - * ircd/ircd_log.c: remove LS_OPERLOG, LS_USERLOG - - * include/ircd_log.h: remove LS_OPERLOG, LS_USERLOG--they serve - the same purpose as LS_USER and LS_OPER - - * config/config-sh.in: remove no longer relevant log config - variables - - * ircd/uping.c (uping_init): use log_write instead of ircd_log - - * ircd/s_misc.c (exit_client): use log_write instead of ircd_log - - * ircd/s_conf.c: use log_write instead of ircd_log - - * ircd/s_bsd.c (report_error): use log_write instead of ircd_log - - * ircd/s_auth.c (timeout_auth_queries): use log_write instead of - ircd_log - - * ircd/res.c (send_res_msg): use log_write instead of ircd_log - - * ircd/m_who.c: use log_write instead of write_log; no longer - conditionalize on WPATH; mark dead ircd_log calls - - * ircd/m_uping.c: mark dead ircd_log call - - * ircd/m_server.c (mr_server): use log_write instead of ircd_log - - * ircd/m_restart.c: use log_write instead of ircd_log; mark dead - ircd_log calls - - * ircd/m_rehash.c (mo_rehash): use log_write instead of ircd_log - - * ircd/m_oper.c: use log_write instead of ircd_log; no longer - conditionalize on FNAME_OPERLOG; mark dead ircd_log calls - - * ircd/m_kill.c: mark dead ircd_log calls - - * ircd/m_connect.c: use log_write instead of ircd_log; mark dead - ircd_log - - * ircd/m_clearmode.c: use log_write instead of write_log; no - longer conditionalize on OPATH - - * ircd/jupe.c: use log_write instead of write_log; no longer - conditionalize on JPATH - - * ircd/ircd_log.c: add USER subsystem; remove ircd_log() compat - function; fix a couple of bugs - - * ircd/ircd_alloc.c: fixed a comment - - * ircd/ircd.c: use log_write instead of ircd_log; fold server - notice generation in a couple of cases - - * ircd/gline.c: use log_write instead of write_log; no longer - conditionalize on GPATH - - * ircd/channel.c (modebuf_flush_int): use log_write instead of - write_log; no longer conditionalize on OPATH - - * ircd/Makefile.in: run make depend, since dependencies have - changed - - * doc/example.conf: add system USER to documentation - - * include/ircd_log.h: add system USER; remove old ircd_log() - declarations - -2000-12-04 Isomer - * ircd/m_names.c: Add NAMES_EON to do_names to say add a - 'end_of_names' reply when done. - * ircd/m_join.c: use NAMES_EON as mentioned above - -2000-12-01 net - - * ircd/motd.c: add a freelist for struct Motds - -2000-11-30 Kevin L. Mitchell - - * ircd/s_stats.c (report_feature_list): report features--only - local opers can see logging configuration, since it doesn't really - mean anything to users - - * ircd/s_err.c: add reply messages for new feature subsystem - - * ircd/s_conf.c: add F lines to .conf - - * ircd/parse.c: add the message descriptions for /set, /reset, and - /get - - * ircd/m_stats.c: add /stats f - - * ircd/m_set.c (mo_set): implement /set - - * ircd/m_reset.c (mo_reset): implement /reset - - * ircd/m_rehash.c: /rehash m now flushes MOTD cache, and /rehash l - reopens log files (for log file rotation) - - * ircd/m_get.c (mo_get): implement /get - - * ircd/ircd_log.c: use int instead of void return value; add - log_report_features() and log_canon(); fix a function that - disappears if DEBUGMODE not #define'd - - * ircd/ircd_features.c: functions to manipulate feature settings - either from the config file or with the new /set, /reset, and /get - commands - - * ircd/Makefile.in: add new .c files, run make depend - - * include/s_stats.h: declare report_feature_list() (/stats f - handler) - - * include/numeric.h: add RPL_STATSFLINE, RPL_FEATURE, - ERR_NOFEATURE, ERR_BADLOGTYPE, ERR_BADLOGSYS, and ERR_BADLOGVALUE - reply numerics - - * include/msg.h: add defines for SET, RESET, and GET - - * include/ircd_log.h: add a function to canonicalize subsystem - names; change some void return values to int - - * include/ircd_features.h: new features subsystem handles all the - manipulation of special features, like log files - - * include/handlers.h: declare new mo_{s,res,g}et message handlers - for fiddling with features run-time - - * include/client.h (SNO_DEFAULT): don't set SNO_DEBUG by default; - seemed like a good idea at the time... - - * doc/example.conf: document new F lines - -2000-11-29 Kevin L. Mitchell - - * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of - new logging functions, which have special support for the debug - log; added loop detection to vdebug(), so that I can - sendto_opmask_butone() from log_vwrite() without incurring another - call to vdebug() - - * ircd/s_conf.c (rehash): call log_reopen() from rehash routine; - this allows log file rotations - - * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill() - - * ircd/ircd_log.c: much more work fleshing out the interface; - removed old interface; included backwards-compat ircd_log() - function that logs to subsystem LS_OLDLOG - - * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen() - functions - - * include/ircd_log.h: include stdarg.h for va_list; move ordering - warning to top of file; fill out LogSys enum; declare new - log_debug_init(), log_vwrite(), log_write_kill(), and - log_[sg]et_*() functions; add flags argument to log_write(); - defined flags to inhibit various logging actions - - * include/client.h: added support for new SNO_DEBUG, enabled only - if DEBUGMODE is defined - -2000-11-28 Kevin L. Mitchell - - * ircd/ircd_log.c: make sure the various LOG_* constants are - defined (probably not needed, since #include isn't - conditional); various static data needed for the new logging - functions; definitions of new logging functions - - * include/ircd_log.h: new LogSys enum, declarations for part of - new logging API - - * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally, - which was of course stupid; switched to using switch/case in - initialization in motd_create(); zero the MotdList.other pointer - from motd_clear() - - * ircd/ircd.c (main): motd_init() has to come before init_conf(), - or we overwrite init_conf()'s hard work with respect to T-lines - -2000-11-27 Kevin L. Mitchell - - * ircd/s_stats.c: comment out report_motd_list and include a - reference to motd_report() - - * ircd/s_conf.c: rip out the old MOTD manipulation functions; call - motd_add() from the conf parser; call motd_clear() from the rehash - routine; remove the no longer needed memory clearing and reloading - stuff from the rehash service routine - - * ircd/motd.c: loads new API, including static internal functions - to do allocation/deallocation, etc. - - * ircd/m_stats.c: use new motd_report() instead of - report_motd_list() - - * ircd/m_motd.c: use new syntax for motd_send() - - * ircd/ircd.c: use new motd_init() function - - * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in - Makefile.(in); also ran make depend - - * include/motd.h: don't need config.h, but now do need time.h; - define new structures and constants; redefine old API and define - new functions - -2000-11-22 Kevin L. Mitchell - - * ircd/s_user.c (register_user): use motd_signon() instead of - calling m_motd; much cleaner this way - - * ircd/motd.c: write the new motd_* stuff to make MOTD handling - less of a crock - - * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_* - functions - - * include/motd.h: define new MOTD API stuff - -2000-11-20 Kevin L. Mitchell - - * ircd/ircd_reply.c (protocol_violation): rewrite - protocol_violation so it'll actually work - - oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get - the client's real name in there. - - * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr) - resulted in core dumps if NODEFAULTMOTD is defined, because m_motd - gets called from register_user with a NULL sptr. This is probably - a design problem, but this bandaid will do for now... - -2000-11-19 Isomer - * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us - to problems in the server<->server protocol. - - * ircd/m_connect.c: allow remote connects with a port of '0' - meaning to use the port in the config file. - - * ircd/m_create.c: Enable hacking protection, lets see how far we - get. - - * ircd/m_error.c: The RFC says never accept ERROR from unreg'd - clients, so we don't any more. - - * ircd/m_kill.c: The kill path is now made up of numnicks of servers, - and the user@host is displayed of the victim. - - * ircd/m_map.c: reloaded 'dump_map'. - - * ircd/m_trace.c: allow per class T: - - * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net. - -2000-11-17 Isomer - - * ircd/m_topic.c: Fixed bug where we'd only send to clients topics - that were the *same* instead of different. Oh the embarrasment! - - * ircd/IPcheck.c: Merged net's fix. - -2000-11-02 Kevin L. Mitchell - - * ircd/m_whois.c: remove compiler warning by adding a newline to - end of file - - * ircd/m_names.c: moved the flags up to s_user.h - - * ircd/m_join.c: call do_names instead of m_names; restructure - ms_join to never transmute a JOIN into a CREATE, but use the TS in - the JOIN (if present) to timestamp the channel - - * ircd/channel.c: send JOINs individually, instead of grouping - them, so that we can send the channel's creation time - - * include/s_user.h: declare do_names() - -2000-10-30 Isomer - * ircd/m_oper.c: Fixed warning - -2000-10-30 Isomer - * ircd/m_oper.c: Fixed over agressive cut and no paste - -2000-10-30 Isomer - - * ircd/m_topic.c: Restructured, fixed bug where topics on local - channels are propergated (I forget who pointed this out to me, but - thanks anyway). Also to save bandwidth don't send the topic to - users if the topic is already the same on the server (but still - propergate to other servers). X/W's "autotopic" feature must - chew a lot of bandwidth, hopefully this will help reduce this. - - * doc/rfc1459.rfc: Updated documentation on /topic. - - * ircd/listener.c: snotice warnings about failed accept()'s - potentially warning admins that they're running out of fd's. - - * ircd/stats.c, ircd/class.c: Removed /stats v, added number of - people in a class in /stats y - - * ircd/m_create.c: Checks for timewarp hacking and squit's - evil servers. (currently disabled) - - -2000-10-30 net - - * ircd/gline.c: Fixed various bugs Isomer left behind. - -2000-10-26 Kevin L. Mitchell - - * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed - channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME - -2000-10-24 Kevin L. Mitchell - - * ircd/channel.c: ok, now last mode rules; mode +ps will always - result in +s (and won't send a mode if the channel is already +s); - mode +sp will always result in +p; -n+n on a +n channel results in - no mode change; -n+n on a -n channel results in a +n mode change; - etc. - -2000-10-23 Kevin L. Mitchell - - * ircd/channel.c: add "add" and "del" elements to ParseState to - avoid not-too-pretty -p+s when +s is sufficient; fix a bug in - mode_parse_limit that caused it to clear all channel modes - prematurely; restructure mode_parse_mode to avoid calling - modebuf_mode too early (ties in with first mentioned change); - better logic for +p/+s mutual exclusivity; initialize "add" and - "del" elements in mode_parse; send simple modes down to - modebuf_mode after the loop in mode_parse - -2000-09-28 Greg Sikorski - * ircd/m_names.c: Fixed a non-lethal logic error that - triggers an assert() in find_member_link while debugging. - (Spotted by Maniac-). -2000-09-19 Thomas Helvey - * ircd/s_conf.c: move K:lines to their own list and data - structures, add supporting code. - * ircd/m_stats.c: cleanup stats processing a bit move - kline listing code to a new function, haven't figured - out where it goes yet tho' - * ircd/s_stats.c: added K:line bulk lister - * include/s_conf.h: added new DenyConf struct - * *[ch]: fixeup code that depended on changes - -2000-09-17 Thomas Helvey - * ircd/class.c: encapsulate class list - * include/class.h: clean up classes - * * fixup code that depended on changes - -2000-09-17 Thomas Helvey - * ircd/s_conf.c: add me to local conf - * include/s_conf.h: move CONF_ME macro to chkconf.c - * ircd/s_bsd.c: cleanup initialization, allow virtual host - to be changed by rehash - -2000-09-17 Thomas Helvey - * include/class.h: add missing prototype - * ircd/class.c: make argument to get_conf_class const - -2000-09-17 Thomas Helvey - * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup - merge conflicts. - * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup - merge conflicts - -2000-09-16 Thomas Helvey - * ircd/s_conf.c: add code for server struct - * ircd/client.c: copy of class.c sort of, new file for client - specific operations, will move things here as appropriate, - currently only one function is exported from here. - * ircd/*.c: general logic cleanups, convert negatives to - positives in places. - -2000-09-16 Thomas Helvey - * ircd/s_conf.c: add code for new crule data structs, strip quotes - * ircd/crule.c: clean up scary casting a bit, type safety stuff - * include/s_conf.h: add CRuleConf struct and support, remove - unused constants - * include/crule.h: type safety cleanups - * ircd/*.c: fixup code that depended on stuff I changed - -2000-09-15 Thomas Helvey - * ircd/s_conf.c: start adding code for new conf data structs, changed - listeners, admin line, motd lines, class lines. Move validate_hostent - to resolver. General mayhem. - * include/s_conf.h: new data structs and accessors - * ircd/res.c: move validate_hostent here, rewrite, use regular - expression for validation. - * doc/example.conf: update docs for port - -2000-09-14 Thomas Helvey - * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break - up conf_init into managable chunks. - * ircd/listener.c (set_listener_mask): fix logic bug core dump. - * include/s_conf.h: add new data struct for local info (unwinding the mess). - -2000-09-13 Thomas Helvey - * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS - local clients. - * ircd/list.c: put SLinks in free lists - * ircd/channel.c: put Memberships in free lists - * ircd/ircd.c: rearrange initializations a bit in main - Note: With these changes, ircd NEVER frees Clients, SLinks or - Memberships. It will also rarely need to allocate new - ones during net bursts and other disruptions. This should - cut down on memory fragmentation a bit as well. - -2000-08-30 Kevin L. Mitchell - - * ircd/m_names.c (do_names): pull-up from do_names fix in - u2.10.10.pl11 - -2000-07-15 Perry Lorier - * various: IP only k:'s and G:'s now do bit tests instead of two(!) - match()'s. Major Major cpu savings. Also speed up the - other case slightly. As a side effect you can now - k/Gline *@10.0.0.0/8. I'll do bans tomorrow, it's nearing - 3am. - -2000-07-15 Perry Lorier - * various: Fixed warnings after compiling on an alpha. -2000-07-09 Perry Lorier - * doc/ircd.8: Applied grammitical changes by Liandrin, applied - changes suggested by various other people. - * ircd/IPcheck.c: More bug fixes. Current problem appears to be - that it gets a corrupt entry somehow. -2000-07-09 Greg Sikorski - * ircd/m_oper.c: Clean up compiler warning. - -2000-07-08 Perry Lorier - * doc/ircd.8: Updated the documentation, it was slightly out of date - being updated around 1989. - * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed. - fixed a few minor glitches. - * doc/rfc1459.unet: Updated. - * ircd/IPcheck.c: Fixed more bugs. - * ircd/s_bsd.c: We now keep track of servers we've conected. - -2000-07-02 Perry Lorier - * ircd/s_misc.c: Fixed remote IPcheck bug. Ok, I'm a moron, so sue - me. Thanks to Hektik, thanks thanks thanks thanks - thanks thanks thanks thanks thank thanks thank thanks - -2000-07-01 Perry Lorier - * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s. - * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings. - -2000-06-22 Perry Lorier - * ircd/IPcheck.c: Large chunks redone. - * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported, - single AND double digit limits are allowed now. - * misc other: Changes to IPcheck. - -2000-06-30 Perry Lorier - * ircd/ircd.c: Fix command line parameter bugs. - -2000-06-30 Perry Lorier - * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY - * ircd/m_nick.c: Tidied things up. - -2000-06-12 Joseph Bongaarts - * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v - -2000-05-29 Perry Lorier - * ircd/m_stats.c: add /stats v to do only the last part of the /trace - * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do - you think it'll get bored and fix itself? - -2000-06-09 Greg Sikorski - - * ircd/m_names.c: Clean up compiler warnings. - -2000-06-09 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_client): don't send warning if - there's not enough arguments for a +/-o/v; means the habit of - doing "/mode #channel +oooooo bob" doesn't result in a bunch of - error messages - -2000-06-04 Greg Sikorski - - * ircd/m_names.c: Re-factor code to remove unneccessary - GlobalChannelList iteration every time someone joins a channel. - -2000-06-02 Kevin L. Mitchell - - * ircd/s_user.c: add struct Gline * argument to register_user; - look up global glines and repropagate them if necessary; send - acknowledgement of gline to remote servers when registering users - - * ircd/s_serv.c (server_estab): don't send acknowledgement of - local glines to remote servers; do send gline acknowledgement of - bursted users - - * ircd/m_user.c (m_user): pass new struct Gline * argument to - register_user - - * ircd/m_pong.c: pass new struct Gline * argument to register_user - - * ircd/m_nick.c (ms_nick): document protocol change - - * ircd/gline.c: support GLINE_LASTMOD - - * include/s_user.h: add struct Gline * argument to register_user - - * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods - - * ircd/s_conf.c (find_kill): add unsigned int argument to - gline_lookup() - - * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global - glines; add unsigned int argument to gline_lookup() - - * include/gline.h: add GLINE_GLOBAL flag; add unsigned int - argument to gline_lookup() - - * ircd/m_server.c: Resend jupe only when there is no % - parameter, or when it falls out of bounds: see comments prior to - call to jupe_resend(); call server_estab with struct Jupe - parameter, so that we place the appropriate % in the - appropriate place. - - * ircd/s_serv.c (server_estab): send % for introduced - server, as well as for servers when we're sending the BURST - - * include/s_serv.h: add a struct Jupe * to the arguments for - server_estab() so that we can send the appropriate lastmod - parameter - - * ircd/m_gline.c (ms_gline): actually, this should be the - slightest bit more efficient... - - * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest - bit more efficient... - - * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends - during netburst - - * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during - netburst - - * ircd/channel.c (joinbuf_join): really remove user from local - channels - -2000-05-29 Perry Lorier - * ircd/m_names.c: Removed redundant space. - * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line. - -2000-05-18 Kevin L. Mitchell - - * ircd/m_burst.c (ms_burst): er...that should have been a ",", not - a " " - -2000-05-04 Kevin L. Mitchell - - * ircd/channel.c: replace bogus assertions with returns, which is - logically correct; only wipe out limit/key if they were originally - set in the first place; remove user from channel when doing a - PARTALL; only send MODE +o for user CREATEing channel if user is - not MyUser--CREATE will only be used if the channel did not - originally exist, therefore we can assume no one local is on the - channel anyway, and we don't exactly need for the user to see an - explicit +o for themselves - - * doc/readme.gline: describe the syntax of the GLINE command - - * doc/readme.jupe: update to reflect a couple of changes to JUPE - - * ircd/gline.c: don't propagate local changes - - * ircd/jupe.c: don't propagate local changes - - * ircd/m_gline.c (mo_gline): force local flag when deactivating - glines with 0 lastmod - - * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time - are now removed instead of being deactivated - - * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE * - -" be accepted - - * ircd/channel.c (send_channel_modes): deal with one of the last - vestiges of sendbuf - - * ircd/m_burst.c (ms_burst): debugged ban processing; removed - debugging hooks - - * ircd/channel.c (modebuf_extract): remove debugging - sendto_opmask_butone calls - -2000-05-03 Kevin L. Mitchell - - * ircd/channel.c: support a couple of new flags to support using - mode_parse; fix some bugs with 0 struct ModeBuf *; implementation - of modebuf_extract to extract added flags for use by ms_burst - - * include/channel.h: a couple of new flags to support using - mode_parse inside ms_burst - - * ircd/m_burst.c (ms_burst): brand new implementation of BURST - - * ircd/m_endburst.c: add loop to processing of end_of_burst to - free empty channels after the BURST is over. - - * ircd/m_server.c: convert to use new send.c functions--I wanted - to rewrite it from scratch, but the logic's pretty complex; I may - still rewrite it, though... - -2000-05-02 Thomas Helvey - - * ircd/ircd.c: fix broken header include ordering - -2000-05-02 Thomas Helvey - - * ircd/IPcheck.c: cleanups for ZenShadow's cleanups - review emailed privately - - * include/IPcheck.h: removed unneeded include - -2000-05-02 Kevin L. Mitchell - - * ircd/s_user.c (hunt_server): throw in a comment so I know what - the sendto_one is for - - * include/querycmds.h (Count_unknownbecomesclient): convert to - sendto_opmask_butone - - * ircd/send.c: start removing dead code - - * include/send.h: start removing dead code - - * ircd/m_rping.c: convert to sendcmdto_one / send_reply / - hunt_server_cmd - - * ircd/m_rpong.c: convert to sendcmdto_one / send_reply - -2000-05-01 Kevin L. Mitchell - - * ircd/m_stats.c: convert to sendcmdto_one / send_reply - - * ircd/m_kick.c: Completely reimplement m_kick - - * ircd/channel.c: send_user_joins removed; it was dead code, - anyway... - -2000-05-01 Perry Lorier - * ircd/m_invite.c: Fix for the rest of m_invite.c, and again. - * ircd/channels.c: My fix for the part problem. Untested, probably - won't work. Can't be much worse than the current problem. - it'll either work or core, take your pick. - - -2000-04-30 Perry Lorier - * config/config-sh.in: Fix for CONNEXIT - * ircd/s_{user,misc}.c: Fix for CONNEXIT - * ircd/m_invite.c: Fix for incorrectly numnickified invite. - (Kev: Want to come talk to me about this?) - -2000-04-30 Steven M. Doyle - * ircd/ircd.c - - general cleanups and readability enhancements - - rewrite of setuid/chroot code. - - server will no longer run as root - - -DPROFIL compile option removed - - Fixed IPcheck API calls - - * config/config-sh.in - - Fixed up chroot compile options - - Added options for debug and profile compiles - - * config/gen.ircd.Makefile - - Support for new debug/profile options - - * ircd/Makefile.in - - Support for new debug/profile options - - * ircd/ircd_signal.c - - Removed -DPROFIL - - * include/IPcheck.h - - Removed old API prototypes, added new ones - - * ircd/IPcheck.c - - Readability cleanups (well, I -think-...) - - Changed IPRegistryEntry.last_connect to a time_t. The previously - used unsigned short was probably causing interesting things after - a client had been connected longer than about 65,535 seconds... - - Removed old API functions. - - * ircd/whocmds.c - - Removed IPcheck.h include - - * Additionally modified IPcheck API calls in: - - ircd/m_nick.c - - ircd/m_auth.c - - ircd/s_bsd.c - - ircd/s_conf.c - - ircd/s_misc.c - - ircd/s_serv.c - - ircd/s_user.c - - -2000-04-30 Perry Lorier - * ircd/s_bsd.c: Sigh. :) - * ircd/m_mode.c: fix for modeless channels by poptix. - -2000-04-29 Kevin L. Mitchell - - * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf - - * ircd/channel.c (clean_channelname): make clean_channelname also - truncate long channel names - -2000-04-28 Kevin L. Mitchell - - * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf - - * ircd/channel.c: implemented joinbuf_init, joinbuf_join, - joinbuf_flush - - * include/channel.h: definitions and declarations for the struct - JoinBuf abstraction - -2000-04-29 Perry Lorier - * ircd/s_bsd.c: Ok, so I thought I compiled and tested this... - -2000-04-29 Perry Lorier - * ircd/s_bsd.c: Add debugging code to IPcheck - -2000-04-28 Kevin L. Mitchell - - * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT - - * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of - RPL_EXPLICIT - - * ircd/m_userhost.c (m_userhost): add a dead code comment - - * ircd/m_desynch.c: forgot one... - - * ircd/m_rehash.c (mo_rehash): er, duplicates :) - - * ircd/m_proto.c (proto_send_supported): just change a comment so - it doesn't show up in my scans - - * ircd/ircd_reply.c (send_reply): fix a slight bug... - - * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions, - kinda hackish... - - * ircd/parse.c (parse_server): argument wrangling to make - processing in do_numeric a little easier to deal with - - * ircd/s_serv.c (server_estab): SERVER should come from - acptr->serv->up, not &me - - * ircd/m_lusers.c: accidentally left out sptr for a %C - - * ircd/send.c: hack to support doing wallchops... - - * ircd/m_whowas.c: convert to new send functions - - * ircd/m_whois.c: convert to new send functions - - * ircd/m_who.c: convert to new send functions - - * ircd/m_wallops.c: convert to new send functions - - * ircd/m_wallchops.c: convert to new send functions - - * ircd/m_version.c: convert to new send functions - - * ircd/m_userip.c: convert to new send functions - - * ircd/m_userhost.c: convert to new send functions - - * ircd/m_uping.c: convert to new send functions - - * ircd/m_trace.c: convert to new send functions - - * ircd/m_topic.c: convert to new send functions - - * ircd/m_time.c: convert to new send functions - - * ircd/m_squit.c: convert to new send functions - - * ircd/m_silence.c: convert to new send functions - - * ircd/m_settime.c: convert to new send functions - - * ircd/m_restart.c: convert to new send functions - - * ircd/m_rehash.c: convert to new send functions - - * ircd/m_privmsg.c: convert to new send functions - - * ircd/m_pong.c: convert to new send functions - - * ircd/m_ping.c: convert to new send functions - - * ircd/m_pass.c: convert to new send functions - - * ircd/m_opmode.c: convert to new send functions - - * ircd/m_oper.c: convert to new send functions - - * ircd/m_notice.c: convert to new send functions - - * ircd/m_nick.c: convert to new send functions - - * ircd/m_names.c: convert to new send functions - - * ircd/m_motd.c: convert to new send functions - - * ircd/m_mode.c: convert to new send functions - - * ircd/m_map.c: convert to new send functions - - * ircd/m_lusers.c: convert to new send functions - - * ircd/m_list.c: convert to new send functions - - * ircd/m_links.c: convert to new send functions - - * ircd/m_kill.c: convert to new send functions - - * ircd/m_jupe.c: convert to new send functions - - * ircd/m_invite.c: convert to new send functions - - * ircd/m_info.c: convert to new send functions - - * ircd/m_help.c: convert to new send functions - - * ircd/m_gline.c: convert to new send functions - - * ircd/m_error.c: convert to new send functions - - * ircd/m_endburst.c: convert to new send functions - - * ircd/m_die.c: convert to new send functions - - * ircd/m_destruct.c: convert to new send functions - - * ircd/m_defaults.c: convert to new send functions - - * ircd/m_connect.c: convert to new send functions - -2000-04-28 Perry Lorier - * RELEASE.NOTES: Describe a few more undocumented features. - * config/config-sh.in: change the default paths for logging - and the recommended number of channels. - * include/supported.h: Rearrange slightly, added CHANTYPE's - -2000-04-27 Kevin L. Mitchell - - * ircd/m_close.c: convert to send_reply - - * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone - - * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone - - * ircd/m_admin.c: convert to send_reply and hunt_server_cmd - - * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement - that takes cmd and tok arguments, etc. NOTE: THIS IMPLEMENTATION - HAS A MAJOR HACK!!! The whole hunt_server architecture should be - carefully rethought... - - * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd - - * include/s_user.h: hunt_server_cmd -- replacement for hunt_server - - * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by - numeric nick; therefore, we have to use the server name - - * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick - - * ircd/send.c: fix minor bugs - - * ircd/s_user.c (check_target_limit): mark dead code so I filter - it when I grep - - * ircd/s_serv.c (exit_new_server): mark dead code so I filter it - when I grep - - * ircd/parse.c: mark dead code so I filter it when I grep - - * ircd/map.c: mark dead code so I filter it when I grep - - * ircd/ircd.c: mark dead code so I filter it when I grep - - * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply - functions - - * ircd/channel.c: mark dead code so I filter it when I grep - - * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str; - hope I'm not stepping on toes... - - * ircd/s_conf.c: more sendto_opmask_butone / send_reply - conversions; use ircd_snprintf in a couple of cases to negate the - possibility of buffer overflow - -2000-04-26 Kevin L. Mitchell - - * ircd/channel.c: convert as much as possible to new send - semantics - - * ircd/send.c (sendcmdto_common_channels): fix a subtle bug -- - test member->user->from->fd, not from->fd - - * ircd/gline.c (gline_add): go ahead and add badchans; we just - won't look for them in m_gline; this way, they always work... - - * ircd/jupe.c: use ircd_vsnprintf conversion specifiers - - * ircd/gline.c: since write_log now uses ircd_vsnprintf, use - ircd_vsnprintf conversion specifiers - - * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so - I have my conversion specifiers - - * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP - - * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to - local users - - * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a - little less brain-dead - - * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply - - * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for - RPL_STATSDEBUG - - * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for - RPL_STATSDEBUG - - * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT - for RPL_STATSDEBUG - - * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING - - * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING - - * ircd/s_user.c (register_user): use RPL_EXPLICIT for - ERR_INVALIDUSERNAME - - * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT - - * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark - a numeric as needing to use an explicit pattern, which will be the - first argument in the variable argument list - - * ircd/s_user.c: use sendrawto_one instead of sendto_one to send - non-prefixed nospoof PING - - * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send - non-prefixed SERVER login - - * ircd/ircd.c (check_pings): fix last sendto_one calls (except for - a numeric usage further up) - - * include/send.h: declare sendrawto_one - - * ircd/send.c (sendrawto_one): new function to use ONLY for - non-prefixed commands, like PING to client, or PASS/SERVER on - server registration - -2000-04-25 Kevin L. Mitchell - - * ircd/ircd_snprintf.c (doprintf): implement %H for possible - future expansion (channel numerics?) - - * include/ircd_snprintf.h: added documentation to # to explain use - with %C; added documentation for : to explain use with %C; added - documentation for %H for channels - - * ircd/whocmds.c: use send_reply - - * ircd/userload.c: use sendcmdto_one - - * ircd/uping.c: use sendcmdto_one - - * ircd/send.c: use new flags to %C format string; ':' prefixes - client name with a colon for local connects, '#' uses - nick!user@host form for local connects - - * ircd/s_user.c: use send_reply, sendto_opmask_butone, - sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone - - * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone - - * ircd/s_bsd.c: use sendto_opmask_butone, send_reply, - sendcmdto_one - - * ircd/s_auth.c: use sendto_opmask_butone - - * ircd/res.c: use sendcmdto_one - - * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some - debugging assertions - -2000-04-24 Kevin L. Mitchell - - * ircd/support.c: dumpcore is no longer used, so get rid of it - - * ircd/parse.c: use send_reply, sendcmdto_one - - * ircd/map.c: use send_reply - - * ircd/listener.c: use send_reply - - * ircd/jupe.c: use sendto_opmask_butone, send_reply - - * ircd/ircd_reply.c: use send_reply - - * ircd/ircd.c: use sendto_opmask_butone - - * ircd/gline.c: use sendto_opmask_butone, send_reply - - * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely - registered clients; make FLAG_ALT print nick!user@host; make - FLAG_COLON print :blah - - * ircd/class.c (report_classes): use send_reply instead of - sendto_one - - * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one - - * ircd/IPcheck.c (ip_registry_connect_succeeded): replace - sendto_one with sendcmdto_one - -2000-04-21 Kevin L. Mitchell - - * ircd/send.c: clean up logic in sendcmdto_channel_butone; use - MyConnect() instead of IsServer() in sendcmdto_flag_butone; define - sendcmdto_match_butone - - * include/send.h: declare sendcmdto_match_butone - -2000-04-20 Kevin L. Mitchell - - * ircd/jupe.c: update to use send_reply() - - * ircd/gline.c: update to use send_reply() - - * include/ircd_reply.h: declare send_reply - - * ircd/ircd_reply.c (send_reply): send_error_to_client, but for - replies; uses ircd_snprintf - - * ircd/send.c: added comments to redirect searchers to appropriate - sendcmdto_* function; moved new functions to end of file; added - explanatory comments; reordered arguments; defined new functions - mentioned below - - * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions - - * ircd/m_gline.c: reorder arguments to sendcmdto_* functions - - * ircd/jupe.c: reorder arguments to sendcmdto_* functions - - * ircd/gline.c: reorder arguments to sendcmdto_* functions - - * include/send.h: reorder arguments, add explanatory comments, - declare new functions sendcmdto_flag_butone, sendto_opmask_butone, - and vsendto_opmask_butone - -2000-04-19 Kevin L. Mitchell - - * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified - vsendto_op_mask that uses '*' instead of the receiving client - nickname - - * include/send.h: declare sendcmdto_channel_butone; takes a skip - argument that allows you to skip (or not to skip) deaf users, - users behind bursting servers, and non channel operators - -2000-04-17 Kevin L. Mitchell - - * ircd/send.c: new sendcmdto_channel_butserv -- note that old - sendto_channel_butserv has a subtle bug; also wrote - sendcmdto_common_channels. - - * include/send.h: declare new sendcmdto_* functions - - * ircd/jupe.c: support local deactivations of jupes - - * ircd/gline.c: support local deactivations of glines - - * include/jupe.h: JUPE_LDEACT allows jupes to be locally - deactivated; if they aren't locally deactivated, then it slaves to - the net-wide activation status; JupeIsRemActive() tests only - whether the jupe is active everywhere else - - * include/gline.h: GLINE_LDEACT allows glines to be locally - deactivated; if they aren't locally deactivated, then it slaves to - the net-wide activation status; GlineIsRemActive() tests only - whether the gline is active everywhere else - - * ircd/gline.c: detect overlapping G-lines; if an existing, wider - gline expires after the new one will, we drop the new one, - otherwise we add the G-line after that one (so the wide one will - apply first); if the new one contains an existing G-line and if it - will expire after the existing one, we drop the existing one to - save memory - - * ircd/m_gline.c (mo_gline): opers could issue remote local - glines when CONFIG_OPERCMDS was off; fixed - -2000-04-16 Kevin L. Mitchell - - * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if - this is a local JUPE - - * ircd/gline.c: add flags argument to gline_activate and - gline_deactivate for future expansion - - * ircd/m_gline.c: pass flags to gline_activate and - gline_deactivate - - * include/gline.h: add flags argument to gline_activate and - gline_deactivate - - * ircd/jupe.c: add flags argument to jupe_activate and - jupe_deactivate for future expansion - - * include/jupe.h: add flags argument to jupe_activate and - jupe_deactivate - - * ircd/m_jupe.c: pass a flags argument to jupe_add instead of - local, active; pass flags to jupe_activate and jupe_deactivate - - * include/gline.h: remove dead code - - * ircd/gline.c: make gline expire times relative to CurrentTime, - since that should be monotonically increasing, instead of - TStime(), which can be set backwards, and which can therefore - cause an expire time to increase; make local glines be removed - instead of just deactivated; don't let gline_find() look for - user@host glines if the mask being looked up is a channel mask - - * ircd/send.c (vsendcmdto_one): forgot to account for the case - where origin is a server and destination is a user - - * ircd/jupe.c: make jupe expire times relative to CurrentTime, - since that should be monotonically increasing, instead of - TStime(), which can be set backwards, and which can therefore - cause an expire time to increase; make local jupes be removed - instead of just deactivated - - * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for - limit is fine. any other warnings I should know about? - -2000-04-15 Thomas Helvey - - * ircd/*.c: const correctness and type safety cleanups to - get code to compile with C++ compiler. Still has - signed/unsigned comparison warnings. - -2000-04-15 Greg Sikorski - - * ircd/userload.c: change include to for - portability. - -2000-04-14 Kevin L. Mitchell - - * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C - and convert acptr... - - * ircd/s_user.c: move gline_lookup function call into - register_user, where it'll have a username to lookup! - - * ircd/m_gline.c: modify to utilize new sendcmdto_* series of - functions; also stuff send_error_to_client into return clauses - - * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of - functions; also use send_error_to_client where that makes sense - - * ircd/jupe.c: modify to utilize new sendcmdto_* series of - functions; also use send_error_to_client where that makes sense - - * ircd/gline.c: modify to utilize new sendcmdto_* series of - functions; also fix gline_lookup() to deal properly with remote - clients--boy, do struct Client and struct User need to be cleaned - up! - - * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server, - too... - - * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and - sendcmdto_serv_butone(), all utilizing the %v conversion of - ircd_snprintf() - - * include/send.h: define IRC_BUFSIZE, max size of a message; - declare sendcmdto_one(), vsendcmdto_one(), and - sendcmdto_serv_butone() - - * include/msg.h: define all the CMD_* constants needed to utilize - the new sendcmdto_* series of functions - - * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend - - * ircd/gline.c: remove old, dead code. - - * ircd/m_gline.c (mo_gline): disallow setting of global G-lines - unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines - (don't advertise proxies); remove dead code - - * ircd/parse.c: oper handler for JUPE only lists jupes unless - CONFIG_OPERCMDS is enabled - - * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if - CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c - - * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled, - always return ERR_DISABLED - - * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not - enabled, always return ERR_DISABLED - - * ircd/s_err.c: add error message to indicate disabled commands - - * include/numeric.h (ERR_DISABLED): to indicate disabled commands - - * doc/Configure.help: add documentation for CONFIG_OPERCMDS - - * config/config-sh.in: add CONFIG_OPERCMDS, default both it and - CONFIG_NEW_MODE to 'y' for now - - * ircd/gline.c (gline_list): fix a minor formatting bogon - - * BUGS: since I fixed that bug, might as well mark it fixed. - - * ircd/m_join.c: look up badchans with GLINE_EXACT - - * ircd/m_gline.c: fix parc count problems; look up existing - G-lines with GLINE_EXACT; only set new lastmod when - activating/deactivating existing glines if old lastmod was not 0 - - * ircd/gline.c: forgot to copy the gline reason over; don't - propagate a gline with 0 lastmod if origin is user; add - GLINE_EXACT to force exact matching of gline mask - - * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero - flag properly - - * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost, - but gline_lookup() actually takes a client--d'oh. - -2000-04-13 Thomas Helvey - * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10 - -2000-04-13 Greg Sikorski - - * ircd/whocmds.c: Don't make idle flag default in /who, to prevent: - "/who * x" - "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was." - (Found by Plexus). - - * ircd/whocmds.c: Change idle time calc from socket idle to user - idle. - -2000-04-13 Kevin L. Mitchell - - * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *, - too, for ircd_snprintf.c - - * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in - comments; mostly descended from the Linux manpage for printf, but - also documenting the extensions. - - * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a - client; make 'q' be the same as 'L'; remove __inline__; only - define EXTENSION if HAVE_LONG_LONG is defined - - * include/handlers.h: declare m_gline() - - * ircd/parse.c: gline can be called by users, but it only lists - the glines. - - * ircd/s_user.c (set_nick_name): resend gline if a remote server - introduces a glined client - - * ircd/s_serv.c (server_estab): burst glines, too - - * ircd/gline.c: fix up all the expire times to be offsets; - simplify gline_resend() - - * ircd/m_gline.c: begin coding replacements for ms_gline(), - mo_gline(), and m_gline() - - * ircd/gline.c (gline_add): allow *@#channel to work correctly; - also, prohibit local BADCHANs if LOCAL_BADCHAN not defined - -2000-04-13 Greg Sikorski - - * tools/Bouncer/*: Add comments/documentation/tags. - * tools/Bouncer/*: Add debug defines, make task fork(). - -2000-04-12 Thomas Helvey - * ircd/s_err.c: Cleanup s_err.c make one table so we - don't have to do anything tricky to get an error string. - -2000-04-12 Greg Sikorski - * Add port bouncer for http (x/w) - -2000-04-12 Kevin L. Mitchell - - * ircd/s_conf.c (find_kill): replaced call to find_gline() with a - call to gline_find(); also used GlineReason() instead of direct - reference to structure member - - * ircd/m_join.c (m_join): replace bad_channel() calls with calls - to gline_find(name, GLINE_BADCHAN), and also check to see if gline - is active - - * ircd/channel.c: nothing seems to be called anywhere... - - * ircd/s_err.c: update a couple of replies to dovetail with new - semantics - - * ircd/gline.c: begin complete re-implementation of gline.c along - the lines of the final design of jupe.c - - * include/gline.h: begin complete re-implementation of gline.c - along the lines of the final design of jupe.c - - * ircd/channel.c (mode_process_clients): fix "Deop of +k user on - %s by %s" message... - - * ircd/ircd_snprintf.c: my new snprintf()-like functions - - * include/ircd_snprintf.h: my new snprintf()-like functions - -2000-04-11 Thomas Helvey - * ircd/IPcheck.c: removed old dead code - * ircd/s_user.c (send_user_info): removed non-standard - user not found message for userhost/userip - -2000-04-11 Greg Sikorski - - * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric. - * doc/p10.html: Work on chapter 4. - -2000-04-10 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_client): fix coredump on /mode - #foobar +o nosuchnick - -2000-04-10 Perry Lorier - * BUGS: Added bug. - -2000-04-09 Thomas Helvey - * include/IPcheck.h: fix prototype - * ircd/s_user.c: fix usage of IPcheck_remote_connect - * ircd/IPcheck.c: removed unused args - -2000-04-09 Thomas Helvey - * include/IPcheck.h: add proto for IPcheck_expire - - * ircd/IPcheck.c: Rewrote - - * ircd/ircd.c: Add IPcheck_expire to main message loop - - * ircd/s_user.c: Redo target hashing, refactor target code - - * include/numeric.h: Cleaned up numerics, added which ones are - in use by other networks and what they are in use for. - - * ircd/channel.c: cleaned can_join(), allow anyone through anything - if /invited, simplified the function. Opers overusing OPEROVERRIDE - will get a message explaining to them not to cheat. - - * ircd/m_join.c: cleaned up the various join functions, should be - a lot more efficient. Still needs work. Now assumes that s<->s - won't send it a JOIN 0. Service coders - note this and tread with - care. - - * ircd/m_stats.c: added Gte-'s stats doc patch. - - * ircd/m_version.c: /version now returns the 005 numeric as well. - as requested by Liandrin. - - -2000-04-07 Kevin L. Mitchell - - * ircd/m_clearmode.c: add include for support.h for write_log() - - * configure: move ircd/crypt/* to tools/* - -2000-04-06 Thomas Helvey - * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds - set client host to server alias if connection from localhost - -2000-04-06 Perry Lorier - * ircd/ircd.c: Fix core during pinging (oops) - -2000-04-06 Perry Lorier - * ircd/send.c: fixed wrong ident being sent to channels bug. - * include/numerics.h: Updated some of the numerics from other - networks. Flagged some as 'unused' by undernet. - -2000-03-30 Perry Lorier - * ircd/ircd.c: Lets see if this helps the ping problem at all. - * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle - time for local clients. (as requested), extended who now returns all - the flags (@+!) so you can tell the complete state of a client. - -2000-03-30 Thomas Helvey - * m_rping.c m_rpong.c: add Gte's rping/rpong fixes - -2000-03-30 Perry Lorier - * ircd/parse.c: oops, missed opers. - -2000-03-30 Perry Lorier - * ircd/parse.c: fixed mystifying ping bug thats been plaguing us - for so long. Remember: m_ping MUST be in the parse array. :) - -2000-03-30 Perry Lorier - * ircd/ircd.c: test in check_pings was wrong. I move that we - disallow cvs commit after 10pm localtime.... - -2000-03-30 Perry Lorier - * ircd/m_pong.c: Fix it for servers too. - -2000-03-30 Perry Lorier - * ircd/m_pong.c: Fix ping timeout bugs - -2000-03-30 Perry Lorier - * ircd/channel.c: Bans had CurrentTime in their when field instead - of TStime() - -2000-03-31 Thomas Helvey - * ircd/numnicks.c (SetXYYCapacity): fix for extended - numerics. - -2000-03-30 Perry Lorier - * ircd/m_nick.c: send kills both ways so when we add nick change - on collision we don't desync the network. - - * ircd/map.c: Fixup the map a bit more. - -2000-03-31 Kevin L. Mitchell - - * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH - - * ircd/m_opmode.c: Log the mode changes to OPATH - - * ircd/channel.c (modebuf_flush_int): Log the mode changes to - OPATH - - * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to - OPATH - - * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH - - * config/config-sh.in: added OPATH for opmode log file - - * ircd/m_clearmode.c (do_clearmode): updated uses of - modebuf_mode_string() for the new usage - - * ircd/channel.c: added flag MODE_FREE and an int argument to - modebuf_mode_string() to indicate that the string must be free'd; - updated calls to modebuf_mode_string() for the new usage; called - collapse(pretty_mask()) on the ban string and use allocated memory - for it; added ban list length accounting; fixed a number of small - bugs in ban processing - - * include/channel.h: added flag MODE_FREE and an int argument to - modebuf_mode_string() to indicate that the string must be free'd - - * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed - keys and limits that are set - -2000-03-30 Perry Lorier - * ircd/ircd.c: rewrote check_pings() for maintainability - and speed. Also changed quit msg's so they don't have - redundant nick[host] info in them. - - * ircd/send.c: Changed write errors to report what error - occured (if possible). - - * ircd/gline.c: added gline comment to the quit. - - * ircd/m_server.c: Added suggestions to server quits mentioning - what went wrong so the admin can fix it earlier instead of asking - questions... - - * ircd/map.c: Changed m_map() to hide numerics, show a * beside - servers that aren't fully burst yet. And show '(--s)' for servers - where its not sure. - - * doc/example.conf: Fixed wrapped U: - -2000-03-30 Kevin L. Mitchell - - * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of - mode_parse() (version selectable at compile time) - - * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1]) - - * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1]) - - * config/config-sh.in: add new config option to enable new m_mode - implementation - - * doc/Configure.help: add documentation for new config option - CONFIG_NEW_MODE - - * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461 - MODE -v : Not enough parameters - - * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove - +k and +l even if they weren't set... - - * ircd/m_opmode.c: implement the OPMODE command using mode_parse() - - * ircd/channel.c: make mode_process_clients() clear the DEOPPED - flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list - for; test the 0-th member, not the i-th member, of the client - change state stuff - - * ircd/m_clearmode.c (do_clearmode): use the new - mode_invite_clear() function - - * ircd/channel.c: cleared up all the compile-time warnings and - errors - - * include/channel.h: added declarations for mode_ban_invalidate() - and mode_invite_clear() - - * ircd/channel.c: finished mode_parse(), then broke it up into a - dozen or so helper functions to make the code easier to read - -2000-03-29 Thomas Helvey - * ircd/ircd.c: refactor server initialization a bit, use - getopt for parsing command line, refactor init_sys, main, - and other bits. - - * ircd/s_bsd.c: add functions for initialization to clean - up logic a bit and remove duplicated code. - - * include/ircd.h: add struct for server process related - variables. - -2000-03-29 Kevin L. Mitchell - - * ircd/channel.c: initial definition of mode_parse(); flags to - prevent doing the same thing multiple times; helper method - send_notoper() to send a "Not oper"/"Not on channel" notice - - * include/channel.h: declare mode_parse() and helper flags - - * ircd/channel.c (modebuf_flush_int): fiddled with timestamp - sending to match the current action of set_mode() closely enough - that hopefully there won't be major conflicts - - * ircd/channel.c (modebuf_flush_int): consolidated the mode string - building logic, reversed the order of the arguments to mode - commands to have '-' preceed '+' - -2000-03-29 Thomas Helvey - * ircd/s_bsd.c (add_connection): don't disable socket options - let OS tune itself and allow important performance tweaks to - work. - -2000-03-28 Kevin L. Mitchell - - * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got - confused by set_mode, which is doing some really weird logic; - guess what I'm going to rewrite next? ;) - -2000-03-28 Kevin L. Mitchell - - * include/channel.h: added MODE_SAVE for the bounds checking stuff - in modebuf_flush - - * ircd/channel.c: make modebuf_flush into modebuf_flush_int and - make it do bounds checking on the buffer; all modes are sent only - if the all parameter is 1; modebuf_flush is the exported wrapper - - * include/channel.h: add BOUNCE, renumber flags to get a little - more space - - * ircd/channel.c (modebuf_flush): don't overload HACK2, add - BOUNCE; send DESYNCH message - -2000-03-27 Kevin L. Mitchell - - * ircd/m_clearmode.c (do_clearmode): only mark the modes the - channel actually has in effect for deletion - - * ircd/channel.c: added explanatory comments to all added - functions; made flushing take place at the correct place even if - the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper - to bash some stupid bugs; made modebuf_flush() return if ModeBuf - is empty, fixed the apparent source, removed some bogus string - termination code, properly terminate the mode strings, add support - for HACK2 and HACK3, made limit strings not be sent if the limit - is being removed, changed where '+' and '-' come from in sent - strings, added support for DEOP flag, set up bouncing code for - HACK2 - - * ircd/Makefile.in: ran make depend - - * include/channel.h: added new defines for future functionality, - made modebuf_flush() return int so I can use tail recursion - - * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups - to make it all compile - - * ircd/m_opmode.c: add msg.h to includes... - - * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan() - - * ircd/channel.c (modebuf_flush): realized I forgot to - nul-terminate addbuf/rembuf properly... - - * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()... - - * ircd/channel.c (modebuf_flush): correct sendto_server_butone to - sendto_serv_butone--blah^2 - - * ircd/send.c (sendto_serv_butone): stupid comments confused me - - * ircd/channel.c (modebuf_flush): if there are no mode changes to - propagate, we're done... - - * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone, - not sendto_all_butone - - * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode - - * ircd/m_opmode.c: define skeleton for m{o,s}_opmode - - * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to - the list - - * ircd/parse.c: added messages for opmode and clearmode - - * include/handlers.h: added declarations for mo_opmode(), - ms_opmode(), mo_clearmode(), and ms_clearmode() - - * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and - TOK_CLEARMODE - - * include/channel.h (MODEBUF_DEST_OPMODE): Define the - MODEBUF_DEST_OPMODE flag - - * ircd/channel.c (modebuf_flush): added new flag, - MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear - to originate from source's server (or source itself, if - IsServer(source)); also causes a server-level MODE to be sent as - OPMODE instead - - * include/channel.h: defined MODEBUF_DEST_SERVER, - MODEBUF_DEST_HACK4 - - * ircd/channel.c: Add another argument to build_string() to handle - numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to - servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices - to be sent out - -2000-03-27 Perry Lorier - - * ircd/s_bsd.c: fixed missing 'u' typo. - -2000-03-26 Kevin L. Mitchell - - * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(), - _mode_string(), _mode_client(), _flush(); also implemented a - simple build_string() - - * include/channel.h: added definition of ModeBuf, modebuf_* - manipulation functions, and a couple of helper macros - -2000-03-24 Thomas Helvey - * numicks.c: convert extended numerics to use original mask version - * numnicks.h: "" - * s_user.c: -2000-03-23 Thomas Helvey - * Merge in changes from production -2000-03-22 Thomas Helvey - * numicks.c: Tweak to numnick generator to reduce possibility of duplicates. - * rfc1459.unet: Add Maniac's documentation for /names 0 -* Fix misc. jupe bugs that somehow made it into the tree -* Escape /names 0 to mean /names --Maniac -* Don't core when server asks for info --Maniac -* Add Kev's jupe patch --Bleep -* Add Maniacs squit patch --Bleep -* Merge in u2_10_10_beta07 changes --Bleep -* Merge in u2_10_10_beta06 changes --Bleep -* Start ircu2.10.11 development, beta branch u2_10_10 --Bleep -#----------------------------------------------------------------------------- diff --git a/doc/history/ChangeLog.12 b/doc/history/ChangeLog.12 deleted file mode 100644 index 734e05f..0000000 --- a/doc/history/ChangeLog.12 +++ /dev/null @@ -1,11526 +0,0 @@ -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. - -2007-03-05 Michael Poole - - * ircd/m_privs.c (ms_privs): Use the correct source when - forwarding the PRIVS request. - - * tests/bug-1674539.cmd: New file to test for this. - - * tests/test-driver.pl: Recognize "oper" command from scripts. - -2007-03-05 Michael Poole - - * tests/ircd.conf: Make into a hub. - - * tests/ircd-2.conf: New file, for a second server. - - * tests/ircd-3.conf: Configuration for a third server. - -2007-03-04 Michael Poole - - * ircd/whocmds.c (count_users): Fix length of ipbuf. (Spotted by - paulr.) - -2007-02-28 Michael Poole - - * ircd/os_generic.c (sockaddr_from_irc): Zero out socket address - before setting family, and regardless of whether we have an - irc_sockaddr template. - -2007-02-25 Michael Poole - - * doc/example.conf: Document new options for General block. - - * include/res.h (clear_nameservers): Declare new function. - (add_nameserver): Declare previously static function. - - * include/s_bsd.h (VirtualHost_dns_v4): Declare. - (VirtualHost_dns_v6): Likewise. - - * ircd/ircd_lexer.l (DNS): Recognize new token. - - * ircd/ircd_parser.y (DNS): Declare new token. - (generalitem): Allow new items for dns vhost(s) and dns servers. - (generaldnsvhost): New production. - (generaldnsserver): New production. - - * ircd/ircd_res.c (VirtualHost_dns_v4): New variable. - (VirtualHost_dns_v6): Likewise. - (clear_nameservers): New function. - (restart_resolver): Scan specified servers so we only try to open - DNS client sockets that we need. - - * ircd/ircd_reslib.c (irc_nscount): Remove redundant initializer. - (irc_res_init): Only read the resolver config file if there are no - nameservers provided. - (add_nameserver): Make non-static. Remove off-by-one check - against IRCD_MAXNS. - - * ircd/s_conf.c (read_configuration_file): Clear nameserver list - before reading the config file. - -2007-01-27 Jeannot Langlois - - * doc/example.conf (Features): Illustrate URLREG feature. - - * doc/readme.features (URLREG): Define new feature. - - * include/ircd_features.h (Feature): Add FEAT_URLREG. - - * ircd/ircd_features.c (features): Set the default value. - - * ircd/m_join.c (m_join): For ERR_NEEDREGGEDNICK, include the - URLREG value as a format argument. - - * ircd/s_err.c (replyTable): Update ERR_NEEDREGGEDNICK - appropriately. - -2007-02-03 Michael Poole - - * ircd/ircd_reply.c (protocol_violation): Avoid reusing the - va_list in vd. - - * ircd/send.c (sendcmdto_channel_butone): Warn against using %v in - the pattern -- that will cause incorrect behavior. - (sendwallto_group_butone): Likewise. - (sendcmdto_match_butone): Likewise. - -2007-01-22 Michael Poole - - * ircd/channel.c (find_delayed_joins): New function. - (modebuf_flush): Handle +D-D and related cases. - (mode_parse_mode): It is too early to handle +D here, so don't. - (CheckDelayedJoins): Use find_delayed_joins(). - -2007-01-22 Michael Poole - - * tests: New subdirectory for test framework. - - * tests/ircd.conf: Helper file for testing. - - * tests/readme.txt: Simple documentation of test framework. - - * tests/test-driver.pl: Testing script interpreter. - -2007-01-22 Michael Poole - - * doc/example.conf: Fix potentially confusing comment about ip - mask syntax. - -2007-01-22 Michael Poole - - * INSTALL: Mention source directory naming; update the reference - to the config file converter (hah); update CVS directions. - -2007-01-22 Michael Poole - - * include/supported.h: Move parameters from FEATURES1 to FEATURES2 - so that neither ISUPPORT line has more than 15 parameters. (Some - clients are picky about this.) - -2007-01-21 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for pre10 development. - -2007-01-20 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.09 release. - -2007-01-15 Michael Poole - - * doc/readme.iauth (U): Document extended fields. - - * include/s_auth.h (auth_set_user): Declare new parameters. - - * ircd/m_user.c (m_user): Pass new parameters. - - * ircd/s_auth.c (auth_set_user): Accept new parameters. When - using Undernet extensions, forward them to the iauth process. - -2007-01-14 Michael Poole - - * ircd/os_generic.c (os_recv_nonb): Set errno to zero when - returning IO_FAILURE due to a closed connection. - -2006-12-31 Michael Poole - - * ircd/m_mode.c (ms_mode): Bounce modes from deopped members. - -2006-12-30 Michael Poole - - * ircd/ircd_string.c (ircd_strncpy): Make sure the output buffer - is terminated. We don't rely on the arguable strncpy semantics. - -2006-12-30 Michael Poole - - * include/struct.h (struct Server): Add asll_last field. - - * ircd/ircd.c (check_pings): Add check for asll_last. When a - server doesn't ping, use an old-style ping rather than AsLL ping. - - * ircd/m_pong.c (ms_pong): Use ClearPingSent() rather than - ClrFlag(). Set asll_last to current time. - (mr_pong): Use ClearPingSent() rather than ClrFlag(). - (m_pong): Likewise. - - * ircd/s_bsd.c (completed_connection): Likewise. - (read_packet): Likewise. Update cli_lasttime for servers in - addition to clients. - -2006-01-13 Michael Poole - - * ircd/m_burst.c (ms_burst): Properly handle member mode :ov. - -2006-01-13 Michael Poole - - * ircd/m_create.c (ms_create): Add channel name to the protocol - violation notice for a redundant CREATE. - -2006-01-13 Michael Poole - - * ircd/s_user.c (set_nick_name): Use user's account name rather - than the account parameter, in case the parameter contains a colon - (i.e. "account:1234" format). - -2006-01-13 Michael Poole - - * doc/readme.who: Document 'd' user-matching flag. - -2006-12-18 Michael Poole - - * ircd/m_jupe.c (mo_jupe): Fix which privilege is tested. - -2006-12-07 Michael Poole - - * ircd/listener.c (show_ports): Update to show '4' and/or '6' as - flags in response, with a '-' suffix if either one fails to open. - -2006-12-07 Michael Poole - - * doc/example.conf (Port): Document the method to select IPv4 or - IPv6 restriction for a port. - - * include/listener.h (LISTEN_IPV4): New listener flag. - (LISTEN_IPV6): New listener flag. - (struct Listener): Split 'fd' and 'socket' fields into two each. - - * ircd/ircd_lexer.l (gb): Move to be alphabetical. - (gigabytes): Likewise. - (ipv4): New token. - (ipv6): Likewise. - Adapted word matcher to handle digits in the non-leading character. - - * ircd/ircd_parser.y (USE_IPV4): New macro. - (USE_IPV6): Likewise. - (TOK_IPV4): New token. - (TOK_IPV6): Likewise. - (address_family): New non-terminal rule. - (portblock): Default to listening on both IPv4 and IPv6. - (portnumber): Add address_family element and use it. - (portvhost): Likewise. - - * ircd/listener.c (make_listener): Adjust for newly split fields - in struct Listener. - (inetport): Likewise. Adjust return value as well. - (add_listener): Update to handle both IPv4 and IPV6 support. - (close_listener): Likewise. - (accept_connection): Because each listener has two sockets, it is - no longer safe to free the listener when one is destroyed -- so - don't. Also accept() on the file descriptor from the incoming - event rather than on a fixed fd. - - * ircd/os_generic.c (os_socket): For platforms with IPV6_V6ONLY, - enable it for AF_INET6 sockets rather than disabling it for - unspecified sockets. - -2006-12-06 Michael Poole - - * include/listener.h (enum ListenerFlag): New enum. - (struct Listener): Convert "active", "hidden" and "server" to a - flagset. - (add_listener): Convert "is_server" and "is_hidden" arguments to - use the same flagset structure. - - * ircd/ircd_parser.y (listen_flags): New variable. - (general_vhost): Consolidate references to $3 to use a variable. - (portblock): Use listen_flags instead of tconn and tping. - (portserver): Likewise. - (porthidden): Likewise. - - * ircd/listener.c (show_ports): Use new field in Listener. - (set_listener_options): New function. - (inetport): Use it. - (add_listener): Use new field in Listener. When reusing an extant - listener, call set_listener_options() so the options are updated. - (mark_listeners_closing): Use new field in Listener. - (close_listeners): Use new helper macro to check activeness. - (release_listener): Likewise. - (accept_connection): Likewise. - - * ircd/s_bsd.c (report_error): Use the standard snotice rate - limiting here. - (add_connection): Use new helper macro to check serverness. - -2006-11-04 Michael Poole - - * ircd/m_nick.c (m_nick): If we get NICK on a server port, tell - the client to go away. - -2006-11-04 Michael Poole - - * ircd/version.c.SH: Skip version.c. - -2006-11-04 Michael Poole - - * doc/readme.who: Document new 'o' field flag. - - * include/whocmds.h (WHO_FIELD_OPL): New flag. - - * ircd/channel.c (send_channel_modes): Rename feat_oplevels to - send_oplevels and determine it automatically. - (modebuf_flush_int): Pass along oplevel if it's less than - MAXOPLEVEL. - (mode_process_clients): Allow oplevels to be inherited for -A - channels. Inherit the opper's oplevel if >= MAXOPLEVEL. - - * ircd/m_who.c (m_who): Recognize 'o' flag as WHO_FIELD_OPL. - - * ircd/whocmds.c (do_who): Send oplevel for WHO_FIELD_OPL, but - only show up to the requester's own oplevel. - -2006-10-21 Michael Poole - - * ircd/convert-conf.c (finish_connects): Fix error display for - missing C: lines when an H: line is present. - -2006-08-02 Michael Poole - - * ircd/ircd_parser.y (connectblock): Check for too-long password. - (operblock): Comment why we don't check password length. Move - PRIV_PROPAGATE test earlier (so a buggy edit, rehash, /oper will - not crash). - (clientblock): Check for too-long password. - -2006-08-02 Michael Poole - - * include/channel.h (struct Ban): Fix typo in doxygen comment. - -2006-07-09 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for pre09. - -2006-07-09 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.08 release. - -2006-07-05 Michael Poole - - * ircd/s_auth.c (auth_freelist): New static variable. - (check_auth_finished): Move call to destroy_auth_request(). - (destroy_auth_request): Prepend auth request to freelist. - (start_auth): Use struct from auth freelist if possible. - -2006-06-30 Michael Poole - - * ircd/ircd_parser.y (iauth*): Avoid leaking program name string. - -2006-06-30 Michael Poole - - * ircd/s_auth.c (check_auth_finished): Free auth structure when - done with it. - (sendto_iauth): Free message buffer when done with it. - -2006-06-26 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for pre08. - -2006-06-26 Michael Poole - - * include/patchlevel.h (PATCHEVEL): Bump for release. - -2006-06-17 Michael Poole - - * ircd/m_pass.c (mr_pass): Only back 'len' up when it's safe. - -2006-06-08 Michael Poole - - * ircd/m_whois.c (do_whois): Prefix '*' to names of secret (local) - channels for locops as well as global opers. - -2006-06-08 Michael Poole - - * ircd/m_gline.c (ms_gline): Use final argument as G-line reason. - -2006-06-08 Michael Poole - - * ircd/gline.c (gline_stats): Show activation state in /stats g. - - * ircd/s_err.c (RPL_STATSGLINE): Update format string to match. - -2006-06-07 Michael Poole - - * doc/example.conf: Document the list_chan privilege. - - * ircd/ircd_lexer.l: Recognize the token. - - * ircd/ircd_parser.y: Treat it appropriately. - -2006-06-07 Michael Poole - - * ircd/s_auth.c (auth_ping_timeout): If the client never had an - auth request, kill them on ping timeout. - -2006-06-05 Michael Poole - - * ircd/s_auth.c (auth_timeout_callback): Clear AR_DNS_PENDING when - destroying the lookup and reporting DNS failure. - -2006-05-28 Michael Poole - - * doc/readme.features (MAXBANS): Update default value. - (NICKLEN): Likewise. - (HIS_STATS_*): Sort alphabetically. - - * ircd/m_stats.c (m_stats): Describe the intention so that there - are not further questions about local opers and remote /stats. - Fix places that use cptr instead of sptr. - -2006-05-24 Michael Poole - - * ircd/s_auth.c (auth_dns_callback): Be more careful about - handling failed DNS lookups. Use a more standard function to - disconnect clients for IP mismatches. - (start_auth): Use a more standard function to disconnect clients - for peer or local socket address lookup failures. - -2006-05-17 Michael Poole - - * ircd/s_auth.c (auth_ping_timeout): Fix off-by-one error. - -2006-05-17 Michael Poole - - * ircd/Makefile.in (install-*): Install convert-conf. Install - umkpasswd when ${BINDIR}/ircd is not a symlink. - -2006-05-15 Michael Poole - - * ircd/s_auth.c (check_auth_finished): Only check passwords on - user ports. - -2006-05-14 Michael Poole - - * doc/example.conf (Connect): Mention the vhost option. - -2006-05-08 Michael Poole - - * ircd/m_pong.c (mr_pong): Move cli_lasttime update from here... - - * ircd/s_auth.c (auth_set_pong): ... to here. - -2006-05-07 Michael Poole - - * include/s_auth.h (auth_ping_timeout): Declare new function. - - * ircd/ircd.c (check_pings): Move auth timeout logic into that new - function. - - * ircd/s_auth.c (HeaderMessages): Insert new message. - (auth_ping_timeout): Define new function. - (auth_timeout_callback): Remove "hurry" notification from here. - -2006-05-07 Michael Poole - - * include/s_auth.h (destroy_auth_request): Remove second argument. - - * ircd/list.c (free_client): Update to match. - - * ircd/s_auth.c (check_auth_finished): Remove second argument and - update call to destroy_auth_request(). - (send_auth_query): Update call to destroy_auth_request(). - (destroy_auth_request): Remove second argument. - (auth_timeout_callback): Send timeout failure messages here - instead. Update call to check_auth_finished(). - (auth_dns_callback): Update call to check_auth_finished(). - (start_auth): Likewise. - (auth_set_pong): Likewise. - (auth_set_user): Likewise. - (auth_set_nick): Likewise. - (auth_cap_done): Likewise. - (iauth_parse): Likewise. - -2006-05-06 Michael Poole - - * ircd/s_auth.c (AuthRequestFlag): Add AR_PASSWORD_CHECKED. - (check_auth_finished): Move password check out of iauth-only part - and use AR_PASSWORD_CHECKED to make sure we only check it once. - -2006-04-28 Michael Poole - - * ircd/s_auth.c (AuthRequest): Clarify comment on 'timeout' field. - (check_auth_finished): Fix timeout update. - (destroy_auth_request): Only delete timer if it is active. - (auth_timeout_callback): Do not disconnect client on timeout, so - that the user can finish sending NICK/USER or doing iauth. - -2006-04-28 Michael Poole - - * doc/example.conf (Admin): Fix documentation of which line can be - listed twice. - - * ircd/ircd_parser.y (adminblock): Allow admin information to be - changed via /rehash. - -2006-04-06 Michael Poole - - * ircd/s_auth.c (start_auth): Add client to list after getting - endpoint names (which can apparently fail for some reason). - -2006-04-06 Michael Poole - - * ircd/ircd_snprintf.c: Use SIZEOF_LONG_LONG (which is 0 for - unknown types) instead of the never-defined HAVE_LONG_LONG. - -2006-04-06 Michael Poole - - * doc/example.conf (IAuth): Update to reflect new syntax. - - * doc/readme.who: Fix typo in metasyntactic variable name. - -2006-04-04 Michael Poole - - * include/patchlevel.h: Update for pre07. - -2006-04-04 Michael Poole - - * include/patchlevel.h: Update for u2.10.12.06 release. - -2006-04-03 Michael Poole - - * ircd/channel.c (bmatch): If ipmask_check() indicates old_ban is - a CIDR-wise superset of new_ban, check whether new_ban is a - text-wise superset of old_ban. - -2006-03-31 Michael Poole - - * tools/iauth-test (send_server_notice): Use a colon prefix before - the message. - (%handlers): Likewise. - -2006-03-24 Michael Poole - - * ircd/ircd_signal.c (alloc_crec): Zero-fill returned - ChildRecord structs. - - * ircd/jupe.c (make_jupe): Zero-fill newly allocated jupes. - - * ircd/list.c (make_link): Zero-fill returned SLink structs. - - * ircd/whowas.c (whowas_init): Delete function. - (whowas_alloc): Rewrite to follow the more common pattern and to - zero-fill returned Whowas structs. - -2006-03-23 Kevin L. Mitchell - - * ircd/s_auth.c: rewrite iauth_read(), spliting out the parsing - into iauth_parse(); change parsing to separate parameters and deal - with the ':' sentinel; send sentinel in multi-word parameters; fix - iauth_cmd_config() and iauth_cmd_stats() to clear the 'next' - pointer in the SLink structure; fix buffering in - iauth_read_stderr(); remove carriage returns from STDERR contents - as well - - * doc/readme.iauth: fix a minor typo in comments for 'd' and 'N' - server messages - -2006-03-18 Michael Poole - - * ircd/convert-conf.c (finish_features): Do not emit a feature - setting that has no values. - -2006-03-18 Michael Poole - - * ircd/channel.c (mode_parse_key): Outside of burst, allow - overwriting of keys by a service when a key is already set. - (mode_parse_upass): Likewise. Instead, ignore new Upass during - burst if it is lexicographically greater than the current one. - (mode_parse_apas): Likewise for Apass, but only allow overwiting - an existing Apass in a BURST. - -2006-03-18 Michael Poole - - * ircd/channel.c (modebuf_flush_int): Fix typo about changing - oplevels. Send correct channel TS for modes to other servers. - (mode_parse): Accept timestamps on modes from users on other - servers. If the received timestamp is too large, handle that. - - * ircd/m_create.c (ms_create): Mention the CREATE-during-burst - case and handle it. - - * ircd/m_mode.c (ms_mode): Put back HACK(3) when oplevels are off. - -2006-03-14 Wouter Coekarts - - * ircd/s_err.c (RPL_STATSILINE): Add two %s to the first field. - - * ircd/s_stats.c (stats_configured_links): Use the new %s's to - show username masks for I: lines that have them. - (stats_access): Likewise. - -2006-03-13 Michael Poole - - * ircd/msgq.c (msgq_vmake): Try to clear msgbuf freelist after - killing clients, so that that case does not lead immediately to a - server panic. - (msgq_count_memory): Report total buffer text used as a way to - determine whether the BUFFERPOOL value is marginal. - -2006-03-02 Michael Poole - - * include/ircd_osdep.h (os_socket): New parameter. - - * include/res.h (irc_in_addr_unspec): New macro. - - * ircd/ircd_res.c (restart_resolver): Set family appropriately. - - * ircd/listener.c (inetport): Let os_ library pick socket family. - - * ircd/os_generic.c: Do not #define _XOPEN_SOURCE on FreeBSD 5+. - (sockaddr_from_irc): New parameter. - (os_sendto_nonb): Use new parameter to sockaddr_from_irc(). - (os_socket): New parameter. Try to turn off IPV6_V6ONLY on - sockets that listen on unspecified addresses. - (os_connect_nonb): Use new parameter to sockaddr_from_irc(). - - * ircd/s_auth.c (start_auth_query): Let os_ library pick socket - family. - - * ircd/s_bsd.c (connect_inet): If we pick the IPv4 vhost, specify - family for os_socket() as AF_INET. - - * ircd/uping.c (uping_init): Set socket family appropriately. - (uping_server): Likewise. - (uping_end): Fix format strings (the ms_* fields are int, not - long, and this causes bad results on LP64 machines). - -2006-02-22 Michael Poole - - * ircd/m_silence.c (apply_silence): Refuse to apply silences for - local users that are broader than an IPv4 /16 or an IPv6 /32, - unless they match every host indiscriminately. - -2006-02-22 Michael Poole - - * ircd/s_auth.c (check_auth_finished): Give non-iauth clients - connection classes, too. - (auth_close_unused): Remove redundant check for iauth != NULL. - (report_iauth_conf): Check iauth != NULL before deref'ing it. - (report_iauth_stats): Likewise. - -2006-02-22 Kevin L. Mitchell - - * ircd/s_auth.c: fix macros to not dereference a NULL pointer when - iauth is not connected - -2006-02-17 Alex Badea - - * ircd/s_auth.c (auth_set_username): Check if the last - character of the username is alphanumeric, instead of the - '\0' terminator. - - * ircd/m_pong.c (mr_pong): Parse cookie with strtoul(), - since atol() causes signedness problems. - -2006-02-15 Michael Poole - - * include/res.h (NXDOMAIN): Define. - - * ircd/ircd_res.c (res_readreply): Treat NXDOMAIN just like - SERVFAIL. Patch courtesy of Dianora. - - * tools/iauth-test (Carp): This doesn't actually use Carp. - -2006-02-15 Michael Poole - - * doc/example.conf: Include new HIS_STATS_IAUTH feature. - - * doc/readme.features: Document the feature. - - * doc/readme.iauth: Rewrite to reflect the new progressive iauth - protocol, based on IRCnet's iauth. - - * doc/snomask.html: Document SNO_AUTH server notice flag. - - * include/client.h (FLAG_IAUTHED): Delete. - (con_cookie): Delete. - (con_unreg): Delete. - (con_auth): Make comment capitalization consistent. - (con_iauth): Delete. - (CLIREG_*): Delete. - (cli_unreg): Delete. - (cli_cookie): Delete. - (cli_iauth): Delete. - (con_unreg): Delete. - (con_iauth): Delete. - (IsIAuthed): Delete. - (SetIAuthed): Delete. - (SNO_AUTH): New server notice flag. - (SNO_ALL): Update to include SNO_AUTH. - (SNO_OPER): Update to include SNO_AUTH. - - * include/ircd_auth.h: Delete file. - - * include/ircd_features.h (HIS_STATS_IAUTH): New feature. - - * include/s_auth.h: Rewrite almost everything for new auth system. - - * include/s_user.h (COOKIE_VERIFIED): Delete. - (register_user): Remove redundant nick and username arguments. - - * ircd/ircd_auth.c: Delete file. - - * ircd/ircd_features.c (HIS_STATS_IAUTH): New feature. - - * ircd/ircd_lexer.l (PROGRAM): New token in grammar. - - * ircd/ircd_log.c (masks): Add SNO_AUTH flag. - - * ircd/ircd_parser.y (stringlist): Simplify production. - (iauthblock): Revise to only include a PROGRAM production. - - * ircd/list.c (make_client): Do not assign to deleted field. - - * ircd/m_cap.c (cap_ls): Use auth_cap_start() instead of - cli_unreg(). - (cap_req): Likewise. - (cap_end): Use auth_cap_done() instead of cli_unreg(). - - * ircd/m_pass.c (mr_pass): Merge arguments to PASS. Use - auth_set_password() to notify iauth of password. - - * ircd/m_pong.c (mr_pong): Use auth_set_pong() instead of - cli_cookie() and cli_unreg(). - - * ircd/m_user.c (m_user): Use auth_set_user() instead of - cli_unreg(), etc. - - * ircd/s_auth.c: Rewrite most of the infrastructure for the new - auth system. - - * ircd/s_conf.c (rehash): Call auth_*() instead of iauth_*(). - - * ircd/s_misc.c (exit_one_client): Do not use iauth_exit_client(). - (exit_client): Use auth_send_exit() instead. - - * ircd/s_stats.c (statsinfo): Include iauth and iauthconf. - - * ircd/s_user.c (clean_user_id): Delete (moved into s_auth.c). - (register_user): Remove nick and username parameters; move conf - interactions and username validation to s_auth.c. - (set_nick_name): Use auth_set_nick() instead of cli_cookie(), - cli_unreg(), etc. - - * tools/iauth-test: Implementation of iauth for testing purposes. - -2006-02-15 Michael Poole - - * ircd/ircd_snprintf.c (doprintf): Fix typecast for %hu. - -2006-02-15 Michael Poole - - * include/ircd_signal.h (SigChldCallBack): New typedef. - (register_child): Declare. - (unregister_child): Declare. - (reap_children): Declare. - - * ircd/ircd_signal.c (alloc_crec): New function. - (release_crec): New function. - (register_child): New function. - (do_unregister_child): New function. - (unregister_child): New function. - (sigchld_callback): New function. - (setup_signals): Hook SIGCHLD. - (reap_children): New function. - - * ircd/ircd.c (server_restart): Call reap_children() on exit. - -2006-02-15 Michael Poole - - * include/ircd_osdep.h (os_socketpair): Declare. - - * ircd/os_generic.c (is_blocked): New local function. - (os_*): Use is_blocked() instead of cut-and-pasted code. - (os_socketpair): New function. - -2006-02-15 Michael Poole - - * ircd/match.c (match): Fix backtracking bug after an escape - (reported by Michael, I think). - -2006-02-04 Michael Poole - - * ircd/ircd.c (try_connections): Scan all Connect blocks for the - earliest hold time (suggested by Michael). - -2006-02-04 Michael Poole - - * ircd/m_join.c (m_join): Remove #if 0 code and update comment. - - * ircd/m_mode.c (ms_mode): Remove self-op support. - -2006-01-12 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for 2.10.12.pre06. - -2006-01-12 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for release. - -2006-01-11 Michael Poole - - * doc/Makefile.in: Make install target VPATH-safe. - - * doc/example.conf: Comment out example IAuth block. - - * ircd/m_burst.c (ms_burst): Change isdigit() to IsDigit(), - silencing a warning on Solaris. - -2006-01-09 Michael Poole - - * ircd/s_user.c (register_user): Do not send +r flag to user when - they first connect. - -2006-01-09 Michael Poole - - * include/ircd_features.h (FEAT_ZANNELS): Actually, put it back. - - * ircd/ircd_features.c (FEAT_ZANNELS): Likewise. - -2006-01-06 Michael Poole - - * ircd/channel.c (mode_process_clients): Do not reveal zombies who - are being opped (MODE and KICK crossed). Reported by coekie. - -2006-01-06 Michael Poole - - * ircd/m_join.c (ms_join): Wipe out all modes (not just chanops) - when replacing a resurrected channel. - - * ircd/convert-conf.c (dupstring): Fix probable off-by-one size - passed to memcpy(). - -2006-01-03 Michael Poole - - * ircd/channel.c (modebuf_flush_int): Also send timestamp when &me - originates the MODE going to other servers (currently just when a - client joins a zannel or uses an A/U password). - -2006-01-02 Michael Poole - - * include/ircd_features.h (FEAT_ZANNELS): Remove. - - * ircd/channel.c (sub1_from_channel): Remove reference to - FEAT_ZANNELS. - - * ircd/ircd_features.c (FEAT_ZANNELS): Remove. - - * ircd/m_destruct.c (ms_destruct): Do not try to remove a destruct - event for channels that do not have them (created by BURSTing a - zannel but not yet destroyed by EOB). - -2005-12-31 Michael Poole - - * ircd/m_whowas.c (m_whowas): Mention that IP is untracked in WHOWAS. - Spotted by Progs. - -2005-12-30 Michael Poole - - * ircd/m_topic.c: Remove block comment about sptr, cptr, etc. - (do_settopic): Add doxygen comment. Move permissions checks.. - (m_topic): .. to here. Update doxygen comment. - (ms_topic): Update doxygen comment here too. - -2005-12-30 Michael Poole - - * ircd/s_conf.c (conf_debug_iline): Fix display of null passwords. - -2005-12-30 Michael Poole - - * RELEASE.NOTES: Mention removal of HIS_STATS_h. - - * ircd/convert-conf.c (removed_features): Add AUTOHIDE, - HIS_DESYNCS and TIMESEC. - (get_connect): Do not downcase connection name on insert. - (do_feature): Do not upcase feature name (cf HIS_STATS_k). - -2005-12-30 Michael Poole - - * ircd/engine_devpoll.c (engine_loop): Remove bogus assert. - -2005-12-31 Perry Lorier - - * convert-conf.c: Skip with a warning, H:'s that are missing a - corresponding C: - -2005-12-28 Michael Poole - - * ircd-patch: Do not use [ for test, and do not use $[] for expr. - (Solaris /bin/sh, among others, have problems with those.) - -2005-12-23 Michael Poole - - * config.guess: Update to current version. - - * config.sub: Likewise. - -2005-12-23 Kevin L. Mitchell - - * ircd/m_join.c: get rid of MAGIC_REMOTE_JOIN_TS; perform the - deop-other-users loop only when creation < channel timestamp or - when the channel in question happens to be a zannel; actually deop - users, don't just say we are and not do it - - * ircd/m_create.c (ms_create): get rid of MAGIC_REMOTE_JOIN_TS - - * include/channel.h: get rid of MAGIC_REMOTE_JOIN_TS - -2005-12-13 Michael Poole - - * configure.in: Define a macro when compiling on Solaris. - - * ircd/ircd_crypt_native.c (_XOPEN_SOURCE): Turn down to 500 so - that Solaris doesn't complain that SUSv3 requires C99. - - * ircd/os_generic.c (_XOPEN_SOURCE): Likewise, but leave it at 600 - on non-Solaris platforms so that IPv6 stays supported. - -2005-12-13 Michael Poole - - * ircd/m_join.c (ms_join): Prevent net rides allowed by moving the - channel timestamp backwards in time without deopping current ops. - (Reported by Wouter Coekaerts.) - -2005-12-13 Michael Poole - - * doc/example.conf: Remove extraneous "Other" Client block. - - * ircd/convert-conf.c (finish_operators): Fix operator precedence - bug. - - * ircd/ircd_parser.y (clientclass): Fix typo in error message. - -2005-11-27 Michael Poole - - * ircd/Makefile.in (version.c): version.c also depends on - version.h, patchlevel.h and source files. - -2005-11-27 Michael Poole - - * ircd/m_join.c (m_join): Count a join to a new channel as a - target change. - -2005-11-19 Michael Poole - - * ircd/s_stats.c (stats_servers_verbose): Display IPv6 support - flag with the other per-server flags. - -2005-11-19 Michael Poole - - * ircd/convert-conf.c (finish_features): Only emit "Features {" - once in the converted configuration file. Display the original - input line for each feature line in the output. - -2005-11-18 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for pre05. - -2005-11-18 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for release. - -2005-11-15 Brian Cline - - * doc/example.conf: Add new line for HIS_MODEWHO feature. - - * doc/readme.features: Document new HIS_MODEWHO feature. - - * include/ircd_features.h: Declare new HIS_MODEWHO feature. - - * ircd/channel.c (modebuf_flush_int): Use new HIS_MODEWHO feature - to show or hide the server name that performed a channel mode change. - - * ircd/ircd_features.c: Place new HIS_MODEWHO setting in the feature - table and give it a default value of true, which will hide the - originating server name. - -2005-11-16 Michael Poole - - * doc/example.conf (Features): Mention ZANNELS default. - - * doc/readme.features: Document OPLEVELS and ZANNELS. - -2005-11-17 Carlo Wood - - * include/ircd_features.h (Feature): Add ZANNELS. - * ircd/ircd_features.c (FeatureDesc): idem. - * ircd/channel.c (sub1_from_channel): Don't keep zannels - around when ZANNELS and OPLEVELS are FALSE. - * ircd/m_destruct.c (ms_destruct): Use JOIN instead of - CREATE to recreate a non-empty channel after DESTRUCT. - -2005-11-16 Michael Poole - - * tools/convert-conf.py: Delete obsolete code. - -2005-11-16 Michael Poole - - * ircd/m_names.c (m_names): Fix handling of NAMES #a,#b. - (ms_names): Likewise. - -2005-11-15 Michael Poole - - * ircd/m_nick.c (ms_nick): Clarify message when an older nick - overrules a newer nick. When killing a client for a nick - collision, make sure to use the numnick as the first argument. - -2005-11-14 Michael Poole - - * ircd/channel.c (member_can_send_to_channel): After prodding from - reed, always allow remote users to send to a channel. He also - pointed out a bug in the first version of this change. - -2005-11-14 Carlo Wood - - * ircd/channel.c (modebuf_flush_int): Fix test for limitdel. - (modebuf_mode_uint): Make sure the limit is included as an - argument when necessary (and only when necessary) in a bounce. - - * ircd/m_destruct.c (ms_destruct): Generate a mode bounce instead - of burst to resynchronize a non-empty destructed channel. - -2005-11-14 Michael Poole - - * ircd/channel.c (find_no_nickchange_channel): Disallow nick - changes by voiceless no-account users on a +r channel. - -2005-11-14 Michael Poole - - * ircd/m_kick.c (ms_kick): Fix test for whether a client's own - server is kicking him. - -2005-11-13 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for pre04. - -2005-11-13 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for release. - -2005-11-13 Carlo Wood - - * ircd/m_create (ms_create): Accept CREATE for zannels. - - * ircd/m_join.c (m_join): MODE +o for a zannel must come from the - server for compatibility with older versions. - -2005-11-12 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Bump for pre03. - -2005-11-12 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update for release. - -2005-11-11 Michael Poole - - * ircd/ircd_res.c (proc_answer): Follow CNAME when doing A - and AAAA lookups as well as PTR. - -2005-11-07 Michael Poole - - * ircd/channel.c (mode_parse_client): Allow clients to specify - oplevel in MODE #channel +o. - (mode_process_clients): Allow oplevel 999 to deop another 999. - - * ircd/kick.c (m_kick): Allow oplevel 999 to kick another 999. - -2005-10-31 Michael Poole - (Based on a patch by Romain Bignon ) - - * ircd/channel.c: Some modes (currently only WASDELJOINS) should - not be propagated to remote servers. - -2005-10-30 Michael Poole - - * ircd/channel.c (mode_parse_apass): Move all send_reply() errors - inside an if (MyUser(state->sptr)) test. - - * ircd/m_join.c (m_join): Reorganize zannel join check to match - surrounding code. - -2005-10-30 Carlo Wood - - * ircd/channel.c (sub1_from_channel): Delay destruction for -A - channels. They become zombie channels (zannels). - (mode_parse_upass): Add duration to ERR_NOMANAGER message. - (mode_parse_apass): Likewise. Unconditionally set the member who - sets Apass as oplevel 0. Clear Upass when clearing Apass. - (joinbuf_join): Remove code to pass oplevel in JOIN. - - * ircd/m_burst.c (ms_burst): Handle zannels. - - * ircd/m_join.c (m_join): Handle a join to a zannel. If the user - is joining with ops and/or an oplevel, send those. - (ms_join): Stop trying to parse oplevels in JOIN. Copy join - timestamp when a user joins a zannel. - - * ircd/m_mode.c (ms_mode): Never generate HACK3. Silently allow a - user to op himself if he is the only one in a channel. - - * ircd/s_err.c (ERR_UPASSSET): Remove extra space. - (ERR_UPASSNOTSET): Likewise. - (ERR_NOMANAGER): Add field for channel lifetime. - -2005-10-30 Michael Poole - - * ircd/m_join.c (m_join): Fix check for OVERRIDE when the real - channel key is OVERRIDE. (Reworked patch from a1kmm.) - -2005-10-30 Michael Poole - - * .cvsignore: Add autom4te.cache. - - * ircd/.cvsignore: Add convert-conf. - - * ircd/test/.cvsignore: Add ircd_match_t. - - * patches/.cvsignore: Add marks. - -2005-10-28 Alex Badea - - * ircd/m_kick.c (ms_kick): Fix format string typo (bug #1339538) - -2005-10-17 Diane Bruce - - * ircd/ircd_res.c: Don't send retries if the client did - not resolve (SERVFAIL); this fixes a bug causing a flurry - of retries in this case - -2005-10-14 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update to pre02. - -2005-10-14 Michael Poole - - * doc/readme.cvs: Document tag name consistently with the release - name. - - * include/patchlevel.h (PATCHLEVEL): Bump patchlevel for release - of 2.10.12.01. - -2005-10-12 Michael Poole - - * doc/example.conf: Update documentation to match this change. - - * ircd/client.c (client_set_privs): Make default global oper - privileges match what was in 2.10.11. - -2005-10-11 Michael Poole - - * ircd/os_generic.c (os_get_rusage): Make conditional on DEBUGMODE - to mitigate bug #1313429. - -2005-10-12 Perry Lorier - - * include/s_stats.h: Add new "Local" only flag to /stats. - - * ircd/m_stats.c: Consult it. - - * ircd/s_stats.c: Use the flag. - -2004-01-04 Kevin L Mitchell - - * ircd/s_numeric.c (do_numeric): fix a crash when a numeric is - sent to a channel... - -2005-10-06 Michael Poole - - * ircd/m_join.c (m_join): Report too-long channel names as - non-existent. - -2005-10-05 Michael Poole - - * ircd/m_names.c (m_names): Fix format string when forwarding - /names -D to other servers. - (ms_names): Likewise. Add support for remote /names -D. - -2005-10-05 Michael Poole - - * ircd/class.c (do_find_class): Fix bug from previous commit. - - * ircd/ircd_parser.y (clientblock): Allow setting Client port. - - * ircd/s_conf.c (check_limit_and_attach): Merge into attach_iline. - (attach_iline): Only set FLAG_DOID when we are sure we will attach - this Client block to the client. [Credit: Jukka Ollila and others] - -2005-10-04 Michael Poole - [Based on a patch by Jukka Ollila] - - * include/class.h (find_class): Rename to do_find_class(). - - * ircd/class.c (class_delete_marked): Keep invalid classes in list - until next rehash. - (add_class): Use new parameter to do_find_class() to allow a class - to be "resurrected". - (find_class): Rename. - (report_classes): Use 'y' instead of 'Y' when reporting invalid - classes. - -2005-10-01 Michael Poole - - * ircd/m_kick.c (ms_kick): If the kick target is join-delayed, - only send the KICK to the kicker. Spotted by Cesar_. - -2005-10-01 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Update to pre1. - - * ircd/class.c (init_class): Only set default class's ->next - pointer when first allocating it. - -2005-09-30 Michael Poole - - * ircd/m_who.c (m_who): Handle matchsel & WHO_FIELD_ACC when - matching users. - -2005-09-30 Michael Poole - - * include/patchlevel.h: Update for release. - -2005-09-28 Michael Poole - - * ircd/m_kick.c (ms_kick): Use correct oplevel when bouncing a - chanop being kicked. - -2005-09-26 Michael Poole - - * ircd/whocmds.c (do_who): Fix uninitialized variable warning - about 'chan'. - -2005-09-26 Michael Poole - - * ircd/parse.c (del_msg_element): Only delete empty subtrees, and - leave subtrees that may still contain data. - -2005-09-26 Michael Poole - - * include/channel.h (struct ModeBuf): Add mbm_oplevel to args - array. - (MB_OPLEVEL): New corresponding macro. - (modebuf_mode_client): Add corresponding argument. - - * ircd/channel.c (modebuf_flush_int): Adjust worst-case buffer - usage to include :999 suffix. Change format for oplevel passing. - (modebuf_mode_client): Set oplevel field in mbuf args array. - (struct ParseState): Add oplevel field to cli_change array. - (mode_parse_client): Accept and record oplevel suffix from - servers; fix it up if we're bouncing a deop. - (mode_process_clients): If a valid oplevel was parsed, use it. - - * ircd/m_burst.c (ms_burst): Pass oplevel to modebuf_mode_client(). - - * ircd/m_clearmode.c (do_clearmode): Likewise. - - * ircd/m_create.c (ms_create): Likewise. - - * ircd/m_kick.c (ms_kick): Likewise. - -2005-09-23 Michael Poole - - * include/whocmds.h (WHOSELECT_DELAY): Define new constant. - - * ircd/m_who.c (m_who): Accept 'd'/'D' as a way to set - WHOSELECT_DELAY, just like 'o' for WHOSELECT_OPER. Do not skip - join-delayed users if WHOSELECT_DELAY is set. - - * ircd/whocmds.c (do_who): Remember membership for shared channel - if one exists. Use it when displaying flags, adding '<' for - join-delayed users. - -2005-09-22 Michael Poole - - * ircd/channel.c (mode_parse_key): Only accept the new key when - the current one is empty or "greater" than the new one. - (mode_parse_upass): Likewise, for upass. - (mode_parse_apass): Likewise, for apass. - -2005-09-22 Michael Poole - - * ircd/gline.c (gline_checkmask): Add missing digit in mask length - check. - -2005-09-21 Michael Poole - - * doc/example.conf: Remove confused and outdated references to - Martians. - -2005-09-20 Michael Poole - - * ircd/Makefile.in: Regenerate "make depend" dependencies. - - * ircd/test/Makefile.in: Likewise. - -2005-09-16 Kevin L. Mitchell - - * ircd/m_join.c (last0): fix problem leading to protocol - violations on certain combinations of /join 0 from remote servers - (probably from local users, too) [bug #1291029]; remove redundant - !IsChannelChar() check - -2005-09-14 Michael Poole - - * doc/readme.cvs: Document the branching scheme for 2.10.12. - -2005-09-14 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Increment to reflect the - pre-release code freeze. - -2005-09-14 Michael Poole - - * ircd/channel.c (find_ban): Fix the sense of another check. - -2005-09-13 Michael Poole - - * include/channel.h (clean_channelname): Remove prototype. - - * ircd/m_invite.c (m_invite): Do not clean channel name; just - reject invalid channel names. - - * ircd/m_join.c (m_join): Likewise. - - * ircd/m_mode.c (m_mode): Do not clean channel name. - - * ircd/m_names.c (m_names): Likewise. - - * ircd/m_opmode.c (mo_opmode): Likewise. - -2005-09-13 Michael Poole - - * ircd/channel.c (find_ban): Revert to older style of comparison, - fixing the sense of one check. Spotted by Alex Badea. - -2005-09-13 Alex Badea - - * ircd/ircd.c (try_connections): modify autoreconnect logic to - allow FEAT_CONNECTFREQUENCY to be smaller than Class connectfreq - -2005-09-13 Alex Badea - - * ircd/s_conf.c (close_mappings): NULL out GlobalServiceMapList, - otherwise the linked list has an invalid ending sentinel on rehash - -2005-09-12 Michael Poole - - * ircd/channel.c (find_ban): Compare ban mask against hostname - even when it looks like an IP, to match things like *!*@1.* when - users have a hostname like 1.2.3.example.com. - -2005-09-12 Michael Poole - - * RELEASE.NOTES: Note the resolution of ambiguous ipmasks. - - * ircd/ircd_string.c (ipmask_parse): Implement it. - -2005-09-12 Michael Poole - - * ircd/m_join.c (m_join): If we find an empty key, null out the - key pointer. - -2005-09-11 Michael Poole - - * RELEASE.NOTES: Mention the side benefits of this change. - - * include/ircd_string.h (ipmask_parse): Declare function here. - (ircd_aton): Becomes a special case of ipmask_parse(). - - * include/match.h (check_if_ipmask): Undeclare function. - (ipmask_parse): Remove function prototype from this file. - - * ircd/ircd_string.c (ircd_aton_ip4): Add nullable pbits parameter - to accept ipmask length. Rework to fill that in. - (ircd_aton): Rework into... - (ipmask_parse): this function, which knows how to fill in its own - pbits parameter. - - * ircd/m_burst.c (ms_burst): Rely on make_ban() to set the ban - flags correctly, to avoid call to check_if_ipmask(). - - * ircd/match.c (ipmask_parse_ipv4): Delete function. - (check_if_ipmask): Likewise. - (ipmask_parse): Delete this version in favor of ircd_string.c's. - - * ircd/test/ircd_in_addr_t.c (ipmask_test): New struct type. - (test_masks): New array of ipmask_test. - (test_ipmask): Function to run one of those tests. - (main): Call test_ipmask(). - -2005-09-11 Alex Badea - - * ircd/m_ping.c (ms_ping, mo_ping): misplaced chunk of code - (probably during the forward port) which broke AsLL; fixed. - -2005-09-01 Michael Poole - - * ircd/gline.c (make_gline): Remove debug output from when IPv6 - support was being debugged. - (do_gline): Likewise. - (gline_lookup): Likewise, plus remove redundant code. - -2005-09-01 Michael Poole - - * ircd/channel.c (joinbuf_join): Ignore joinbuf type when joining - 0, since no other call passes a null channel. - - * ircd/m_join.c: Remove comment discussing argument meanings. - (last0): Make this also handle the JOIN 0 logic, doxyfy. - (join0): Merge into last0. - (m_join): Doxygenate. Remove check for join0. Further - reorganize, so new versus old channel handling are moved to just - one place each within this function. - (ms_join): Doxygenate. Remove check for join0. - -2005-09-01 Michael Poole - - * RELEASE.NOTES: Bump revision date and highlight this change. - - * include/channel.h (MAGIC_OPER_OVERRIDE): Remove. - (can_join): Remove declaration. - - * ircd/channel.c (compall): Remove. - (can_join): Remove. - - * ircd/m_join.c (m_join): Remove redundant check for control - characters (clean_channelname() will get them). Reorganize initial - flags calculation. Accept channel keys like RFC 1459 says; this - requires the old compall()/can_join() logic to modify 'keys', so - inline the code and reorganize it. - -2005-08-30 Michael Poole - - * include/channel.h (PASSLEN): Remove; use KEYLEN instead. - - * ircd/channel.c (mode_parse_upass): Likewise. - (mode_parse_apass): Likewise. - The inconsistency (in clean_key()) was reported by Reed. - -2005-08-30 Michael Poole - - * RELEASE.NOTES: Document +D and +d channel modes. - -2005-08-29 Michael Poole - - * include/numeric.h (ERR_NOMANAGER_LONG): Undefine. - (ERR_NOMANAGER_SHORT): Rename to ERR_NOMANAGER. - - * ircd/s_err.c (replyTable): Change to reflect that. - - * ircd/channel.c (clean_key): New function. - (mode_parse_key): Use it, and check that keys do not start with :. - (mode_parse_upass): Likewise, and adjust for ERR_NOMANAGER. - (mode_parse_apass): Likewise. - The key and password changes fix bugs reported by coekie. - -2005-08-27 Michael Poole - - * ircd/channel.c (add_user_to_channel): Use SetOpLevel() instead - of assigning directly to member->oplevel. - (mode_parse_apass): Likewise. - (mode_process_clients): Users opped by outsiders should get - oplevel 1, since they are not channel managers. - - * ircd/m_burst.c (ms_burst): Use SetOpLevel() instead of assigning - directly to member->oplevel. - -2005-08-25 Michael Poole - - * ircd/channel.c (member_can_send_to_channel): At coekie's - suggestion, disallow channel manager talking after Apass is set, - so they set and use Upass sooner. - - * ircd/class.c (init_class): Default class should have 1 link. - (report_classes): Return links count minus one to match old output. - - * ircd/m_trace.c (do_trace): Fix links count here, too (spotted by - Reed). - -2005-08-25 Michael Poole - - * ircd/channel.c (mode_parse): Accept +A/+U from servers - regardless of FEAT_OPLEVELS. - -2005-08-24 Michael Poole - - * ircd/ircd.c (parse_command_line): Mention epoll engine when run - with -v. - -2005-08-24 Michael Poole - - * include/patchlevel.h (PATCHLEVEL): Increment. - - * ircd/channel.c (joinbuf_join): Double check that oplevel is 0 or - 1 when propagating JOIN :#channel, to avoid PV on receiver. - - * ircd/engine_epoll.c: Add system call numbers for more CPU types. - - * ircd/ircd_log.c (log_open): Remove NFS-oriented alarm() calls; - anyone who writes logs over NFS is mental. (Thanks to D. Bruce.) - -2005-08-21 Michael Poole - - * include/s_conf.h (free_mapping): Declare new function. - - * ircd/ircd_parser.y (pseudoblock): Use it. - - * ircd/s_conf.c (free_mapping): Define it. - (close_mappings): New function. - (rehash): Call close_mappings() before reading file. - - * ircd/m_kill.c (do_kill): Revert 2005-08-18 change. - -2005-08-19 Michael Poole - - * ircd/parse.c (tok_tree): Re-add token tree structure. - (initmsgtree): Populate it. - (parse_server): Prefer it to full message tree. - -2005-08-18 Michael Poole - - * ircd/m_kill.c (do_kill): When FEAT_HIS_KILLWHO, change apparent - source of KILLs to &his instead of &me. - -2005-08-16 Michael Poole - - * ircd/channel.c (mode_parse_ban): Avoid overwriting part of - newban->banstr[] when the source is a server. (Spotted by jcq.) - -2005-08-16 Michael Poole - - * ircd/channel.c (joinbuf_join): Switch to &his instead of &me for - announcements to local users in a channel. - - * ircd/m_burst.c (ms_burst): Likewise. - - * ircd/m_invite.c (m_invite): Likewise. - (ms_invite): Likewise. - - * ircd/m_kick.c (ms_kick): Likewise. - - * ircd/m_topic.c (do_settopic): Another &me -> &his change for - HIS, and use that apparent source for the channel localcast. - -2005-08-16 Jukka Ollila - - * ircd/s_user.c (hide_hostmask): Use HIS_SERVERNAME instead of the - real thing for the post-mode-x rejoin. - -2005-08-15 Michael Poole - - * include/supported.h (FEATURESVALUES2): Add +d channel mode. - - * ircd/IPcheck.c (ip_registry_new_entry): Clarify that this is not - a varadic function. (Suggested by Ian Kumlien.) - - * ircd/convert-conf.c (finish_operators): Likewise. - - * ircd/listener.c (close_listeners): Likewise. - - * ircd/channel.c (CheckDelayedJoins): Use HIS server name to - remove channel mode +d. - -2005-08-12 Michael Poole - - * ircd/channel.c (pretty_mask): Recognize ':' as unique to the - host part of a ban mask. - -2005-08-03 Jan Krueger - - * ircd/m_kick.c (m_kick): Send JOIN prior to confirming KICK on - invisible member. - -2005-08-08 Michael Poole - - * ircd/channel.c (find_ban): For non-IPmask bans, match the ban - string against the string form of the client's IP address. - -2005-07-16 Michael Poole - - * configure.in: Apply a test for socklen_t that Reed found. - - * configure: Regenerate. - -2005-07-16 Michael Poole - - * RELEASE.NOTES: Mention that 2.10.11 does not support oplevels. - - * README.FreeBSD: Remove (merged into README). - - * README.Solaris: Remove (merged into README). - - * README: Merge in the above; also update for 2.10.12. - - * doc/example.conf: Change mention of K-lines to say Kill blocks - instead. - - * doc/iauth.txt: Remove (out of date). - - * doc/readme.features: Update to reflect that 2.10.11 is not the - current release. Change mention of various config lines to use - the equivalent config entries or blocks instead. - - * doc/readme.log: Likewise. - - * doc/api/features.txt: Change F-line mentions to say Feature - entry instead. - - * doc/api/modebuf.txt: Change U-line mention to say Uworld entry. - - * doc/api/motd.txt: Change T-line mentions to say Motd entry. - -2005-07-15 Michael Poole - - * ircd/ircd_features.c (feature_init): Always call - feature_notify_server*() so that 'his' is initialized. - - * ircd/m_whois.c (do_whois): Unswap sense of comparison to choose - between user->server and &his. - -2005-07-14 Michael Poole - - * ircd/channel.c (mode_parse_apass): Update oplevels when setting - or removing the +A password. Partial credit goes to Reed Loden. - -2005-07-14 Michael Poole - - * include/ircd_features.h: Declare new "his" pseudo-server to hold - FEAT_HIS_SERVERNAME and FEAT_HIS_SERVERINFO in a convenient place. - - * ircd/ircd_features.c: Initialize and update it. - - * ircd/channel.c (modebuf_flush_int): Use it as the apparent - source for opmodes and server mode changes (also when the source - is me). - - * ircd/m_burst.c (ms_burst): Use it as the apparent source for net - rider kicks. - - * ircd/m_whois.c (do_whois): Use it to simplify code here. - - * ircd/s_misc.c (exit_client): Use it as the apparent killer. - -2005-07-14 Michael Poole - - * doc/example.conf (General): Update comment about vhost to match - the code change below. - - * ircd/ircd_parser.y (generalvhost): Accept vhost="*"; as a - synonym for the default behavior (for backwards compatibility). - Spotted by Kev. - - * ircd/channel.c (sub1_from_channel): Remove stale code and - comment, replacing with an up-to-date comment. Spotted by skx. - -2005-07-11 Michael Poole - - * ircd/engine_select.c: Remove outdated comment about USE_POLL. - - * ircd/parse.c (msgtab): #if out CAP handler until we have caps. - - * RELEASE.NOTES: Remove mention of capabilities for now. - -2005-07-11 Stephan Peijnik - - * ircd/gline.c (gline_add): It's only a protocol violation when a - server issues a "whacky" gline. If it's an oper, only tell opers - with SNO_GLINE. - - * ircd/ircd_auth.c (iauth_protocol_violation): Likewise, the whole - network is not likely to care about IAuth PVs, so only tell opers - with SNO_CONNEXIT. - -2005-07-11 Michael Poole - - * doc/readme.features: Document FEAT_CHANNELLEN. - - * doc/example.conf: Give an example of it. - - * ircd/m_join.c (ms_join): Do not clean channel names from remote - servers, to avoid desynchs. - - * ircd/m_names.c (ms_names): Likewise. - -2005-07-11 Stephan Peijnik - - * include/ircd_features.h: Declare new FEAT_CHANNELLEN. - - * include/supported.h: Add it to the ISUPPORT display. - - * ircd/channel.c (clean_channelname): Impose the lower limit - between FEAT_CHANNELLEN and CHANNELLEN. - - * ircd/ircd_features.c: Define FEAT_CHANNELLEN. - -2005-07-11 Reed Loden - - * include/sys.h: Move FD_SETSIZE redefinition to engine_select.c. - - * ircd/s_bsd.c: Move FD_SETSIZE sanity check to engine_select.c - Remove unused #include . - - * ircd/engine_select.c: Put FD_SETSIZE redefinition and sanity - checks here, since they are not used elsewhere in the daemon. - [Order slightly changed by Michael Poole to compile.] - -2005-07-03 Michael Poole - - * ircd/convert-conf.c: New file. - - * ircd/Makefile: Compile it. - -2005-06-27 Michael Poole - - * ircd/s_bsd.c (add_connection): Split logic for server versus - client listeners; only do IPcheck for client connections. - - * ircd/s_serv.c (server_estab): There is no longer a need to - remove IPcheck reference, so don't. - -2005-06-27 Michael Poole - - * include/client.h (struct Connection): Remove con_dns_reply (and - associated macros). - - * include/res.h (gethost_byname): Change calling signature to - clarify memory ownership. - (gethost_byaddr): Likewise. - - * include/s_bsd.h (release_dns_reply): Remove function. - - * ircd/hash.c: #include "match.h" to quash warning. - - * ircd/ircd_auth.c (struct IAuth): Remove i_query field. - (iauth_dns_callback): Adjust for new gethost_byname signature. - (iauth_reconnect): Likewise. - - * ircd/ircd_res.c (struct reslist): Make elements of query field - inline rather than in a contained structure. - (make_request): Reflect removal of DNSQuery. - (do_query_name): Likewise. - (do_query_number): Likewise. - (make_dnsreply): Remove now-unused function. - (timeout_resolver): Adjust to new callback signature. - (delete_resolver_queries): Reflect removal of DNSQuery. - (gethost_byname): Update to new signature. - (gethost_byaddr): Likewise. - (res_readreply): Reflect removal of DNSReply. - - * ircd/list.c (dealloc_connection): con_dns_reply no longer - exists, so do not free it. - - * ircd/s_auth.c (auth_verify_hostname): constify. - (auth_dns_callback): Adjust to new callback signature. - (start_auth): Adjust to new gethost_byaddr() signature. - - * ircd/s_bsd.c (connect_dns_callback): Adjust to new callback - signature. - (release_dns_reply): Remove unused function. - (connect_server): Adjust to new gethost_byname() signature. - - * ircd/s_conf.c (conf_dns_callback): Adjust to new callback - signature. - (conf_dns_lookup): Adjust to new gethost_byname() signature. - (attach_iline): Use cli_sockhost() instead of DNS reply. - (conf_check_server): Simplify use of DNS results. - - * ircd/s_serv.c (server_estab): Remove call to removed function. - - * ircd/s_user.c (register_user): Remove call to removed function. - -2005-06-27 Michael Poole - - * include/s_misc.h (get_sockhost): Remove the unused (and - deceptively named) get_sockhost(). - - * ircd/s_misc.c (get_sockhost): Likewise. - -2005-06-25 Andrew Miller - - * ircd/ircd_crypt.c (ircd_crypt): strdup is not allowed, change to - DupStr so memdebug works. - - * doc/debug_memleak_gc.patch : Update to gc6.5 - -2005-06-24 Andrew Miller - * ircd/m_invite.c (m_invite): Don't propagate invites to local channels. - -2005-06-21 Andrew Miller - - * ircd/m_list.c (param_parse): Add support for channel wildcards. - * ircd/m_list.c (show_usage): Document the new format. - * ircd/hash.c (list_next_channels): Check channel wildcard in list. - * include/channel.h (ListingArgs): Add the wildcard member. - -2005-06-19 Andrew Miller - - * ircd/ircd_res.c (proc_answer): Deal with unexpected record types more - gracefully. - - * ircd/ircd_res.c (res_readreply): Check res_ourserver before walking - the pending request list, to make DoS attacks harder. - - * ircd/m_invite.c (m_invite): Give no such channel rather than not on - channel when the channel being invited to does not exist. - -2005-06-18 Michael Poole - - * ircd/s_debug.c (count_memory): Consolidate several lines; make - initial letter capitalization consistent. - -2005-06-19 Andrew Miller - - * ircd/s_stats.c: Remove the "debug only" label on memusage stats, - since it no longer applies. - -2005-05-16 Michael Poole - - * include/channel.h (struct Ban): Make 'who' and 'banstr' direct - arrays, rather than pointers. - - * ircd/channel.c (bans_alloc): New variable to count number of ban - structures allocated. - (bans_inuse): New variable to count number of ban structures - currently in use. - (set_banmask): Adapt to changes in struct Ban. - (make_ban): Likewise, and update ban counts. - (free_ban): Likewise. - (bans_send_meminfo): New function. - (apply_ban): Adapt to changes in struct Ban. - (mode_parse_ban): Likewise. - (mode_process_bans): Likewise. - (mode_parse): Likewise. - (RevealDelayedJoin): Fix brace placement. - (CheckDelayedJoins): Fix brace placement and whitespace. - - * ircd/list.c (struct liststats): Add new fields to eliminate the - separate count variables. - (init_list): Adapt to those changes. - (alloc_client): Likewise. - (dealloc_client): Likewise. - (alloc_connection): Likewise. - (dealloc_connection): Likewise. - (make_server): Likewise. - (remove_client_from_list): Likewise. - (verify_client_list): Likewise. - (make_link): Likewise. - (free_link): Likewise. - (send_liststats): New function. - (send_listinfo): Rewrite to use new struct liststats layout. - - * ircd/m_burst.c (ms_burst): Adapt to changes in struct Ban. - - * ircd/m_clearmode.c (do_clearmode): Adapt to changes in struct - Ban. - - * ircd/s_stats.c (stats_meminfo): Define unconditionally and call - bans_send_meminfo(). - (statsinfo): Always give access to stats_meminfo. - -2005-06-16 Michael Poole - - * include/ircd_string.h: Include necessary header. - - * ircd/test/.cvsignore: Ignore log output files. - - * ircd/test/Makefile.in: Remove log output files. - - * ircd/test/kill-block-1.cmd: Add sleeps to try to trigger Kills. - - * ircd/test/run-tests.sh: Switch sense of argument. Send an IRC - debug dump to log files. - -2005-06-13 Michael Poole - - * ircd/s_user.c (make_user): Unconditionally increment userCount. - (free_user): Unconditionally decrement it here. - - * ircd/s_conf.c (make_conf): Unconditionally increment - GlobalConfCount. - (free_conf): Unconditionally decrement it here. - - * ircd/s_debug.c (count_memory): Fix termination condition for - ban-walking loop. Add missing "e" to "members". - - -2005-06-10 Michael Poole - - * ircd/match.c (check_if_ipmask): Strings that contain '?' cannot - be true IP masks. - -2005-05-30 Michael Poole - - * ircd/test/Makefile.in: Add LDFLAGS variable for profiling purposes. - - * ircd/test/ircd_match_t.c: Test recovery from backtracking. - - * ircd/test/channel-1.cmd: Modify to improve code coverage. - - * ircd/test/client-1.cmd: Likewise. - - * ircd/test/gline-1.cmd: Likewise. - - * ircd/test/ircd-t1.conf: Likewise. - - * ircd/test/stats-1.cmd: Likewise. - - * ircd/test/run-tests.sh: Explicitly start ircds. Add new test scripts. - - * ircd/test/test-driver.pl: Silently handle more signals from IRC. - - * ircd/test/commands-1.cmd: New test script. - - * ircd/test/feature-1.cmd: New test script. - - * ircd/test/jupe-1.cmd: New test script. - - * ircd/test/kill-block-1.cmd: New test script. - - * ircd/test/ircd-t1-2.conf: New configuration file for test scripts. - - * ircd/test/ircd-t2.conf: Likewise. - -2005-05-30 Michael Poole - - * ircd/s_debug.c (count_memory): Use count_listener_memory() to - report memory used by listener structures. - -2005-05-30 Michael Poole - - * include/class.h (get_con_freq): Remove unused function. - - * include/list.h (find_user_link): Remove unused function. - - * include/class.c (get_con_freq): Remove. - - * ircd/list.c (find_user_link): Remove. - - * include/string.h (string_is_hostname, string_is_address, - strnChattr): Remove unused functions. - (init_string): Remove function that becomes a noop. - - * ircd/string.h (init_string): Remove. - (string_is_hostname, string_is_address, strnChattr): Likewise. - - * ircd/ircd.c (main): Remove call to init_string(). - -2005-05-30 Michael Poole - - * include/numeric.h (RPL_TRACELOG, RPL_MYPORTIS, - RPL_NOTOPERANYMORE): Undefine unused numeric replies. - - * ircd/s_err.c (replyTable): Fix format fields for certain numeric - arguments. Remove some unused entries. - - * ircd/s_stats.c (stats_configured_links): Move invariant - parameters to message format string. - -2005-05-30 Michael Poole - - * ircd/client.c (privtab): Add missing LIST_CHAN privilege, move - WIDE_GLINE to reflect its enumerated value. - - * ircd/s_debug.c (count_memory): Use user_count_memory() function - to count User structs in-use. - - * ircd/m_server.c (mr_server): Change "C:line" to "Connect block". - - * ircd/s_bsd.c (connect_server): Likewise. - - * ircd/s_conf.c (conf_check_server): Likewise. - - * ircd/s_err.c (replyTable): Change "O-lines" to "Operator block". - -2005-05-30 Michael Poole - - * ircd/match.c (match): Rewrite to handle globs that end in an - escaped wildcard (and hopefully clarify the code). - - * ircd/test/Makefile.in: Add new ircd_match_t test program. - - * ircd/test/ircd_match_t.c: New file. - - * ircd/test/test_stub.c: Emite newlines after log and debug - messages. - -2005-05-25 Reed Loden - - * ircd/s_err.c (replyTable): Allow for the specification of 'O' or - 'o' in RPL_STATSOLINE. - - * ircd/s_stats.c (stats_configured_links): In /stats o/O, display - 'O' if either the oper block or the connection class has - PRIV_PROPAGATE (global oper) and 'o' if neither has PRIV_PROPAGATE - (local oper). - -2005-05-30 Michael Poole - - * ircd/IPcheck.c: Add Debug()s to try to track why the connected - count underflows. - - * ircd/m_endburst.c (ms_endofburst): Avoid dereferencing 'chan' - after it may be freed (in sub1_from_channel). - - * ircd/s_user.c (register_user): Rearrange code to reduce number - of "if (MyConnect(sptr))" checks. - -2005-05-12 Michael Poole - - * configure.in: Do not try to outsmart the default CFLAGS. - Simply add parameters explicitly requested by the user. - - * configure: Regenerate. - - * ircd/ircd_crypt_native.c: Use _XOPEN_SOURCE 600 (which is - used in os_generic.c) to get crypt() on NetBSD. - -2005-05-11 Kevin L. Mitchell - - * ircd/ircd.c: if debugging is enabled (both DEBUGMODE defined and - -x given), reserve fd 2 for the use of the debugging log; - otherwise, some engines may attempt to use fd 2, which would end - up getting closed by debug_init() (actually, by - log_debug_reopen(), called by log_debug_init(), called by - debug_init()) - -2005-08-10 Michael Poole - - * ircd/channel.c (joinbuf_join): Do not send a MODE +o when a - local user creates a channel. - - * ircd/umkpasswd.c (crypt_pass): Allocate the proper amount of - memory for the tagged output string. - - * ircd/test/test-driver.pl: Add -vhost=... option. - - * ircd/test/ircd-t1.conf: Add new Operator blocks. - - * ircd/test/*.cmd: Rearrange and add more coverage tests. - -2005-08-09 Michael Poole - - * ircd/ircd_parser.y: Move error tokens to top level of parse, and - make ';' a synchronizing token for them. This avoids crashes in - situations like missing ';' between two Kill blocks. Move several - ';'s earlier for earlier detection of syntax errors. - - * ircd/motd.c (motd_memory_count): Use size_t for memory counts to - match the format strings used for those variables. - - * ircd/msgq.c (msgq_histogram): tmp.sizes[] is an array of - unsigned int, not unsigned long; use correct format string. - - * ircd/s_stats.c (stats_crule_list): Restore display of 'D' vs 'd' - based on crule type, rather than query type. - (statsinfo): Remove STAT_FLAG_VARPARAM from the "modules" and - "help" stats, which don't use the varparam. - - * ircd/test/test-driver.pl: Interpreter for test scripts.b - - * ircd/test/ircd-t1.conf: Configuration file for test scripts. - - * ircd/test/*.cmd: New test scripts for test-driver.pl. - -2005-05-08 Jukka Ollila - (Adapted slightly by Michael Poole.) - - * ircd/os_generic.c (sockaddr_to_irc): Change to use v4compat - addresses event when !defined(IPV6). - -2005-05-07 Michael Poole - - * ircd/channel.c (joinbuf_join): Be smarter about what source to - use when opping a user that joins a channel. - -2005-05-04 Reed Loden - - * ircd/m_trace.c (do_trace): Show the real nickname instead of the - numnick. - -2005-05-02 Jan Krueger - - * ircd/channel.c (member_can_send_to_channel): if the channel can only - be joined by users with accounts (+r), do not allow users without - accounts to speak. - -2005-05-07 Michael Poole - - * ircd/numnicks.c (base64toip): Fix bugs in parsing IPv6 - addresses. - * ircd/test/ircd_in_addr_t.c (test_addrs): Add new entry. - (test_address): Test base64toip() as well. - -2005-05-05 Michael Poole - - * ircd/s_user.c (umode_str): Only clear the operator flag when not - propagating; never set it. - -2005-05-04 Michael Poole - - * ircd/channel.c (joinbuf_join): Include channel manager flag in - determination of oplevel. If opping the user for a non-local - non-create, include oplevel in message to other servers. Send - "MODE +o " to local users whenever opping the client. - - * ircd/m_join.c (m_join): Remove logic that moved into - joinbuf_join(). - (ms_join): Look for level 0 and 1 joins from remote servers - and adjust value of 'flags' appropriately. - -2005-05-04 Michael Poole - - * include/numeric.h: Remap oplevel numerics to new range. - - * ircd/s_err.c: Likewise. - -2005-05-03 Michael Poole - - * ircd/s_stats.c (stats_access): Update to use new CONF_CLIENT - fields, fixing crash found by nighty. - -2005-05-02 Michael Poole - - * include/numeric.h (ERR_UPASS_SAME_APASS): New error message when - trying to set +U pass to the same as the +A pass. - - * ircd/channel.c (mode_parse_upass): Use it. - - * ircd/ircd_auth.c (iauth_exit_client): Only send ExitUser if - there is an active IAuth connection, fixing PR#1193808. - (iauth_dispose_request): Only delete the timer if it is active. - - * ircd/m_invite.c (m_invite): Always forward the invite in the - correct direction, and then skip it as 'one' if announcing. - (ms_invite): Likewise. - - * ircd/numnicks.c (base64toip): Do not interpret AAAAAA as - ::ffff:0.0.0.0; keep it as ::. - - * ircd/s_err.c (replyTable): Add ERR_UPASS_SAME_APASS. - -2005-05-01 Michael Poole - - * doc/readme.log: Document IAUTH log target, remove docs for - OLDLOG log target. - - * include/ircd_log.h: Add LS_IAUTH target, remove LS_OLDLOG. - - * ircd/ircd_log.c (logDesc): Likewise. - - * ircd/engine_epoll.c (engine_loop): Handle EPOLLHUP for all - sockets (e.g. when connecting) and do not generate read/write - events in the same pass as error or EOF events. - - * ircd/ircd_auth.c: Convert old sendto and debug messages to use - the LS_IAUTH log target. Consistently use IAUTH_CONNECTED flag - instead of comparing fd to -1. - (iauth_reconnect): If already connected, disconnect and schedule a - reconnect later, since an immediate reconnect can cause assertion - failure in the event engine. Also schedule a reconnect when the - connection attempt fails. - (iauth_read): Reconnect on IO_FAILURE. - (iauth_sock_callback): Disconnect and schedule a reconnect on both - error (after reporting the error) and EOF. - (iauth_start_client): Record the IAuth request in the client. - (iauth_exit_client): Report the client exit. - - * ircd/s_misc.c (exit_one_client): Fix formatting. - -2005-04-30 Michael Poole - - * ircd/ircd_auth.c (iauth_connect): Initialize (but do not add) - timer here and set fd to -1. - (iauth_schedule_reconnect): Rewrite to handle previously - initialized timer. - (iauth_reconnect): If server is connected, disconnect first. - Update socket generator fd before calling socket_add(). - (iauth_read): When reading 0 bytes (EOF), reconnect. - -2005-04-27 Michael Poole - - * ircd/ircd_parser.y: Report non-existent class names as errors - earlier, and do not fall back to "default" for Client blocks. - -2005-04-25 Reed Loden - - * ircd/ircd_lexer.l: Add missing header to squash a warning. - -2005-04-25 Michael Poole - - * ircd/s_user.c (register_user): Replace call with set_user_mode() - with a direct parsing of user modes. To match this, revert the - initial display of usermode to how it was done before. - -2005-04-24 Michael Poole - - * doc/example.conf: Document new autoconnect field of Connect. - - * include/s_conf.h: Add CONF_AUTOCONNECT and field for it. - - * ircd/ircd.c (try_connections): Skip non-autoconnect servers. - - * ircd/ircd_lexer.l: Recognize autoconnect token. - - * ircd/ircd_parser.y: Add autoconnect= option to Connect block. - - * ircd/m_invite.c (m_invite): Avoid sending channel timestamp to - user being invited. - (ms_invite): Likewise. - - * ircd/s_user.c (register_user): Show class name rather than - pointer-as-integer. - -2005-04-24 Michael Poole - - * ircd/ircd_parser.y: Rewrite so each error condition gets its own - error message, and so that invalid parameters are printed out. - -2005-04-23 Michael Poole - - * ircd/channel.c (apply_ban): Consistently free newban->banstr - when the function fails. - (mode_process_bans): Free banstr for all BAN_DEL bans. - - * ircd/ircd_parser.y: Fix a few memory leaks from previous commit. - -2005-04-23 Michael Poole - - * include/patchlevel.h: Bump to being a beta. - - * ircd/ircd_lexer.l (QSTRING): Return a copy of the string so that - parser actions don't have to be immediately after a QSTRING. - - * ircd/ircd_parser.y (FNAME): Remove unused token. - (QSTRING): Adjust for QSTRING being an already-copied version. - -2005-04-23 Michael Poole - - * doc/example.conf (UWorld): Illustrate new config extension. - - * ircd/ircd_parser.y (uworldblock): Do the expected thing when - multiple name= entries are present. - -2005-04-22 Michael Poole - - * RELEASE.NOTES: Silence exceptions use ~, not -. Oops! - - * doc/example.conf: Fix typo in example Kill block. - - * ircd/channel.c (mode_parse_ban): Use correct test for flag_p. - - * ircd/m_silence.c (apply_silence): Make mask pretty so that later - processing does not convert * to @ (and match no one). - -2005-04-21 Kevin L. Mitchell - - * ircd/m_userip.c (userip_formatter): /userip should *never* - report the user's real IP unless its answering the user - him/herself - - * ircd/m_userhost.c (userhost_formatter): /userhost should *never* - report the user's real host unless its answering the user - him/herself - -2005-04-20 Michael Poole - - * ircd/ircd.c (parse_command_line): Update usage text. - - * ircd/numnicks.c (base64toip): Use v4mapped address range instead - of v4compat address range, fixing IPv4-based /who. - -2005-04-19 Michael Poole - - * configure.in: When --enable-profile, add -pg to LDFLAGS. - - * configure: Regenerate. - -2005-04-19 Michael Poole - - * ircd/match.c (check_if_ipmask): Fix brown-paper-bag typo. - - * ircd/s_conf.c (conf_debug_iline): Look for matching Kill blocks - once a matching Client block is found. - - * ircd/m_whowas.c (m_whowas): Change strcmp() to ircd_strcmp(). - -2005-04-18 Michael Poole - - * ircd/match.c (check_if_ipmask): Do not interpret masks that - start with . or / as IP-based host masks. - -2005-04-17 Michael Poole - - * ircd/channel.c (mode_process_clients): Only prohibit deops of - users with the same or higher oplevel where apass is set. - Likewise, when opping users, give them MAXOPLEVEL for non-apass - channels. - (joinbuf_join): Give new ops MAXOPLEVEL for non-apass channels. - - * ircd/m_kick.c (m_kick): Only prohibit kicks of users with the - same or higher oplevel where apass is set. - - * ircd/s_user.c (register_user): Fix order of server version vs - various mode strings. - - * tools/linesync/linesync.sh: Add revision id field. - -2005-04-17 Michael Poole - - * tools/linesync/linesync.sh: Fix typo comment. Check for - multiple blocks per line in the linesync input. - -2005-04-17 Dan - - * tools/linesync/linesync.sh: Update to support new syntax and to - avoid rehashing the ircd when the config is the same. - - * tools/linesync/linesync.conf: Update allowed conf items. - -2005-04-16 Michael Poole - - * doc/example.conf (Kill): Document newly supported syntax. - - * include/s_conf.h (DenyConf): Split realname mask into its own - field. Remove the unused DENY_FLAGS_{IP,REALNAME}. - - * ircd/ircd_parser.y (Kill): Only require one of usermask, - hostmask, realmask to be set for a valid block. - (killitem): Add new production killusername. - - * ircd/s_conf.c (conf_erase_deny_list): Free realmask field. - (find_kill): Rearrange slightly to clarify control flow. - - * ircd/s_err.c (RPL_STATSKLINE): Stick usermask before hostmask, - so the old usermask field can be adopted for realname mask. Add - double quotes around the realmask field. - - * ircd/s_stats.c (report_deny_list): Do so. - (stats_klines): Likewise. - -2005-04-17 Perry Lorier - - * tools/convert-conf.py: Fix lots of conversion problems with - oper privielges (now they are converted), - features (deprecated features commented out, most converted to - priviliges), - realname klines (also add host= lines) - quarintines (generate blocks for them), - connect blocks (don't generate empty port config lines) - etc... - -2005-04-16 Michael Poole - - * ircd/gline.c (do_gline): Fix typo when activating IP-based - G-lines. - -2005-04-16 Michael Poole - - * ircd/class.c (free_class): Free default_umode field. - - * ircd/ircd_parser.y (classblock): Free default_umode field before - overwriting it. - - * ircd/s_conf.c (free_conf): Free username, origin_name, hub_limit - fields. - (find_kill): Realname Kill blocks no longer have $R at the start, - so do not skip over the first two characters of the mask. - -2005-04-15 Michael Poole - - * doc/example.conf (Operator): Properly qualify plaintext password. - (Quarantine): Document (new) syntax. - - * ircd/ircd.c: Add to make compile - correctly on BSDs. - - * ircd/ircd_parser.y (qconf): Remove global variable. - (killuhost): Null terminate username when present. - (quarantineblock): Replace with a syntax that works. - - * ircd/s_stats.c: #include for UserStats. - (stats_server_verbose): Reinstate check for UserStats. - -2005-04-09 Kevin L. Mitchell - - * ircd/ircd.c: conditionally include sys/resource.h; otherwise, - RLIMIT_CORE will not be defined and so set_core_limit() will never - be defined, much less run. - - * configure.in: add sys/resource.h to the list of headers to - search for - - * configure: regenerate configure - - * config.h.in: rerun autoheader to add HAVE_SYS_RESOURCE_H to - config.h.in - -2005-04-08 Michael Poole - - * include/s_conf.h (conf_debug_iline): Declare new function. - - * ircd/ircd.c (dbg_client): New file-scoped variable. - (parse_command_line): Set it from the new -c option. - (main): If dbg_client is set during chkconf, use it. - - * ircd/ircd_string.c (ircd_aton): Generate IPv4-mapped addresses, - not IPv4-compatible addresses, to match ipmask_parse(). - - * ircd/m_whowas.c (m_whowas): Split display of real host to a - separate line, in hopes of not confusing opers in the future. - - * ircd/s_conf.c (conf_debug_iline): Implement new function. - -2005-04-06 Michael Poole - - * ircd/m_burst.c (ms_burst): Clear channel manager bit when wiping - out locally opped and voiced channel members. - -2005-04-06 Michael Poole - - * include/numeric.h (RPL_APASSWARN): Replace with three distinct - values. - (ERR_NOMANAGER_LONG): Assign new numeric. - (ERR_NOMANAGER_SHORT): Assign new numeric. - - * ircd/channel.c (parse_mode_upass): Adapt to new formats for - ERR_NOTMANAGER separation. - (parse_mode_apass): Likewise. Also adapt to RPL_APASSWARN split. - - * ircd/s_err.c (RPL_APASSWARN): Replace with three message - strings, to avoid embedding long message strings in the logic - implementation. - (ERR_NOTMANAGER): Likewise (but not the same strings). - -2005-04-06 Michael Poole - - * ircd/ircd_parser.y (clientblock): Use the password field. - - * ircd/s_user.c (register_user): Allow aconf->password to be a - single digit, since per-IP limit is now in a separate field. - -2005-04-06 Michael Poole - - * acinclude.m4 (unet_PIPE_CFLAGS): Remove; -pipe is obsolete in - current gcc releases and is slower than files for previous - releases on most OSes. - - * configure.in (AC_PREREQ): Bump to 2.59 because of AS_HELP_STRING. - (unet_PIPE_CFLAGS): Remove use of macro. - - * aclocal.m4: Regenerate. - - * configure: Likewise. - -2005-04-04 Michael Poole - - * configure.in: For developers' ease, allow passing an option to - configure to persistently set optimization CFLAGS. - - * configure: Regenerate. - -2005-04-04 Michael Poole - - * doc/example.conf (Jupe): Make the default Jupe block follow - CFV-0255. (Thanks to FrankP for pointing me at this and to DinTn - for getting me a copy of the CFV.) - -2005-04-04 Michael Poole - - * include/capab.h (CAPFL_STICKY): Define. - (CAPLIST): Remove the entries used for testing. - - * include/client.h (Connection): Clarify comment about the - distinction between con_capab and con_active. - - * ircd/m_cap.c: Add doxygen comments and replace the long - discussion of m_handler functions with an xref to it. - (send_caplist): Add new parameters and change the terminal vs - non-terminal line distinction to make compliant with current draft - specification. - (cap_empty): Rename to cap_ls(). - (cap_req): Track modified capabilities bitwise, so that the - responding ACK contains all the appropriate flags. - (cap_ack): Add comment explaining why there is no response. - (cap_clear): Build and send a list of cleared capabilities, as - required by the current draft. - (cap_list): Send capability list using LIST subcommand. - (cmdlist): Add handler for LS subcommand. Remove entries for the - empty and LSL subcommands, which are no longer allowed. - (m_cap): Require at least one argument from user. - -2005-04-01 Michael Poole - - * include/s_conf.h (SMAP_FAST): Define. - (s_map): Add 'flags' field. - - * ircd/ircd_lexer.l: Recognize 'FAST' token. - - * ircd/ircd_parser.y (FAST): New token. - (pseudoitem): Add pseudoflags alternative. - (pseudoflags): New production, recognizing FAST token. - - * ircd/parse.c (register_mapping): Set MFLG_SLOW conditionally. - Remove outdated comment. - -2005-04-01 Michael Poole - - * include/handlers.h (ms_privs): Declare. - - * include/msg.h (TOK_PRIVS): Assign token. - (CMD_PRIVS): Define. - - * ircd/m_privs.c: Add doxygen comments and replace the long - discussion of m_handler functions with an xref to it. - (mo_privs): Forward requests for non-local users - to their own server. - (ms_privs): Implement. - - * ircd/parse.c (PRIVS): Dispatch to ms_privs when a server sends - the message. - -2005-03-30 Michael Poole - - * include/client.h (struct Client): Explain where cli_username - comes from. - - * include/struct.h (struct User): Explain where this username - comes from, too - - * ircd/ircd_res.c (timeout_resolver): Update parameter name in - Doxygen comment, too. - - * ircd/s_misc.c (get_client_name): Reorganize to have less - indentation and behave like 2.10.11 when client is not idented. - -2005-03-29 Michael Poole - - * doc/example.conf: Remove no-longer-used HIS_STATS_h. - - * doc/readme.features: Likewise. - - * include/ircd_features.h: Likewise. - - * ircd/ircd_features.c: Likewise. - -2005-03-20 Reed Loden - - * include/ircd_features.h: Alphabetize HIS_STATS_? features. - - * ircd/ircd_features.c: Likewise. - -2005-03-29 Michael Poole - (The previously unapplied part of another patch (by Carlo Wood?).) - - * ircd/m_part.c (ms_part): Remove a check that should already be - done by the user's own server. - -2005-03-29 Michael Poole - - * doc/example.conf: Add HIS_STATS_J entry. - - * doc/readme.features: Likewise. - -2005-03-25 Reed Loden - - * include/hash.h: Add needed prototypes for new - stats_nickjupes() function. - - * include/ircd_features.h: Add FEAT_HIS_STATS_J. - - * include/numeric.h: Add RPL_STATSJLINE (222) for new nick - jupes stats. Correct a typo in a comment. - - * ircd/hash.c: Add stats_nickjupes() function to report all - nick jupes to an oper. Because of the nature of hash tables, - there is no way to sort this list so the results look weird. - - * ircd/ircd_features.c: Add FEAT_HIS_STATS_J (default: TRUE). - - * ircd/s_err.c: Add RPL_STATSJLINE (222) for new nick jupes - stats. - - * ircd/s_stats.c: Add RPL_STATSJLINE (222) for new nick jupes - stats. Make 'j' case sensitive. Modify the comment for stats - uworld. - -2005-03-27 Michael Poole - - * ircd/m_burst.c (ms_burst): Do not send numeric oplevels in a -A - channel when forwarding a channel burst line. - -2005-03-25 Michael Poole - - * ircd/m_server.c (set_server_flags): New function. Unlike the - old code, this recognizes the IPv6 flag. (Spotted by Reed.) - (mr_server): Use the new function. - (ms_server): Likewise. Also don't show "Net junction:" message if - any closer server is still bursting (also spotted by Reed). - Finally, forward the +6 flag to other servers. - - * ircd/s_serv.c (server_estab): Forward the +6 flag here, too. - - * ircd/s_bsd.c (client_sock_callback): Re-set cli_error() after it - may be cleared by completed_connection(). - -2005-03-23 Michael Poole - - * ircd/m_burst.c (ms_burst): Remove limit and keys when a channel - is wiped out during burst. - -2005-03-22 Michael Poole - - * ircd/ircd_res.c (check_resolver_timeout): I give up. Use the - kludgy earlier version of the timeout fix. - -2005-03-22 Michael Poole - - * ircd/channel.c (send_channel_modes): Fix test for when to send - membership mode suffix, to avoid sending it more than once. - -2005-03-22 Michael Poole - (Many thanks to nex and Reed for helping hunt this down and - doing the testing of various patches.) - - * ircd/ircd_events.c (timer_chg): Properly change a timer that is - in the middle of executing its expiration event. - - * ircd/ircd_res.c (check_resolver_timeout): Simplify the test for - whether to use timer_chg() or timer_add(). - On second thought, use timer_add() unconditionally; the server - connection loop does. - (timeout_resolver): Do not try to re-schedule the DNS timeout - unless it is the expiration event. - (do_query_number): Properly initialize request->state. - (res_readreply): Mention the response code that was bad. - -2005-03-22 Michael Poole - - * ircd/engine_kqueue.c (engine_delete): The kernel removes - close()'d FDs from the activity list, so don't try to remove the - FD here (the caller may have already close()'d it). - -2005-03-20 Michael Poole - - * ircd/IPcheck.c: Fix typos in comments and strings to reduce - future slumming for credit. - - * ircd/channel.c, ircd/crule.c, ircd/engine_epoll.c: Likewise. - * ircd/fileio.c, ircd/hash.c, ircd/ircd.c: Likewise. - * ircd/ircd_auth.c, ircd/ircd_crypt.c: Likewise. - * ircd/ircd_crypt_native.c, ircd/ircd_crypt_smd5.c: Likewise. - * ircd/ircd_features.c, ircd/ircd_log.c: Likewise. - * ircd/ircd_parser.y, ircd/ircd_res.c: Likewise. - * ircd/ircd_reslib.c, ircd/ircd_string.c, ircd/list.c: Likewise. - * ircd/m_burst.c, ircd/m_clearmode.c, ircd/m_destruct.c: Likewise. - * ircd/m_invite.c, ircd/m_ison.c, ircd/m_kill.c: Likewise. - * ircd/m_server.c, ircd/m_squit.c, ircd/m_topic.c: Likewise. - * ircd/m_who.c, ircd/m_whois.c, ircd/m_whowas.c: Likewise. - * ircd/match.c, ircd/msgq.c, ircd/numnicks.c: Likewise. - * ircd/os_generic.c, ircd/parse.c, ircd/s_auth.c: Likewise. - * ircd/s_bsd.c, ircd/s_conf.c, ircd/s_debug.c: Likewise. - * ircd/s_misc.c, ircd/s_numeric.c, ircd/s_serv.c: Likewise. - * ircd/s_stats.c, ircd/s_user.c, ircd/table_gen.c: Likewise. - * ircd/umkpasswd.c, ircd/uping.c, ircd/whowas.c: Likewise. - - * ircd/test/test_stub.c: Make exit_client() argument list - consistent with that in s_misc.c so doxygen is not confused. - -2005-03-20 Michael Poole - (Thanks to Reed Loden for pointing these out.) - - * ircd/channel.c: Fix typos in comments. - - * ircd/m_create.c: Likewise. - - * ircd/m_list.c: Likewise. - - * ircd/m_names.c: Likewise. - - * ircd/numnicks.c: Likewise. - - * ircd/s_bsd.c: Likewise. - -2005-03-20 Michael Poole - (Thanks to Reed Loden for pointing these out.) - - * doc/Configure.help: Remove outdated file. - - * doc/exaconf.2: Likewise. - - * doc/snomask.html: Add missing , SNO_AUTO, SNO_DEBUG, and - update SNO_OPERDEFAULT list. - - * tools/mkpasswd.c: Remove outdated file (use ircd/umkpasswd - instead). - - * tools/Makefile.crypt: Remove outdated file. - - * tools/mkpasswd.c: Likewise. - - * tools/transition: Likewise. - -2005-03-19 Michael Poole - - * ircd/channel.c (sub1_from_channel): Check apass rather than mode - to determine whether an apass is set (MODE_KEY/APASS/UPASS are not - set in mode.mode). - (send_channel_modes): Use the same change when determining how to - send oplevels for channels. - -2005-03-19 Michael Poole - - * include/IPcheck.h (IPcheck_connect_fail): Take a Client - parameter instead of irc_in_addr. - - * ircd/IPcheck.c (IPcheck_connect_fail): Likewise. Assert that - the client has been IP-checked. - (IPcheck_remote_connect): Assert that the client has not yet been - charged for connecting. - (IPcheck_connect_succeeded): Assert that the client has been - charged for connecting. - (IPcheck_disconnect): Likewise. - - * ircd/m_nick.c (m_nick): Pass rejected client to - IPcheck_connect_fail() when somebody takes the nick first. - (ms_nick): Likewise. - - * ircd/s_serv.c (server_estab): Pass new server to - IPcheck_connect_fail(). - - * ircd/s_user.c (register_user): When rejecting a user, pass - the struct Client to IPcheck_connect_fail(). - -2005-03-19 Michael Poole - - * doc/example.conf (Connect): Remove a buggy comment about leaf - directives; refer the reader to the Connect block instead. - - * tools/convert-conf.py: Set "leaf;" rather than "leaf = yes;" - -2005-03-19 Michael Poole - - * doc/example.conf (Operator): Correct the comment explaining - hashed passwords. - - * ircd/m_oper.c (oper_password_match): Check correct variable to - determine whether the hashed password matched. - -2005-03-08 Michael Poole - - * ircd/match.c (ipmask_parse): Explicitly zero-initialize the mask - and bit count for "*". - (ipmask_check): Make more robust to similar errors. - -2005-03-07 Michael Poole - - * configure.in: Consistently use a constant in AC_DEFINE(). - - * configure: Regenerate. - - * doc/example.conf (Port): Add comment about the mask option. - (Port): Fix the vhosted Port example. - - * ircd/ircd_parser.y (clientblock): Correctly initialize the IP - address and addrbits for a Client block with no IP mask. - - * ircd/match.c (ipmask_parse): Accept * as a zero-bit mask. - - * ircd/s_auth.c (start_auth_query): Count socket allocation - failure as a failed auth check, as .11 does. - - * ircd/s_debug.c (debug_serveropts): Add '6' to server options - when compiled with IPv6 support. - -2005-02-23 Michael Poole - - * doc/example.conf: Explain apass_opmode privilege, pointing out - that, unlike previous privs, the default is OFF for global opers. - - * include/client.h (PRIV_APASS_OPMODE): Define new privilege. - - * ircd/channel.c (mode_parse_upass): Only prevent local opers - without the apass_opmode privilege from forcing a +U change. - (mode_parse_apass): Likewise, for +A. - - * ircd/client.c (client_set_privs): Turn off PRIV_APASS_OPMODE in - the default privileges for global opers. - - * ircd/ircd_lexer.l (apass_opmode): Recognize keyword. - - * ircd/ircd_parser.y (TPRIV_APASS_OPMODE): New token. - (privtype): Fix typo for local_badchan privilege value. - Accept apass_opmode token. - -2005-02-23 Michael Poole - - * doc/example.conf: Fix comment's description of "whox" privilege. - -2005-02-21 Michael Poole - - * include/channel.h (ShowChannel): Remove PRIV_LIST_CHAN check - from here, so /whois does not show secret global channels. - - * ircd/m_list.c (param_parse): Require PRIV_LIST_CHAN to use - "/list s". - (m_list): Allow opers with PRIV_LIST_CHAN to see secret channels. - -2005-02-21 Perry Lorier - - * ircd/s_stats.c: Hide the hub IP's. They're kinda important. - -2005-02-20 Perry Lorier - - * ircd/ircd_parser.y: Moved some parse errors from log_write()'s to - parse_error()'s so that ./ircd -k will display them. Also clarified - the warning about oper blocks. - -2005-02-20 Perry Lorier - - * tools/convert-conf.py: A multitude of changes to deal with parsing - mistakes, generate a newer config file, better error handling, - being smarter about what config elements you generate etc. - -2005-02-20 Perry Lorier - - * ircd/engine_epoll.c: Change a size_t to socklen_t to match - getsockopt prototype, so it compiles without warning on amd64 - -2005-02-19 Michael Poole - - * ircd/ircd_parser.y (clientblock): Parse IP address before - allocating ConfItem; if the parse fails, generate an error. - - * ircd/s_err.c (RPL_STATSCLINE): Add format field to prefix IPv6 - addresses starting with ':'. - (RPL_STATSILINE): Likewise. - (RPL_STATSOLINE): Add format field for username. - - * ircd/s_stats.c (stats_configured_links): Pass the appropriate - argument for the RPL_STATSxLINE changes. - Change RPL_STATSILINE to use * instead of when IP or host - is null. - -2005-02-18 Michael Poole - - * ircd/IPcheck.c (ip_registry_find): Use canonical form of IP - address to look up and compare against hash entries. - - * ircd/channel.c (apply_ban): Do not free a succesful BAN_DEL ban. - - * ircd/ircd_parser.y (clientblock): Stash IP string in aconf->name. - (clienthost): Split hosts that contain '@' into username and host. - (clientip): Split IPs that contain '@' into username and IP. - (killreason): Add missing ~ to mask off DENY_FLAGS_FILE. - - * ircd/m_silence.c (forward_silences): When we reject a silence, - splice it out of the ban list. Warn the user if he is local. - - * ircd/s_bsd.c (connect_inet): Set IP TOS for outbound server - connections. - - * ircd/s_stats.c (stats_configured_links): Display correct field - when listing CONF_UWORLD entries. - -2005-02-09 Michael Poole - - * configure.in (YACC): Only warn if we cannot get a version number - from $YACC. - - * configure: Regenerate. - - * ircd/ircd_res.c (check_resolver_timeout): Try another way to - avoid timer_chg() on a non-queued/active timer. - - * ircd/ircd_string.c (ircd_aton): Set part_start to handle input - strings like "::127.0.0.1". - - * ircd/test/ircd_in_addr_t.c (test_addrs): Add a test for that. - -2005-02-02 Michael Poole - - * Makefile.in (install): Do not create ${prefix}/include since it - is no longer used. - - * ircd/Makefile.in (install-*): Remove commented-out code to touch - and chown MPATH and RPATH. - - * ircd/gline.c (gline_find): Allow searching for host-based - G-lines by plain hostname (not *@host), thus preventing "GLINE - test ..." from inserting duplicate G-lines. - - * ircd/motd.c (motd_create): Null out new Motd's hostmask when - appropriate, avoiding an uninitialized or stale pointer. - -2005-01-26 Michael Poole - - * include/ircd_alloc.h (DoMallocZero): Parenthesize macro - arguments, fixing operator precedence problems. - (DoFree): Make debug version also overwrite p. - - * include/memdebug.h (fda_get_byte_count, fda_get_block_count): - Declare functions used outside memdebug.c. - - * ircd/Makefile.in (UMKPASSWD_SRC): Add memdebug.c. - - * ircd/ircd_alloc.c (DoMalloc, DoMallocZero, DoRealloc): Do not - use these if using the memdebug version. - - * ircd/memdebug.c: #include "send.h" and to get - declarations for certain functions. - - * ircd/umkpasswd.c (CurrentTime): Define in case of memdebug. - (sendto_opmask_butone): Likewise. - -2005-01-25 Michael Poole - - * configure.in: Fix typos and thinkos in previous commut. - - * configure: Regenerate. - - * doc/example.conf: Change class name in Connect block to be - consistent with earlier Class block. - - * ircd/ircd.c (try_connections): Consider Connect blocks with hold - time of 0. Fix Links() vs MaxLinks() comparison to reflect ref - count starting at 1. - - * ircd/ircd_parser.y (cruleblock, iauthblock): Clear unused - variables after use. - -2005-01-24 Michael Poole - - * configure.in: Make sure that $LEX and $YACC are reasonable and - actually run. - - * configure: Regenerate. - - * ircd/ircd_res.c (check_resolver_timeout): Use correct macro to - test whether the timer is already pending. - -2005-01-23 Michael Poole - - * doc/example.conf (Kill): Fix typo in realname Kill block - - * include/client.h (infousermodes): Fix typo in comment. - - * ircd/ircd.c (parse_command_line): -k implies BOOT_TTY. - (main): Move daemon_init() before event_init() to work around BSD - lameness. - -2005-01-23 Michael Poole - - * ircd/test/Makefile.in: Add missing "install" target. Make - compatible with BSD make (which has no $^ and no $(CPPFLAGS) in - its default .c.o rule). - -2005-01-21 Michael Poole - - * ircd/engine_kqueue.c: Move earlier to fix build on - FreeBSD 5.x (which needs it for ). - - * ircd/fileio.c (fbopen): Replace BSDism S_IREAD, S_IWRITE with - portable equivalents. - - * ircd/ircd_log.c (log_open): Likewise. - - * ircd/os_generic.c (_XOPEN_SOURCE): Increase to 600 (SuSv3?) so - that IPv6 definitions become visible on FreeBSD 5.3. - - * ircd/s_auth.c: Remove apparently unused because - it fails to compile on FreeBSD 5.3. - -2005-01-22 Perry Lorier - - * ircd/ircd_parser.y: Fix missing ; - -2005-01-19 Michael Poole - - * ircd/m_invite.c (m_invite, ms_invite): Include timestamp in - outbound INVITE messages. On incoming INVITEs, ignore if the - timestamp is too recent or if the timestamp is missing and the - peer server is in burst. - -2005-01-15 Michael Poole - - * RELEASE.NOTES: Mention CIDR support for Client, Operator, bans - and silences. Mention net.rider kick change. - - * doc/example.conf (Class): Add documentation for restart and - local_opmode privileges. Fix name of local_jupe privilege. - - * ircd/ircd_lexer.l: Recognize local_opmode privilege. - -2005-01-14 Michael Poole - - * RELEASE.NOTES: Further updates (mention Pseudo blocks, clarify - CAP comment, mention named /stats, list config heteromorphisms. - - * doc/readme.features: Document HIS_STATS_a, HIS_STATS_L, - HIS_STATS_R, LOCAL_CHANNELS, TOPIC_BURST. - - * ircd/channel.c (mode_parse_apass): Change old mention of +u mode - to say +U. - -2005-01-13 Michael Poole - - * RELEASE.NOTES: Update for 2.10.12. - -2005-01-08 Michael Poole - - * ircd/channel.c (@page zombie): Add synopsis to explain what - zombies are supposed to do. - - * doc/example.conf (Features): Transfer recommended LOG features - from 2.10.11 example.conf. - -2005-01-03 Michael Poole - - * ircd/ircd.c (try_connections): Test Connect hold time before - updating it (spotted by Kev). - -2005-01-03 Michael Poole - - * Makefile.in: Add ircd/test as a subdirectory. - - * ircd/.cvsignore: Ignore umkpasswd binary. - - * ircd/Makefile.in: Update dependencies. - - * ircd/test/.cvsignore: New file. - - * ircd/test/Makefile.in: Use ${} instead of $(). Add build, - depend, distclean targets to integrate with rest of build system. - -2005-01-03 Michael Poole - - * ircd/IPcheck.c (ip_registry_check_remote): Do not count clones - that have an invalid IP address. - - * ircd/ircd.c (try_connections): Update Connect hold time before - skipping it, to prevent infinite loops. - -2005-01-03 Kevin L Mitchell - - * ircd/s_user.c (is_silenced): is_silenced() would core if sptr - was a server; fixed to skip servers - -2004-12-28 Michael Poole - - * include/s_bsd.h (VirtualHost): Replace with separate variables - for IPv4 and IPv6 virtual hosts. - - * include/uping.h (uping_echo): Remove declaration. - - * ircd/ircd_auth.c (iauth_reconnect): Select VirtualHost_v4 or - VirtualHost_v6 based on iauth server address family. - - * ircd/ircd_lexer.l: Do not recognize RESOLVER token. - - * ircd/ircd_parser.y (ResolverAddr): Remove declaration. - (RESOLVER): Remove definition. - (generalresolver): Remove. - (generalvhost): Assign address to either VirtualHost_v4 or - VirtualHost_v6, depending on format. - - * ircd/ircd_res.c (res_socket): Replace with separate variables - for IPv4 and IPv6 resolver sockets. - (ResolverAddr): Remove definition. - (restart_resolver): Attempt to set up both IPv4 and IPv6 sockets. - (send_res_msg): Select outbound FD based on resolver address type. - (res_readreply): Recognize either inbound socket FD. - - * ircd/os_generic.c (sockaddr_from_irc): Require irc != NULL. - (os_socket): Require local != NULL. - - * ircd/s_bsd.c (VirtualHost): Replace with separate variables - for IPv4 and IPv6 virtual hosts. - (connect_inet): Select virtual host based on destination address. - - * ircd/uping.c (UPingFIleDescriptor): Remove. - (upingSock): Split into separate IPv4 and IPv6 variables. - (uping_echo_callback): Incorporate uping_echo() body here, so the - proper socket FD can be used. - (uping_init): Attempt to set up both v4 and v6 UPING sockets. - (uping_server): Create uping socket with appropriate local address. - - * doc/example.conf (General): Update example config file to - reflect removal of Resolver setting and support for separate IPv4 - and IPv6 VHost settings. - -2004-12-28 Michael Poole - - * ircd/sys.h (BITS_ZERO_ON_*, HAVE_RELIABLE_SIGNALS, DOCURSES, - DOTERMCAP, IRC_UID, IRC_GID, LIMIT_FMT, FALSE, TRUE): Remove - unused macros. - - * ircd/ircd_auth.c, ircd/listener.c, ircd/s_auth.c, ircd/s_bsd.c, - ircd/s_conf.c, ircd/uping.c, ircd/whocmds.c: Remove obsolete - #include . - -2004-12-28 Michael Poole - - * ircd/match.c: Remove obsolete #include . - (ipmask_parse_ipv4): We already parse the dotted quads from the - input string, so use them instead of inet_addr() to populate - out->s_addr. - - * ircd/gline.c: Remove obsolete #includes , "sys.h". - (do_gline): Pass SHOW_IP instead of TRUE as argument to - get_client_name(). - - * ircd/ircd.c (try_connections): Revise to use fewer temporary - variables. - -2004-12-28 Michael Poole - - * include/res.h: Implement irc_in_addr_* as macros. - - * ircd/ircd_res.c: Remove the function bodies. - - * ircd/ircd_string.c (irc_in_addr_is_ipv4): Remove body. - (ircd_ntoa_r): Do not append extra ':' when unparsing 0::. - (ircd_aton): Accept IPv6 addresses with all eight segments - specified (e.g. 0:0:0:0:0:0:0:0). Correctly parse addresses - with IPv4 bits at the end (e.g. ::FFFF:127.0.0.1). - - * ircd/test/ircd_in_addr_t.c, ircd/test/test_stub.c: New files. - - * ircd/test/Makefile: Convert to Makefile.in for proper VPATH - support. Add test_stub.c and ircd_in_addr_t.c references. - - * configure.in: Generate ircd/test/Makefile as an output file. - - * configure: Update. - -2004-12-18 Michael Poole - - * include/client.h: Move unreg, privs, capab and active fields - from struct Client to struct Connection since that is how they - are really associated. Adjust macros to match. - (SetPriv, ClrPriv): New macros. - - * ircd/client.c (client_set_privs): Exit earlier for remote - clients. Adjust macro use to correspond. - - * ircd/m_server.c (mr_server): Grant all privileges except - PRIV_SET to peer servers. - -2004-12-18 Michael Poole - - * ircd/s_user.c (hide_hostmask): Add a missing "break;" to fix bug - #1087461. - -2004-12-18 Michael Poole - - * ircd/engine_kqueue.c (engine_loop): Remove an assertion that the - socket's FD is the same after processing as it was before; local - clients apparently have s_fd() == -1 after close. - -2004-12-18 Kevin L Mitchell - - * ircd/s_user.c: make absolutely certain register_user() is never - called with cli_unreg non-zero; transition set_nick_name() over to - the new way of determining whether client is ready for - register_user() - - * ircd/s_err.c: add ERR_UNKNOWNCAPCMD for reporting failure to - understand a given CAP subcommand - - * ircd/parse.c: add "CAP" command - - * ircd/m_user.c (m_user): transition over to new way of - determining whether client is ready for register_user() - - * ircd/m_pong.c (mr_pong): transition over to new way of - determining whether client is ready for register_user() - - * ircd/m_cap.c: implementation of the IRC capabilities draft - - * ircd/list.c (make_client): initialize cli_unreg element of - client structure - - * ircd/ircd_string.c: correct old bugs in ircd_strn?cmp() - functions that were never found because cross-case ordering has - not been needed until now - - * ircd/Makefile.in: add m_cap.c to list of .c files - - * include/numeric.h (ERR_UNKNOWNCAPCMD): define new error reply to - indicate an unknown CAP subcommand - - * include/msg.h: add "CAP" command - - * include/handlers.h: add m_cap() to list of handlers - - * include/client.h: add support for client capabilities; rototill - the registration mechanism to dovetail well with the capability - system--i.e., allow the capability system to suspend registration - if the user issues one of the CAP commands - - * include/capab.h: header file to define client capabilities - -2004-12-17 Michael Poole - - * ircd/channel.h (apply_ban): Add new flag to indicate whether - newban should be free()'d after it is used. - - * ircd/channel.c (apply_ban): Likewise. Also set BAN_DEL flag - when setting BAN_OVERLAPPED, and free newban when BAN_DEL. - (mode_parse_ban): Delete buggy shortcut when channel banlist is - empty. - (mode_process_bans): Always give ownership of ban->banstr to the - mode buffer, avoiding a memory leak. - - * ircd/m_silence.c (apply_silence): Pass new parameter to - apply_ban. - -2004-12-17 Michael Poole - - * ircd/channel.c (sub1_from_channel): Immediately destroy - non-Apass channels when oplevels are enabled; otherwise, they can - stay opless for a considerable period. - (mode_parse_ban): Initialize banstr to NULL so that set_ban_mask() - does not try to free() an invalid pointer. - - * ircd/ircd_parser.y (uworldblock): Put UWorld server name into - aconf->host, not aconf->name. - - * ircd/m_server.c (mr_server, ms_server): Attach CONF_UWORLD items - by host here.. - - * ircd/s_conf.c (conf_check_server): .. rather than by name here. - (attach_conf_uworld): New function to attach CONF_UWORLD items. - (rehash): Use attach_conf_uworld() instead of attaching by name. - -2004-12-15 Michael Poole - - * ircd/m_topic.c (do_settopic): Allow +k services to set topics on - channels they are not joined. - -2004-12-15 Michael Poole - - * ircd/IPcheck.c (IPTargetEntry): Make count unsigned to squash - warning. - (ip_registry_canonicalize): New function to convert an IP address - into a canonical form for clone checks. - (ip_registry_hash): Update to reflect canonical form. - (ip_registry_find): Use ip_registry_canonicalize(). - (ip_registry_check_local, ip_registry_check_remote): Likewise. - - * ircd/numnicks.c (iptobase64): Map 6to4 addresses to IPv4 when - sending them to a non-IPv6 server. - -2004-02-17 Michael Poole - - * ircd/s_user.c (hide_hostmask): Preserve user's visibility in a - +D channel when they hide their hostmask. - -2004-12-15 Michael Poole - - * doc/example.conf: Remove the example Server blocks since they - are no longer used (were merged into Connect). - - * ircd/ircd_res.c (restart_resolver): Fix typo in previous commit. - - * ircd/m_server.c (check_loop_and_lh): Use a different argument to - test whether an introduced server is directly connected or not. - -2004-12-14 Michael Poole - - * include/client.h (FLAG_IPV6): New value for enum Flag. - (IsIPv6, SetIPv6): Accessor macros for it. - - * include/numnicks.h (iptobase64): Add flag indicating whether to - use full IPv6 addresses or fake them in an IPv4-compatible way. - - * ircd/numnicks.c (iptobase64): Use the new flag. - - * include/send.h (sendcmdto_flag_serv_butone): New function to - send different lines to servers based on flags (like FLAG_IPV6). - - * ircd/send.c (sendcmdto_flag_serv_butone): Implement it. - - * ircd/s_bsd.c (completed_connection): Advertise IPv6 support in - our server flags. - - * ircd/s_serv.c (server_estab): Likewise. Also make sure we send - compatible IP addresses for the new server. - - * ircd/s_user.c (register_user): Only send full IPv6 addresses to - links that have FLAG_IPV6 set. - -2004-12-13 Michael Poole - - * doc/example.conf: Update General block comment to mention - new RESOLVER option and to explain IPv6 support. - - * ircd/ircd_lexer.l: Recognize RESOLVER token. - - * ircd/ircd_parser.y: Declare RESOLVER token and use it in an - alternative for generalitem. - - * ircd/ircd_res.c: Define global ResolverAddr variable. If it is - valid, use it instead of VirtualHost in restart_resolver(). - -2004-12-13 Michael Poole - - * doc/example.conf: Update configuration to move Client block - comment after sample Class blocks, and update entries in it. - - * ircd/ircd_lexer.y: Recognize IP and USERNAME tokens. - - * ircd/ircd_parser.y: Add ip and username global variables and IP - and USERNAME tokens. Add clientip and clientusername alternatives - for clientitem, and update clientblock to correspond. - - * ircd/ircd_res.c (delete_resolver_queries): Do not try to walk - the request_list before request_list is initialized. - (cres_mem): Likewise. - - * ircd/os_generic.c (sockaddr_from_irc): Improve guessing of - proper address family. - - * ircd/s_conf.c (attach_iline): Allow aconf->host == NULL, which - means DNS reply is optional. If aconf->addrbits >= 0, test it. - - * tools/crypter: Delete. - -2004-12-11 Kevin L Mitchell - - * ircd/*.c: use new assert() in ircd_log.h in preference to system - assert() - - * ircd/umkpasswd.c: use new assert in ircd_log.h; add necessary - glue so that umkpasswd will successfully compile and link - - * ircd/test/ircd_chattr_t.c: comment out include of assert.h since - there are no calls to assert() - - * ircd/ircd_log.c: add sentinel (log_inassert) to prevent assert() - from looping should there be an assertion failure somewhere in the - logging subsystem - - * include/ircd_log.h: custom implementation of assert() that calls - log_write() - -2004-11-21 Michael Poole - - * ircd/channel.c (mode_parse_upass): Allow forced mode changes to - be done by non-channel-managers, fixing a crash from OPMODE. - (mode_parse_apass): Likewise. - -2004-11-20 Michael Poole - - * ircd/m_create.c (ms_create): Complain if a user tries to CREATE - a channel they are already in, but do not add them again. - -2004-11-09 Michael Poole - - * include/res.h (init_resolver): Delete, and initialize lazily. - - * ircd/ircd.c (main): Do not call init_resolver(). - - * ircd/ircd_res.c (restart_resolver): Use default VirtualHost for - local resolver socket address. - (init_resolver): Delete. - (make_request): Call restart_resolver() if necessary. - (query_name): Use ircrandom() instead of rand(). - - * ircd/os_generic.c (sockaddr_from_irc): Convert last argument to - a file descriptor that indicates the socket family to use. - (os_sendto_nonb,os_socket,os_connect_nonb): Update to match. - -2004-11-09 Michael Poole - - * ircd/engine_epoll.c (engine_delete): Do not attempt to remove a - socket from epoll on delete, since the kernel does that for us. - -2004-11-07 Michael Poole - - * ircd/m_server.c (m_server, ms_server): Assign timestamp before - it might be used in exit_new_server(). - -2004-11-07 Michael Poole - - * aclocal.m4, config.h.in, configure, ircd/Makefile.in: Regenerate - to reflect the changes since these files' last rebuild. - -2004-11-07 Michael Poole - - * include/ircd_crypt.h (ircd_crypt): This should return char*, not - const char*, since it does not own the returned pointer. - - * ircd/ircd_crypt.c (ircd_crypt): Change return type. - - * ircd/ircd_crypt_smd5.c (irc_crypt_smd5): Make passwd a static - field since it is returned but this function must own the buffer. - - * ircd/m_oper.c (oper_password_match): Free the string returned by - ircd_crypt(). - - * ircd/engine_epoll.c (engine_loop): Fix a memory leak. - -2004-11-07 Michael Poole - - * acinclude.m4: Look for a 64-bit integer type. - - * configure.in: Look for inttypes.h, since some systems have that - but not stdint.h (and define 64-bit integers therein). - - * include/client.h: Delete con_sendK, con_receiveK. Make - con_sendB and con_receiveB 64 bits wide. - - * include/s_misc.h: Delete is_cks, is_ckr, is_sks, is_skr. - Convert the other byte counters and the connected time counters to - 64 bits wide. - - * ircd/ircd_snprintf.c (doprintf): Unconditionalize the - HAVE_LONG_LONG bits, and use the 64-bit integer types from above. - - * ircd/packet.c (update_bytes_received): Remove use of - cli_receiveK(). - - * ircd/s_bsd.c (deliver_it): Likewise. - (close_connection): Likewise. - - * ircd/s_misc.c (tstats): Likewise. Update format strings to use - %Lu for 64-bit integer parameters. - - * ircd/s_stats (stats_links): Convert cli_sendK() and - cli_receiveK() use shifted versions of the byte counters, and - update format strings to use %Lu for 64-bit integer parameters. - -2004-11-07 Michael Poole - - * include/s_user.h (add_silence): Delete. - (del_silence): Delete. - - * include/struct.h (struct User): Convert silence list to struct Ban. - - * ircd/m_silence.c (apply_silence, forward_silences): New functions. - (m_silence): Use forward_silences() instead of add_silence(). - (ms_silence): Likewise. - - * ircd/s_err.c (replyTable): Update RPL_SILELIST. - - * ircd/s_misc.c (exit_one_client): Update to new silence list type. - - * ircd/s_user.c (is_silenced): Use find_ban() to search for - silences. If one is found, send it plus any silence exceptions. - (del_silence): Delete. - (add_silence): Delete. - -2004-11-07 Michael Poole - - * include/channel.h: Remove declarations for undefined functions - cancel_mode(), add_token_to_sendbuf(), IsMember(). Delete - add_banid(), next_removed_overlapped_ban(). Add BAN_EXCEPTION - flag and new functions find_ban(), apply_ban(). - - * ircd/channel.c (PartFmt*, next_ban, prev_ban, removed_bans_list, - LocalChanOperMode): Remove unused variable definitions. - (make_nick_user_host): Delete. - (add_banid): Delete. - (next_removed_overlapped_ban): Delete. - (find_ban): New function, which knows about exceptions. - (is_banned): Use find_ban() and only work on a struct Membership. - (bmatch): New function, which knows about CIDR bans. - (apply_ban): New function to replace add_banid(). - (mode_parse_ban): Use apply_ban(). - -2004-10-28 Michael Poole - - * configure.in (AC_PREREQ): Depend on autoconf 2.50 since we use - new macros like AC_LINK_IFELSE and AC_LANG_PROGRAM. - -2004-10-22 Michael Poole - - * ircd/m_invite.c (m_invite, ms_invite): Fix INVITE forwarding - with announcements enabled (do not "announce" to the recipient, - and unconditionally send to the recipient). - - * ircd/send.c (sendcmdto_channel_servers_butone): Properly skip - the "from" client and implement SKIP_NONOPS and SKIP_NONVOICES. - -2004-10-21 Michael Poole - - * include/channel.h (Ban): Add fields address, nu_len, addrbits to - support netmask-based bans. - - * ircd/channel.c (set_ban_mask): New function to parse a ban as - either netmask-based or not. - (make_ban): Use set_ban_mask(). - (make_nick_user_ip): Becomes unused; remove it. - (is_banned): Rewrite to match only once against the nick!user part - of a ban, and compare addresses if BAN_IPMASK is set. - (mode_parse_ban): Use set_ban_mask(). - -2004-10-21 Michael Poole - - * ircd/s_conf.c (attach_iline): Test resolved host names against - aconf->host, not the (NULL) aconf->name. - -2004-10-19 Michael Poole - - * include/channel.h: Move ban flags out of channel flags and - rename to reflect this. - - * ircd/channel.c: Update ban constant names. - - * ircd/m_burst.c: Likewise. - -2004-10-18 Michael Poole - - * include/list.h (SLink): Remove ban elements from here... - - * include/channel.h (Ban): And move to the new struct Ban. - (Channel): Update banlist field to match. - (next_removed_overlapped_ban): Update return type to match. - (make_ban, free_ban): New functions. - - * ircd/channel.c (next_ban, prev_ban, removed_bans_list): Update - list types. - (free_bans): New variable to hold unused Ban elements. - (make_ban, free_ban): New functions. - (destruct_channel, add_banid, next_removed_overlapped_ban): Update - to use struct Ban. - (is_banned, send_channel_modes, send_ban_list): Likewise. - (ParseState, mode_parse_ban, mode_process_bans): Likewise. - (mode_parse): Likewise. - - * ircd/m_burst.c (ms_burst): Update to use struct Ban. - - * ircd/m_clearmode.c (do_clearmode): Update to use struct Ban. - - * ircd/s_debug.c (count_memory): Update to use struct Ban. - -2004-10-18 Kevin L Mitchell - - * ircd/gline.c (gline_find): unless we're looking for an exact - match, we should call match() on hostnames, not ircd_strcmp() - -2004-10-17 Michael Poole - - * include/s_conf.h (ConfItem): Add new field username. Replace - unused field bits with addrbits. - (find_conf_exact): Replace user and host arguments with cptr. - (find_conf_name, read_tlines, find_restrict): Remove declaration - for undefined functions. - (conf_parse_userhost): New function. - - * ircd/m_oper.c (m_oper): Update calls to find_conf_exact(): both - resolved hostname and IP are matched in one pass now. - - * ircd/s_bsd.c (close_connection): Update call to find_conf_exact(). - - * ircd/s_conf.c (conf_parse_userhost): New function. - (check_limit_and_attach): Use correct ConfItem field to determine - maximum connections per IP. - (attach_iline): Replace user@host matching with shorter, clearer - matching against username and host/IP fields. - (find_conf_exact): Likewise. - - * ircd/ircd_parser.y: Replace assignment to aconf->host for - CONF_CLIENT and CONF_OPERATOR with calls the CIDR-aware - conf_parse_userhost(). This means CONF_CLIENT ConfItems no longer - use the name field or the IP token. Remove the latter. - - * ircd/ircd_lexer.l: Remove unused token IP. - -2004-10-17 Michael Poole - - * ircd/crule.c (crule_via): Simplify the lookup for the directly - connected server name. - -2004-10-16 Michael Poole - - * ircd/class.c: Make find_class() return NULL for unknown classes, - rather than returning the start of connClassList. - - * ircd/match.c (parse_ipmask): Translate IPv4 masks as - IPv4-compatible addresses. - (check_ipmask): Fix comparison of IP masks. - - * ircd/motd.h, ircd/motd.c: Add a new MOTD type, MOTD_IPMASK, that - uses CIDR style masks in the hostname field of a Motd block. - -2004-10-16 Michael Poole - - * ircd/numeric.h: Remove the unused RPL_STATMEM and - RPL_STATMEMTOT. Move the RPL_BOUNCE comment to its current - value (the former RPL_STATMEM). - - * ircd/s_err.c: Remove format strings for RPL_STATMEM and - RPL_STATMEMTOT. - -2004-10-16 Michael Poole - - * ircd/m_server.c: Look up server configuration by name of our - directly connected peer rather than the server being introduced. - -2004-10-13 Michael Poole - - * include/channel.h: Delete MODE_LISTED and is_listed(). Replace - ListingArgs.chptr with ListingArgs.bucket. Move declaration of - list_next_channels() to.. - - * include/hash.h: here, and drop the "nr" argument. - - * ircd/channel.c: Remove redundant scan of local clients for - channels being listed. Delete list_next_channels() function. - - * ircd/hash.c: Add list_next_channels() here, revising to not use - MODE_LISTED and to use ListingArgs.bucket instead of chptr. Also - decide when to stop sending RPL_LISTs based on a half-full sendq. - - * ircd/m_burst.c, ircd/s_misc.c: Delete mention of MODE_LISTED. - - * ircd/m_list.c: Delete mention of MODE_LISTED. Unconditionally - call list_next_channels(sptr). - - * ircd/s_bsd.c: Remove the "nr" argument to list_next_channels(). - - * ircd/Makefile.in: Update dependencies (for hash.c). - -2004-10-13 Michael Poole - - * ircd/ircd_parser.y: Consistently zero out global variables after - they are used (prevents double frees and other problems). - -2004-10-12 Michael Poole - - * include/client.h: Rename FLAGSET_ISSET, _SET, _CLEAR to FlagHas, - Set, Clr respectively. Get rid of FLAG_CHKACCESS and FLAG_LOCAL. - Delete con_fd (get from con_socket) and con_port. Move sentalong - from send.c to struct Connection, and cli_lasttime and cli_since - from struct Client to struct Connection. Update cli_*() macros to - use con_*(cli_connect(cli)). - - * ircd/client.c: Replace PrivSet() with FlagSet(), PrivClr() with - FlagClr(), PrivHas() with FlagHas(). - - * ircd/ircd_parser.y: Likewise. - - * ircd/list.c: Remove assignment to cli_local() since it is now a - calculated value. - - * ircd/s_bsd.c: Remove uses of cli_port(). - - * ircd/s_conf.c: Remove uses of ClearAccess(). - - * ircd/send.c: Delete sentalong array and replace with references - to con_sentalong(). - -2004-10-12 Michael Poole - - * doc/example.conf: Update example config to reflect the changes - made in the remainder of this patch. - - * include/list.h: Make make_conf() take a type argument. - - * include/s_conf.h: Delete CONF_LEAF and CONF_HUB. Add "maximum" - and "hub_limit" to ConfItem to compensate. - - * ircd/ircd_lexer.l: Recognize MAXHOPS token. - - * ircd/ircd_parser.y: Get rid of aconf global variable and add - hub_limit global variable. Add MAXHOPS token, and productions - inside connectblock to recognize it and hub masks. Allow maxlinks - field in a Client block, rather than overloading password field. - Convert serverblock to uworldblock and remove extraneous fields. - - * ircd/m_server.c: Make check_loop_and_lh() look up ConfItem and - calculate LHcptr and active_lh_line. Merge some duplicated code - so handling active_lh_line cases is clearer. - - * ircd/s_conf.c: Make make_conf() take a type argument. Delete - CONF_LEAF and CONF_HUB. Do not overwrite server name with what - is specified in the config file. - - * ircd/s_err.c: Remove the unused RPL_STATSNLINE and - RPL_STATSHLINE. Remove useless parameters and format fields from - RPL_STATSCLINE, RPL_STATSILINE, RPL_STATSLLINE, RPL_STATSOLINE and - RPL_STATSULINE. - - * ircd/s_serv.c: Delete CONF_LEAF and CONF_HUB. - - * ircd/s_stats.c: Get rid of report_array and make - stats_configured_links() directly use RPL_STATSxLINE (adding the - new fields for Server and Client blocks). Remove /stats h, since - that has no meaning. - -2004-10-12 Michael Poole - - * ircd/m_burst.c: Mask off channel modes in a wiped-out channel by - default rather than by listing which should be wiped out. - -2004-10-09 Michael Poole - - * ircd/m_server.c: Forward port checks for leaf and hub config - rules, and reorganize mr_server() and ms_server() by moving out - common code. Add doxygen comments for the file. - -2004-10-09 Michael Poole - - * ircd/hash.c: Fix thinko in hash function: It is not indexed - simply by character value, so we cannot just remap the values - by case. - -2004-10-05 Michael Poole - - * ircd/hash.c: Replace the old hash function with one based on - randomized CRC-32. The new one avoids a big table from the old - function. - -2004-10-05 Michael Poole - - * ircd/random.c: Convert to use ircd_md5 interface and hopefully - keep more internal random state. - -2004-10-05 Michael Poole - - * include/ircd_md5.h, ircd/ircd_md5.c, ircd_crypt_smd5.c, - ircd/umkpasswd.c: Get rid of the GoodMD5xxx/BrokenMD5xxx - prefixes. - -2004-10-05 Michael Poole - - * adns, lib/adns: Remove unused adns library. - -2004-10-05 Michael Poole , hikari , Perry Lorier - - * include/*.h, ircd/*.c: Convert comments to Doxygen-compatible - format, and add new comments where needed. - - * Doxyfile: New file to tell Doxygen how to run. - -2004-09-21 Michael Poole - - * ircd/s_auth.c (HeaderMessages): Make the compiler, not the - programmer, generate magic numbers. - (AuthIncompleteList): Remove. - (AuthPollList): Remove. - -2004-09-19 Michael Poole - - * acinclude.m4: Clean up AC_DEFINE()s so we no longer need - acconfig.h. - - * acconfig.h: Remove since it is now redundant. - - * aclocal.m4, config.h.in, configure: Regenerate. - -2004-09-19 hikari - - * configure.in: Fixed configure script rules to fail if (f)lex or yacc/bison - aren't found as they're essential for compilation. Regenerated files with - autreconf. - -2004-09-18 Michael Poole - - * doc/example.conf: Add NETWORK feature example. Fix typos in - eaxmples for HANGONGOODLINK and IRCD_RES_TIMEOUT. - - * include.class.h: Make max_links and ref_count unsigned ints. - Make ping_freq and conn_freq unsigned short. (No more negative - numbers in /stats y.) - - * ircd/ircd.c: Report configuration file name for "ircd -k". - -2004-09-18 hikari - - * ircd/Makefile.in: Fixed a missing internal build dependency. - -2004-09-16 Michael Poole - - * INSTALL: Fix name of example.conf and mention its installed - location. - - * include/supported.h (FEATURESVALUES2): Fix a reference to - channel mode +u that escaped earlier rename attempts. - - * ircd/ircd_auth.c (iauth_connect): Assign port number after - zeroing out the destination address. - Add some additional debug statements to help follow operations. - - * ircd/ircd_parser.y (iauthblock): Do not require "name" to be set. - -2004-09-11 Bas Steendijk - - * include/channel.h, include/supported.h, ircd/channel.c, - ircd/s_err.c: Use +U instead of +u for user keys. - -2004-09-13 Michael Poole - - * doc/example.conf: Remove sample VIRTUAL_HOST setting. - - * doc/readme.features: Remove VIRTUAL_HOST documentation, and - update NODNS documentation to match current behavior. - - * include/s_conf.h: Remove now-unused vhost_address field and - set_virtual_host() function. - - * include/ircd_features.h, ircd/ircd_features.c, ircd/s_debug.c: - Remove VIRTUAL_HOST. - - * ircd/ircd_auth.c, ircd/s_bsd.c: Use VirtualHost as local address - if we do not have a more specific alternate. - - * ircd/ircd_parser.y: Check for sanity in General blocks (from old - conf_add_local()) and assign vhost directly to VirtualHost. - - * ircd/ircd_res.c (irc_in_addr_valid): Fix thinko; obviously any - value will be either != 0 or != 0xffff. - - * ircd/os_generic.c: Use AF_INET instead of AF_INET6 when the - local addresses are specified as IPv4 addresses. - - * ircd/s_conf.c: Remove unused conf_add_local() and - set_virtual_host(). - -2004-09-13 Michael Poole - - * ircd/listener.c (add_listener): Consolidate duplicated code, and - make sure listener->server is set before calling inetport() on it. - -2004-09-12 Michael Poole - - * include/channel.c (mode_parse_upass, mode_parse_apass): Only let - services (not normal opers) force a change of +A or +u. - -2004-09-11 Michael Poole - - * include/s_stats.h: Add sd_name to struct StatDesc. Stop - publishing the statsinfo and statsmap arrays; replace them with - stats_find(). Change argument list of StatFunc() to work with - names. - - * ircd/m_stats.c: Use stats_find() instead of statsmap[]. Use the - full argument instead of just the first character in reports. - - * ircd/s_stats.c: Adapt individual stats handler functions to new - argument list. Add long names to statsinfo[]. Add new functions - stats_cmp(), stats_search(), stats_find(). Sort statsinfo[] in - stats_init(). - - * ircd/s_err.c: Change ENDOFSTATS to display a string rather than - a single character. - - * ircd/s_user.c: Send an error to the user when a message loses - its target in transit. - - * include/class.h include/gline.h include/ircd_features.h - include/listener.h include/motd.h include/msgq.h include/res.h - include/s_debug.h include/s_misc.h include/userload.h ircd/class.c - ircd/gline.c ircd/ircd_features.c ircd/ircd_res.c ircd/listener.c - ircd/motd.c ircd/msgq.c ircd/s_debug.c ircd/s_misc.c - ircd/userload.c: Adjust stats handlers to new argument list. - -2004-09-11 Michael Poole - - * include/numeric.h, ircd/s_err.c: Remove RPL_TRACEPING, and - replace with RPL_TRACEEND. - - * ircd/s_trace.c: Move all the duplicated code in m*_trace() to - do_trace(). Implement RPL_TRACEEND, per RFE#830291. - -2003-06-20 Alexander Maassen - - * ircd/m_topic.c : Don't allow banned users to set a topic in a - channel. - -2004-09-11 Kevin L Mitchell - - * config.h.in, tools/Makefile.crypt: Remove wrong pathname from - comment in header. - - * ircd/m_clearmode.c, ircd/m_opmode.c: Fix wrong pathname in - header comment. - - * ircd/m_away.c, ircd/m_kill.c, ircd/m_notice.c, ircd/m_ping.c, - ircd/m_pong.c, ircd/m_privmsg.c, ircd/m_quit.c, ircd/m_topic.c, - ircd/m_version.c: Remove "template" moniker from comments. - - * ircd/test/ircd_chattr.0.dat (IsChannelPrefix): Drop + from - channel prefix list. - -2004-09-11 Michael Poole - - * doc/example.conf: Add examples for FEAT_HIS_* features. - -2003-06-08 Matthias Crauwels - [Feature renamed to FEAT_HIS_WHOIS_LOCALCHAN by Michael Poole.] - - * include/ircd_features.h: new feature FEAT_HIS_LOCAL_CHAN_WHOIS - - * ircd/ircd_features.c: new feature FEAT_HIS_LOCAL_CHAN_WHOIS - - * ircd/m_whois.c: hide local channels in local WHOIS, this breaks HIS - - * doc/readme.features: documented FEAT_HIS_LOCAL_CHAN_WHOIS - - * doc/ircd.conf.sample: default value for FEAT_HIS_LOCAL_CHAN_WHOIS - -2004-09-11 Michael Poole - - * ircd/ircd_relay.c (server_relay_channel_message, - server_relay_channel_notice): Do not allow other servers to send - or relay to local channels. - - * ircd/m_wallchops (ms_wallchops): Likewise. - - * ircd/m_wallvoices (ms_wallvoices): Likewise. - -2004-09-11 Kevin L Mitchell - - * ircd/gline.c (gline_add): fix GLINE logging (Bug #750927) - - * ircd/channel.c: removing limits shouldn't gobble an argument; - this was a subtle interaction issue with modebuf...fixed by adding - MODE_LIMIT to modebuf_flush_int() and short-circuiting - modebuf_mode_uint() to add MODE_LIMIT to mbuf->mb_rem in the - removal case. Note that this is not proof against the sequence, - "modebuf_mode_uint(mbuf, MODE_ADD | MODE_LIMIT, 10); - modebuf_mode_uint(mbuf, MODE_DEL | MODE_LIMIT, 10);" - (Bug #916138) - -2004-09-11 Michael Poole - - * include/supported.h: Kev pointed out I misinterpreted the - meaning of CHANMODES; fix this. Also define CHANNELLEN and - STATUSMSG from the ISUPPORT draft. - -2004-09-10 Michael Poole - - * include/supported.h (FEATURESVALUES2): Include A,u, in CHANMODES - when oplevels are enabled. - -2004-09-10 Michael Poole - - * ircd/channel.c (send_channel_modes): Only send oplevels for - channels that actually use them -- for -A channels, send chanops - as :o even if OPLEVELS is enabled. - - * ircd/ircd.c: Fix -k (chkconf mode) and show in usage help. - - * ircd/numnicks.c (base64toip): Fill in the right number of 0 - words when we see _ in a base64-encoded IPv6 address. - -2004-09-10 Michael Poole - - * ircd/ircd.c: Add -k as a chkconf-like option to exit after - reading the configuration file. - - * ircd/chkconf.c: Remove as unused. - - * ircd/Makefile.in: Remove last mentions of chkconf from Makefile. - -2004-09-10 Michael Poole - - * doc/example.conf: Remove examples for unused features (TIMESEC, - CRYPT_OPER_PASSWORD) and add for new feature (ANNOUNCE_INVITES). - - * doc/readme.features: Remove documentation for unused features - (TIMESEC, CRYPT_OPER_PASSWORD, oper/locop privileges, - HIS_DESYNCS), update defaults for SOCKSENDBUF and SOCKRECVBUF, and - add documentation for ANNOUNCE_INVITES. - - * include/ircd_features.h: Remove unused features (TIMESEC, - CRYPT_OPER_PASSWORD, LIST_CHAN, HIS_DESYNCS). - - * include/ircd_features.c: Likewise. - - * ircd/ircd_res.c: Actually use FEAT_IRCD_RES_RETRIES and - FEAT_IRCD_RES_TIMEOUT where appropriate. - - * ircd/s_debug.c: Do not display setting of unused (and now - non-existent) FEAT_CRYPT_OPER_PASSWORD. - -2004-09-10 Michael Poole - - * ircd/os_generic.c (sockaddr_from_irc): Fix IPv4 implementation - to use the correct address family and IP offset. - -2004-09-10 Michael Poole - - * include/s_conf.h (struct ConfItem): Add origin and origin_name - fields. - - * ircd/ircd_parser.y: Add new global variable "origin." Add a new - "connectionvhost" production that accepts vhost = "IP" inside a - Connect block and assigns the IP to origin_name. - - * ircd/s_bsd (connect_inet): If aconf has a valid origin, use it - as the local address. Otherwise, fall back to the old logic (if - VIRTUAL_HOST="TRUE", use the virtual host setting). - - * ircd/s_conf.c (lookup_confhost): If the ConfItem has an - origin_name, try to parse it as an IP address. - -2004-04-17 Isomer - * ircd/parse.c: Don't rate limit /gline messages - -2004-09-10 Michael Poole - - * ircd/ircd_parser.y: Replace references to yylval.whatever with - references to the appropriate term. This fixes bugs like - "1 hour 30 minutes" being misrecognized as 30 seconds. - -2004-09-10 Michael Poole - - * ircd/ircd_features.c (features): Change default values for - SOCKSENDBUF and SOCKRECVBUF to SERVER_TCP_WINDOW, so that users - need not specify them in ircd.conf. - -2004-09-10 Michael Poole - - * ircd/ircd_parser.y (serverblock): Server blocks should default - to CONF_LEAF status. - - * doc/example.conf: Update example to reflect this. - -2004-09-10 Michael Poole - - * ircd/parse.c (msg_tree_parse): Reject commands that contain - non-alphabetic characters. - -2004-09-09 Michael Poole - - * config.h.in: Remove duplicated and unused macro definitions. - -2004-08-24 Michael Poole - - * ircd/client.h: Properly parenthesize "flag" argument to - FLAGSET_INDEX() and FLAGSET_MASK() macros. - -2004-08-22 Michael Poole - - * ircd/channel.c (send_channel_modes): If oplevels are disabled, - send 'o' for chanops instead of the member's oplevel. - -2004-08-22 Michael Poole - - * ircd/s_conf.c: find_conf_byip() should use irc_in_addr_cmp() - instead of memcmp(). (Fixes IPv4 servers linking to an IPv6 - server.) - -2004-08-22 Alex Badea - - * include/ircd_defs.h: increased SOCKIPLEN to fit ipv6 addresses - -2004-08-19 Michael Poole - - * include/res.h: Remove unused function gethost_byname_type(). - - * ircd/ircd_res.c: Likewise, and clean up some small functions - only used once (remove_dlink(), timeout_resolver()). Use rand() - for random request IDs instead of the deprecated *rand48(). Make - resolver timeout event fire only when needed instead of once a - second. - -2004-08-17 Michael Poole - - IPv6 support, with lots of code and design borrowed from a patch - by Alex Badea. - - * config.h.in: Add place to #define IPV6 support. - - * configure.in: Check for struct sockaddr_in6, and use that as - the default choice for IPv6 support. - - * configure: Regenerate. - - * include/IPcheck.h, include/client.h, include/gline.h, - include/ircd_string.h, include/listener.h, include/match.h, - include/res.h, include/s_bsd.h: Convert from struct in_addr (from - ) to struct irc_in_addr (from "res.h"). - - * include/ircd_osdep.h, include/s_conf.h, include/uping.h: Convert - from struct sockaddr_in (from ) to struct - irc_sockaddr (from "res.h"). Add new functions os_socket(), - os_accept(), os_sendto_nonb() to help abstract away actual - sockaddr types. - - * include/ircd_chattr.h, ircd/table_gen.c: Define new bit to mark - characters valid in IPv6 addresses. - - * include/numnicks.h, ircd/numnicks.c: New functions iptobase64() - and base64toip() to convert from base64 to struct irc_in_addr. - - * ircd/IPcheck.c, ircd/channel.c, ircd/m_nick.c, ircd/m_oper.c, - ircd/m_userip.c, ircd/m_who.c, ircd/m_whois.c, ircd/s_misc.c, - ircd/s_serv.c, ircd/s_user.c, ircd/whocmds.c: Use struct - irc_in_addr instead of unsigned int or struct in_addr. - - * ircd/gline.c: Use new more-generic ipmask functions. - - * ircd/ircd.c: Use struct irc_sockaddr instead of separate port - fields. - - * ircd/ircd_reslib.c: Use struct irc_sockaddr and ircd_aton() - instead of irc_ssaddr and irc_getaddrinfo(). - - * ircd/ircd_string.c: Implement new functions: IPv6-capable - ircd_ntoa_r(), ircd_aton_ip4(), ircd_aton(). - - * ircd/match.c: Delete IPv4-only matchcompIP(). Replace with - IPv6-capable ipmask_parse() and ipmask_check(). - - * ircd/numnicks.c: Implement new functions: iptobase64() and - base64toip(). - - * ircd/os_generic: Convert external parameters to be struct - irc_addrinfo. When using IPv6 support, sockaddr_in6 is native. - Implement new functions os_sendto_nonb(), os_socket() and - os_accept(). - - * ircd/ircd_auth.c, ircd/ircd_parser.y, ircd/ircd_res.c, - ircd/listener.c, ircd/m_connect.c, ircd/s_auth.c, ircd/s_bsd.c, - ircd/s_conf.c, ircd/s_stats.c, ircd/uping.c: Use struct - irc_sockaddr instead of separate in_addr and port fields and new - OS support functions. - - * include/ircd_addrinfo.h, ircd/ircd_getaddrinfo.c, - ircd/ircd_getnameinfo.c: Remove, since these functions are no - longer used. - - * ircd/os_bsd.c, ircd/os_linux.c, ircd/os_openbsd.c, - ircd/os_solaris.c, ircd/res_adns.c, ircd/res_libresolv.c: Remove, - since these are unused and not compatible with IPv6 support. - - * ircd/Makefile.in: Remove references to ircd_getXxxxinfo.c. - Regenerate dependencies. - -2004-08-17 Michael Poole - - * ircd/ircd_lexer.l: Change tokenizer to reduce number of lexer - states and be case-insensitive again. - -2004-08-15 Michael Poole - - * aclocal.m4: Check for uintNN_t instead of u_intNN_t, since the - former is from C99 (and the latter is absent on Solaris). - - * configure.in: Remove check for inttypes.h (which is a C99 format - string header); replace with check for stdint.h. Add checks for - sys/param.h and sys/socket.h. Check for socklen_t being defined - (OS X does not set it). Run program tests for lex and yacc, and - use them rather than assuming flex and bison. Remove OSDEP_C and - mention to adns. Remove check for res_mkquery(). - - * config.h.in: Update u_intNN_t #undef lines. Add #undef - socklen_t so configure test can set it. - - * configure: Regenerate. - - * include/ircd_addrinfo.h: #include headers needed for netdb.h and - to define struct addrinfo and uintNN_t. - - * include/ircd_reslib.h: Replace u_intNN_t with uintNN_t. - - * include/res.h: #include "ircd_addrinfo.h" to get proper type - definitions. #define INADDR_NONE if it is not defined (as on - Solaris). - - * ircd/Makefile.in: Replace LEX and YACC definitions. Remove - OSDEP_C and OSDEP_SRC; always compile os_generic.c. Remove adns - directory from CPPFLAGS. Regenerate dependencies. - - * ircd/client.c: Return when no propagation set for oper, to - squash warning about use of "defaults" before it is set. - - * ircd/engine_epoll.c: #include correct C99 integer header. - - * ircd/engine_poll.c: Last argument to getsockopt() should be of - socklen_t, not size_t; fix. - - * ircd/engine_select.c: Squash warning about bzero(). - - * ircd/ircd_auth.c: OS X does not define in_addr_t, so replace it - with uint32_t. We need for that, so include it. - - * ircd/ircd_getnameinfo.c, ircd/memdebug.c: Replace u_int32_t with - uint32_t. - - * ircd/ircd_lexer.l: Replace flex-isms with portable syntax. - There is no portable way to do %option, so remove that. lex on - Solaris needs several of its internal tables to be bigger, so - increase those sizes. - - * ircd/ircd_parser.y: Remove the second declarations of two - tokens, since standard yacc warns about changing precedence. - - * ircd/os_generic.c: Make this compile on common OSes (Linux, - Solaris, OS X, FreeBSD, OpenBSD). - - * ircd/table_gen.c: Make arguments to isprint() all unsigned char - to squash warnings on Solaris that array index is "char." - - * ircd/umkpasswd.c: Remove #include since it is not - portable, and replace basename() with an equivalent. - - * ircd/uping.c: Typecast printf arguments for 64-bit OSes. - -2004-07-27 Michael Poole - - * ircd/m_burst.c: Add new netride_modes() function to check - which modes could be used in a net.ride. Use this instead - of the old check for just +i or +k. - (Based on patches by beware and pomac.) - -2004-07-25 Michael Poole - - * ircd/ircd_parser.y: Remove redundant semicolon; it causes - errors on some versions of yacc. - -2004-07-21 Michael Poole - - * include/client.h, ircd/ircd_auth.c, ircd/ircd_crypt_smd5.c, - ircd/ircd_reslib.c: Fix warnings from gcc -pedantic. - -2004-07-21 Michael Poole - - New DNS resolver code, courtesy of Dianora and the rest of the - Hybrid team. (Bugs are of course my fault.) - - * configure.in, Makefile.in, ircd/Makefile.in: Remove adns and - libresolv from the build process. Update dependencies. - - * configure: Regenerate. - - * include/client.h: Change connection's DNS reply type. - - * include/ircd_features.h, ircd/ircd_features.c: New HIS_STATS_a. - - * include/numeric.h, ircd/s_err.c, ircd/s_stats.c: Add new - RPL_STATSALINE and /stats a to list DNS servers. - - * include/ircd_addrinfo.h, include/ircd_reslib.h, include/res.h, - ircd/ircd_getaddrinfo.c, ircd/ircd_getnameinfo.c, ircd/ircd_res.c, - ircd/ircd_reslib.c: New resolver files. - - * ircd/ircd_auth.c, ircd/s_auth.c, ircd/s_bsd.c, ircd/s_conf.c: - Update to new resolver callback interface and to only deal with - one IP and one name per DNS reply. - - * ircd/parse.c: Remove /DNS command, since new resolver does not - track those statistics. - -2004-07-20 Michael Poole - - * doc/readme.features: Change references to O:, Y:, etc lines into - references to the appropriate block types. - -2004-07-01 Michael Poole - - * include/fileio.h: Elaborate on "works for any file descriptor." - - * include/iauth.h: Remove unused file. - -2004-07-01 Michael Poole - - * include/map.h, ircd/map.c: Remove unused code. - - * ircd/m_links.c, ircd/m_map.c, ircd/s_misc.c: Remove includes of - map.h and a call to map_update(). - - * ircd/Makefile.in: Remove map.c and regenerate dependencies. - - * ircd/ircd_parser.y: Recognize Diane Bruce as a copyright holder - for the new config parser. - - * ircd/match.c: Remove pointless pointer dereference (Reed points - out that this generates a warning with old gcc). - - * ircd/s_user.c: Display connection class in CONNEXIT connection - notice as a string rather than an integer. - - * tools/ringlog.c, tools/ringlog.pl: At Kevin's request, remove - lines (falsely) identifying ringlog as related to IRC; the files - are general purpose. - - * configure.in, include/ircd_snprintf.h: Add checks for - va_copy()-like alternatives and use them if va_copy() is missing. - - * configure, config.h.in: Regenerate. - -2004-02-01 beware - - * ircd/channel.c: Check bans that look like IP bans against user's - hostname just in case they have a host like 1234.domain.tld. - -2003-12-18 Timothy Grant Vogelsang - - * ircd/ircd_log.c, ircd/send.c: va_list is not a scalar type - -2004-04-02 Gavin Grieve - - * ircd/ircd_parser.y: Fix rehash warnings for servername and - numeric so they only warn if changed in the config file. - -2004-06-30 Michael Poole - - * doc/readme.iauth, include/ircd_auth.h, ircd/ircd_auth.c: New - files. - - * doc/example.conf: Illustrate IAUTH configuration. - - * include/client.h: Add fields to record IAUTH status. - - * ircd/Makefile.in: Add ircd_auth.c to Makefile. - - * ircd/ircd_lexer.l, ircd/ircd_parser.y: Add new IAUTH section. - - * ircd/s_conf.c: Notify IAUTH code when reloading a configuration - so that an obsolete connection can be abandoned. - - * ircd/s_misc.c: Report client exits via IAUTH. - - * ircd/s_user.c: If IAUTH is active and a connecting user has not - been checked against it, interrogate the IAUTH server. - -2004-06-25 Michael Poole - - * configure.in: Check for crypt.h as well. - - * configure: Regenerate. - - * ircd/ircd_crypt_native.c: Move XOPEN defines earlier so they - affect the first includes of system headers. Include crypt.h if - it is available. - - * ircd/umkpasswd.c: Quash a gcc warning. - -2004-06-23 Michael Poole - - * doc/Authors: Add contributors to ircu2.10.11 and myself. - - * ircd/gline.c: Fix buglet in my forward port of Alex Badea's fix. - - * configure.in: Add missing check for inttypes.h; remove obsolete - display of Head-in-sand, add display of epoll() engine. - - * INSTALL, INSTALL_FR, doc/readme.cvs: Update descriptions of how - to use SourceForge's CVS server, from the u2.10.11 branch. - -2003-11-09 beware - - * ircd/s_user.c: move assigning a numeric to a local client from - when nick is set, to when connection becomes client, to not waste - numerics. - -2004-06-08 Kevin L Mitchell - - * ircd/parse.c: don't let rank-and-file users escape HIS - limitations with /jupe... - -2004-06-18 Alex Badea - - * ircd/gline.c (gline_lookup): only return a gline if it's - active - - * ircd/s_conf.c (find_kill): don't check for active gline, - since gline_lookup does now - -2002-11-11 hikari - * ircd/ircd.c: added call to irc_crypt_init() - someone hurry up and - modularise :P - - * ircd/ircd_xopen.c: removed, superseded by new crypto system. - - * ircd/ircd_crypt.c: wrote scary ircd_crypt() interface function, - wrote ircd_crypt_mech_register() function, various other bits - designed to create a near-pluggable crypto system for ircu. currently - this code also loads the various mechanisms i've written code for. - - * ircd/ircd_crypt_smd5.c: imported the crypt_md5 function from - elsewhere, manipulated to suit ircu, returns a salted MD5 password. - - * ircd/ircd_crypt_native.c: replaces the old ircd_xopen.c file, - generate a crypted password using the systems native crypt() function. - - * ircd/ircd_crypt_plain.c: plain text crypt mechanism, should really - only be used for testing purposes. - - * ircd/ircd_md5.c: main gubbins of the MD5 hashing code, lifted from - elsewhere, ircuified. - - * ircd/umkpasswd.c: mkpasswd program for ircu. - - * include/ircd_xopen.h: removed, superseded by new crypto system. - - * include/ircd_crypt.h: external definitions for the new ircd_crypt() - function and definition of the ircd_crypt_mech structure for containing - crypto mechanism data. - - * include/ircd_crypt_smd5.h: sundary definitions for the salted MD5 - mechanism. - - * include/ircd_crypt_native.h: sundary definitions for the native - crypt() mechanism. - - * include/ircd_crypt_plain.h: sundary definitions for the plain text - mechanism. - - * include/umkpasswd.h: fluff for umkpasswd. - -2003-03-11 Landon Fuller (landonf) - - * configure.in: allow ircu to build on OS X. - -2004-05-24 Michael Poole - - * ircd/m_invite.c (m_invite): Include channel name in invitation - announcements. - (ms_invite): Likewise, and also fix a use-before-assignment bug in - them. - -2004-05-18 Michael Poole - - Announce invitations to other channel operators. - - * include/ircd_features.h, ircd/ircd_features.c - (ANNOUNCE_INVITES): Add new boolean feature, default off. - - * include/numeric.h, ircd/s_err.c (RPL_ISSUEDINVITE): Add new - reply. - - * include/send.h, ircd/send.c (sendcmdto_channel_butserv_butone): - Add 'skip' parameter that is needed elsewhere. - (sendcmdto_channel_servers_butone): New function. - - * ircd/channel.c, ircd/m_burst.c, ircd/m_kick.c, ircd/m_topic.c, - ircd/s_user.c: Add argument for 'skip' to calls to s_c_b_b. - - * ircd/m_invite.c (m_invite, ms_invite): If ANNOUNCE_INVITES, send - the INVITE message to all interested servers, and send a numeric - to all local chanops. - -2004-05-18 Michael Poole - - * ircd/res_adns.c (res_ourserver): Remove unused function. - (validate_name): Likewise. - -2004-05-17 Michael Poole - - * include/ircd_features.h, ircd/ircd_features.c, ircd/s_debug.c: - Rip out feature settings related to oper privileges. - - * include/client.h: Comment a few unexplained privileges. - - * ircd/ircd_lexer.l: Rename privilege keywords to match their - names in code and /PRIVS output. Add support for two "new" - privileges (FORCE_OPMODE, FORCE_LOCAL_OPMODE). - - * include/class.h, ircd/client.c, ircd/ircd_parser.y, - ircd/m_oper.c: Replace the removed feature settings with - per-connection class operator privileges. - - * doc/example.conf: Document the change. - - * ircd/ircd_parser.y (portblock): Fix slight memory leak. - -2004-05-16 Michael Poole - - * doc/example.conf: Make this show the new NICKLEN default. - -2004-05-14 Kevin L Mitchell - - * ircd/ircd_features.c: per CFV-0243, NICKLEN default is increased - to 12 - -2004-05-14 Kevin L Mitchell - - * ircd/s_user.c: process account creation timestamp if present in - user mode portion of a N protocol message; add account creation - timestamp to outgoing N protocol messages if that timestamp is - non-zero - - * ircd/m_account.c: process account creation timestamp if present - in AC protocol message - - * include/struct.h: add account creation timestamp - -2004-05-16 Michael Poole - - * doc/example.conf: Document operator privilege settings. - -2004-05-16 Michael Poole - - Get rid of CONF_LOCOP; use PRIV_PROPAGATE instead. - - * ircd/ircd_parser.y (invert): New variable. - (operlocal): Remove production. - (operpriv): Use "invert" variable. - (privtype): Add LOCAL alternative production. - - * ircd/m_oper.c (m_oper): Remove references to CONF_LOCOP; replace - with CONF_OPERATOR or PRIV_PROPAGATE checks, as appropriate. - - * ircd/s_conf.c (AuthorizationCheckResult, find_conf_exact): - Likewise. - - * ircd/s_stats.c (report_array, statsinfo): Likewise. - - * ircd/s_user.c (set_user_mode): Likewise. - -2004-05-15 Michael Poole - - * patches/diffs/astralnet.diff, patches/diffs/nocfv.diff: Remove - patches obsoleted by F: lines. - - * patches/diffs/topicburst.diff: Remove patch that was integrated - into the main code. - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-05 -MDP] - - * ircd/m_whois.c: On remote whois, show +s local channels with a * - prefix to opers. - -2004-05-15 Michael Poole - - * include/gline.h, ircd/gline.c, ircd/s_err.c: Forward port a lot - of gline-related fixes from 2.10.11. Things that work are due to - Kev, Isomer, Spike, hikari, and probably others; CVS makes it hard - to figure out who did what. Any mistakes are mine. - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-05 -MDP] - - * ircd/s_misc.c, ircd/s_user.c: added numnick to SNO_CONNEXIT - messages (so you can match EXIT's to CONN's) - -2004-05-15 Reed Loden - - [Original ChangeLog date: 2003-05-01 -MDP] - - * ircd/s_err.c: Added network to text and edited 001 a bit. - - * ircd/s_user.c: Send network with 001. - -2004-05-15 Michael Poole - - * ircd/s_user.c (add_target): Move free target invite check... - - * ircd/s_user.c (check_target_limit): to here, matching 2.10.11's - behavior. - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-23 -MDP] - - * ircd/s_user.c: Don't credit users with an extra attempt if they - are klined/glined, throttle them! - -2004-05-15 Jeekay - - [Original ChangeLog date: 2003-04-24 -MDP] - - * ircd/s_user.c: Altered (K-lined) to depend on find_kill type - -2004-05-15 splidge - - [Original ChangeLog date: 2003-09-03 -MDP] - - * ircd/s_user.c: Made hide_hostmask() not show bogus joins for - channels where the user is a zombie. - -2004-05-15 beware - - [Original ChangeLog date: 2003-10-25 -MDP] - - * ircd/m_whois.c: Fixed /whois comma separated list with wildcards - cpu hog bug - -2004-05-15 Michael Poole - - * ircd/s_conf.c (rehash): Call clear_quarantines on rehash since - 2.10.11 does. Show ident and IP for clients being killed by new - G-lines and K-lines. - -2004-05-15 hikari - - [Original ChangeLog date: 2003-06-27 -MDP] - - * ircd/ircd.c: After thought, update the next check time based on - when an unregistered client should expire. - -2004-05-15 hikari - - [Original ChangeLog date: 2003-06-22 -MDP] - - * ircd/ircd.c: Fixed check_pings() - shouldn't be any problem with - clients not being able to connect anymore. - -2004-05-15 Michael Poole - - * ircd/channel.c (can_join): Revert to using IsInvited() rather - than walking the list directly. - (modebuf_flush_int): Fix errant HEAD_IN_SAND_SNOTICES check to - use feature_bool(FEAT_HIS_SNOTICES) instead. - -2004-05-15 Kevin L Mitchell - - [Original ChangeLog date: 2004-01-31 -MDP] - - * ircd/channel.c (mode_parse_key): don't allow , in keys! - -2003-04-12 David Mansell (splidge) - - [Original ChangeLog date: 2003-04-14 -MDP] - - * ircd/channel.c: When keys and limits conflict on burst, the key - which is first alphabetically or the limit which is lower will be - used by both servers. This matches pre-2.10.11 behaviour. - Closes: (#713930) - -2004-05-15 David Mansell - - [Original ChangeLog date: 2002-12-28 -MDP] - - * ircd/channel.c (mode_parse_limit): don't allow -l when no limit is - set, don't allow -l with negative parameter (or unsigned >2^31). - -2004-05-15 David Mansell - - [Original ChangeLog date: 2002-12-31 -MDP] - - * ircd/m_burst.c (ms_burst): when kicking net riders, clear - invites too. - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-04 -MDP] - - * ircd/s_serv.c: Burst glines/jupes early - -2004-05-15 volta - - [Original ChangeLog date: 2003-04-26 -MDP] - - * ircd/m_userip.c, ircd/m_userhost.c: Small fix, that - allows users to see their own ip & hostname. (Should solve - all problems with dcc) - -2004-05-15 Kevin L Mitchell - - [Original ChangeLog date: 2003-06-13 -MDP] - - * ircd/m_settime.c: it's supposed to be %ld, not %l - -2004-05-15 Isomer - - [Original ChangeLog date: 2004-03-20 -MDP] - - * ircd/m_invite.c: Disallow invites to non existant channels - -2004-05-15 David Mansell - - [Original ChangeLog date: 2003-04-26 -MDP] - - * ircd/m_invite.c: let +k users invite into channels they aren't on. - -2004-05-15 hikari - - [Original ChangeLog date: 2003-07-13 -MDP] - - * ircd/IPcheck.c: Fixed (another) overflow problem in - ip_registry_check_local() - - [Original ChangeLog date: 2003-06-29 -MDP] - - * ircd/IPcheck.c: Fixed overflow problem in - ip_registry_connect_fail() - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-05-02 -MDP] - - * ircd/IPcheck.c: Added assert()'s to check for underflow - -2004-05-15 Kevin L Mitchell - - [Original ChangeLog date: 2003-11-22 -MDP] - - * tools/wrapper.c: commit uid on chroot fix from ubra - - * ircd/version.c.SH: fix generation generation - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-23 -MDP] - - * ircd/os_*.c, ircd/ircd_features.c: Default changing window sizes - to off. if an admin is smart enough to understand these features - they can enable them manually. - -2004-05-15 splidge - - [Original ChangeLog date: 2003-03-26 -MDP] - - * ircd/include/ircd_features.h, include/ircd_osdep.h, - ircd/ircd_features.c, ircd/listener.c, ircd/os_bsd.c, - ircd/os_generic.c, ircd/os_linux.c, ircd/os_openbsd.c - ircd/os_solaris.c, ircd/s_bsd.c: Patch to allow socket bufs to be - altered via F: lines - -2004-05-15 Isomer - - [Original ChangeLog date: 2003-11-18 -MDP] - - * ircd/s_auth.c, ircd/res_libresolv.c, ircd/res_adns.c: Clean up - the preregistration subsystem allowing customisation of timers, - make the dns resolver stats oper only, and make it much more clear - what all the numbers are. - -2004-05-15 Spike - - [Original ChangeLog date: 2003-11-23 -MDP] - - * ircd/IPcheck.c: Make IPcheck constants configurable - -2004-05-14 Kevin L Mitchell - - [Original ChangeLog date: 2003-11-22 -MDP] - - * ircd/m_nick.c (m_nick): truncate the nickname to the minimum of - the maximum allowed length (NICKLEN) or the allowed nickname - length specified as the NICKLEN feature - - * ircd/ircd_features.c: declare NICKLEN and set its default value - to 9 - - * include/supported.h: add MAXNICKLEN to ISUPPORT and do a little - rearranging... - - * include/ircd_features.h: add NICKLEN feature - - * include/ircd_defs.h (NICKLEN): raise max NICKLEN to 15 - - * doc/readme.features: document new NICKLEN feature - - * doc/example.conf: list new NICKLEN F-line - -2004-05-14 Matthias Crauwels - - [Original ChangeLog date: 2003-06-08 -MDP] - - * ircd/gline.c: fixed the counting bug in gline_memory_count - - * ircd/jupe.c: fixed the counting bug in jupe_memory_count - -2004-05-14 Michael Poole - - * ircd/m_mode.c (ms_mode): Do not always try to call - set_user_mode() when parv[1] is a channel name. - -2004-05-10 Michael Poole - - Implement a per-connection-class default usermode option. - - * doc/example.conf: Illustrate how to use the option. - - * include/class.h (struct ConnectionClass): New "default_umode" - field. - (ConfUmode): New macro. - - * include/client.h (client_get_default_umode): New function. - - * ircd/client.c (client_get_default_umode): Implement it. - - * ircd/ircd_lexer.l (usermode): New token. - - * ircd/ircd_parser.y (classblock, etc): New syntax. - - * ircd/s_user.c (register_user): Set default user modes for user. - This sends the new mode to the user, so the explicit send later - is no longer necessary. - -2004-05-10 Michael Poole - - Forward port of asuka-topicburst.patch from Quakenet's "Asuka" - patch set. - - * include/ircd_features.h (FEAT_TOPIC_BURST): Add new feature. - - * ircd/channel.c (send_channel_modes): If F:TOPIC_BURST:TRUE, - also send a TOPIC to the peer. - - * ircd/ircd_features.c (FEAT_TOPIC_BURST): Add new boolean - feature, defaulting to FALSE. - - * ircd/m_topic.c (do_settopic): Add argument for topic timestamp, - and allow F:HIS_BANWHO to hide the originator of the topic. - (ms_topic): Parse optional timestamp arguments to TOPIC, and use - them to decide whether to ignore the topic. - -2004-05-10 Michael Poole - - Forward port of delayed-join.patch from Quakenet's "Asuka" patch - set (which was a port of code I wrote for the other ircu). - - * include/channel.h (CHFL_DELAYED): New membership flag. - (MODE_DELJOINS, MODE_WASDELJOINS): New channel modes. - (infochanmodes): Add +D to list of supported channel modes. - (IsDelayedJoin, SetDelayedJoin, ClearDelayedJoin): New macros. - (member_can_send_to_channel, client_can_send_to_channel): Add - "reveal" parameter to indicate whether a request should cause - a join-delayed user to become visible. - (RevealDelayedJoin, CheckDelayedJoins): New functions. - - * include/numeric.h (RPL_DELNAMREPLY): New numeric. - - * include/s_user.h (NAMES_DEL): New flag for do_names(). - - * include/supported.h (FEATURESVALUES2): Add +D to list of - supported channel modes. - - * ircd/channel.c (remove_member_from_channel, - member_can_send_to_channel, client_can_send_to_channel, - joinbuf_join): Handle join-delayed users. - (channel_modes, modebuf_flush_int, modebuf_mode, modebuf_flush, - modebuf_extract, mode_process_clients, mode_parse_mode, - mode_parse): Handle delayed-join channels. - (RevealDelayedJoin, CheckDelayedJoins): New functions. - - * ircd/ircd_relay.c (relay_channel_message, relay_channel_notice, - server_relay_channel_message, server_relay_channel_notice): Add - argument for "reveal" parameter to client_can_send_to_channel(). - - * ircd/m_burst.c (ms_burst): Support MODE_DELJOINS channels. - - * ircd/m_clearmode.c (do_clearmode): Support clearing mode +D. - - * ircd/m_join.c (join0): Pass the CHFL_DELAYED flag when parting a - channel with JOIN 0. - - * ircd/m_kick.c (m_kick): For join-delayed members, only send the - KICK to the kicker and kickee. Then check whether +d can be - removed. - - * ircd/m_names.c (do_names): Show join-delayed users if and only - if the NAMES_DEL flag is given. If NAMES_DEL is given, also use - RPL_DELNAMREPLY instead of RPL_NAMREPLY. - (m_names): If NAMES -D, pass NAMES_DEL to do_names(). - - * ircd/m_part.c (m_part, ms_part): Add "reveal" argument for - member_can_send_to_channel(). Set CHFL_DELAYED join in joinbuf if - the user is join-delayed. - - * ircd/m_quit.c (m_quit): Handle join-delayed users and new - argument for member_can_send_to_channel(). - - * ircd/m_topic.c (do_settopic): If a join-delayed channel member - changes the topic, reveal the member. - - * ircd/m_wallchops.c (m_wallchops, ms_wallchops): Add argument for - "reveal" parameter to client_can_send_to_channel(). - - * ircd/m_wallvoices.c (m_wallvoices, ms_wallvoices): Likewise. - - * ircd/m_who.c (m_who): Skip join-delayed members where we skip - zombies. - - * ircd/m_whois.c (do_whois): Use '<' as a prefix for join-delayed - users. Use slightly more efficient macros rather than function - calls to test for ops and voice. - - * ircd/s_err.c (RPL_DELNAMREPLY): New numeric response string. - - * ircd/s_user.c (hide_hostmask): For users with no modes in a - join-delayed channel, do not send JOIN to other members after the - QUIT :Registered. - - * ircd/send.c (sendcmdto_common_channels_butone): Skip - join-delayed users where we skip zombies. - -2004-05-10 Michael Poole - - * ircd/ircd_events.c: Actually reference and try to use the epoll - event engine. Omitted from yesterday's commit. - -2004-05-09 Michael Poole - - Forward port of Paul "Zoot" Chang's pseudo-command.patch and - pseudo-support.patch. - - * doc/example.conf: Illustrate how to use the feature. - - * include/handlers.h (m_pseudo): Declare new handler function. - - * include/ircd_features.h (HIS_STATS_R): Add a feature to control - user visibility of the pseudo-commands. - - * include/msg.h: Add flag and field for the extra information used - to select a pseudo-command's target. - - * include/numeric.h (RPL_STATSRLINE, ERR_SERVICESDOWN): Add - definitions. - - * include/parse.h (register_mapping, unregister_mapping): Declare. - - * include/s_conf.h (struct nick_host, struct s_map, - GlobalServiceMapList): Define. - - * ircd/Makefile.in: Add m_pseudo.c to IRCD_SRC. Add generated - files to "make depend" dependency list. Update dependencies. - - * ircd/ircd_features.c (HIS_STATS_R): Define feature type and - default value. - - * ircd/ircd_lexer.l (pseudo, prepend): Recognize new tokens. - - * ircd/ircd_parser.y: Support "Pseudo" configuration blocks. - - * ircd/parse.c (msgtab): Add initializer for field "extra" to all - commands. - (msg_tree_insert, msg_tree_remove, register_mapping, - unregister_mapping): New functions. - (parse_client): Implement MFLG_EXTRA extra argument passing. - - * ircd/s_conf.c (GlobalServiceMapList): New variable. - - * ircd/s_err.c (RPL_STATRLINE, ERR_SERVICESDOWN): Add format - strings for new numeric responses. - - * ircd/s_stats.c (stats_mapping): New function. - (statsinfo): Add entry for /stats R and make old /stats r entry - case-sensitive. - -2004-05-09 Michael Poole - - * ircd/ircd_parser.y (parse_error): Convert to being a wrapper for - yyerror() so that configuration errors all go to the same place. - - * ircd/s_conf.c: New variables conf_error and conf_already_read. - conf_error is cleared by read_configuration_file() and set by - yyerror(); conf_already_read is set by read_configuration_file() - and never cleared. Make yyerror() display error to stderr before - conf_already_read is set. Make configuration errors a fatal - condition in init_conf(). - -2004-05-09 Michael Poole - - * ircd/Makefile.in: Pass the source directory as an argument to - version.c.SH so it knows where to find the source files for an - out-of-srcdir build. - - * ircd/version.c.SH: Use that information. - -2004-05-09 Michael Poole - - * Makefile.in: Ensure ${prefix}/include exists, since the adns - install puts files in that directory. (The adns Makefile does - not use configure's ${includedir}.) - -2004-05-09 Michael Poole - - * doc/readme.features: The logic for F:AUTOHIDE was removed, but - not its documentation. Fix that omission. - - * include/ircd_features.h, ircd/ircd_features.c: Remove the unused - definitions for FEATURE_AUTOHIDE. - -2004-05-09 Michael Poole - - * doc/readme.who: Document the support for account matching and - display in the WHO command. - -2004-05-09 Michael Poole - - * ircd/ircd.c (main): Move check_pid() call until after we read - the configuration file so that F:PPATH works correctly. - -2004-05-09 Michael Poole - - * ircd/match.c (match): Use ToLower() instead of tolower() for - character comparisons. - -2004-05-09 Michael Poole - - * ircd/s_user.c (register_user): Initialize "flag" (user's old - modes) passed to send_umode() so that the real set of modes are - sent to the user. - -2004-05-09 Michael Poole - - * ircd/m_server.c (ms_server): Apply +h/+s flags only to the new - server, not to a hub between us and the new server. - - * ircd/ircd_relay.c (relay_directed_message): Check FLAG_SERVICE - on target server rather than FLAG_CHSERV (so that directed - messages work at all). - -2004-05-09 Michael Poole - - * configure.in: Add checks for epoll_* system call family. - - * configure: Regenerate. - - * ircd/engine_epoll.c: New file; forward ported from 2.10.11 - branch. - -2004-05-09 Michael Poole - - * include/ircd_alloc.h: Add definitions for MyRealloc, since they - are needed by kqueue and epoll event engines; kill #if 0'd block. - - * include/memdebug.h: Declare dbg_realloc() helper function. - - * ircd/ircd_alloc.c: Implement DoRealloc() helper function. - - * ircd/memdebug.c: Implement dbg_realloc() helper function. - -2004-05-09 Michael Poole - - * ircd/channel.c (find_no_nickchange_channel): Disallow nick - changes on a moderated channel with neither ops nor voice. - - * ircd/s_err.c: Update ERR_BANNICKCHANGE message to match. - -2004-01-20 Perry Lorier - - * ircd/ircd_parser.y: Fixed parser to work with a more modern bison - -2004-01-21 Gavin Grieve - - * ircd/channel.c, include/channel.h: bring forward the IsUserParting() - code to resolve the multiple part messages bug written by Entrope. - -2003-08-12 Timothy Vogelsang - - * ircd/match.c: (match) rewrote function based on existing - code from the hybrid ircd -- death to goto - -2003-07-07 Bas Steendijk - - * ircd/s_user.c: invalidate ban cache for user on host hiding/account - -2003-07-04 Bas Steendijk - - * include/client.h, ircd/m_userhost.c, ircd/m_userip.c, ircd/m_who.c, - ircd/m_whois.c, ircd/whocmds.c: the same code, for "can user A see user - B is an oper", appeared in a lot of places. made it a define SeeOper. - -2003-07-04 Bas Steendijk - * ircd/s_user.c: umode_str (user modes in N token) internal flags var - was not initialized to the user's flags, returned a string with - random modes set. - -2003-07-01 Bas Steendijk - - * ircd/m_names.c: length counter being incremented one too many - for each nick, resulting names reply messages are about 50 chars - shorter than possible. fixed. - -2003-06-29 Bas Steendijk - - * ircd/channel.c: don't ever send mode changes for local channels to - servers. - -2003-06-27 Bas Steendijk - - * include/channel.h, include/client.h, ircd/s_user.c, ircd/s_err.c: - moved the supported channel/user mode strings of the 004 reply from - s_err.c to the header files where the channels/user modes are - defined, and show or hide +Au based on OPLEVELS setting. - -2003-06-25 Bas Steendijk - - * ircd/m_burst.c: Clear topic set by netrider on burst. - -2003-08-05 Diane Bruce - - * ircd/parse.c: Fixed the typo the fix of the typo created - -2003-08-01 Diane Bruce - - * ircd/parse.c: Fixed typo - -2003-06-22 Diane Bruce - - * ircd/parse.c: Completely rewritten June 2, 2003 - Dianora - -2003-06-22 Bas Steendijk - - * include/ircd_features.h, include/supported.h, ircd/ircd_features.c, - ircd/ircd_features.c, ircu2.10/ircd/m_join.c, doc/example.conf: - Make ability to create local channels a feature which can be disabled. - -2003-06-22 Bas Steendijk - - * include/ircd_features.h, ircd/channel.c, ircd/ircd_features.c, - ircd/m_kick.c, doc/example.conf: Added OPLEVELS feature, which - makes it possible to disable the +Au/oplevels functions. - -2003-06-17 Alex Badea - - * ircd/res_adns.c: included sys/types.h, for non-Linux - headers - -2003-03-06 Kevin L. Mitchell - - * libs/dbprim: database primitives library, including - flexible linked lists, auto-resizing hash tables, and sparse - matrices. Has a test suite for everything but portions of - the sparse matrix routines (I'm lazy; someone help me write - them!). Documentation generated by doxygen--feel free to - critique, suggest phrasing improvements, etc. - -2003-01-22 Kevin L. Mitchell - * libs: put third-party libraries in this subdirectory. - Started by copying adns into it--will fix the rest and remove - the top-level copy later. - -2003-01-14 Andrew Miller - * ircd/m_settime.c: Fixed a minor format string issue. - -2003-01-12 Thomas Helvey - * adns/src/check.c, adns/src/transmit.c, ircd/m_opmode.c, - ircd/motd.c, ircd/s_user.c: Cleanup warnings, fix precedence - bugs in transmit.c and m_opmode.c. - -2003-01-12 Thomas Helvey - * include/class.h, include/ircd_string.h, ircd/class.c, - ircd/gline.c, ircd_string.c: Fix undefined order - of evaluation bug in gline.c, add general purpose hasher for - conf entries. - -2003-01-11 Thomas Helvey - * include/channel.h, include/ircd_alloc.h, ircd/channel.c, - ircd/client.c, ircd/gline.c, ircd/ircd_alloc.c, - ircd/ircd_events.c, ircd/ircd_log.c, ircd/ircd_parser.y, - ircd/ircd_snprintf.c, ircd/listener.c, ircd/m_nick.c, - ircd/m_opmode.c, ircd/m_whois.c, ircd/motd.c, - ircd/s_auth.c, ircd/s_bsd.c, ircd/uping.c: Server compiles - with g++ again, type safety, const correctness fixes, - remove C++ keywords again :/ - -2003-01-11 Thomas Helvey - * ircd/client.c, ircd/ircd_feature.c: Bugfix, the feature - table data was in a different order than the feature data - structure, which resulted in a wild index being used in - feature_bool. The feature_bool function didn't check it's - index before indexing the features array resulting in - a core dump on /oper. - -2003-01-10 Thomas Helvey - * include/client.h, include/res.h, include/s_bsd.h, - ircd/ircd.c, ircd/list.c ircd/m_connect.c, ircd/res_adns.c, - ircd/res_libresolv.c, ircd/s_auth.c, ircd/s_bsd.c, ircd/s_conf.c: - Remove resolver cache wart, change hostent representation, cleanup - resolver clients. - -2003-01-10 Thomas Helvey - * ircd/map.c, ircd/Makefile.in, include/map.h: Remove - HEAD_IN_SAND macros to get server to build, rebuild dependencies. - -2003-01-08 Fredrik Soderblom - * ircd/s_err.c, ircd/s_user.c (hide_hostmask): Simplify - RPL_HOSTHIDDEN and the use of it. - -2003-01-07 Kevin L Mitchell - - * BUGS: removed from distribution - - * ChangeLog.07: moved into doc/history - - * ChangeLog.10: moved into doc/history - - * INSTALL: pulled up from u2.10.11.04 - - * README: pulled up from u2.10.11.04 - - * README.FreeBSD: pulled up from u2.10.11.04 - - * README.Solaris: pulled up from u2.10.11.04 - - * RELEASE.NOTES: add sysctl note from u2.10.11.04 - - * TODO: removed from distribution - - * configure.in: add extra check for res_mkquery; remove - --disable-headinsand since it no longer has any effect; pull up - "Enable" vs. "Disable" changes from u2.10.11.04 - - * doc/readme.asll: pulled up from u2.10.11.04 - - * doc/readme.features: pull up missing documentation, including a - couple of corrections - - * doc/readme.log: correct text to read FACILITY instead of SYSLOG - in the documentation for configuring syslog facility - - * include/channel.h: declare IsInvited() - - * include/handlers.h: do some minor reorderings - - * include/ircd_defs.h: remove deprecated NETWORK and URL_CLIENTS - #define's - - * include/ircd_policy.h: removed from the distribution - - * include/jupe.h: declare jupe_memory_count() - - * include/msgq.h: remove MsgCounts structure - - * include/numeric.h: add a blank line after RPL_STATSQLINE; add - RPL_HOSTHIDDEN - - * include/s_stats.h: include ircd_features.h for definition of the - enum; remove extraneous declarations - - * ircd/Makefile.in: add LDFLAGS to table_gen - - * ircd/engine_poll.c: remove commented-out assertion - - * ircd/ircd.c: include s_stats.h and call stats_init() - - * ircd/ircd_features.c: feature names have to be case-sensitive - because of some of the HIS features - - * ircd/ircd_relay.c: reorder includes - - * ircd/m_account.c: include string.h for strlen() - - * ircd/m_clearmode.c: remove extraneous clean_channelname(); make - sure to refer to chname, not parv[1] - - * ircd/m_create.c: remove the broken code that squits servers that - are >5 minutes fast; fix "badop || CHFL_CHANOP" bug that caused op - desyncs - - * ircd/m_gline.c: if it's a server, force the gline; don't - gline_find() before determining if the oper had the privilege - - * ircd/m_kick.c: kicks by servers should appear to be from the - local server thanks to HIS - - * ircd/m_lusers.c: needs ircd_features.h, not ircd_policy.h - - * ircd/m_map.c: needs ircd_features.h, not ircd_policy.h - - * ircd/m_nick.c: added an assertion and some explanatory comments - pulled up from u2.10.11.04 - - * ircd/m_opmode.c: no longer requiring oper to be on the channel; - search for quarantines before allowing ops - - * ircd/m_privmsg.c: one character typo that probably means nothing - - * ircd/m_settime.c: add back comments I left in the code - - * ircd/m_squit.c: remove protocol_violation() notices - - * ircd/m_userhost.c: return realhost if user is an oper - - * ircd/m_wallvoices.c: only m_wallvoices() should add a + - - * ircd/m_who.c: add handling for the 'a' field - - * ircd/m_whois.c: correct a typo of FEAT_HIS_SERVERNAME for - FEAT_HIS_SERVERINFO - - * ircd/s_bsd.c: close file descriptors 0, 1, and 2; pull up some - ancient bug fixes from the u2.10.11 branch - - * ircd/s_debug.c: include gline.h, jupe.h, motd.h, and s_stats.h; - call motd_memory_count(), gline_memory_count(), and - jupe_memory_count() when reporting memory usage; add back a - comment regarding "DBuf caveats" - - * ircd/s_err.c: add RPL_STATSQLINE, RPL_HOSTHIDDEN, and pull up - change to ERR_NOPRIVILEGES wording - - * ircd/s_misc.c: include ircd_features.h and not ircd_policy.h - - * ircd/s_stats.c: count from 0 and not 1 when initializing the - stats - - * ircd/s_user.c: comment out assertion; remove extraneous - definition of FLAGS_HOST_HIDDEN; add in hikari's "your host is now - hidden" reply; don't detach oper confs unless sptr is not an oper - - * ircd/table_gen.c: pull up change to NTL_CHPFX (removing +); - change channel name character range to be from '\041' (!) to - UCHAR_MAX - - * ircd/whocmds.c: pull up fix to /who idle time from u2.10.11.04 - - * tools/linesync/linesync.conf: pull up from u2.10.11.04 - - * tools/linesync/linesync.sh: pull up from u2.10.11.04 - -2003-01-07 Andrew Miller - * almost everything: Forward ported numerous changes from .11 to .12 - -2002-07-05 Andrew Miller - * ircd/packet.c(connect_dopacket): Pass the job on to server_dopacket - when they become a server. - * ircd/s_bsd.c(read_packet): Check they are now a server *after* the - packet is sent. - * ircd/class.c(make_class): Fixed an assert to be more useful. - -2002-07-05 Andrew Miller - * ircd/packet.c - * ircd/packet.h: (connect_dopacket): Made a dopacket function for - connecting links which sends the messages through the correct message - handler. - * ircd/s_bsd.c(read_packet): Put packets through the correct handler - for connecting links. Properly handle unknown links becoming - connecting or servers. - -2002-07-01 Andrew Miller - * include/ircd_alloc.h (MyFree): Accept NULL pointers to do nothing - with, this is used quite a lot. - * ircd/class.c (make_class): Initialise the ref_count to 1 so that - we don't leak. - * ircd/class.c (add_class): When updating a class, free the old name - first to prevent leakage. - * ircd/class.c (class_delete_marked): Decrement the ref_count for the - class after it is removed from the linked list. - * ircd/ircd_parser.y: Changed a free to MyFree(). - * ircd/ircd_parser.y: Removed a few debugging messages. - -2002-07-01 Andrew Miller - * s_bsd.c (read_packet): Our daily addition to the list of entities to - treat as servers - Connecting servers. - -2002-07-01 Andrew Miller - * doc/debug_memleak_gc.patch, - * include/ircd_ircd_alloc.h, - * include/memdebug.h, - * configure.in, - * ircd/Makefile.in, - * ircd/memdebug.c: added a Boehm's gc based leak detector to find leaks - and notify the operators. - -2002-06-29 Andrew Miller - - * ircd/s_bsd.c (read_packet): don't make handshaking servers go through - the dbufs. - -2002-06-18 Andrew Miller - - * ircd/s_bsd.c (read_packet): don't allow unregistered clients to flood - the server. - -2002-06-18 Alex Badea - - * ircd/m_burst.c (ms_burst): kick local members if the channel - has a larger local TS and it's +i or +k remotely (anti net.ride) - - * ircd/ircd_parser.y: fixed a bug that broke IP-based C:lines - - * ircd/s_err.c: connection classes are now strings (RPL_STATSCLINE) - - * include/s_conf.h: externalized lookup_confhost - - * adns/Makefile.in: compilation-outside-source-tree fix - -2002-06-17 Alex Badea - - * adns/*: added a slightly hacked copy of adns - - * configure.in: added a --disable-adns switch if you want - to use the old libresolv res.c - - * configure: ran autoconf - - * ircd/res_libresolv.c: renamed from res.c - - * ircd/res_adns.c: added adns resolver - -2002-06-17 Alex Badea - - * ircd/ircd_parser.y: fixed 'Connect' block processing so now - you can actually connect to other servers - -2002-06-04 Alex Badea - - * ircd/m_stats.c (report_servers_verbose): oops, fixed it so - it displays all servers, not just local connects - -2002-05-30 Jean-Edouard Babin - - * ircd/m_server.c (mr_server): fixed core bug on insufficient - arguments - -2002-05-26 Jeekay - - * ircd/m_join.c (HasControlChars): fixed unsigned vs signed - -2002-05-26 Jeekay - - * ircd/m_join.c (m_join,HasControlChars): check if a channel - name has any control chars (<=32) in it before allowing a - local user to join. - -2002-21-05 Andrew Miller - * ircd/ircd_relay.c: stop an information leak about the - the network topography from relayed messages. - -2002-04-19 Alex Badea - - * ircd/m_who.c (m_who): disallow non-opers to /who server.name - -2002-04-18 Alex Badea - - * ircd/s_err.c (RPL_STATSILINE): connection classes are now - strings - -2002-04-17 beware - - * m_whois.c (m_whois): disallow remote queries for non-existent - local users when originated by a non-oper - -2002-04-16 Alex Badea - - * ircd/s_user.c (hunt_server_cmd): also send a "no such server" - reply if the servername contains a '*' and it doesn't exist - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - -2002-04-16 beware - - * ircd/m_whois.c: the previous patch broke whois, fixed it - another way - - * ircd/m_admin.c: cleaned up m_admin too while we're here, - hunt_server_cmd can do all the work for us - -2002-04-15 Alex Badea - - * ircd/m_stats.c: added verbose server reporting (/stats v - or /stats V for machine-readable format) (bugzilla bug 52) - - * include/numeric.h: added RPL_STATSVERBOSE 236 - - * ircd/s_err.c: added RPL_STATSVERBOSE - - * ircd/s_stats.c: added help for stats 'v' - -2002-04-15 Alex Badea - - * ircd/class.c (get_client_class): fixed typo which caused - /trace (and perhaps motd) to core - -2002-04-15 beware - - * ircd/m_whois.c: Fixed /whois servermask nomatch bug - where normal users could use the function to discover servers, - also the NOSUCHSERVER check code was missing. - -2002-04-14 Alex Badea - - * ircd/ircd_parser.y: fixed cli_info(&me) not being set - from 'description' conf - -2002-04-13 Stephane Thiell - - * ircd/m_whois.c: removed FindUser() in ms_whois to fix - remote whois relaying. - - * ircd/class.c: removed unused (and duplicated) code - get_client_ping(). - - * include/class.h: removed unused function prototype. - - * config.guess: upgraded with latest - - * config.sub: upgraded with latest - -2002-04-12 Alex Badea - - * ircd-patch: report which files failed the dry run (so the - user may force the patch if the rejects are in less-than-vital - files, such as ChangeLog or documentation) - -2002-04-12 Alex Badea - - * ircd/m_invite.c: don't propagate invites for local channels - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - -2002-04-10 Joseph Bongaarts - - * ircd/ircd.c: The last fix broke autoconnects completely. - Fixed it another way. - -2002-04-09 Brian Cline - - * ircd/ircd.c (try_connections): To avoid problems with infinite event - loops, don't try connecting to servers whose connect frequency is 0. - -2002-04-10 Alex Badea - - * ircd/ircd_parser.y: fixed a "features" block parse bug - - * tools/convert-conf.py: added a configuration file converter - from 2.10.11 to 2.10.12 format - - * ircd-patch: added GPL information to top of file - -2002-04-09 Alex Badea - - * configure.in: added a human-readable report of configured - options at the end of the configure process - - * configure: regenerated with autoconf - -2002-04-08 Gavin Grieve - - * include/supported.h: change CHARSET to CASEMAPPING after - discussions as to what would be the preferred name. - -2002-04-05 Andrew Miller - * ircd/s_conf.c, ircd_parser.y, ircd_lexer.l: Add privilege - specification. - * Fix a minor parser bug that meant rehash didn't always - work correctly. - -2002-04-03 Alex Badea - - * include/channel.h: fix compiler warnings (paratheses around &&) - - * ircd/channel.c (modebuf_extract): fix compiler warnings - (uninitialized variables) - - * ircd/Makefile.in: make ircd properly compile outside the - source tree - -2002-04-03 Alex Badea - - * include/s_user.h: added a sptr parameter to InfoFormatter - function type - - * ircd/m_who.c: don't match IPs for clients which have a hidden host, - except when the inquiring user is an oper - - * ircd/whocmds.c: show the fake IP from FEAT_HIDDEN_IP if the - target has a hidden host, but show real IP to opers - - * ircd/m_userip.c (userip_formatter): add sptr parameter; show the - fake IP from FEAT_HIDDEN_IP if the target has a hidden host, but - show real IP to opers - - * ircd/m_userhost.c (userhost_formatter): add (unused) sptr parameter - - * ircd/s_user.c (send_user_info): pass sptr to the formatting function - - * include/ircd_features.h: new feature FEAT_HIDDEN_IP (stores which - fake IP to show for clients with a hidden host) - - * ircd/ircd_features.c: new feature FEAT_HIDDEN_IP - - * doc/example.conf: default value for FEAT_HIDDEN_IP - - * doc/readme.features: documented FEAT_HIDDEN_IP - -2002-04-03 Andrew Miller - * doc/example.conf: Cleaned up some comments that ended up in - strange places due to problems in the merge process. - * ircd/m_nick.c: Cleaned up ms_nick, and fixed a bug that - probably dates back to Jarkko code. - -2002-04-02 Kevin L Mitchell - - * ircd/m_kill.c: let ms_kill() and mo_kill() seperate the message - from the path before calling do_kill(); add a msg argument to - do_kill() and use it in preference to comment; remove all that old - code that fiddled with the buf and the comment - - * ircd/ircd_log.c (log_write_kill): add a seperate msg argument - - * include/ircd_log.h: add a seperate msg argument to - log_write_kill() - - * ircd/ircd.c: display event engine and MAXCONNECTIONS information - -2002-04-02 Alex Badea - - * ircd-patch: Automatically generate a version string from patches - -2002-04-02 Alex Badea - - * ircd-patch: Test before doing anything dangerous, provide -f to - to it anyway. exit levels for easy scripting. - -2002-04-01 Kevin L Mitchell - - * ircd/channel.c (joinbuf_join): don't add a channel to the list - in the joinbuf unless when we flush it, we empty the list - -2002-04-02 Andrew Miller - * ircd/ircd_parser.y: Added ircd parser, lexer, to replace the - old configuration file format. - * ircd/ircd_lexer.l - * ircd/s_conf.c - * doc/example.conf - -2002-03-23 Bert Faes - - * s_misc.c made /trace reply always show the username - -2002-03-28 Kevin L Mitchell - - * configure.in: use AC_CHECK_FUNCS to define HAVE_* macros; test - for setrlimit, getrusage, and times - - * configure: rerun auto-conf - - * config.h.in: rerun autoheader - -2002-03-27 Kevin L Mitchell - - * ircd/m_burst.c (ms_burst): use MODEBUF_DEST_NOKEY to suppress - sending of the key to the channel - - * ircd/channel.c (modebuf_flush_int): when processing keys, only - include the actual key in the mode sent to the channel if - MODEBUF_DEST_NOKEY is not set - - * include/channel.h: needed more bits for MODEBUF_DEST_*, - especially when adding MODEBUF_DEST_NOKEY to force keys in the - BURST to be reported as "*" to the channel - - * ircd/m_oper.c (m_oper): clear the new oper's sendq so it gets - inherited from the class associated with the O-line - -2002-03-25 Kevin L Mitchell - - * ircd/s_user.c (set_nick_name): invalidate all ban valid caching - when a user changes his nickname so we can catch if he now matches - a ban - -2002-03-20 Reed Loden - * doc/example.conf: Added OPER_LIST_CHAN and LOCOP_LIST_CHAN. - - * doc/readme.features: Added OPER_LIST_CHAN and LOCOP_LIST_CHAN. - -2002-03-20 LordLuke - * ircd/client.c: Add LOCOP_LIST_CHAN feature. - - * ircd/ircd_features.h: Add LOCOP_LIST_CHAN feature. - -2002-03-19 Joseph Bongaarts - - * ircd/m_links.c: Make /links behave like /map for head_in_sand. - cleaned up excess code. - - * ircd/map.c: Added map_dump_links_head_in_sand() Made changes in - map_add() and map_update() for links changes. - - * include/map.h: Added info and prot to struct Map - - * include/ircd_defs.h: Added MAP_CACHE_TIME for length of time - servers are cached in MapList - - * ircd/s_misc.c: changed #ifdef for map_update() - - * ircd/m_server.c: changed #ifdef for map_update() - - * include/ircd_policy.h: added NO_HEAD_IN_SAND for easier removal of - hiding features. - - * configure.in: add --disable-headinsand - - * configure: Ran autoconf - - * ircd/m_stats.c: Fixed a bug in /stats i and made /stats i show - connect limits - - * ircd/s_stats.c: Made /stats i report connect limits - - * ircd/s_err.c: Modified RPL_STATSILINE to use %s instead of - "*" for the password field. - -2002-03-19 LordLuke - - * include/channel.h: Allow opers to view +s channels in /list - - * include/client.h: Add "PRIV_LIST_CHAN" oper privilege - - * include/ircd_features.h: added "LIST_CHAN" feature - - * ircd/channel.c: Allow opers to view +s channels in /list - - * ircd/client.c: Add "PRIV_LIST_CHAN" - - * ircd/ircd_features.c: Add "LIST_CHAN" feature - -2002-03-13 Joseph Bongaarts - - * ircd/m_kill.c: Last of the last of the bug fixes (Thanks Spike). - Must be more careful when forward porting by hand... - -2002-03-13 Carlo Wood - - * include/channel.h: CHFL_CHANNEL_MANAGER, new local - channel flag set when someone creates a channel or joins - using the Apass. IsChannelManager(), SetChannelManager(): - macros to manipulate new channel flag. - channel_modes: Added new argument to avoid calling - find_member_link more often than needed. - - * include/numeric.h: RPL_APASSWARN, ERR_NOTLOWEROPLEVEL, - ERR_NOTMANAGER, ERR_CHANSECURED, ERR_UPASSSET, - ERR_UPASSNOTSET: new numeric replies. - - * ircd/channel.c: is_level0_op: removed. - member_can_send_to_channel: disallow channel manager - to talk. channel_modes: show upass to level0 ops. - mode_parse_upass: Only the channel manager is allowed - to change the upass. Only allow to set upass when apass - is also set. mode_parse_apass: Don't allow to change the - Apass if the channel is older than 48 hours. Only allow - to remove the apass when upass is not set. Send clear - warnings regarding the importance of apass. - mode_process_clients: Don't change the oplevel of an opped - member in a channel where upass is not set. - - * ircd/destruct_event.c: exec_expired_destruct_events: - Bug fix: send DESTRUCT message when destructing a channel. - - * ircd/m_destruct.c: ms_destruct: Bug fix: use self as - prefix for DESTRUCT message. - - * ircd/m_join.c: m_join: Handle apass and upass. - - * ircd/m_kick.c: m_kick: Don't allow to kick member with - a higher or equal op-level. - - * ircd/m_mode.c: m_mode: Now pass member to channel_modes. - ms_mode: Allow server to do modes on channels with apass - set. - - * ircd/s_err.c: RPL_APASSWARN, ERR_NOTLOWEROPLEVEL, - ERR_NOTMANAGER, ERR_CHANSECURED, ERR_UPASSSET, - ERR_UPASSNOTSET: new numeric replies. - - -2002-03-10 Joseph Bongaarts - - * ircd/m_kill.c: Last of the bug fixes for do_kill() - - * ircd/list.c: Don't remove clients from the linked list - that aren't actually in the list. - -2002-03-08 Carlo Wood - * include/channel.h: Added CHFL_BURST_ALREADY_OPPED - and CHFL_BURST_ALREADY_VOICED. - - * ircd/m_burst.c: Allow BURST outside net-burst - and take into account that users are already joined - to the channel in that case. - - * ircd/m_destruct.c: Implementation of DESTRUCT - handling code. - - * ircd/m_join.c: Set the channel creationtime to - the timestamp of a message when that timestamp is - smaller. -2002-02-27 Reed Loden - * tools/crypter: Updated some variables, added another notice, - added CVS Id tag, and updated Perl location. - - * tools/ringlog.c: Added IRC - Internet Relay Chat, - tools/ringlog.c - - * tools/ringlog.pl: Added IRC - Internet Relay Chat, - tools/ringlog.pl - - * tools/wrapper.c: Added IRC - Internet Relay Chat, - tools/wrapper.c - - * tools/mkpasswd.c: Added CVS Id tag - - * tools/sums: Updated to comply with sums being moved to tools/ - and added CVS Id tag - - * tools/README: Updated location of file and partly rewrote to fit - u2.10.11's Features - - * tools/Makefile.crypt: Updated location of file and added CVS Id - tag - - * acconfig.h: Updated location of file - - * config.h.in: Updated location of file - - * tools/Bounce/bounce.conf: Added CVS Id tag - - * tools/Bounce/Bounce.cpp: Updated location of file - - * tools/Bounce/Bounce.h: Updated location of file - - * tools/hashtoy: Added CVS Id Tag - -2002-02-27 Carlo Wood - - * /ircd/ircd.c: check_pings: First check if a PING was sent at all. - -2002-03-01 Carlo Wood - - * include/channel.h: struct Channel: new attribute destruct_event. - Prototype for destruct_channel(). - - * include/destruct_event.h: new header file for destruct_event.c. - - * ircd/Makefile.in: New source file: destruct_event.c. - - * ircd/channel.c: sub1_from_channel: Don't destruct channel - immedeately but instead schedule it for destruction after - some time when a channel becomes empty (and clear invite - only and limit in that case). - destruct_channel: new function, was previously the destructing - part of sub1_from_channel. - add_user_to_channel: remove destruction request if any. - - * ircd/destruct_event.c: New file. Implementation of functions - schedule_destruct_event_1m, schedule_destruct_event_48h, - remove_destruct_event and exec_expired_destruct_events. - - * ircd/ircd.c: destruct_event_timer: new timer. - main: use destruct_event_timer to call exec_expired_destruct_events - once per minute. - - * ircd/m_endburst.c: ms_end_of_burst: Don't complain about empty - channels. Schedule new empty channels for destruction. - - * ircd/m_join.c: m_join: Destruct just-created channel immedeately. - -2002-03-01 Carlo Wood - * ircd/s_misc.c: exit_client: Only call map_update() - for servers. - -2002-02-28 Carlo Wood - * include/channel.h: New attribute 'oplevel' in struct Membership. - Added defines MAXOPLEVELDIGITS and MAXOPLEVEL. - New macros: OpLevel(member): returns op-level of member and - SetOpLevel(member, value): sets op-level of member. - Prototype of add_user_to_channel: add oplevel to parameters. - Prototype of mode_parse: add member to to parameters. - - * include/numeric.h: added ERR_NOTLOWEROPLEVEL. - - * ircd/s_err.c: idem. - - * ircd/channel.c: Removed unmatched '{' braces from comments - (confuses vi). add_user_to_channel: oplevel is passed to function - and added in the created MemberShip structure. send_channel_modes: - Generate the nick:mode list of the BURST msg in the new style (with - op-levels). DONE_UPASS/DONE_APASS: fixed typo in comment. struct - ParseState: New attribute: member. mode_process_clients: Disallow - deopping someone with an equal or higher op-level, take care of - inheritance of op-level. mode_parse: member is passed to function - and added in the created ParseState structure. joinbuf_join: pass 0 - as oplevel to add_user_to_channel as needed initialization of oplevel - in struct MemberShip. - - * ircd/m_burst.c: ms_burst: Implementation of op-levels in the - decoding of a BURST message and passing on a BURST message. - Renamed default_mode to current_mode. - - * ircd/m_mode.c: m_mode/ms_mode: pass on `member' to mode_parse. - - * ircd/m_opmode.c: ms_opmode/mo_opmode: pass on NULL as member - to mode_parse (causes opped member to get op-level 0). - -2002-02-25 Carlo Wood - * include/channel.h: Added two new strings to struct Mode, - upass and apass, both with maximum length PASSLEN (a new - define in this file). Two new mode defines MODE_UPASS and - MODE_APASS. - - * ircd/channel.c: is_level0_op: Added as dummy function. - channel_modes/modebuf_flush_int/modebuf_extract/mode_parse: - Added support for MODE_APASS (+A) and MODE_UPASS (+u). - mode_parse_upass: New function to parse mode +u. - mode_parse_apass: New function to parse mode +A. - - * ircd/s_err.c: Added 'A' and 'u' to mode list (RPL_MYINFO). - -2002-02-25 Carlo Wood - - * ircd/m_server.c: remove unused variables - -2002-02-25 Joseph Bongaarts - - * ircd/m_map.c: Modified to show a useful output to non-opered - clients when HEAD_IN_SAND_MAP is defined. Servers are added to - the list when first seen (after receiving SERVER) and that list - is sent to clients. Servers are excluded from the list if they are - hubs, services, or have been missing for more than 1 week. - - * ircd/map.c: Created file for map_* functions - - * include/map.h: Created file for map_* functions - - * ircd/m_server.c: Added calls to map_update() - - * ircd/s_misc.c: Added call to map_update() - - * ircd/parse.c: Changed to use m_map() and mo_map() - -2002-02-22 Reed Loden - - * ircd/m_connect.c: Removed an extra : in remote connect message. - -2002-02-19 Joseph Bongaarts - - * ircd/whocmds.c: Local opers should also be able to - see servernames in /who - - * ircd/gline.c: Fix core bug in gline_find() - - * ircd/m_kill.c: Bug fix for HIS_KILLWHO - -2002-02-19 John Buttery - - * ircd/ircd.c: Updated "No such file" error message. - -2002-02-18 Joseph Bongaarts - - * ircd/m_kill.c: Changed m_kill() to do_kill() because its not - a message handler, and some general cleanups and bug fixes. - - * include/ircd_policy.h: Added HEAD_IN_SAND_KILLWHO for hiding - kill source. - -2002-02-16 Tim Vogelsang - - * ircd/m_kill.c: added a new static function, m_kill, which - performs the actual kill. - -2002-02-14 Joseph Bongaarts - - * Added support for LIST STOP - -2002-02-13 Joseph Bongaarts - - * Merged changes from u2_10_11 to main branch. - -2002-02-08 Tim Vogelsang - - * ircd/m_quit.c: don't prefix user quits with "Quit:" unless a - reason is supplied. - -2002-02-06 Kevin L Mitchell - - * ircd/s_auth.c (read_auth_reply): left out an = in an - assertion--shouldn't have had any impact, though - - * ircd/Makefile.in: add a hook for using ringlog; run make depend - - * tools/ringlog.c: for the heck of it, add a comment including - rules for /etc/magic - -2002-02-05 Kevin L Mitchell - - * tools/ringlog.pl: perl script to take output from ringlog and - pass it to addr2line to get function, file, and line number - information - - * tools/ringlog.c: program/object to help in building function - trace information - -2002-02-04 Alex Badea - - * include/ircd_features.h: added new feature MOTD_BANNER - - * ircd/ircd_features.c: added new feature MOTD_BANNER - - * ircd/motd.c (motd_signon): send a one-line banner from - FEAT_MOTD_BANNER if it's not NULL and FEAT_NODEFAULTMOTD - is set - - * doc/example.conf: default value for MOTD_BANNER feature - - * doc/readme.features: documented the MOTD_BANNER feature - -2002-02-04 Kevin L Mitchell - - * ircd/s_debug.c (debug_serveropts): remove deprecated CHROOTDIR - check; added character 'A' to the server options string to - indicate when assertion checking is enabled - -2002-02-03 Kevin L Mitchell - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/engine_kqueue.c (set_or_clear): don't generate an ET_ERROR - event if the errno is EBADF, since the caller probably already - knows about it and just hasn't gotten around to processing it yet - - * ircd/ircd_events.c: set the GEN_ERROR flag if an ET_ERROR event - is generated; don't process socket_events() or socket_state() if - an error occurred; add GEN_ERROR to list of flags in gen_flags() - - * include/ircd_events.h: define new GEN_ERROR flag; add a macro to - clear it - -2002-02-01 Kevin L Mitchell - - * ircd/channel.c: change make_nick_user_{ip,host} to not use a - static buffer--instead, a buffer of the right size (NUH_BUFSIZE or - NUI_BUFSIZE--I confess they're not well-named) is allocated by the - caller - -2002-02-02 Alex Badea - - * include/client.h: added user flag FLAGS_HIDDENHOST - - * include/ircd_features.h: added FEAT_HOST_HIDING and - FEAT_HIDDEN_HOST - - * include/numeric.h: defined numeric 338 (RPL_WHOISACTUALLY) - to report real hostnames and IPs to opers - - * include/s_user.h: exported hide_hostmask() - - * include/send.h: changed sendcmdto_channel_butserv to - sendcmdto_channel_butserv_butone; ditto for - sendcmdto_common_channels - - * include/struct.h: added realhost to struct User - - * include/whowas.h: added realhost to struct Whowas - - * ircd/channel.c: match bans against both real and hidden - hostmasks; moved some calls to use sendcmdto_*_butone - - * ircd/gline.c: match glines agains real host - - * ircd/ircd_features.c: added FEAT_HOST_HIDING and - FEAT_HIDDEN_HOST - - * ircd/m_account.c: call hide_hostmask() for possibly - hiding the user's host - - * ircd/m_burst.c: moved some calls to use sendcmdto_*_butone - - * ircd/m_topic.c: moved some calls to use sendcmdto_*_butone - - * ircd/m_userip.c: report IP 127.0.0.1 if the user has a hidden - host - - * ircd/m_who.c: match real hosts, if the query comes from an oper - - * ircd/m_whois.c: report real hostname and IP to opers - - * ircd/m_whowas.c: report real hostname to opers - - * ircd/s_err.c: added user mode 'x' to the list of supported user - modes in RPL_MYINFO (004); added RPL_WHOISACTUALLY for reporting - real hostnames to opers - - * ircd/s_misc.c: moved some calls to use sendcmdto_*_butone - - * ircd/s_serv.c: send real hostname to servers - - * ircd/s_user.c: send real hostname to servers; added processing - of usermode 'x'; added hide_hostmask() which actually does the work - of hiding a user's host; moved some calls to use sendcmdto_*_butone - - * ircd/send.c: changed sendcmdto_channel_butserv to - sendcmdto_channel_butserv_butone; ditto for - sendcmdto_common_channels - - * ircd/whocmds.c: extra letter 'x' in WHO reply if the user has - it's host hidden - - * ircd/whowas.c: if needed, store a user's real host so we can - report it to opers later - - * doc/readme.features: documented HOST_HIDING and HIDDEN_HOST - features - - * doc/example.conf: default values for HOST_HIDING and - HIDDEN_HOST features - -2002-02-01 Tim Vogelsang - - * ircd/send.c (sendwallto_group_butone): don't sent wallops to - ordinary users - -2002-01-28 Kevin L Mitchell - - * ircd/jupe.c (jupe_activate): remove a bogus assertion - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/s_err.c: added new channel mode 'r' to list of supported - channel modes in RPL_MYINFO (004); migrated RPL_USERIP to use - numeric 340 instead of 307; add ERR_NEEDREGGEDNICK (477) for - informing users why they can't join a +r channel - - * ircd/m_clearmode.c (do_clearmode): add support for MODE_REGONLY - (+r) to do_clearmode(); note that it is *not* being added to the - default clearmode mask! - - * ircd/channel.c: don't allow non-+r users to send messages to +r - channels from off the channel; add support for MODE_REGONLY (+r) - to channel_modes(); don't allow non-+r users to join +r channels - without an invite; add support for MODE_REGONLY to the modebuf_*() - family of functions (changes in modebuf_flush_int(), - modebuf_mode(), and modebuf_extract()); add support for - MODE_REGONLY to mode_parse() - - * include/supported.h (FEATURESVALUES2): added the new channel - mode 'r' to the list of supported channel modes - - * include/numeric.h: move RPL_USERIP to 340 to avoid the 307 - conflict; add ERR_NEEDREGGEDNICK (477) for the new +r channels - - * include/channel.h: remove unused MODE_SENDTS; add new - MODE_REGONLY - - * ircd/s_bsd.c (read_packet): remove call to timer_verify() - - * ircd/list.c: remove calls to timer_verify() from - alloc_connection() and dealloc_connection() - - * ircd/ircd_events.c: turn off timer_verify(); remove calls to it - from timer_run() - -2002-01-27 Kevin L Mitchell - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/ircd_events.c (timer_run): why did I ever use a next - pointer when the algorithm guarantees that the head pointer will - always be the next pointer? - -2002-01-26 Kevin L Mitchell - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/s_bsd.c (read_packet): call timer_verify() after adding the - client process timer to catch any list corruption - - * ircd/list.c: surround alloc_connection() and - dealloc_connection() with calls to timer_verify() - - * ircd/ircd_events.c: add sledgehammer known as timer_verify() to - verify the timer list's structure; call it around timer_run() - -2002-01-22 Kevin L Mitchell - - * ircd/send.c (sendcmdto_common_channels): don't send message to a - channel that the source is a zombie on - -2002-01-13 Kevin L Mitchell - - * ircd/ircd_events.c (timer_enqueue): one more assertion--make - sure a timer has the ACTIVE flag set before enqueueing the timer - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/list.c (dealloc_connection): assert that the process timer - has been removed from the timer queue before dealloc_connection() - is called - -2002-01-12 Kevin L Mitchell - - * ircd/res.c: don't accept T_A when we're looking for T_PTR - - * ircd/channel.c (modebuf_flush_int): nuke the code that would - send a HACK DESYNCH notice on a HACK(2)--it would be far too - chatty - - * ircd/m_away.c (user_set_away): use AWAYLEN instead of TOPICLEN - - * include/supported.h: add AWAYLEN to the list of supported - features - - * include/ircd_defs.h: add AWAYLEN to specify the maximum length - of an away message - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/m_mode.c (m_mode): pass extra parameter to channel_modes() - - * ircd/channel.c: pass a buflen parameter to channel_modes() for - pbuf--we were using sizeof(pbuf), which would always be - sizeof(char*) before; change send_channel_modes() to pass extra - parameter to channel_modes() - - * include/channel.h: pass a buflen parameter to channel_modes() - for pbuf - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/uping.c (uping_start): initialize some timers - - * ircd/s_bsd.c (read_packet): use new t_onqueue() macro to figure - out when we need to re-add the process timer - - * ircd/s_auth.c (make_auth_request): initialize a timer - - * ircd/res.c (init_resolver): initialize some timers - - * ircd/list.c (alloc_connection): initialize the client process - timer - - * ircd/ircd_events.c: add a function, timer_init(), to initialize - a struct Timer; recast timer_add() to catch when adding a marked - timer and not re-enqueue it--but mark it for re-enqueuing; update - timer_del() to turn off the GEN_READD flag and to ignore reference - counts when destroying the timer--we're using GEN_MARKED as an - ersatz referance count; changed timer_run() to work with the new - way of doing things; add GEN_ACTIVE and GEN_READD to gen_flags()'s - map[] - - * ircd/ircd.c: initialize some timers - - * ircd/engine_select.c (engine_loop): initialize a timer - - * ircd/engine_poll.c (engine_loop): initialize a timer - - * ircd/engine_kqueue.c (engine_loop): initialize a timer - - * ircd/engine_devpoll.c (engine_loop): initialize a timer - - * ircd/IPcheck.c (IPcheck_init): initialize a timer - - * include/ircd_events.h: add GEN_READD flag for timers to indicate - that a timer must be readded; add t_onqueue() macro to check to - see if a timer is on the queue (this is a hack, though); added - timer_init() to initialize a struct Timer--we're no longer doing - the initialization in timer_add() - -2002-01-11 Kevin L Mitchell - - * ircd/engine_devpoll.c (engine_loop): relocate an assertion to - prevent a core bug *in* the assertion - - * doc/readme.features: document new POLLS_PER_LOOP feature; change - documentation to reflect that OPER_SET now defaults to FALSE - - * doc/p10.html: documented the new ACCOUNT stuff - - * doc/example.conf: document new POLLS_PER_LOOP default; change - default for OPER_SET - - * RELEASE.NOTES: changed documentation to reflect the fact that - assertions are now enabled by default and do not cause memory - leaks - - * ircd/res.c (make_cache): removed a bogus assertion we probably - never caught because assertions haven't been enabled on production - servers for any length of time before - - * ircd/engine_devpoll.c (engine_loop): ditto for POLLS_PER_DEVPOLL - - * ircd/engine_kqueue.c (engine_loop): stupid me forgot one - instance of POLLS_PER_KQUEUE - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/s_bsd.c (client_timer_callback): only clear the - FREEFLAG_TIMER flag when the timer is being destroyed - - * ircd/ircd_features.c: create a new feature, POLLS_PER_LOOP, and - default it to 200; turn OPER_SET off by default - - * ircd/engine_kqueue.c: dynamically allocate and reallocate the - array of events to obtain from the kernel - - * ircd/engine_devpoll.c: dynamically allocate and reallocate the - array of events to obtain from the kernel - - * include/ircd_features.h: add a new feature for tuning how many - events to get from the kernel, for engines that support that - - * ircd/Makefile.in: re-run make depend to correct dependancies - - * ircd/m_who.c: remove unneeded inclusion of list.h - - * ircd/ircd_events.c: remove unneeded inclusion of list.h - - * ircd/whocmds.c (do_who): hide server name in /who unless - requester is an operator; simplify hop count insertion - - * ircd/s_misc.c (exit_one_client): make sure client's snomask is - cleared - - * ircd/parse.c: use mo_version and mo_admin when opers do /version - or /admin - - * ircd/m_whowas.c (m_whowas): use HEAD_IN_SAND_SERVERNAME instead - of the static string "*.undernet.org" - - * ircd/m_version.c: only let ordinary users get version - information for the server they are on - - * ircd/m_admin.c: only let ordinary users get admin information - for the server they are on - - * ircd/channel.c (client_can_send_to_channel): check is_banned() - before letting the client speak on a channel s/he is not on - - * include/supported.h: add NETWORK to feature list - - * include/handlers.h: declare mo_admin() and mo_version() - -2002-01-10 Kevin L Mitchell - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/s_debug.c (count_memory): conditionalize on MDEBUG instead - of !NDEBUG - - * ircd/m_stats.c: conditionalize /stats M on MDEBUG instead of - !NDEBUG - - * ircd/ircd_alloc.c: conditionalize on MDEBUG instead of on - !NDEBUG - - * ircd/fda.c: conditionalize on MDEBUG instead of on !NDEBUG - - * ircd/Makefile.in: run make depend on chkconf.c as well - - * include/ircd_alloc.h: instead of conditionalizing on !NDEBUG, - conditionalize on MDEBUG - - * include/fda.h: instead of conditionalizing on !NDEBUG, - conditionalize on MDEBUG - - * configure: rebuild configure script - - * configure.in: enable assertion checking by default, since we - have now decoupled memory debugging from the NDEBUG macro - - * ircd/s_user.c (set_nick_name): remove calls to - verify_client_list() - - * ircd/s_misc.c (exit_one_client): remove calls to - verify_client_list() - - * ircd/s_conf.c (rehash): remove calls to verify_client_list() - - * ircd/m_who.c (m_who): remove calls to verify_client_list() - - * ircd/list.c: remove calls to verify_client_list(); keep - verify_client_list() around just in case we ever need it again, - but never compile it in - - * ircd/ircd_events.c (event_execute): remove calls to - verify_client_list() - - * ircd/client.c (client_get_ping): remove calls to - verify_client_list() - - * include/list.h (send_listinfo): remove temporary debugging - function verify_client_list() - - * ircd/uping.c: don't die if the event type is ET_ERROR in socket - callback functions - - * ircd/res.c (res_callback): don't die if the event type is - ET_ERROR - - * ircd/listener.c (accept_connection): don't die if the event type - is ET_ERROR - -2002-01-09 Kevin L Mitchell - - * ircd/s_user.c (set_nick_name): bracket call to - add_client_to_list() with calls to verify_client_list() - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel (again) - - * ircd/list.c (verify_client_list): add a probabilistic loop - detector: for every client added, there is a 2% probability that - it will be used to replace the value of sentinel; if at any time, - sentinel is found again, we know we're in a loop - - * ircd/ircd_events.c (event_execute): add verify_client_list() - calls wrapping event_execute; at the very least, I'll figure out - what event the corruption occurred in - - * ircd/list.c: moved verify_client_list() to try to keep it from - being inlined - - * ircd/Makefile.in (version.c): version.c wasn't dependant on - version.h and patchlevel.h, like it was supposed to be - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/s_auth.c (destroy_auth_request): overload send_reports - argument to also indicate whether or not to call - release_auth_client() and thereby enter the client into the linked - list - - * ircd/engine_devpoll.c (engine_loop): remove bogus assertion - - * include/patchlevel.h (PATCHLEVEL): bump patchlevel - - * ircd/list.c (free_client): verify that destroy_auth_request() - didn't automagically re-add us to the list; we might have to think - about this interaction more carefully, actually - - * ircd/s_auth.c (auth_kill_client): zero the auth pointer before - calling free_client(); otherwise, free_client() will try to free - the auth by calling destroy_auth_request(), which will call - add_client_to_list() - - * ircd/s_misc.c (exit_one_client): liberally sprinkle calls to - verify_client_list() around to catch any corruption that might - occur here - - * ircd/s_conf.c (rehash): liberally sprinkle calls to - verify_client_list() here, since this is about the only routine I - can think of that could cause the "core on kill -HUP" bug - - * ircd/m_who.c: sprinkle calls to verify_client_list() around - liberally, since we've seen crashes here; temporarily include the - otherwise unneeded list.h header - - * ircd/list.c: sprinkle calls to verify_client_list() around quite - liberally; add debugging asserts to list manipulation functions to - catch strange settings for next and prev pointers; define - verify_client_list(), which walks the client list and verifies - that everything is as it's supposed to be - - * ircd/client.c: wrap client_get_ping with calls to - verify_client_list() to see if that's where we're dying - - * include/patchlevel.h (PATCHLEVEL): bump to 03 - - * include/list.h: declare verify_client_list() if DEBUGMODE - enabled; otherwise, define it to be empty - -2002-01-08 Kevin L Mitchell - - * ircd/m_quit.c (m_quit): remove an unused variable - - * include/patchlevel.h (PATCHLEVEL): bump PATCHLEVEL to 2 - - * ircd/s_user.c: when building the user mode to send to the user, - don't include +r; add an extra set of parens to squelch a warning - - * ircd/m_quit.c (m_quit): use exit_client_msg() - - * include/patchlevel.h (PATCHLEVEL): bump patch level, so we can - keep track of who's running what version - - * ircd/m_squit.c (ms_squit): remove debugging calls to - protocol_violation() - - * Makefile.in: change MAKEFILES to IRCD_MAKEFILES to work around a - new gmake "feature" (pull-up from trunk) - - * ircd/m_quit.c (m_quit): prefix user quits with "Quit:" (pull-up - from trunk) - -2002-01-07 Kevin L Mitchell - - * ircd/s_user.c: add FLAGS_ACCOUNT, represented as 'r', to the - list of user modes; process account name as part of user mode in - NICK decoding (set_nick_name()); add account name to usermode when - building the usermode to incorporate in outgoing NICK messages - - * ircd/s_err.c: add RPL_WHOISACCOUNT for reporting what account a - user is logged in to - - * ircd/parse.c: define the new ACCOUNT command, usable only by - servers and ignored by everything else - - * ircd/m_whois.c: report what account name is associated with a - user, if any - - * ircd/m_account.c: implement the ACCOUNT command - - * ircd/Makefile.in: add m_account.c to the list of sources; ran - make depend - - * include/struct.h: add an account field to struct User - - * include/numeric.h: add a reply, RPL_WHOISACCOUNT, for reporting - what username a user is logged in under - - * include/msg.h: add ACCOUNT command and token (AC) - - * include/ircd_defs.h: define ACCOUNTLEN to be 12--this matches - the maximum length of a username for X - - * include/handlers.h: add declaration for ms_account() - - * include/client.h: add FLAGS_ACCOUNT to flag when a user account - name has been set; added FLAGS_ACCOUNT to SEND_UMODES; added - IsAccount() and SetAccount() to manipulate the flag - - * ircd/m_squit.c (ms_squit): if we call FindNServer() on a server - name like "Amsterdam2.NL.EU.undernet.org", we get the struct - Client for the server with numeric "Am", which happens to be - stockholm! To fix this, we look up the full name *first*; if that - doesn't get it, *then* we look up by numeric. - -2001-12-24 Perry Lorier - * ircd/m_server.c: cleanups, maybe this will make the bug easier - to find. - - * ircd/m_stats.c: display maximum number of connects in an I: - -2001-11-22 Perry Lorier - * ircd/m_squit.c: Bug fix in squit - -2001-11-03 Greg Sikorski - * ircd/parse.c, include/handlers.h: Give remote whois the correct - handler. - -2001-11-01 Kevin L Mitchell - - * ircd/send.c: some minor white-space fiddling; recast selector - test in sendwallto_group_butone() to remove a warning regarding - putting & within parentheses - - * ircd/m_create.c (ms_create): use time_t instead of int as a - declaration for rate - - * ircd/ircd_reply.c (protocol_violation): it's supposed to be - WALL_DESYNCH, not CMD_DESYNCH, if I understand things right--no - wonder we weren't seeing any protocol violations! - - * include/send.h: include time.h for time_t; move WALL_* closer to - the function they're used in; some white-space fiddling; add - declaration of sendto_opmask_butone_ratelimited() - - * ircd/m_squit.c (ms_squit): add protocol_violation() calls in the - cases where we ignore a squit, so we aren't taken by surprise, at - least... - - * ircd/m_create.c (ms_create): Display origin server, not origin - user - - * ircd/m_create.c (ms_create): Fix "Timestamp drift" server notice - -2001-10-31 Perry Lorier - * include/m_ping.c: Forward port ping bug - -2001-10-31 Perry Lorier - * include/patchlevel.h: We're beta now - -2001-10-31 Perry Lorier - * ircd/s_user.c: fixed hunt_server - -2001-09-21 Perry Lorier - * ircd/send.c and various: replace sendcmdto_flag_butone with - sendwallto_group_butone - -2001-09-21 Vampire- - * ircd/ircd_string.c: unique_name_vector round II. - -2001-09-21 mbuna - * configure.in: Add support for darwin - -2001-09-21 Perry Lorier - * ircd/s_user.c I'm stupid, s/acptr/from/, Hektik pointed it out - -2001-09-20 Perry Lorier - - * Pullups from 2.10.10.pl16 - * Added some warnings, and the concept of rate limited snotices - -2001-08-31 Kevin L Mitchell - - * ircd/channel.c: use "%u" to format limit arguments; use - strtoul() to process limit arguments in a /mode command--note: - most clients seem to truncate the integer, probably because - they're using atoi, and perhaps signed ints - -2001-08-17 Kevin L Mitchell - - * ircd/numnicks.c: include stdlib.h for exit() - - * ircd/ircd_log.c: include stdlib.h for exit() - - * ircd/ircd_events.c: include stdlib.h for exit() - - * ircd/s_stats.c: remove description of /stats v, since it's gone - - * ircd/m_wallops.c (mo_wallops): add "*" to the beginning of - /wallops to distinguish wallops from wallusers - - * ircd/m_error.c (mr_error): ignore ERROR from clients that aren't - in the "handshake" or "connecting" states--I think the latter will - never happen, but... - - * doc/Authors: apply delete's Authors patch - - * RELEASE.NOTES: rewrite RELEASE.NOTES, basing it a little on - Braden's version - - * README: rewrite README - -2001-07-31 Kevin L. Mitchell - - * ircd/s_serv.c (server_estab): remove unused variable split - - * ircd/parse.c: add mr_error to the parse table - - * ircd/m_error.c (mr_error): add mr_error() to handle ERRORs from - unregistered connections--if IsUserPort() is true, the ERROR is - ignored, otherwise, the message is saved - -2001-07-28 Kevin L. Mitchell - - * ircd/m_kill.c (ms_kill): another minor typo *sigh* - - * ircd/s_user.c (send_supported): oops, minor typo... - - * ircd/s_user.c: implement send_supported() to send two ISUPPORT - messages containing our feature buffers; make register_user() use - send_supported() - - * ircd/s_misc.c (exit_client): make sure not to give away a remote - server in the ERROR message sent to the client; if the killer is a - server, we substitute our name in its place - - * ircd/m_version.c (m_version): use send_supported() to send the - ISUPPORT values to the user - - * ircd/m_nick.c: shave nick collision kills here a bit, too, for - the same reasons as for m_kill.c - - * ircd/m_kill.c: shave kills a bit so that the results look - exactly the same no matter where you are; if we didn't do this, it - would be possible to map the network by looking at the differences - between kills originating under various circumstances - - * include/supported.h: split the features into two, so as to not - bust the parameter count when sending the features list - - * include/s_user.h: declare new send_supported() function to send - the ISUPPORT information - -2001-07-27 Kevin L. Mitchell - - * ircd/s_bsd.c: disable IP (*not* TCP) options to prevent - source-routed spoofing attacks; this is only available under - u2.10.11, so don't even bother, since no one but testers are using - the source base - -2001-07-25 Kevin L. Mitchell - - * include/ircd_policy.h: enable HEAD_IN_SAND_REMOTE by default - - * ircd/s_err.c: put in a . for reporting link version on /trace, - to match what /version does - -2001-07-21 Kevin L. Mitchell - - * ircd/s_misc.c (exit_client): servers don't understand what the - numeric nick ERROR is supposed to mean, so they ignore error - messages, resulting in not knowing why we were rejected; use - sendcmdto_one for servers and sendrawto_one for clients - -2001-07-17 Kevin L. Mitchell - - * ircd/m_burst.c (ms_burst): in the case of a modeless channel and - a nick collide, a bare BURST may be propagated; adjust the - enforced parameter count to accept the bare BURST - -2001-07-12 Kevin L. Mitchell - - * ircd/s_bsd.c: mark a client as having been IP checked - - * ircd/IPcheck.c (ip_registry_check_remote): remove unneeded - second call to SetIPChecked() - -2001-07-11 Kevin L. Mitchell - - * ircd/engine_poll.c: deal with POLLHUP properly (hopefully) - - * ircd/engine_devpoll.c: deal with POLLHUP properly (hopefully) - -2001-07-09 Kevin L. Mitchell - - * ircd/os_bsd.c (os_get_rusage): move buf into the two ifdef'd - sections so that if neither is used, the declaration of buf will - not elicit an "unused variable" warning under NetBSD - - * ircd/m_map.c: include string.h to declare strcpy (fix warnings - on alpha) - - * ircd/m_away.c: include string.h to declare strcpy/strlen (fix - warnings on alpha) - - * ircd/ircd_log.c: include string.h to declare strcpy/strlen (fix - warnings on alpha) - - * ircd/client.c: include string.h to declare memset (fix warnings - on alpha) - - * ircd/channel.c: remove unused functions next_overlapped_ban, - del_banid, and is_deopped (fix warnings under -O1) - - * ircd/IPcheck.c: include string.h to declare memset/memcpy (fix - warnings on alpha) - -2001-06-29 Kevin L. Mitchell - - * ircd/s_user.c (set_user_mode): clear the snomask if the user - isn't supposed to receive server notices anymore - - * ircd/ircd_features.c: change CONFIG_OPERCMDS to default to FALSE - - * configure.in: use AC_MSG_CHECKING/AC_MSG_RESULT when checking - installation prefix; default devpoll and kqueue to on (they get - turned off if the required headers aren't present) - - * ircd/whocmds.c (do_who): use ircd_snprintf() instead of - sprintf_irc(); it's a bit hackish, but it'll do for now - - * ircd/support.c: remove unused #include - - * ircd/send.c: remove unused #include - - * ircd/s_user.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/s_serv.c: remove unused #include - - * ircd/s_misc.c: use ircd_snprintf() and friends instead of - sprintf_irc() and friends - - * ircd/s_err.c: moved atoi_tab[] from ircd/sprintf_irc.c to - ircd/s_err.c, which is the only other file to refer to it - - * ircd/s_conf.c (conf_add_deny): use ircd_snprintf() instead of - sprintf_irc() - - * ircd/s_bsd.c (connect_server): use ircd_snprintf() instead of - sprintf_irc() - - * ircd/s_auth.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/res.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/m_version.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/m_kill.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/listener.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/gline.c: use ircd_snprintf() instead of sprintf_irc() - - * ircd/channel.c: don't include sprintf_irc.h; use ircd_snprintf() - instead of sprintf_irc() - - * ircd/Makefile.in: remove sprintf_irc.c from sources list; run - make depend - - * include/ircd_string.h: remove declaration of sprintf_irc() (what - was it doing here anyway?) - - * include/sprintf_irc.h: removed unneeded source file - - * ircd/sprintf_irc.c: removed unneeded source file - - * ircd/s_debug.c (count_memory): remove some dead code - - * ircd/s_auth.c: remove some dead code - - * ircd/res.c (update_list): remove some dead code - - * ircd/m_whowas.c: remove some dead code - - * ircd/m_whois.c: remove some dead code - - * ircd/m_who.c: remove some dead code - - * ircd/m_wallusers.c: remove some dead code - - * ircd/m_wallops.c: remove some dead code - - * ircd/m_wallchops.c: remove some dead code - - * ircd/m_version.c: remove some dead code - - * ircd/m_userip.c: remove some dead code - - * ircd/m_userhost.c: remove some dead code - - * ircd/m_uping.c: remove some dead code - - * ircd/m_trace.c: remove some dead code - - * ircd/m_topic.c: remove some dead code - - * ircd/m_tmpl.c: remove some dead code - - * ircd/m_time.c: remove some dead code - - * ircd/m_squit.c: remove some dead code - - * ircd/m_silence.c: remove some dead code - - * ircd/m_settime.c: remove some dead code - - * ircd/m_set.c: remove some dead code - - * ircd/m_server.c: remove some dead code - - * ircd/m_rpong.c: remove some dead code - - * ircd/m_rping.c: remove some dead code - - * ircd/m_restart.c: remove some dead code - - * ircd/m_reset.c: remove some dead code - - * ircd/m_rehash.c: remove some dead code - - * ircd/m_quit.c: remove some dead code - - * ircd/m_proto.c: remove some dead code - - * ircd/m_privs.c: remove some dead code - - * ircd/m_privmsg.c: remove some dead code - - * ircd/m_pong.c: remove some dead code - - * ircd/m_ping.c: remove some dead code - - * ircd/m_pass.c: remove some dead code - - * ircd/m_part.c: remove some dead code - - * ircd/m_opmode.c: remove some dead code - - * ircd/m_oper.c: remove some dead code - - * ircd/m_notice.c: remove some dead code - - * ircd/m_nick.c: remove some dead code - - * ircd/m_map.c: remove some dead code - - * ircd/m_lusers.c: remove some dead code - - * ircd/m_list.c: remove some dead code - - * ircd/m_links.c: remove some dead code - - * ircd/m_kill.c: remove some dead code - - * ircd/m_kick.c: remove some dead code - - * ircd/m_jupe.c: remove some dead code - - * ircd/m_join.c: remove some dead code - - * ircd/m_ison.c: remove some dead code - - * ircd/m_invite.c: remove some dead code - - * ircd/m_info.c: remove some dead code - - * ircd/m_help.c: remove some dead code - - * ircd/m_gline.c: remove some dead code - - * ircd/m_get.c: remove some dead code - - * ircd/m_error.c: remove some dead code - - * ircd/m_endburst.c: remove some dead code - - * ircd/m_die.c: remove some dead code - - * ircd/m_desynch.c: remove some dead code - - * ircd/m_destruct.c: remove some dead code - - * ircd/m_defaults.c: remove some dead code - - * ircd/m_create.c: remove some dead code, along with an #if 1 - - * ircd/m_cprivmsg.c: remove some dead code - - * ircd/m_connect.c: remove some dead code - - * ircd/m_close.c: remove some dead code - - * ircd/m_clearmode.c: remove some dead code - - * ircd/m_burst.c: remove some dead code - - * ircd/m_away.c: remove some dead code - - * ircd/m_admin.c: remove some dead code - - * ircd/listener.c (accept_connection): remove some dead code - - * ircd/ircd_reply.c (need_more_params): remove some dead code - - * ircd/channel.c (add_banid): remove some dead code - - * include/support.h: remove some dead code - - * include/querycmds.h: remove some dead code - - * doc/readme.chroot: document how to do chroot operation - -2001-06-28 Kevin L. Mitchell - - * ircd/Makefile.in: tune for VPATH builds/installs; add a rule to - force bin directory to be created if necessary prior to - installation; run make depend - - * doc/Makefile.in (install): tune for VPATH installs by cd'ing to - the ${srcdir} - - * Makefile.in: tune to detect Makefile.in changes in - subdirectories and to create installation directory indicated by - ${prefix} - - * ircd/whocmds.c (count_users): routine to count the number of - users matching a given user@host mask - - * ircd/s_err.c: add error messages for ERR_LONGMASK, - ERR_TOOMANYUSERS, and ERR_MASKTOOWIDE - - * ircd/m_gline.c: look for and advance past '!' flag on G-lines - from operators; only set GLINE_OPERFORCE flag if oper has the - PRIV_WIDE_GLINE privilege - - * ircd/ircd_features.c: add GLINEMAXUSERCOUNT, which is the - maximum number of users a G-line can impact before it has to be - forced; OPER_WIDE_GLINE, to allow operators to use ! to force a - wide G-line to be set; and LOCOP_WIDE_GLINE, to allow local - operators to use ! to force a wide G-line to be set - - * ircd/gline.c: make make_gline() be called with separate user and - host arguments, and not call canon_userhost() directly; implement - gline_checkmask() to verify that a host mask is acceptable; move - BADCHAN check up in gline_add(), and check passed-in mask under - certain circumstances for acceptability; fix call to - sendto_opmask_butone() to handle separation of userhost into user - and host in gline_add(); update call to make_gline() - - * ircd/client.c: use FEAT_OPER_WIDE_GLINE and - FEAT_LOCOP_WIDE_GLINE to set PRIV_WIDE_GLINE for an operator; add - PRIV_WIDE_GLINE to privtab[] for client_report_privs() - - * include/whocmds.h (count_users): declare routine to count users - matching a given user@host mask - - * include/numeric.h: added three new error returns: ERR_LONGMASK - -- mask can't be formatted into a buffer; ERR_TOOMANYUSERS -- too - many users would be impacted by the mask; ERR_MASKTOOWIDE -- mask - contains wildcards in the wrong places - - * include/ircd_features.h: add FEAT_GLINEMAXUSERCOUNT, - FEAT_OPER_WIDE_GLINE, and FEAT_LOCOP_WIDE_GLINE - - * include/gline.h (GLINE_OPERFORCE): provides a way for m_gline() - to signal to gline_add() that the operator attempted to force the - G-line to be set - - * include/client.h (PRIV_WIDE_GLINE): new privilege for operators - - * doc/readme.gline: update to document new "!" prefix to a G-line - user@host mask - - * doc/readme.features: document GLINEMAXUSERCOUNT, - OPER_WIDE_GLINE, and LOCOP_WIDE_GLINE - - * doc/example.conf: update to mention new features along with - their defaults - -2001-06-27 Kevin L. Mitchell - - * doc/example.conf: updated example.conf from Braden - - - * include/supported.h: forward-port from pl15 - -2001-06-25 Kevin L. Mitchell - - * ircd/whocmds.c: include ircd_policy.h and implement - HEAD_IN_SAND_WHO_OPCOUNT--forward-port from pl15 - - * ircd/m_whois.c: forward-port of the idle-time hiding code from - pl15; this also required passing parc into do_whois(), which also - meant passing parc into do_wilds()--*sigh* - - * include/ircd_policy.h: add a couple more HEAD_IN_SAND - #define's--WHOIS_IDLETIME and WHO_HOPCOUNT - -2001-06-22 Kevin L. Mitchell - - * tools/wrapper.c: add a wrapper program that can be used to - adjust file descriptor limits and root directories; program must - be run as root--NOT SETUID!--and given appropriate -u arguments - - * doc/readme.log: documentation of how to configure logging - - * doc/readme.features: documentation of each feature (except for - logging) - -2001-06-21 Kevin L. Mitchell - - * Makefile.in (config): add a deprecation notice with a pointer to - tools/transition - - * tools/transition: shell script to convert old compile-time - options into new compile-time options and appropriate F-lines - - * tools/mkchroot: shell-script to prepare the chroot area by - copying over all the necessary libraries so they can be found - -2001-06-20 Kevin L. Mitchell - - * INSTALL: partial update of INSTALL for u2.10.11 release... - -2001-06-14 Kevin L. Mitchell - - * ircd/table_gen.c (makeTables): finally got tired of the - "overflow in implicit conversion" warning, so just got rid of it - by explicitly casting UCHAR_MAX to a (default) char; diffs show no - differences in the tables generated - -2001-06-11 Kevin L. Mitchell - - * ircd/send.c (sendcmdto_match_butone): don't let the server crash - if a client is in the STAT_CONNECTING status - -2001-06-10 Kevin L. Mitchell - - * ircd/send.c: remove unused vsendcmdto_one(), consolidating it - into sendcmdto_one(); define new sendcmdto_prio_one(), which - places the message into the priority queue - - * ircd/s_user.c (hunt_server_prio_cmd): definition of - hunt_server_prio_cmd(), which simply calls sendcmdto_prio_one() - instead of sendcmdto_one() - - * ircd/m_settime.c: use sendcmdto_prio_one() and - hunt_server_prio_cmd() to send SETTIME - - * ircd/m_server.c: use sendcmdto_prio_one() to send SETTIME - - * include/send.h: removed declaration for unused vsendcmdto_one(); - added a declaration for sendcmdto_prio_one() - - * include/s_user.h: declare hunt_server_prio_cmd(), which calls - sendcmdto_prio_one() - - * ircd/send.c (sendcmdto_flag_butone): oops; /wallops should be - put in the server's priority queue, too... - - * ircd/ircd.c: don't check LPATH for accessibility at all - -2001-06-08 Kevin L. Mitchell - - * ircd/s_serv.c (server_estab): send a +h flag in our SERVER - command if we're configured as a hub; send individual server flags - in SERVER commands - - * ircd/s_bsd.c (completed_connection): send a +h flag in our - SERVER command if we're configured as a hub - - * ircd/m_server.c: implement parv[7] as a mode-like string; +h - sets the FLAGS_HUB flag for a server; +s sets the FLAGS_SERVICE - flag for a server; +hs sets both flags; also modify CMD_SERVER - format string to send the flags - - * include/client.h: define two new flags, FLAGS_HUB and - FLAGS_SERVICE to mark services and hubs as such; define testing - macros, setting macros - - * ircd/s_user.c: remove deprecated struct Gline* argument to - register_user(); remove GLINE rebroadcast; do not send GLINE - acknowledgement parameter to NICK; do not look for GLINE - acknowledgement parameter to NICK while parsing - - * ircd/s_serv.c (server_estab): remove deprecated struct Jupe* - argument to server_estab(); do not send JUPE/GLINE acknowledgement - parameters for SERVER or NICK - - * ircd/m_user.c (m_user): remove deprecated argument to - register_user() - - * ircd/m_server.c: remove deprecated argument to server_estab(); - remove documentation comment regarding JUPE acknowledgement - parameter to SERVER; remove JUPE rebroadcast - - * ircd/m_pong.c (mr_pong): remove deprecated argument to - register_user() - - * ircd/m_nick.c: remove documentation comment regarding GLINE - acknowledgement parameter to NICK - - * ircd/jupe.c: use user's real name in JUPE server notices if - HEAD_IN_SAND_SNOTICES is defined - - * ircd/ircd.c: remove deprecated chroot() code; remove deprecated - setuid code; correct ancient DEBUG vs DEBUGMODE typo - - * ircd/gline.c: use user's real name in GLINE server notices if - HEAD_IN_SAND_SNOTICES is defined - - * ircd/channel.c (modebuf_flush_int): make apparent source be - local server, not oper's server; use user's real name in hack - notices and DESYNC notices if HEAD_IN_SAND_SNOTICES is defined - - * include/s_user.h: remove struct Gline pre-declaration; remove - deprecated struct Gline argument from register_user() - - * include/s_serv.h: remove struct Jupe pre-declaration; remove - deprecated struct Jupe argument from server_estab() - -2001-06-07 Kevin L. Mitchell - - * ircd/s_stats.c (hunt_stats): forward-port from pl15 of all the - changes required to control remote stats - - * ircd/s_numeric.c (do_numeric): rewrite numeric origins if - recipient is not an operator and HEAD_IN_SAND_REWRITE is defined - [forward-port from pl15] - - * ircd/m_whowas.c (m_whowas): report server name only if requester - is an operator [forward-port from pl15] - - * ircd/m_whois.c (do_whois): /whois now correctly reports - my server; if HEAD_IN_SAND_REMOTE is 1, ignore the middle argument - and obtain the report from the user's server [forward-port from - pl15] - - * ircd/m_who.c: add missing include for ircd_policy.h - [forward-port from pl15] - - * ircd/m_version.c (m_version): require oper access for remote - /version if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_time.c (m_time): require oper access for remote /time if - HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_stats.c: pass extra argument to hunt_stats(); correct - missing semicolon [forward-port from pl15] - - * ircd/m_nick.c (ms_nick): hide the origin of certain collision - kills [forward-port from pl15] - - * ircd/m_motd.c (m_motd): require oper access for remote /motd if - HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_lusers.c (m_lusers): require oper access for remote - /lusers if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/m_burst.c (ms_burst): server-added bans are stored using - local server name, to hide remote server names; modes also are to - originate from the local server [forward-port from pl15] - - * ircd/m_admin.c (m_admin): require oper access for remote /admin - if HEAD_IN_SAND_REMOTE is 1 [forward-port from pl15] - - * ircd/channel.c (add_banid): if a server is adding a ban, use my - server name to hide the remote server's name [forward-port from - pl15] - - * ircd/Makefile.in: ran make depend - - * include/s_stats.h: hunt_stats() has to have an extra argument to - support the forward-port from pl15 - - * include/ircd_policy.h: #define HEAD_IN_SAND_STATS_P; add - HEAD_IN_SAND_{BANWHO,REWRITE,REMOTE} [forward-port from pl15] - - * ircd/engine_poll.c (engine_loop): remove bogus assert that I - forgot to check in the events branch - -2001-06-06 Kevin L. Mitchell - - * ircd/res.c (init_resolver): don't start DNS expires with a 0 - relative timeout--if the server starts slow, timeouts could be - messy...there's probably a better solution, but this'll do for now - - * ircd/os_solaris.c: _XOPEN_SOURCE doesn't get along with Solaris - headers very well; include stropts.h; define an os_set_tos() - - * ircd/os_generic.c (os_set_tos): added an os_set_tos() for - os_generic.c - - * ircd/ircd.c: if there are no C-lines, we don't want to have a - timer that expires at the absolute time of 0--it kinda blocks all - the other timers! - - * ircd/engine_devpoll.c: some includes for open(); declare errcode - and codesize in engine_loop() - - * ircd/list.c (free_client): remove bogus check on timer active - flag - - * ircd/s_auth.c: pull out destruction code in - auth_timeout_request() into an externally-visible - destroy_auth_request(); manage cli_auth pointer in client - structure; use it for an extra assertion check - - * ircd/list.c: include s_auth.h for destroy_auth_request(); add - debugging notices to show flow when deallocating - connections/clients; call destroy_auth_request() when free'ing a - client that has an auth outstanding; don't free the connection if - the process timer is unmarked but still active - - * ircd/ircd_events.c: set GEN_ACTIVE when initializing a generator - and reset it before calling the event handler for an ET_DESTROY - event - - * include/s_auth.h (destroy_auth_request): declare - destroy_auth_request(), which can be used to destroy an - outstanding auth request if a client socket goes away before the - auth exchange is completed - - * include/ircd_events.h: add an active flag to keep track of - whether or not particular generators are active, for the - convenience of functions using the API - - * include/client.h: add a pointer for auth requests to struct - Connection so we can kill outstanding auth requests if a client - socket closes unexpectedly - - * ircd/s_bsd.c: cli_connect() could become 0 during the course of - the sock or timer callback; take that into account in the assert - - * ircd/list.c: add magic number checking and setting--magic - numbers are zero'd on frees to detect double-frees; add back - setting of cli_from() to 0 to break the back-link from the struct - Connection (duh) - - * ircd/ircd.c: set me's magic number correctly - - * include/client.h: define magic numbers and accessor/verifier - macros - - * ircd/list.c: assert that dealloc_client() is called with - cli_connect(cptr) == 0; set cli_connect(cptr) to 0 before calling - dealloc_client(); don't mess with cli_from(cptr) - - * ircd/s_bsd.c: only attempt to dealloc a connection if the - associated client has already been destroyed, or at least delinked - -2001-06-05 Kevin L. Mitchell - - * ircd/list.c (free_client): only try to delete the socket when - the fd hasn't already been closed, avoiding a double-free - - * ircd/list.c (free_connection): make sure the client is really - gone before doing away with the connection - - * ircd/s_bsd.c: record that socket has been added in con_freeflag - field; queue a socket_del() as soon as the socket is close()'d; - use con_freeflag & FREEFLAG_TIMER instead of con_timer; clear - FREEFLAG_SOCKET on ET_DESTROY event in client_sock_callback(), - then dealloc the connection if safe; mark socket as dead when - there's a read error or EOF; clear FREEFLAG_TIMER flag upon entry - to client_timer_callback(); dealloc connection if safe upon - ET_DESTROY event in client_timer_callback() - - * ircd/list.c: use con_freeflag instead of con_timer; only dealloc - the connection if both socket and timer have been destroyed; - destroy both socket and timer explicitly and carefully - - * include/client.h: replace the con_timer field with a - con_freeflag field, to indicate what still needs freeing; define - the freeflags - - * ircd/engine_select.c (engine_loop): duh...sockList[i] could - become 0 - - * ircd/engine_devpoll.c (engine_loop): duh...sockList[i] could - become 0 - - * ircd/s_bsd.c: add some extra assertions to try to track down a - corruption problem - - * ircd/engine_select.c (engine_loop): add an extra assert to try - to track down a corruption problem - - * ircd/engine_poll.c (engine_loop): add an extra assert to try to - track down a corruption problem - - * ircd/engine_kqueue.c (engine_loop): add an extra assert to try - to track down a corruption problem - - * ircd/engine_devpoll.c (engine_loop): skip slots that have become - empty during processing; add an extra assert to try to track down - a corruption problem - - * ircd/engine_kqueue.c (engine_delete): make sure to zero deleted - entries - -2001-06-04 Kevin L. Mitchell - - * ircd/s_bsd.c (client_sock_callback): client is no longer - blocked, so we must mark it as unblocked - - * ircd/engine_select.c: add Debug() calls galore; add handling for - SS_NOTSOCK; use a dummy sock variable to keep things from - disappearing on us; correct timeout calculation; update nfds for - efficiency - - * ircd/engine_poll.c: use new debugging level (DEBUG_ENGINE); - remove a spurious "if (sock)" which will always be true; update - nfds for efficiency - - * ircd/engine_kqueue.c: add Debug() calls galore; add handling for - SS_NOTSOCK (just in case); correct timeout calculation - - * ircd/engine_devpoll.c: add Debug() calls galore; add handling - for SS_NOTSOCK; correct timeout calculation; add EAGAIN handling - - * include/s_debug.h (DEBUG_ENGINE): add new debugging level; - pretty-indent numbers - - * ircd/engine_poll.c (engine_loop): break out SS_NOTSOCK - case--it's not a socket; the check for writability is most likely - not needed, but present for completeness - -2001-05-24 Kevin L. Mitchell - - * ircd/s_bsd.c: add Debug messages; call read_packet() even if the - no newline flag is set; call read_packet() when the timer expires, - regardless of what's in the buffer--read_packet() should be able - to deal properly - - * ircd/IPcheck.c (ip_registry_connect_succeeded): correct a NOTICE - sent to clients to include the client nickname (duh) - - * ircd/ircd_events.c: don't destroy a timer if it's already marked - for destruction; replace a missing ! in socket_del() - - * ircd/engine_poll.c (engine_loop): reference a temporary variable - so we don't have to worry about sockList[i] going away - - * ircd/s_bsd.c (client_sock_callback): add Debug messages - - * ircd/s_auth.c: add Debug messages all over the place - - * ircd/ircd_events.c: add and edit some Debug messages; add a list - of routines to convert some of the enums and flags from numbers - into human-readable strings for the Debug messages - - * ircd/engine_poll.c: hack some Debug messages to use the new name - conversion routines in ircd_events.c; add an extra assert for a - condition that shouldn't ever happen; apparently recv() can return - EAGAIN when poll() returns readable--I wonder why... - - * include/ircd_events.h: declare some helper routines under - DEBUGMODE - -2001-05-23 Kevin L. Mitchell - - * ircd/s_bsd.c (client_sock_callback): add an extra assertion - check - - * ircd/s_auth.c: add more Debug messages - - * ircd/list.c (make_client): add an extra assertion check - - * ircd/ircd_events.c (socket_events): don't call the engine events - changer if we haven't actually made any changes to the event mask - - * ircd/uping.c: add some Debug messages - - * ircd/s_stats.c: document new /STATS e - - * ircd/s_err.c: add RPL_STATSENGINE to report the engine name - - * ircd/s_bsd.c: remove static client_timer variable; in - read_packet(), if there's still data in the client's recvQ after - parsing, add a 2 second timer (con_proc); fix the ET_DESTROY case - of client_sock_callback to handle destroying the timer properly; - rewrote client_timer_callback from scratch to be called on an - individual client - - * ircd/m_stats.c: add /STATS e to report the engine name - - * ircd/list.c: deal with con_timer field in struct Connection - properly; correct a core-level bug in remove_client_from_list--if - the client is the only one in the list, we try to update - GlobalClientList's cli_prev pointer--not good - - * ircd/ircd.c: remove call to init_client_timer() - - * ircd/engine_poll.c: made Debug messages more uniform by - prepending "poll:" to them all; corrected an off-by-one error that - caused poll_count to be 1 less than the actual count and removed - my work-around; added Debug messages to indicate which socket is - being checked and what the results are - - * ircd/Makefile.in: ran a make depend - - * include/s_bsd.h: remove init_client_timer(), since we're doing - it differently now - - * include/numeric.h (RPL_STATSENGINE): a stats reply to report the - engine name - - * include/ircd_policy.h (HEAD_IN_SAND_STATS_E): turn off /stats e - reports for non-opers - - * include/client.h: add con_timer and con_proc fields to struct - Connection and define accessor macros--con_timer marks that - con_proc contains a valid timer, and con_proc is used to pace user - data - - * ircd/s_bsd.c (close_connection): let free_client() destroy the - socket - - * ircd/s_auth.c (start_auth): add a Debug call to indicate when - auth has begun on a client - - * ircd/ircd_events.c: ensure that event_execute() is called with a - non-NULL event; modify event_add() macro to properly zero list - bits; modify gen_dequeue() to not try to clip it out of a list - it's already been clipped out of; change signal socket - initialization to use state SS_NOTSOCK; permit timeout values of - 0 in add_timer(); add many Debug calls; change socket_del() and - timer_del() to always set the GEN_DESTROY flag; use GEN_MARKED in - timer_run() instead of GEN_DESTROY so that event_generate() will - pass on the events; remove the switch and replace with a simpler - if-then-else tree in timer_run(); don't allow destroyed sockets to - be destroyed again, nor their states or event masks to be changed - - * ircd/ircd.c: initialize "running" to 1 - - * ircd/engine_poll.c: deal with SS_NOTSOCK "sockets"; add Debug - messages all over the place; fix a counting problem in - engine_add(); turn wait into a signed integer and set it to -1 - only if timer_next() returns 0; adjust wait time to be relative; - don't call gen_ref_dec() if socket disappeared while we were - processing it - - * include/ircd_events.h: the pipe for signals is not a socket, so - we must mark it as such--added SS_NOTSOCK for that special socket; - events won't be generated if GEN_DESTROY is on, so add GEN_MARKED - for the benefit of timer_run() - - * configure.in: add --enable-pedantic and --enable-warnings to - turn on (and off) -Wall -pedantic in CFLAGS - -2001-05-21 Kevin L. Mitchell - - * ircd/s_conf.c: change "s_addr" element accesses to "address" - element accesses - - * include/s_conf.h: on some systems, "s_addr" is a macro; use - "address" instead - -2001-05-18 Kevin L. Mitchell - - * ircd/engine_kqueue.c: include ircd_alloc.h; set_or_clear returns - void in this file; add a missing semi-colon; declare errcode, - codesize - - * ircd/uping.c (uping_sender_callback): it's pptr, not uping - - * ircd/s_user.c (register_user): comment out spurious reference to - nextping - - * ircd/s_serv.c (server_estab): comment out spurious reference to - nextping - - * ircd/s_conf.c (read_configuration_file): comment out spurious - reference to nextping and nextconnect - - * ircd/s_bsd.c: comment out some spurious references to formerly - global (now non-existant) variables; correct a couple of typos - - * ircd/s_auth.c: pre-declare some functions referenced in the - callback; correct a typo - - * ircd/res.c (start_resolver): pass errno value of ENFILE - - * ircd/listener.c (accept_connection): you know your API is messed - up when...variables that shouldn't have been global crop up in - other files - - * ircd/list.c (free_client): substitution of == for = - - * ircd/ircd_signal.c: include assert.h for assertion checking; - check ev_data() to find out what signal generated event - - * ircd/ircd_events.c: some references to the variable "timer" - should have been references to the variable "ptr" - - * ircd/engine_select.c: it's struct fd_set, not struct fdset; - ev_timer(ev) is already a timer pointer; declare codesize as a - size_t to correct signedness issue; use timer_next(), not - time_next() - - * ircd/engine_poll.c: ev_timer(ev) is already a timer pointer; - select fd out of struct pollfd in assertion checking; declare - errcode and codesize; use timer_next(), not time_next() - - * ircd/engine_kqueue.c: ev_timer(ev) is already a timer pointer; - use function timer_next(), not time_next() - - * ircd/engine_devpoll.c: ev_timer(ev) is already a timer pointer; - use function timer_next(), not time_next() - - * ircd/Makefile.in (IRCD_SRC): add ircd_events.c to the list of - compiled sources; do make depend - - * include/list.h: pre-declare struct Connection - - * include/ircd_events.h (gen_ref_inc): cast to the right structure - name - - * include/s_auth.h: duh; missing */ - -2001-05-10 Kevin L. Mitchell - - * ircd/send.c: update write events status after sending data or - accumulating data to be sent - - * ircd/m_list.c (m_list): update write events status after - canceling a running /list - - * ircd/channel.c (list_next_channels): update write events status - after listing a few channels - - * ircd/s_bsd.c: extensive changes to update to new events model; - remove on_write_unblocked() and the two implementations of - read_message(), which have been deprecated by this change - - * ircd/s_auth.c: set the socket events we're interested in for - clients; simplify some logic that does the connect_nonb followed - by the socket_add - - * ircd/list.c: define free_connection() to free a connection - that's become freeable once the struct Socket has been - deallocated; fix up free_client() to take this new behavior into - account - - * ircd/ircd.c: call init_client_timer() - - * include/s_bsd.h: declare new REGISTER_ERROR_MESSAGE when unable - to register connect-in-progress with events system; declare - init_client_timer() (HACK!) to preserve rate-limiting behavior - - * include/list.h: declare new free_connection() - - * include/client.h: add a struct Socket to struct Connection - -2001-05-09 Kevin L. Mitchell - - * ircd/ircd_signal.c: massage the handlers for SIGHUP, SIGINT, and - SIGTERM into event callbacks; perform the actions in the - callbacks, since they're not called in the context of the signal; - set up the signal callbacks in the event engine - - * ircd/ircd_events.c (signal_callback): we're supposed to look for - a specific signal; don't generate an event if there is no signal - structure for it - - * ircd/ircd.c: nuke nextconnect and nextping and replace them with - connect_timer and ping_timer; massage try_connections() and - check_pings() into timer callbacks that re-add themselves at the - right time; remove ircd.c's "event_loop()"; initialize the event - system and the connect_timer and ping_timer - - * ircd/uping.c: correct a couple more typos - - * ircd/s_auth.c: rework to use new events system - - * ircd/os_solaris.c (os_connect_nonb): update to new interface - - * ircd/os_openbsd.c (os_connect_nonb): update to new interface - - * ircd/os_linux.c (os_connect_nonb): update to new interface - - * ircd/os_generic.c (os_connect_nonb): update to new interface - - * ircd/os_bsd.c (os_connect_nonb): update to new interface - - * include/s_auth.h: remove deprecated members of struct - AuthRequest, replacing them with struct Socket and struct Timer - structures; add flags to indicate when these structures have been - released by the event system; remove the deprecated - timeout_auth_queries() - - * include/ircd_osdep.h (os_connect_nonb): connect could complete - immediately, so change the interface to handle that possibility - - * ircd/uping.c (uping_server): noticed and corrected a typo - - * ircd/listener.c: set up to use ircd_event's struct Socket by - adding an socket_add() call to inetport(), replacing - free_listener() with socket_del() in close_listener(), and - reworking accept_connection to be called as the callback - - * ircd/ircd.c: add a call to IPcheck_init() - - * ircd/IPcheck.c: remove IPcheck_expire(); rework - ip_registry_expire() to be called from a timer; write - IPcheck_init() to set up the expiration timer (hard-coded for a - 60-second expiration time) - - * include/listener.h: add a struct Socket to the struct Listener; - remove accept_connection() - - * include/IPcheck.h: add IPcheck_init(), remove IPcheck_expire() - -2001-05-08 Kevin L. Mitchell - - * ircd/ircd_events.c: include config.h; use USE_KQUEUE and - USE_DEVPOLL instead of HAVE_KQUEUE and HAVE_DEVPOLL_H - - * ircd/engine_select.c: include config.h; set FD_SETSIZE to - MAXCONNECTIONS, not IRCD_FD_SETSIZE... - - * ircd/engine_poll.c: include config.h - - * ircd/engine_kqueue.c: include config.h - - * ircd/engine_devpoll.c: include config.h - - * ircd/Makefile.in: include engine sources in compilation and make - depend steps - - * configure.in: add checks for enabling the /dev/poll- and - kqueue-based engines - - * acconfig.h: add lines for USE_DEVPOLL and USE_KQUEUE - - * ircd/Makefile.in: work in the engine sources - -2001-05-07 Kevin L. Mitchell - - * ircd/m_settime.c: include ircd_snprintf.h - - * ircd/ircd_relay.c: stomp a couple of gcc warnings suggesting - parens around a construct that had both || and && - - * ircd/chkconf.c: #include "config.h" to get some important - definitions - - * ircd/Makefile.in: revamp ircd makefile for new build system - - * doc/Makefile.in: revamp doc makefile for new build system - - * config/*: Removed old build system files - - * stamp-h.in: a stamp file - - * install-sh: install-sh for new build system - - * configure.in: configure.in for new build system - - * configure: configure script for new build system (built by - autoconf) - - * config.sub: config.sub for new build system - - * config.h.in: config.h.in for new build system (built by - autoheader) - - * config.guess: config.guess for new build system - - * aclocal.m4: aclocal.m4 for new build system (built by aclocal - 1.4) - - * acinclude.m4: aclocal.m4 macros for new build system - - * acconfig.h: config.h skeleton for new build system - - * Makefile.in: modify for new build system - -2001-05-01 Kevin L. Mitchell - - * ircd/s_err.c: get rid of the last vestiges of TIME_T_FMT - - * ircd/m_settime.c: get rid of the last vestiges of TIME_T_FMT - - * ircd/m_server.c: get rid of the last vestiges of TIME_T_FMT - -2001-05-01 Perry Lorier - * doc/iauth.doc: Protocol for iauth server. (from hybrid). - * doc/linux-poll.patch: Patch to make Linux under 2.2 not deadlock - when you have far far too many sockets in use. - * {include,ircd}/iauth.c: A start on iauth support. - -2001-05-01 Perry Lorier - * ircd/s_err.c: Suggested wording change. - * ircd/s_user.c: Users aren't target limited against +k users. - * ircd/chkconf.c: Made it compile again, who knows if it works, but - now I can at least make install - * various: Cleanups on m_*.c files. - - -2001-04-23 Kevin L. Mitchell - - * ircd/s_misc.c (exit_client): make netsplit server notice say the - right thing - - * ircd/m_links.c (m_links_redirect): forward-port RPL_ENDOFLINKS - change to make Khaled happy... - - * ircd/m_whois.c (do_whois): pull-up of m_whois() fix - (do_whois): duh... - -2001-04-21 Kevin L. Mitchell - - * ircd/msgq.c: finally remove the msgq_integrity() hack, as it's - turned up no more bugs - - * ircd/ircd.c: use /* */ comments instead of // comments--all the - world's not gcc :( - - * ircd/s_conf.c (conf_add_server): use /* */ comments instead of - // comments--all the world's not gcc :( - - * ircd/runmalloc.c: finally garbage-collect unused file - - * include/runmalloc.h: finally garbage-collect unused file - - * ircd/: addition of '#include "config.h"' before - all other includes in most .c files - - * include/: remove includes of config.h, which are - now going into the raw .c files - -2001-04-20 Kevin L. Mitchell - - * ircd/m_whois.c (do_whois): display proper server name if the - user is looking up himself - - * ircd/m_who.c (m_who): disable match by servername or display of - server names by non-opers - - * include/ircd_policy.h: add define for - HEAD_IN_SAND_WHO_SERVERNAME to cover full intent of sub-motion 15 - of CFV 165 - -2001-04-18 Kevin L. Mitchell - - * ircd/s_conf.c: keep the $R in memory so we can see it clearly - when we do a /stats k - - * ircd/s_user.c (set_user_mode): pull-up of changes to prevent - users from turning on +s and +g - - * ircd/s_misc.c (exit_client): pull-up of changes to turn off - net.split notice - - * ircd/parse.c: pull-up of changes to disable /trace, /links, and - /map for users - - * ircd/m_whois.c (do_whois): pull-up of server name masking for - /whois - - * ircd/m_user.c (m_user): removal of umode and snomask defaulting - functions, pull-up - - * ircd/m_stats.c (m_stats): pull-up of stats-disabling stuff - - * ircd/m_map.c (m_map_redirect): pull-up of m_map_redirect() - - * ircd/m_links.c (m_links_redirect): pull-up of m_links_redirect() - - * ircd/channel.c (channel_modes): pull-up of channel key display - as * - - * include/ircd_policy.h: pull-up of ircd_policy.h - - * include/client.h: pull-up of Set/ClearServNotice() - - * ircd/gline.c (do_gline): report client name in G-line message - (pull-up) - - * ircd/s_user.c (register_user): pull-up--show IP address in some - server notices dealing only with users; report which connection - class has filled up - - * ircd/s_stats.c (report_deny_list): use conf->flags & - DENY_FLAGS_IP insteaf of conf->ip_kill - - * ircd/m_stats.c (report_klines): use conf->flags & DENY_FLAGS_IP - insteaf of conf->ip_kill - - * ircd/s_conf.c: use flags field in struct DenyConf; pull-up of - K-line by real name - - * include/s_conf.h: use a flags field in struct DenyConf; define - DENY_FLAGS_FILE, DENY_FLAGS_IP, and DENY_FLAGS_REALNAME for - pull-up of K-line by real name - - * ircd/m_trace.c: pull-up of IP show for user connections - - * doc/example.conf: pull-up of the realname K-line documentation - - * ircd/ircd.c: forward port of pid file advisory locking mechanism - -2001-04-16 Kevin L. Mitchell - - * ircd/send.c (sendcmdto_flag_butone): recast to just broadcast to - all servers, rather than to only servers that have +w/+g/whatever - users on them; among other things, this removes that atrocity - known as sentalong[] from this function - - * ircd/m_admin.c: must include ircd.h to declare "me"; must - include hash.h to declare FindUser() - - * ircd/m_wallusers.c: implementation of WALLUSERS - - * ircd/m_desynch.c (ms_desynch): only send DESYNCHs to opers - - * ircd/m_wallops.c: only send WALLOPS to opers - - * ircd/parse.c: add WALLUSERS command to parser table - - * include/handlers.h: declare wallusers handlers - - * include/msg.h: add WALLUSERS command - - * ircd/send.c (sendcmdto_flag_butone): if FLAGS_OPER is or'd with - flag, send only to appropriate opers - -2001-04-13 Kevin L. Mitchell - - * ircd/uping.c: refit to use the new events interface - - * ircd/res.c: refit to use the new events interface - - * ircd/ircd_events.c: create timer_chg(), which permits a - (non-periodic) timer's expire time to be modified; change the - logic in timer_run() so that timers that were re-added while the - event was being processed will not be destroyed prematurely - - * include/uping.h: include the events header, declare some extra - fields in struct UPing, remove timeout value, and define some - flags for marking which cleanup items have yet to be done - - * include/ircd_events.h: add a prototype for timer_chg() to change - the expire time of a running timer - -2001-03-13 Joseph Bongaarts - * ircd/os_openbsd.c: Tweaked the openbsd hack a bit. - -2001-03-07 Joseph Bongaarts - - * config/configure.in: Add check for OpenBSD - - * ircd/os_openbsd.c: Add seperate os dep file for openbsd which - differs from generic BSD, particularly in its handling of - _XOPEN_SOURCE. - -2001-02-12 Kevin L. Mitchell - - * ircd/m_gline.c (ms_gline): propagate a G-line that happened to - have been added by a U-lined server, rather than going through the - activate/deactivate logic; propagate G-line removals by U-lined - servers as well - - * ircd/gline.c: rename propagate_gline() to gline_propagate(); - make gline_propagate() return an int 0 (convenience return); only - update lastmod in gline_activate() and gline_deactivate() if the - current lastmod is non-zero, since 0 lastmod is our flag of a - U-lined server having added a G-line - - * include/gline.h (gline_propagate): exporting the G-line - propagation function - - * ircd/m_list.c (m_list): duh; permit explicit channel name - specification only when /list gets two arguments ("Kev - #wasteland") rather than when /list gets more than two - arguments--nice braino - -2001-01-29 Thomas Helvey - - * ircd/ircd_reply.c (need_more_params): fix bug that allowed - unregistered clients to spam opers with protocol violation - messages. Note: the bugfix may have eliminated some useful - protocol violation messages. - Please send protocol violation messages explicitly from the - functions they are discovered in, you have much better context - for the error there and it helps to document the behavior of the - server. This was also a design bug in that it violated the - "A function should do one thing" heuristic. Patching this one - would have resulted in a continuous spawning of other bugs over - the next 3 years, so I killed it. Check around for stuff this - broke and readd the calls to protocol_violation in the functions - that need to send the message. - -2001-01-29 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_ban): stopper a tiny leak--if a ban - already existed, then the logic would (attempt to) skip it, but - would not free the ban string; now the ban string is free'd and - the ban count is decremented, releasing the ban for use - - * ircd/s_user.c: make send_umode_out() take a prop argument - instead of testing for the PRIV_PROPAGATE privilege itself; fix - set_umode() to use this new argument, calculating it before - calculating the new privileges for a -o'd user - - * ircd/m_oper.c (m_oper): pass the new prop argument to - send_umode_out() - - * ircd/channel.c (mode_parse_ban): turn off MODE_ADD bit in bans - that we're not actually going to add because they already exist; - test that particular bit before adding to the linked list - - * include/s_user.h: add a prop argument to send_umode_out() to - indicate whether or not to propagate the user mode - -2001-01-24 Kevin L. Mitchell - - * ircd/msgq.c: ircd_vsnprintf() returns the number of bytes that - it would have written; upper-bound the number to prevent overflows - by proxy; also, tune buffer size given to ircd_vsnprintf() to take - into account the fact that ircd_vsnprintf() already takes the - terminal \0 into account - -2001-01-22 Kevin L. Mitchell - - * ircd/msgq.c: add an incredibly ugly hack to attempt to track - down an apparent buffer overflow; remove msgq_map(), since it's no - longer used anywhere; slight tweaks to prevent off-by-one errors, - but these can't explain the problems we've seen - - * include/msgq.h: remove msgq_map(), since it's no longer used - anywhere - -2001-01-18 Kevin L. Mitchell - - * ircd/s_user.c (set_nick_name): call client_set_privs() after - parsing user modes - -2001-01-17 Kevin L. Mitchell - - * ircd/s_bsd.c (read_message): fix a typo in the select version of - read_message() - - * ircd/whowas.c (whowas_free): MyFree() is a macro that expects - its argument to be an lvalue, which means we can't use - whowas_clean()'s handy-dandy "return ww" feature - - * ircd/ircd_features.c: default LOCOP_KILL to TRUE--oops... - -2001-01-16 Kevin L. Mitchell - - * ircd/ircd_events.c (timer_run): it's possible that the timer got - deleted during the callback processing, so don't go to the bother - of requeuing it if the destroy flag is set - - * ircd/engine_select.c: define FD_SETSIZE to be IRCD_FD_SETSIZE - out of config.h if this is a *BSD; include errno.h (oops); - decrement error count after an hour using a timer; use FD_SETSIZE - constant instead of IRCD_FD_SETSIZE constant; fill in event - processing code - - * ircd/engine_poll.c: include errno.h (oops); decrement error - count after an hour using a timer; fill in event processing code - - * ircd/engine_kqueue.c: include errno.h (oops); decrement error - count after an hour using a timer; assert events filter is either - EVFILT_READ or EVFILT_WRITE; fill in event processing code - - * ircd/engine_devpoll.c: include errno.h (oops); decrement error - count after an hour using a timer; fill in event processing code - -2001-01-15 Kevin L. Mitchell - - * ircd/client.c: fixed feattab; basically, when I changed features - to use small integers specifying bit positions, instead of the - bits themselves, I forgot to update feattab to not | these - privileges together; also fixed a bug in the antiprivs masking - loop in client_set_privs()--last index wouldn't get parsed - -2001-01-11 Kevin L. Mitchell - - * ircd/ircd_events.c: call event_generate() with new data - argument; make it set that field in struct Event; make - socket_add() return the value of the eng_add callback - - * ircd/engine_select.c: make engine_add() return a - successful/unsuccessful status; add bounds-checking outside of an - assert; use accessor macros; use log_write(), not the deprecated - ircd_log(); add an assert to engine_loop() to double-check for - data structure corruption - - * ircd/engine_poll.c: make engine_add() return a - successful/unsuccessful status; add bounds-checking outside of an - assert; use accessor macros; use log_write(), not the deprecated - ircd_log(); add an assert to engine_loop() to double-check for - data structure corruption - - * ircd/engine_kqueue.c: implementation of an engine for kqueue() - - * ircd/engine_devpoll.c: implementation of an engine for /dev/poll - - * include/ircd_events.h: define some accessor macros; add ev_data - to struct Event for certain important data--errno values, for - instance; make EngineAdd callback tell us if it was successful or - not; add extra argument to event_generate(); make socket_add() - return the status from EngineAdd - -2001-01-10 Kevin L. Mitchell - - * ircd/ircd_events.c: pass initializer information about how many - total _filedescriptors_ may be opened at once - - * ircd/ircd.c: use exported "running" instead of unexported - thisServer.running - - * ircd/engine_select.c: implementation of an event engine based on - select() - - * ircd/engine_poll.c: implementation of an event engine based on - poll() - - * include/ircd_events.h: pass the engine initializer an integer - specifing how many _filedescriptors_ may be opened at once - - * include/ircd.h: running has to be exported for the engine_* - event loops - -2001-01-09 Kevin L. Mitchell - - * ircd/ircd_events.c: include some needed headers; add some - comments; make evEngines[] const; bundle sig_sock and sig_fd into - a struct named sigInfo; rework struct evInfo to have a queue of - _generators_, and only when threaded; added a gen_init() function - to centralize generator initialization; fix various compile-time - errors; rework event_add() for new queueing scheme and checked for - compile-time errors; add casts where needed; spell evEngines[] - correctly; make engine_name() return const char* - - * include/ircd_events.h: type EventCallBack depends on struct - Event, so pre-declare it; put _event_ queue into generators, and - only when threaded; give engine data a union to store both ints - and pointers; make engine name a const; fix gen_ref_dec() macro; - make engine_name() return a const char* - - * ircd/ircd_events.c: gen_dequeue() is now exported, so move it - down with the non-static functions; modify event_execute() to use - the new gen_ref_dec() to simplify code; make sure event_generate() - does not generate new events for generators marked for destruction - - * include/ircd_events.h: the engines, at least, may need to modify - reference counts to keep generators from going away while - something still points at them, so add reference counter - manipulators and export gen_dequeue() for them - - * ircd/ircd_events.c: set up the list of engines to try; set up - the signal struct Socket; rename netInfo to evInfo; move static - functions near the beginning of the file; do away with - signal_signal() (since we no longer keep a signal count ourselves) - and call event_generate() directly from signal_callback--also - renamed some functions; allow signal_callback() to read up to - SIGS_PER_SOCK at once from the signal pipe; add event_init() to - initialize the entire event system; add event_loop() to call the - engine's event loop; initialize new struct GenHeader member, - gh_engdata; remove timer_next(); add socket_add() function to add - a socket; add socket_del() to mark a socket for deletion; add - socket_state() to transition a socket between states; add - socket_events() to set what events we're interested in on the - socket; add engine_name() to retrieve event engine's name - - * include/ircd_events.h: add engine data field to struct - GenHeader; rename SOCK_ACTION_REMOVE to SOCK_ACTION_DEL; add a - note about states vs s_events; remove signal count; fold union - Generator back into struct Event; remove count members from struct - Generators; redefine engine callbacks to not take a struct - Engine*; add explanatory comments to callback definitions; add - some engine callbacks to handle operations; remove struct Engine - flag member--can detect single flag from eng_signal member; add - event_init(), event_loop(), engine_name(), and the socket_*() - functions; make timer_next() a macro to avoid a function call - -2001-01-08 Kevin L. Mitchell - - * include/ircd_events.h: rename to ircd_events.h, since it handles - events, not just networking stuff; add signal support; more - structural rearrangement - - * ircd/ircd_events.c: rename to ircd_events.c, since it handles - events, not just networking stuff; add signal support; more - structural rearrangement - -2001-01-07 Kevin L. Mitchell - - * ircd/ircd_network.c: implement timer API; add reference counts - appropriately - - * include/ircd_network.h: firm up some pieces of the interface; - split out members everything has into a separate structure; add - reference counts; add timer API - -2001-01-06 Kevin L. Mitchell - - * ircd/ircd_network.c: static data and event manipulation - functions for new event processing system - - * include/ircd_network.h: data structures for new event processing - system - -2001-01-03 Kevin L. Mitchell - - * ircd/whowas.c: Completely re-did the old allocation scheme by - turning it into a linked list, permitting the - NICKNAMEHISTORYLENGTH feature to be changed on the fly - - * ircd/s_debug.c (count_memory): use FEAT_NICKNAMEHISTORYLENGTH - feature instead of old #define - - * ircd/ircd_features.c: add NICKNAMEHISTORYLENGTH feature as an - integer feature with a notify callback (whowas_realloc) - - * ircd/client.c (client_set_privs): second memset was supposed to - be over antiprivs, not privs; thanks, Chris Behrens - for pointing that out... - - * include/whowas.h: new elements for an extra linked list in - struct Whowas; a notify function for feature value changes - - * include/ircd_features.h: new feature--FEAT_NICKNAMEHISTORYLENGTH - - * config/config-sh.in: NICKNAMEHISTORYLENGTH is now a feature - -2001-01-02 Kevin L. Mitchell - - * config/config-sh.in: get rid of DEFAULT_LIST_PARAMETER - compile-time option--now in features subsystem - - * ircd/motd.c (motd_init): rework motd_init() to be called as the - notify function for MPATH and RPATH features (should probably - split it up a bit, though...) - - * ircd/m_privs.c (mo_privs): if called with no parameters, return - privs of the caller, rather than an error - - * ircd/m_list.c: pull usage message into its own function; pull - list parameter processing into its own function that does not - modify the contents of the parameter; add list_set_default() to - set the default list parameter (uses the notify hook); rework - m_list() to make use of these functions; removed dead code - - * ircd/ircd_log.c (log_feature_mark): make sure to return 0, since - we have no notify handler - - * ircd/ircd_features.c: add notify callback for notification of - value changes; give mark callback an int return value to indicate - whether or not to call the notify callback; fix up feature macros - for new notify callback; add DEFAULT_LIST_PARAM feature; rewrite - string handling in feature_set() to deal with def_str being a null - pointer; wrote feature_init() to set up all defaults appropriately - - * ircd/ircd.c (main): call feature_init() instead of - feature_mark(), to avoid calling notify functions while setting up - defaults - - * ircd/client.c: updated to deal with new privileges structure - - * ircd/class.c: updated so init_class() can be called should one - of PINGFREQUENCY, CONNECTFREQUENCY, MAXIMUM_LINKS, or - DEFAULTMAXSENDQLENGTH be changed - - * include/ircd_log.h: log_feature_mark() updated to fit with new - API changes - - * include/ircd_features.h: added DEFAULT_LIST_PARAM feature and - feature_init() function (found necessary since adding the notify - stuff and notifying motd.c during start-up...before we defined - RPATH!) - - * include/client.h: move privs around to enable addition of more - bits if necessary; based on the FD_* macros - - * include/channel.h: declare list_set_default (actually located in - m_list.c *blanche*) - - * ircd/s_user.c: retrieve MAXSILES and MAXSILELENGTH (now - AVBANLEN*MAXSILES) from features subsystem - - * ircd/s_debug.c (debug_serveropts): CMDLINE_CONFIG doesn't go to - anything anymore - - * ircd/s_bsd.c: retrieve HANGONGOODLINK and HANGONRETRYDELAY from - the features subsystem - - * ircd/s_auth.c (start_auth): NODNS migrated to the features - subsystem - - * ircd/random.c: created random_seed_set() function to set seed - value, along with some stuff to make ircrandom() a little more - random--state preserving, xor of time instead of direct usage, - etc.; it's still a pseudo-random number generator, though, and - hopefully I haven't broken the randomness - - * ircd/m_version.c: FEATUREVALUES makes use of feature_int() calls - - * ircd/m_join.c: use features interface to retrieve - MAXCHANNELSPERUSER - - * ircd/ircd_features.c: add NODISP flag for super-secret features; - add a whole bunch of new features migrated over from make config - - * ircd/ircd.c: use features interface to retrieve PINGFREQUENCY, - CONNECTTIMEOUT, and TIMESEC - - * ircd/client.c (client_get_ping): use features interface to - retrieve PINGFREQUENCY - - * ircd/class.c: use features interface to retrieve PINGFREQUENCY, - CONNECTFREQUENCY, MAXIMUM_LINKS, and DEFAULTMAXSENDQLENGTH - - * ircd/chkconf.c (DEFAULTMAXSENDQLENGTH): since it's now in the - features subsystem, we have to add something explicit - - * ircd/channel.c: use features interface to retrieve - KILLCHASETIMELIMIT, MAXBANLENGTH, MAXBANS, and MAXCHANNELSPERUSER; - note that MAXBANLENGTH is now calculated dynamically from MAXBANS - and AVBANLEN - - * ircd/Makefile.in: run make depend - - * include/supported.h (FEATURESVALUES): update to reference - feature settings - - * include/random.h: add prototype for random_seed_set - - * include/ircd_features.h: add several more features - - * include/channel.h: move MAXBANS and MAXBANLENGTH into feature - subsystem - - * config/config-sh.in: feature-ized some more stuff - - * include/motd.h: some new elements in motd.h for motd.c changes - - * ircd/motd.c: motd_cache() now searches a list of already cached - MOTD files; saves us from having duplicate caches in memory if - there are two identical T-lines for two different sites... - -2001-01-02 Perry Lorier - * ircd/motd.c: don't core if the motd isn't found. Bug found by - Amarande. - -2001-01-02 Perry Lorier - * ircd/s_err.c: Added third param to 004 - the channel modes that tage params. Used by hybrid/epic. - * ircd/s_channels.c: Added fix for msg'ing a -n+m channel - thanks - to guppy for noticing, and hektik for providing the fix. - * misc others: Minor cleanups, added more protocol_violations, ripped - out more P09 stuffs, bit more protocol neg stuff. - -2000-12-19 Kevin L. Mitchell - - * ircd/m_ison.c (m_ison): Dianora says that ISON has to end with a - space (*sigh* stupid clients...) - - * ircd/s_user.c: make WALLOPS_OPER_ONLY a feature managed through - ircd_features.[ch] - - * ircd/s_err.c: get rid of GODMODE conditionals - - * ircd/s_debug.c (debug_serveropts): switch to using appropriate - calls into the features subsystem for various serveropts - characters - - * ircd/s_conf.c (find_conf_entry): get rid of USEONE conditional - - * ircd/s_bsd.c: remove GODMODE conditional; use features subsystem - to get value of VIRTUAL_HOST and CLIENT_FLOOD; remove - NOFLOWCONTROL conditional - - * ircd/s_auth.c: use features subsystem to determine value of - KILL_IPMISMATCH - - * ircd/parse.c: get rid of NOOPER and GODMODE conditionals; use - features subsystem to determine the setting of IDLE_FROM_MSG - - * ircd/numnicks.c: get rid of EXTENDED_NUMERICS conditionals - - * ircd/motd.c: get value of NODEFAULTMOTD from features subsystem; - use features subsystem to get motd file names - - * ircd/m_settime.c: get value of RELIABLE_CLOCK from features - subsystem - - * ircd/m_server.c: get rid of CRYPT_LINK_PASSWORD, since it does - us no good; use features subsystem to figure out if we need to do - HUB-type stuff; make TESTNET debugging sendto_opmask_butone's use - the Debug(()) macro instead; get value of RELIABLE_CLOCK from - features subsystem - - * ircd/m_privmsg.c: get IDLE_FROM_MSG from the features subsystem - - * ircd/m_oper.c: get CRYPT_OPER_PASSWORD from the features - subsystem - - * ircd/m_connect.c: get SERVER_PORT from the features subsystem - - * ircd/ircd_log.c (log_set_file): fix a bug that kept log files - from getting marked if they were already set to something... - - * ircd/ircd_features.c: add a flag to indicates read-only access; - add several new features that used to be compile-time selected - - * ircd/ircd.c: grab pidfile out of feature subsystem; don't check - access to motd files (what the heck?); make sure to initialize the - feature subsystem before trying to write the config file - - * ircd/dbuf.c: use feature_int() to retrieve BUFFERPOOL settings; - use feature_bool() to figure out if we're using the FERGUSON - flusher - - * ircd/Makefile.in: MPATH and RPATH are now done differently, so - remove the clause that creates empty files of that name; also ran - make depend - - * include/sys.h: CLIENT_FLOOD is now a feature; unfortunately, - there is no easy way to bounds-check it at present - - * include/querycmds.h: make sure ircd_features.h is included; use - feature_str(FEAT_DOMAINNAME) in calls to match() - - * include/ircd_features.h: many new features that used to be - compile-time selected - - * config/config-sh.in: add * to DOMAINNAME; try also using first - argument to search in /etc/resolv.conf; removed many compile-time - options that now can be configured through the features system - -2000-12-18 Kevin L. Mitchell - - * doc/api/log.txt: how to use the logging API - - * doc/api/features.txt: how to use the features API - - * doc/api/api.txt: how to write API documentation - - * include/ircd_features.h: rearranged a couple of features for - neatness purposes - - * ircd/ircd_features.c: cleaned up the macros some; rearranged - some code to all go into the switch; rearranged a couple of - features for neatness purposes - -2000-12-16 Greg Sikorski - * ircd/os_bsd.c: Added os_set_tos for BSD users. - -2000-12-16 Kevin L. Mitchell - - * ircd/ircd_features.c: Isomer almost got it right; you need to - use F_I(), since it's an integer value, not a boolean value. The - asserts in feature_int would catch you out... Also made the F_* - macros take flags - - * ircd/s_err.c: define RPL_PRIVS reply - - * ircd/parse.c: put new PRIVS command into command table - - * ircd/m_privs.c (mo_privs): message handler to report operator - privileges - - * ircd/ircd_features.c: declare new features OPER_SET and - LOCOP_SET; redo boolean testing routine to accept TRUE, YES, and - ON for boolean TRUE, and FALSE, NO, and OFF for boolean FALSE - - * ircd/client.c: simplify client_set_privs() with a table that - defines what features to test for; add new client_report_privs() - - * ircd/Makefile.in: compile new m_privs.c; run make depend - - * include/numeric.h (RPL_PRIVS): new reply numeric for displaying - an operator's privileges - - * include/msg.h: define new command: PRIVS - - * include/ircd_features.h: create new features OPER_SET and - LOCOP_SET for controlling access to /set - - * include/handlers.h (mo_privs): declare message handler for - reporting oper privileges - - * include/client.h (client_report_privs): declare function to - report what privileges an oper has - - * ircd/m_whois.c (do_whois): fix a bug that caused /whois to - report that a user is an oper if the oper doing the /whois had - PRIV_SEE_OPERS - -2000-12-17 Isomer - * ircd/listener.c: added support for TOS twiddling as a 'feature'. - -2000-12-17 Isomer - * ircd/os_linux.c: add TOS stuffs - - * ircd/listener.c: add TOS stuffs - -2000-12-16 Kevin L. Mitchell - - * ircd/whocmds.c (do_who): use HasPriv to determine whether or not - to indicate a user is an oper - - * ircd/s_user.c: clear privileges setting when deopping; don't - propagate +o unless user has PRIV_PROPAGATE privilege - - * ircd/s_debug.c (debug_serveropts): created debug_serveropts() - function and replaced how the server option string is generated - - * ircd/parse.c: remove conditional on CONFIG_OPERCMDS - - * ircd/m_whois.c (do_whois): use HasPriv to determine whether or - not to indicate the user is an operator - - * ircd/m_who.c: use HasPriv to determine whether or not a user - should be displayed in the list of opers - - * ircd/m_version.c: call debug_serveropts() to get server option - string - - * ircd/m_userip.c (userip_formatter): use HasPriv to determine - whether or not to show oper status - - * ircd/m_userhost.c (userhost_formatter): use HasPriv to determine - whether or not to show oper status - - * ircd/m_restart.c (mo_restart): replace ugly #ifdef conditional - checks with HasPriv check; remove dead code - - * ircd/m_rehash.c (mo_rehash): replace ugly #ifdef conditional - checks with HasPriv check - - * ircd/m_opmode.c (mo_opmode): use HasPriv to check permissions; - use feature_bool to check if disabled - - * ircd/m_oper.c (m_oper): set oper priviliges - - * ircd/m_mode.c (m_mode): replace #ifdef conditional with HasPriv - check - - * ircd/m_kill.c (mo_kill): use HasPriv checks to determine if we - can kill - - * ircd/m_kick.c (m_kick): replace #ifdef conditional with HasPriv - check - - * ircd/m_jupe.c (mo_jupe): rework permissions checking structure; - use feature_bool to check if disabled - - * ircd/m_join.c (m_join): remove BADCHAN conditional; replace - #ifdef conditional with a HasPriv check - - * ircd/m_gline.c (mo_gline): rework permissions checking - structure; use feature_bool to check if any part is disabled - - * ircd/m_die.c: replace ugly #ifdef conditionals with HasPriv - check; remove dead code - - * ircd/m_clearmode.c: use feature_bool() to detect if we're - disabled; use HasPriv to figure out what we're permitted to do; - only allow clearmode on moded channels - - * ircd/ircd_features.c: define various features; use HasPriv to - verify permissions to set/reset - - * ircd/gline.c (gline_add): use HasPriv instead of #ifdef - conditionals - - * ircd/client.c (client_set_privs): function to set an oper's - privileges - - * ircd/channel.c: use HasPriv calls instead of #ifdef conditionals - - * include/whocmds.h: deconditionalize several macros and - substitute appropriate calls to HasPriv() - - * include/s_debug.h: get rid of global serveropts[]; define new - function debug_serveropts() to build that string on the fly - - * include/ircd_features.h: define some features - - * include/client.h: add privs member to struct Connection; define - various priviledges - - * include/channel.h: no longer using IsOperOnLocalChannel; remove - conditional of MAGIC_OPER_OVERRIDE on OPER_WALK_THROUGH_LMODES - - * doc/Configure.help: remove help information for deprecated - options - - * config/config-sh.in: remove certain deprecated options having to - do with what opers can and cannot do--first stage in moving - compile-time constants into the .conf - -2000-12-16 Isomer - * ircd/parse.c: detect if the prefix is missing and try and recover - instead of coring. - -2000-12-15 Kevin L. Mitchell - - * ircd/ircd_log.c: found and fixed some bugs in the debug logging - code that would sometimes result in the log file not being - reopened--which meant that a user could connect and get the - logging output--oops - - * ircd/Makefile.in: run make depend... - - * ircd/s_stats.c: get rid of report_feature_list() - - * ircd/s_err.c: add the 'bad value' error message, shift error - messages over somewhat - - * ircd/s_debug.c (debug_init): call log_debug_init with the - use_tty flag - - * ircd/s_conf.c (read_configuration_file): unmark features before - reading the config file, then reset unmarked features after - reading the config file - - * ircd/m_stats.c: use feature_report() instead of - report_feature_list() - - * ircd/ircd_log.c: fix log_debug_file (bogus assertion); add - special 'mark' flags and use them; add the stuff needed by the - features API - - * ircd/ircd_features.c: rework the features API and add gobs of - comments to try to explain what some of these complex functions - are actually doing - - * include/s_stats.h: get rid of report_feature_list(); use - feature_report() instead - - * include/numeric.h: added a new error message and shifted old - values over some--this is, after all, an alpha - - * include/ircd_log.h: log_debug_init now takes an integer to tell - it if it should be using the tty; added a couple of functions - required by the features API - - * include/ircd_features.h: add an enum and some more functions to - flesh out the feature API--it should now be possible to put all - those compile-time constants in the config file! - - * ircd/send.c: got the direction of the assert incorrect... - - * ircd/send.c: implement the efficiency of flush_connections by - creating a linked list of struct Connection's with queued data; - also get rid of flush_sendq_except and make sure to yank - connections out of the list when their sendQs become empty (notice - the assertion in flush_connections!) - - * ircd/s_bsd.c (close_connection): must yank the Connection out of - the sendq list - - * ircd/list.c (dealloc_connection): must yank the Connection out - of the sendq list - - * ircd/dbuf.c (dbuf_put): call flush_connections instead of the - deprecated flush_sendq_except - - * ircd/client.c: define a couple new helper functions for sendq - threading--this will make the flush_connections function in send.c - considerably more efficient by creating a linked list of - Connections that have queued data to send - - * include/send.h: remove flush_sendq_except, as it's not used - anymore - - * include/client.h: declare a couple new helper functions for the - sendq threading system - -2000-12-14 Kevin L. Mitchell - - * ircd/m_ison.c (m_ison): Apply Diane Bruce's patch to make ISON - parse all arguments - - * ircd/s_debug.c (count_memory): modify to report for clients and - connections, not local clients and remote clients - - * ircd/list.c: fiddle with the client-fiddling functions to take - into account the divorce of struct Connection from struct Client - - * ircd/ircd.c: define a struct Connection for me, initialize it, - and link it into the right place (ewww, globals!) - - * include/client.h: remove CLIENT_{LOCAL,REMOTE}_SIZE; split - struct Client into struct Client and struct Connection; redefine - local-portion accessor macros to go through struct Client to the - struct Connection; define struct Connection accessor macros - -2000-12-13 Kevin L. Mitchell - - * ircd/whowas.c: missed a couple of accesses to a struct Client - - * ircd/uping.c: missed a couple of accesses to a struct Client - - * ircd/send.c: missed a couple of accesses to a struct Client - - * ircd/s_user.c: missed a couple of accesses to a struct Client - - * ircd/s_misc.c: missed a couple of accesses to a struct Client - - * ircd/s_conf.c: missed a couple of accesses to a struct Client - - * ircd/s_bsd.c: missed a couple of accesses to a struct Client - - * ircd/s_auth.c: missed a couple of accesses to a struct Client - - * ircd/res.c: missed a couple of accesses to a struct Client - - * ircd/parse.c: missed a couple of accesses to a struct Client - - * ircd/m_whois.c: use new accessor macros for struct Client - - * ircd/m_who.c: use new accessor macros for struct Client - - * ircd/m_wallchops.c: use new accessor macros for struct Client - - * ircd/m_version.c: use new accessor macros for struct Client - - * ircd/m_userip.c: use new accessor macros for struct Client - - * ircd/m_userhost.c: use new accessor macros for struct Client - - * ircd/m_user.c: use new accessor macros for struct Client - - * ircd/m_uping.c: use new accessor macros for struct Client - - * ircd/m_trace.c: use new accessor macros for struct Client - - * ircd/m_topic.c: use new accessor macros for struct Client - - * ircd/m_time.c: use new accessor macros for struct Client - - * ircd/m_stats.c: use new accessor macros for struct Client - - * ircd/m_squit.c: use new accessor macros for struct Client - - * ircd/m_silence.c: use new accessor macros for struct Client - - * ircd/m_server.c: use new accessor macros for struct Client; - remove dead code - - * ircd/m_rpong.c: use new accessor macros for struct Client - - * ircd/m_rping.c: use new accessor macros for struct Client - - * ircd/m_quit.c: use new accessor macros for struct Client - - * ircd/m_privmsg.c: use new accessor macros for struct Client - - * ircd/m_pong.c: use new accessor macros for struct Client; remove - dead code - - * ircd/m_ping.c: use new accessor macros for struct Client - - * ircd/m_pass.c: use new accessor macros for struct Client - - * ircd/m_part.c: use new accessor macros for struct Client - - * ircd/m_oper.c: use new accessor macros for struct Client - - * ircd/m_notice.c: use new accessor macros for struct Client - - * ircd/m_nick.c: use new accessor macros for struct Client - - * ircd/m_names.c: use new accessor macros for struct Client - - * ircd/m_mode.c: use new accessor macros for struct Client - - * ircd/m_map.c: use new accessor macros for struct Client - - * ircd/m_list.c: use new accessor macros for struct Client - - * ircd/m_links.c: use new accessor macros for struct Client; - remove some dead code - - * ircd/m_kill.c: use new accessor macros for struct Client; remove - some dead code - - * ircd/m_kick.c: use new accessor macros for struct Client - - * ircd/m_join.c: use new accessor macros for struct Client; remove - some dead code - - * ircd/m_ison.c: use new accessor macros for struct Client - - * ircd/m_invite.c: use new accessor macros for struct Client - - * ircd/m_info.c: use new accessor macros for struct Client - - * ircd/m_gline.c: use new accessor macros for struct Client - - * ircd/m_error.c: use new accessor macros for struct Client - - * ircd/m_create.c: use new accessor macros for struct Client - - * ircd/m_connect.c: use new accessor macros for struct Client; - removed some dead code - - * ircd/m_burst.c: use new accessor macros for struct Client - - * ircd/m_away.c: use new accessor macros for struct Client - - * ircd/m_admin.c: use new accessor macros for struct Client - - * ircd/hash.c: missed a couple of accesses to a struct Client - - * ircd/gline.c: missed a couple of accesses to a struct Client - - * ircd/crule.c: missed a couple of accesses to a struct Client - - * ircd/class.c: missed an access to a struct Client - - * ircd/channel.c: missed a couple of accesses to a struct Client - - * ircd/IPcheck.c: missed an access to a struct Client - - * include/querycmds.h: fix a couple of stats macros to use - structure accessor macros - - * include/client.h: change structure member names to highlight any - places in the code I've missed - -2000-12-12 Kevin L. Mitchell - - * ircd/whowas.c: use new struct Client accessor macros - - * ircd/whocmds.c: use new struct Client accessor macros - - * ircd/send.c: use new struct Client accessor macros - - * ircd/s_user.c: use new struct Client accessor macros; removed - some dead code - - * ircd/s_serv.c: use new struct Client accessor macros; removed - some dead code - - * ircd/s_numeric.c: use new struct Client accessor macros - - * ircd/s_misc.c: use new struct Client accessor macros - - * ircd/s_debug.c: use new struct Client accessor macros - - * ircd/s_conf.c: use new struct Client accessor macros - - * ircd/s_bsd.c: use new struct Client accessor macros - - * ircd/s_auth.c: use new struct Client accessor macros - - * ircd/parse.c: use new struct Client accessor macros - - * ircd/packet.c: use new struct Client accessor macros - - * ircd/numnicks.c: use new struct Client accessor macros - - * ircd/motd.c: use new struct Client accessor macros - - * ircd/listener.c: use new struct Client accessor macros - - * ircd/list.c: use new struct Client accessor macros - - * ircd/jupe.c: use new struct Client accessor macros - - * ircd/ircd_snprintf.c: use new struct Client accessor macros - - * ircd/ircd_reply.c: use new struct Client accessor macros - - * ircd/ircd_relay.c: use new struct Client accessor macros - - * ircd/ircd.c: use new struct Client accessor macros - - * ircd/gline.c: catch some instances of me. I missed - previously - - * ircd/client.c: use cli_ instead of con_ - - * ircd/class.c: use cli_ instead of con_ - - * ircd/channel.c: use cli_ instead of con_ - - * ircd/IPcheck.c: use cli_ instead of con_; catch some instances - of me. I missed previously - - * include/client.h: use cli_ instead of con_...seemed like a good - idea at the time *shrug* - -2000-12-11 Kevin L. Mitchell - - * ircd/hash.c: use struct Client accessor macros - - * ircd/gline.c: use struct Client accessor macros - - * ircd/crule.c: use struct Client accessor macros - - * ircd/client.c: use struct Client accessor macros; remove some - dead code - - * ircd/class.c: use struct Client accessor macros - - * ircd/channel.c: use struct Client accessor macros; remove some - dead code - - * ircd/IPcheck.c: use struct Client accessor macros - - * include/numnicks.h: use struct Client accessor macros - - * include/client.h: first step to divorcing struct Client and - struct Connection--define accessor macros and use them - - * ircd/gline.c: When Uworld removed Uworld-set G-lines, only the - uplink would remove them. This is because the removal protocol - message wasn't being sent to the uplinks. This is fixed by fixing - propagate_gline() to send the proper number of arguments depending - on whether or not we're adding or deleting the Uworld gline, and - by having gline_deactivate() make sure to turn off the active bit - and call propagate_gline() if it's a Uworld gline - -2000-12-10 Kevin L. Mitchell - - * ircd/os_generic.c: make sure IOV_MAX gets defined, just in case - - * ircd/os_bsd.c: apparently BSD doesn't have IOV_MAX defined - anywhere intelligent... - -2000-12-09 Kevin L. Mitchell - - * ircd/send.c (send_queued): call deliver_it with appropriate - arguments - - * ircd/s_serv.c: reorder a couple of headers--cosmetic - - * ircd/s_bsd.c (deliver_it): make deliver_it work with a struct - MsgQ - - * ircd/os_solaris.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_linux.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_generic.c (os_sendv_nonb): function for calling writev - with appropriate iovec - - * ircd/os_bsd.c (os_sendv_nonb): function for calling writev with - appropriate iovec - - * ircd/msgq.c (msgq_mapiov): add a len_p argument for totalling up - exactly how much we're trying to write out to the fd - - * include/s_bsd.h: make deliver_it take a struct MsgQ - - * include/msgq.h: add a len_p argument to msgq_mapiov to help - detect short writes that indicate possible socket blocking - - * include/ircd_osdep.h: declare os_sendv_nonb() - - * ircd/channel.c (modebuf_mode): don't add empty modes... - -2000-12-08 Kevin L. Mitchell - - * include/send.h: add prio argument to send_buffer to select - between normal and priority queues - - * ircd/s_user.c (send_user_info): add prio argument to send_buffer - call - - * ircd/m_ison.c (m_ison): add prio argument to send_buffer call - - * ircd/ircd_reply.c (send_reply): add prio argument to send_buffer - call - - * ircd/channel.c (send_channel_modes): add prio argument to - send_buffer call - - * ircd/send.c (send_buffer): add a prio argument to select the - priority queue; update send.c functions to use it - - * ircd/msgq.c (msgq_add): remove msgq_prio; fold msgq_link and - msgq_add; add a prio argument to msgq_add to select the priority - queue - - * include/msgq.h: remove msgq_prio; add a prio argument to - msgq_add - - * ircd/send.c: remove sendbuf; remove GODMODE code; switch to - using msgq functions instead of dbuf functions; remove old, dead - sendto_* functions; redo send_buffer to take a struct MsgBuf; - rework sendcmdto_* functions to make use of the new struct MsgBuf - - * ircd/s_user.c: remove hunt_server; restructure send_user_info to - make appropriate use of struct MsgBuf - - * ircd/s_debug.c (count_memory): count memory used by the MsgQ - system and report it - - * ircd/s_conf.c (read_configuration_file): use - sendto_opmask_butone instead of the now dead sendto_op_mask - - * ircd/s_bsd.c: switch to using appropriate MsgQLength and other - calls on sendQ - - * ircd/parse.c (parse_server): get rid of a piece of GODMODE code - - * ircd/msgq.c: add msgq_append and msgq_bufleft; fix a bug in - msgq_clean - - * ircd/m_version.c: fix spelling in comments marking dead code - - * ircd/m_userip.c (userip_formatter): restructure to make use of - struct MsgBuf - - * ircd/m_userhost.c (userhost_formatter): restructure to make use - of struct MsgBuf - - * ircd/m_stats.c: use MsgQLength on a sendQ - - * ircd/m_settime.c: use MsgQLength instead of DBufLength on a - sendQ; mark a piece of dead code - - * ircd/m_names.c: use send_reply instead of sendto_one - - * ircd/m_mode.c: use new mode; remove old dead code - - * ircd/m_ison.c (m_ison): restructure to make use of struct MsgBuf - - * ircd/m_burst.c: use BUFSIZE instead of IRC_BUFSIZE; remove old - dead code - - * ircd/listener.c (accept_connection): use sendto_opmask_butone - instead of sendto_op_mask - - * ircd/list.c (free_client): use MsgQClear to clear sendQ - - * ircd/ircd_reply.c: remove send_error_to_client; restructure - send_reply to make use of struct MsgBuf - - * ircd/dbuf.c (dbuf_put): remove argument to flush_sendq_except, - since its no longer used (at least currently) - - * ircd/channel.c: restructure send_channel_modes to make use of - struct MsgBuf; remove set_mode, add_token_to_sendbuf, cancel_mode, - and send_hack_notice; use BUFSIZE instead of IRC_BUFSIZE - - * ircd/Makefile.in: add msgq.c to list of sources; run make depend - - * ircd/IPcheck.c: use sendcmdto_one instead of sendto_one - - * include/send.h: send_buffer now takes a struct MsgBuf * instead - of a char *; flush_sendq_except now takes no arguments, as sendq - flushing currently only happens in dbuf.h and sendQ is a struct - MsgQ; remove prototypes for a lot of old sendto_* functions that - aren't used anymore; remove sendbuf and IRC_BUFSIZE--the former is - no longer needed, and the latter is identical to BUFSIZE in - ircd_defs.h - - * include/s_user.h: make InfoFormatter take a struct MsgBuf* - instead of a char *; also make it return void, instead of char * - - * include/msgq.h: add msgq_append and msgq_bufleft functions - - * include/client.h: use a struct MsgQ instead of a struct DBuf for - sendq - - * doc/Configure.help: Remove help for compile-time options that - have gone away - - * config/config-sh.in: remove CONFIG_NEWMODE - - * ircd/m_server.c (mr_server): don't send server IPs in any server - notices - - * ircd/msgq.c (msgq_vmake): add \r\n to messages - -2000-12-07 Kevin L. Mitchell - - * include/msgq.h: declare the MsgQ API - - * ircd/msgq.c: implementation of new MsgQ system - -2000-12-06 Kevin L. Mitchell - - * ircd/ircd_features.c: #include was supposed to be for - ircd_features.h, not features.h--missed when I had to do a - rename because of namespace collision - -2000-12-05 Greg Sikorski - * ircd/m_topic.c: Added missing braces that caused all remote - topics to be ignored. - -2000-12-04 Kevin L. Mitchell - - * ircd/m_create.c: I'm tired of the exit_client warning :) - (ms_create): discovered that exit_client() was being called with - too few arguments - - * ircd/s_misc.c (exit_client): remove all dependance on - FNAME_USERLOG, since that's now gone; log only to LS_USER - - * ircd/s_debug.c: USE_SYSLOG no longer means anything - - * ircd/m_oper.c (m_oper): no longer log to LS_OPERLOG--we already - log to LS_OPER - - * ircd/m_kill.c: no longer conditionalize on SYSLOG_KILL - - * ircd/ircd_log.c: remove LS_OPERLOG, LS_USERLOG - - * include/ircd_log.h: remove LS_OPERLOG, LS_USERLOG--they serve - the same purpose as LS_USER and LS_OPER - - * config/config-sh.in: remove no longer relevant log config - variables - - * ircd/uping.c (uping_init): use log_write instead of ircd_log - - * ircd/s_misc.c (exit_client): use log_write instead of ircd_log - - * ircd/s_conf.c: use log_write instead of ircd_log - - * ircd/s_bsd.c (report_error): use log_write instead of ircd_log - - * ircd/s_auth.c (timeout_auth_queries): use log_write instead of - ircd_log - - * ircd/res.c (send_res_msg): use log_write instead of ircd_log - - * ircd/m_who.c: use log_write instead of write_log; no longer - conditionalize on WPATH; mark dead ircd_log calls - - * ircd/m_uping.c: mark dead ircd_log call - - * ircd/m_server.c (mr_server): use log_write instead of ircd_log - - * ircd/m_restart.c: use log_write instead of ircd_log; mark dead - ircd_log calls - - * ircd/m_rehash.c (mo_rehash): use log_write instead of ircd_log - - * ircd/m_oper.c: use log_write instead of ircd_log; no longer - conditionalize on FNAME_OPERLOG; mark dead ircd_log calls - - * ircd/m_kill.c: mark dead ircd_log calls - - * ircd/m_connect.c: use log_write instead of ircd_log; mark dead - ircd_log - - * ircd/m_clearmode.c: use log_write instead of write_log; no - longer conditionalize on OPATH - - * ircd/jupe.c: use log_write instead of write_log; no longer - conditionalize on JPATH - - * ircd/ircd_log.c: add USER subsystem; remove ircd_log() compat - function; fix a couple of bugs - - * ircd/ircd_alloc.c: fixed a comment - - * ircd/ircd.c: use log_write instead of ircd_log; fold server - notice generation in a couple of cases - - * ircd/gline.c: use log_write instead of write_log; no longer - conditionalize on GPATH - - * ircd/channel.c (modebuf_flush_int): use log_write instead of - write_log; no longer conditionalize on OPATH - - * ircd/Makefile.in: run make depend, since dependencies have - changed - - * doc/example.conf: add system USER to documentation - - * include/ircd_log.h: add system USER; remove old ircd_log() - declarations - -2000-12-04 Isomer - * ircd/m_names.c: Add NAMES_EON to do_names to say add a - 'end_of_names' reply when done. - * ircd/m_join.c: use NAMES_EON as mentioned above - -2000-12-01 net - - * ircd/motd.c: add a freelist for struct Motds - -2000-11-30 Kevin L. Mitchell - - * ircd/s_stats.c (report_feature_list): report features--only - local opers can see logging configuration, since it doesn't really - mean anything to users - - * ircd/s_err.c: add reply messages for new feature subsystem - - * ircd/s_conf.c: add F lines to .conf - - * ircd/parse.c: add the message descriptions for /set, /reset, and - /get - - * ircd/m_stats.c: add /stats f - - * ircd/m_set.c (mo_set): implement /set - - * ircd/m_reset.c (mo_reset): implement /reset - - * ircd/m_rehash.c: /rehash m now flushes MOTD cache, and /rehash l - reopens log files (for log file rotation) - - * ircd/m_get.c (mo_get): implement /get - - * ircd/ircd_log.c: use int instead of void return value; add - log_report_features() and log_canon(); fix a function that - disappears if DEBUGMODE not #define'd - - * ircd/ircd_features.c: functions to manipulate feature settings - either from the config file or with the new /set, /reset, and /get - commands - - * ircd/Makefile.in: add new .c files, run make depend - - * include/s_stats.h: declare report_feature_list() (/stats f - handler) - - * include/numeric.h: add RPL_STATSFLINE, RPL_FEATURE, - ERR_NOFEATURE, ERR_BADLOGTYPE, ERR_BADLOGSYS, and ERR_BADLOGVALUE - reply numerics - - * include/msg.h: add defines for SET, RESET, and GET - - * include/ircd_log.h: add a function to canonicalize subsystem - names; change some void return values to int - - * include/ircd_features.h: new features subsystem handles all the - manipulation of special features, like log files - - * include/handlers.h: declare new mo_{s,res,g}et message handlers - for fiddling with features run-time - - * include/client.h (SNO_DEFAULT): don't set SNO_DEBUG by default; - seemed like a good idea at the time... - - * doc/example.conf: document new F lines - -2000-11-29 Kevin L. Mitchell - - * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of - new logging functions, which have special support for the debug - log; added loop detection to vdebug(), so that I can - sendto_opmask_butone() from log_vwrite() without incurring another - call to vdebug() - - * ircd/s_conf.c (rehash): call log_reopen() from rehash routine; - this allows log file rotations - - * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill() - - * ircd/ircd_log.c: much more work fleshing out the interface; - removed old interface; included backwards-compat ircd_log() - function that logs to subsystem LS_OLDLOG - - * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen() - functions - - * include/ircd_log.h: include stdarg.h for va_list; move ordering - warning to top of file; fill out LogSys enum; declare new - log_debug_init(), log_vwrite(), log_write_kill(), and - log_[sg]et_*() functions; add flags argument to log_write(); - defined flags to inhibit various logging actions - - * include/client.h: added support for new SNO_DEBUG, enabled only - if DEBUGMODE is defined - -2000-11-28 Kevin L. Mitchell - - * ircd/ircd_log.c: make sure the various LOG_* constants are - defined (probably not needed, since #include isn't - conditional); various static data needed for the new logging - functions; definitions of new logging functions - - * include/ircd_log.h: new LogSys enum, declarations for part of - new logging API - - * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally, - which was of course stupid; switched to using switch/case in - initialization in motd_create(); zero the MotdList.other pointer - from motd_clear() - - * ircd/ircd.c (main): motd_init() has to come before init_conf(), - or we overwrite init_conf()'s hard work with respect to T-lines - -2000-11-27 Kevin L. Mitchell - - * ircd/s_stats.c: comment out report_motd_list and include a - reference to motd_report() - - * ircd/s_conf.c: rip out the old MOTD manipulation functions; call - motd_add() from the conf parser; call motd_clear() from the rehash - routine; remove the no longer needed memory clearing and reloading - stuff from the rehash service routine - - * ircd/motd.c: loads new API, including static internal functions - to do allocation/deallocation, etc. - - * ircd/m_stats.c: use new motd_report() instead of - report_motd_list() - - * ircd/m_motd.c: use new syntax for motd_send() - - * ircd/ircd.c: use new motd_init() function - - * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in - Makefile.(in); also ran make depend - - * include/motd.h: don't need config.h, but now do need time.h; - define new structures and constants; redefine old API and define - new functions - -2000-11-22 Kevin L. Mitchell - - * ircd/s_user.c (register_user): use motd_signon() instead of - calling m_motd; much cleaner this way - - * ircd/motd.c: write the new motd_* stuff to make MOTD handling - less of a crock - - * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_* - functions - - * include/motd.h: define new MOTD API stuff - -2000-11-20 Kevin L. Mitchell - - * ircd/ircd_reply.c (protocol_violation): rewrite - protocol_violation so it'll actually work - - oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get - the client's real name in there. - - * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr) - resulted in core dumps if NODEFAULTMOTD is defined, because m_motd - gets called from register_user with a NULL sptr. This is probably - a design problem, but this bandaid will do for now... - -2000-11-19 Isomer - * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us - to problems in the server<->server protocol. - - * ircd/m_connect.c: allow remote connects with a port of '0' - meaning to use the port in the config file. - - * ircd/m_create.c: Enable hacking protection, lets see how far we - get. - - * ircd/m_error.c: The RFC says never accept ERROR from unreg'd - clients, so we don't any more. - - * ircd/m_kill.c: The kill path is now made up of numnicks of servers, - and the user@host is displayed of the victim. - - * ircd/m_map.c: reloaded 'dump_map'. - - * ircd/m_trace.c: allow per class T: - - * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net. - -2000-11-17 Isomer - - * ircd/m_topic.c: Fixed bug where we'd only send to clients topics - that were the *same* instead of different. Oh the embarrasment! - - * ircd/IPcheck.c: Merged net's fix. - -2000-11-02 Kevin L. Mitchell - - * ircd/m_whois.c: remove compiler warning by adding a newline to - end of file - - * ircd/m_names.c: moved the flags up to s_user.h - - * ircd/m_join.c: call do_names instead of m_names; restructure - ms_join to never transmute a JOIN into a CREATE, but use the TS in - the JOIN (if present) to timestamp the channel - - * ircd/channel.c: send JOINs individually, instead of grouping - them, so that we can send the channel's creation time - - * include/s_user.h: declare do_names() - -2000-10-30 Isomer - * ircd/m_oper.c: Fixed warning - -2000-10-30 Isomer - * ircd/m_oper.c: Fixed over agressive cut and no paste - -2000-10-30 Isomer - - * ircd/m_topic.c: Restructured, fixed bug where topics on local - channels are propergated (I forget who pointed this out to me, but - thanks anyway). Also to save bandwidth don't send the topic to - users if the topic is already the same on the server (but still - propergate to other servers). X/W's "autotopic" feature must - chew a lot of bandwidth, hopefully this will help reduce this. - - * doc/rfc1459.rfc: Updated documentation on /topic. - - * ircd/listener.c: snotice warnings about failed accept()'s - potentially warning admins that they're running out of fd's. - - * ircd/stats.c, ircd/class.c: Removed /stats v, added number of - people in a class in /stats y - - * ircd/m_create.c: Checks for timewarp hacking and squit's - evil servers. (currently disabled) - - -2000-10-30 net - - * ircd/gline.c: Fixed various bugs Isomer left behind. - -2000-10-26 Kevin L. Mitchell - - * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed - channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME - -2000-10-24 Kevin L. Mitchell - - * ircd/channel.c: ok, now last mode rules; mode +ps will always - result in +s (and won't send a mode if the channel is already +s); - mode +sp will always result in +p; -n+n on a +n channel results in - no mode change; -n+n on a -n channel results in a +n mode change; - etc. - -2000-10-23 Kevin L. Mitchell - - * ircd/channel.c: add "add" and "del" elements to ParseState to - avoid not-too-pretty -p+s when +s is sufficient; fix a bug in - mode_parse_limit that caused it to clear all channel modes - prematurely; restructure mode_parse_mode to avoid calling - modebuf_mode too early (ties in with first mentioned change); - better logic for +p/+s mutual exclusivity; initialize "add" and - "del" elements in mode_parse; send simple modes down to - modebuf_mode after the loop in mode_parse - -2000-09-28 Greg Sikorski - * ircd/m_names.c: Fixed a non-lethal logic error that - triggers an assert() in find_member_link while debugging. - (Spotted by Maniac-). -2000-09-19 Thomas Helvey - * ircd/s_conf.c: move K:lines to their own list and data - structures, add supporting code. - * ircd/m_stats.c: cleanup stats processing a bit move - kline listing code to a new function, haven't figured - out where it goes yet tho' - * ircd/s_stats.c: added K:line bulk lister - * include/s_conf.h: added new DenyConf struct - * *[ch]: fixeup code that depended on changes - -2000-09-17 Thomas Helvey - * ircd/class.c: encapsulate class list - * include/class.h: clean up classes - * * fixup code that depended on changes - -2000-09-17 Thomas Helvey - * ircd/s_conf.c: add me to local conf - * include/s_conf.h: move CONF_ME macro to chkconf.c - * ircd/s_bsd.c: cleanup initialization, allow virtual host - to be changed by rehash - -2000-09-17 Thomas Helvey - * include/class.h: add missing prototype - * ircd/class.c: make argument to get_conf_class const - -2000-09-17 Thomas Helvey - * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup - merge conflicts. - * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup - merge conflicts - -2000-09-16 Thomas Helvey - * ircd/s_conf.c: add code for server struct - * ircd/client.c: copy of class.c sort of, new file for client - specific operations, will move things here as appropriate, - currently only one function is exported from here. - * ircd/*.c: general logic cleanups, convert negatives to - positives in places. - -2000-09-16 Thomas Helvey - * ircd/s_conf.c: add code for new crule data structs, strip quotes - * ircd/crule.c: clean up scary casting a bit, type safety stuff - * include/s_conf.h: add CRuleConf struct and support, remove - unused constants - * include/crule.h: type safety cleanups - * ircd/*.c: fixup code that depended on stuff I changed - -2000-09-15 Thomas Helvey - * ircd/s_conf.c: start adding code for new conf data structs, changed - listeners, admin line, motd lines, class lines. Move validate_hostent - to resolver. General mayhem. - * include/s_conf.h: new data structs and accessors - * ircd/res.c: move validate_hostent here, rewrite, use regular - expression for validation. - * doc/example.conf: update docs for port - -2000-09-14 Thomas Helvey - * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break - up conf_init into managable chunks. - * ircd/listener.c (set_listener_mask): fix logic bug core dump. - * include/s_conf.h: add new data struct for local info (unwinding the mess). - -2000-09-13 Thomas Helvey - * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS - local clients. - * ircd/list.c: put SLinks in free lists - * ircd/channel.c: put Memberships in free lists - * ircd/ircd.c: rearrange initializations a bit in main - Note: With these changes, ircd NEVER frees Clients, SLinks or - Memberships. It will also rarely need to allocate new - ones during net bursts and other disruptions. This should - cut down on memory fragmentation a bit as well. - -2000-08-30 Kevin L. Mitchell - - * ircd/m_names.c (do_names): pull-up from do_names fix in - u2.10.10.pl11 - -2000-07-15 Perry Lorier - * various: IP only k:'s and G:'s now do bit tests instead of two(!) - match()'s. Major Major cpu savings. Also speed up the - other case slightly. As a side effect you can now - k/Gline *@10.0.0.0/8. I'll do bans tomorrow, it's nearing - 3am. - -2000-07-15 Perry Lorier - * various: Fixed warnings after compiling on an alpha. -2000-07-09 Perry Lorier - * doc/ircd.8: Applied grammitical changes by Liandrin, applied - changes suggested by various other people. - * ircd/IPcheck.c: More bug fixes. Current problem appears to be - that it gets a corrupt entry somehow. -2000-07-09 Greg Sikorski - * ircd/m_oper.c: Clean up compiler warning. - -2000-07-08 Perry Lorier - * doc/ircd.8: Updated the documentation, it was slightly out of date - being updated around 1989. - * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed. - fixed a few minor glitches. - * doc/rfc1459.unet: Updated. - * ircd/IPcheck.c: Fixed more bugs. - * ircd/s_bsd.c: We now keep track of servers we've conected. - -2000-07-02 Perry Lorier - * ircd/s_misc.c: Fixed remote IPcheck bug. Ok, I'm a moron, so sue - me. Thanks to Hektik, thanks thanks thanks thanks - thanks thanks thanks thanks thank thanks thank thanks - -2000-07-01 Perry Lorier - * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s. - * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings. - -2000-06-22 Perry Lorier - * ircd/IPcheck.c: Large chunks redone. - * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported, - single AND double digit limits are allowed now. - * misc other: Changes to IPcheck. - -2000-06-30 Perry Lorier - * ircd/ircd.c: Fix command line parameter bugs. - -2000-06-30 Perry Lorier - * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY - * ircd/m_nick.c: Tidied things up. - -2000-06-12 Joseph Bongaarts - * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v - -2000-05-29 Perry Lorier - * ircd/m_stats.c: add /stats v to do only the last part of the /trace - * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do - you think it'll get bored and fix itself? - -2000-06-09 Greg Sikorski - - * ircd/m_names.c: Clean up compiler warnings. - -2000-06-09 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_client): don't send warning if - there's not enough arguments for a +/-o/v; means the habit of - doing "/mode #channel +oooooo bob" doesn't result in a bunch of - error messages - -2000-06-04 Greg Sikorski - - * ircd/m_names.c: Re-factor code to remove unneccessary - GlobalChannelList iteration every time someone joins a channel. - -2000-06-02 Kevin L. Mitchell - - * ircd/s_user.c: add struct Gline * argument to register_user; - look up global glines and repropagate them if necessary; send - acknowledgement of gline to remote servers when registering users - - * ircd/s_serv.c (server_estab): don't send acknowledgement of - local glines to remote servers; do send gline acknowledgement of - bursted users - - * ircd/m_user.c (m_user): pass new struct Gline * argument to - register_user - - * ircd/m_pong.c: pass new struct Gline * argument to register_user - - * ircd/m_nick.c (ms_nick): document protocol change - - * ircd/gline.c: support GLINE_LASTMOD - - * include/s_user.h: add struct Gline * argument to register_user - - * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods - - * ircd/s_conf.c (find_kill): add unsigned int argument to - gline_lookup() - - * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global - glines; add unsigned int argument to gline_lookup() - - * include/gline.h: add GLINE_GLOBAL flag; add unsigned int - argument to gline_lookup() - - * ircd/m_server.c: Resend jupe only when there is no % - parameter, or when it falls out of bounds: see comments prior to - call to jupe_resend(); call server_estab with struct Jupe - parameter, so that we place the appropriate % in the - appropriate place. - - * ircd/s_serv.c (server_estab): send % for introduced - server, as well as for servers when we're sending the BURST - - * include/s_serv.h: add a struct Jupe * to the arguments for - server_estab() so that we can send the appropriate lastmod - parameter - - * ircd/m_gline.c (ms_gline): actually, this should be the - slightest bit more efficient... - - * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest - bit more efficient... - - * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends - during netburst - - * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during - netburst - - * ircd/channel.c (joinbuf_join): really remove user from local - channels - -2000-05-29 Perry Lorier - * ircd/m_names.c: Removed redundant space. - * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line. - -2000-05-18 Kevin L. Mitchell - - * ircd/m_burst.c (ms_burst): er...that should have been a ",", not - a " " - -2000-05-04 Kevin L. Mitchell - - * ircd/channel.c: replace bogus assertions with returns, which is - logically correct; only wipe out limit/key if they were originally - set in the first place; remove user from channel when doing a - PARTALL; only send MODE +o for user CREATEing channel if user is - not MyUser--CREATE will only be used if the channel did not - originally exist, therefore we can assume no one local is on the - channel anyway, and we don't exactly need for the user to see an - explicit +o for themselves - - * doc/readme.gline: describe the syntax of the GLINE command - - * doc/readme.jupe: update to reflect a couple of changes to JUPE - - * ircd/gline.c: don't propagate local changes - - * ircd/jupe.c: don't propagate local changes - - * ircd/m_gline.c (mo_gline): force local flag when deactivating - glines with 0 lastmod - - * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time - are now removed instead of being deactivated - - * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE * - -" be accepted - - * ircd/channel.c (send_channel_modes): deal with one of the last - vestiges of sendbuf - - * ircd/m_burst.c (ms_burst): debugged ban processing; removed - debugging hooks - - * ircd/channel.c (modebuf_extract): remove debugging - sendto_opmask_butone calls - -2000-05-03 Kevin L. Mitchell - - * ircd/channel.c: support a couple of new flags to support using - mode_parse; fix some bugs with 0 struct ModeBuf *; implementation - of modebuf_extract to extract added flags for use by ms_burst - - * include/channel.h: a couple of new flags to support using - mode_parse inside ms_burst - - * ircd/m_burst.c (ms_burst): brand new implementation of BURST - - * ircd/m_endburst.c: add loop to processing of end_of_burst to - free empty channels after the BURST is over. - - * ircd/m_server.c: convert to use new send.c functions--I wanted - to rewrite it from scratch, but the logic's pretty complex; I may - still rewrite it, though... - -2000-05-02 Thomas Helvey - - * ircd/ircd.c: fix broken header include ordering - -2000-05-02 Thomas Helvey - - * ircd/IPcheck.c: cleanups for ZenShadow's cleanups - review emailed privately - - * include/IPcheck.h: removed unneeded include - -2000-05-02 Kevin L. Mitchell - - * ircd/s_user.c (hunt_server): throw in a comment so I know what - the sendto_one is for - - * include/querycmds.h (Count_unknownbecomesclient): convert to - sendto_opmask_butone - - * ircd/send.c: start removing dead code - - * include/send.h: start removing dead code - - * ircd/m_rping.c: convert to sendcmdto_one / send_reply / - hunt_server_cmd - - * ircd/m_rpong.c: convert to sendcmdto_one / send_reply - -2000-05-01 Kevin L. Mitchell - - * ircd/m_stats.c: convert to sendcmdto_one / send_reply - - * ircd/m_kick.c: Completely reimplement m_kick - - * ircd/channel.c: send_user_joins removed; it was dead code, - anyway... - -2000-05-01 Perry Lorier - * ircd/m_invite.c: Fix for the rest of m_invite.c, and again. - * ircd/channels.c: My fix for the part problem. Untested, probably - won't work. Can't be much worse than the current problem. - it'll either work or core, take your pick. - - -2000-04-30 Perry Lorier - * config/config-sh.in: Fix for CONNEXIT - * ircd/s_{user,misc}.c: Fix for CONNEXIT - * ircd/m_invite.c: Fix for incorrectly numnickified invite. - (Kev: Want to come talk to me about this?) - -2000-04-30 Steven M. Doyle - * ircd/ircd.c - - general cleanups and readability enhancements - - rewrite of setuid/chroot code. - - server will no longer run as root - - -DPROFIL compile option removed - - Fixed IPcheck API calls - - * config/config-sh.in - - Fixed up chroot compile options - - Added options for debug and profile compiles - - * config/gen.ircd.Makefile - - Support for new debug/profile options - - * ircd/Makefile.in - - Support for new debug/profile options - - * ircd/ircd_signal.c - - Removed -DPROFIL - - * include/IPcheck.h - - Removed old API prototypes, added new ones - - * ircd/IPcheck.c - - Readability cleanups (well, I -think-...) - - Changed IPRegistryEntry.last_connect to a time_t. The previously - used unsigned short was probably causing interesting things after - a client had been connected longer than about 65,535 seconds... - - Removed old API functions. - - * ircd/whocmds.c - - Removed IPcheck.h include - - * Additionally modified IPcheck API calls in: - - ircd/m_nick.c - - ircd/m_auth.c - - ircd/s_bsd.c - - ircd/s_conf.c - - ircd/s_misc.c - - ircd/s_serv.c - - ircd/s_user.c - - -2000-04-30 Perry Lorier - * ircd/s_bsd.c: Sigh. :) - * ircd/m_mode.c: fix for modeless channels by poptix. - -2000-04-29 Kevin L. Mitchell - - * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf - - * ircd/channel.c (clean_channelname): make clean_channelname also - truncate long channel names - -2000-04-28 Kevin L. Mitchell - - * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf - - * ircd/channel.c: implemented joinbuf_init, joinbuf_join, - joinbuf_flush - - * include/channel.h: definitions and declarations for the struct - JoinBuf abstraction - -2000-04-29 Perry Lorier - * ircd/s_bsd.c: Ok, so I thought I compiled and tested this... - -2000-04-29 Perry Lorier - * ircd/s_bsd.c: Add debugging code to IPcheck - -2000-04-28 Kevin L. Mitchell - - * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT - - * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of - RPL_EXPLICIT - - * ircd/m_userhost.c (m_userhost): add a dead code comment - - * ircd/m_desynch.c: forgot one... - - * ircd/m_rehash.c (mo_rehash): er, duplicates :) - - * ircd/m_proto.c (proto_send_supported): just change a comment so - it doesn't show up in my scans - - * ircd/ircd_reply.c (send_reply): fix a slight bug... - - * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions, - kinda hackish... - - * ircd/parse.c (parse_server): argument wrangling to make - processing in do_numeric a little easier to deal with - - * ircd/s_serv.c (server_estab): SERVER should come from - acptr->serv->up, not &me - - * ircd/m_lusers.c: accidentally left out sptr for a %C - - * ircd/send.c: hack to support doing wallchops... - - * ircd/m_whowas.c: convert to new send functions - - * ircd/m_whois.c: convert to new send functions - - * ircd/m_who.c: convert to new send functions - - * ircd/m_wallops.c: convert to new send functions - - * ircd/m_wallchops.c: convert to new send functions - - * ircd/m_version.c: convert to new send functions - - * ircd/m_userip.c: convert to new send functions - - * ircd/m_userhost.c: convert to new send functions - - * ircd/m_uping.c: convert to new send functions - - * ircd/m_trace.c: convert to new send functions - - * ircd/m_topic.c: convert to new send functions - - * ircd/m_time.c: convert to new send functions - - * ircd/m_squit.c: convert to new send functions - - * ircd/m_silence.c: convert to new send functions - - * ircd/m_settime.c: convert to new send functions - - * ircd/m_restart.c: convert to new send functions - - * ircd/m_rehash.c: convert to new send functions - - * ircd/m_privmsg.c: convert to new send functions - - * ircd/m_pong.c: convert to new send functions - - * ircd/m_ping.c: convert to new send functions - - * ircd/m_pass.c: convert to new send functions - - * ircd/m_opmode.c: convert to new send functions - - * ircd/m_oper.c: convert to new send functions - - * ircd/m_notice.c: convert to new send functions - - * ircd/m_nick.c: convert to new send functions - - * ircd/m_names.c: convert to new send functions - - * ircd/m_motd.c: convert to new send functions - - * ircd/m_mode.c: convert to new send functions - - * ircd/m_map.c: convert to new send functions - - * ircd/m_lusers.c: convert to new send functions - - * ircd/m_list.c: convert to new send functions - - * ircd/m_links.c: convert to new send functions - - * ircd/m_kill.c: convert to new send functions - - * ircd/m_jupe.c: convert to new send functions - - * ircd/m_invite.c: convert to new send functions - - * ircd/m_info.c: convert to new send functions - - * ircd/m_help.c: convert to new send functions - - * ircd/m_gline.c: convert to new send functions - - * ircd/m_error.c: convert to new send functions - - * ircd/m_endburst.c: convert to new send functions - - * ircd/m_die.c: convert to new send functions - - * ircd/m_destruct.c: convert to new send functions - - * ircd/m_defaults.c: convert to new send functions - - * ircd/m_connect.c: convert to new send functions - -2000-04-28 Perry Lorier - * RELEASE.NOTES: Describe a few more undocumented features. - * config/config-sh.in: change the default paths for logging - and the recommended number of channels. - * include/supported.h: Rearrange slightly, added CHANTYPE's - -2000-04-27 Kevin L. Mitchell - - * ircd/m_close.c: convert to send_reply - - * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone - - * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone - - * ircd/m_admin.c: convert to send_reply and hunt_server_cmd - - * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement - that takes cmd and tok arguments, etc. NOTE: THIS IMPLEMENTATION - HAS A MAJOR HACK!!! The whole hunt_server architecture should be - carefully rethought... - - * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd - - * include/s_user.h: hunt_server_cmd -- replacement for hunt_server - - * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by - numeric nick; therefore, we have to use the server name - - * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick - - * ircd/send.c: fix minor bugs - - * ircd/s_user.c (check_target_limit): mark dead code so I filter - it when I grep - - * ircd/s_serv.c (exit_new_server): mark dead code so I filter it - when I grep - - * ircd/parse.c: mark dead code so I filter it when I grep - - * ircd/map.c: mark dead code so I filter it when I grep - - * ircd/ircd.c: mark dead code so I filter it when I grep - - * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply - functions - - * ircd/channel.c: mark dead code so I filter it when I grep - - * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str; - hope I'm not stepping on toes... - - * ircd/s_conf.c: more sendto_opmask_butone / send_reply - conversions; use ircd_snprintf in a couple of cases to negate the - possibility of buffer overflow - -2000-04-26 Kevin L. Mitchell - - * ircd/channel.c: convert as much as possible to new send - semantics - - * ircd/send.c (sendcmdto_common_channels): fix a subtle bug -- - test member->user->from->fd, not from->fd - - * ircd/gline.c (gline_add): go ahead and add badchans; we just - won't look for them in m_gline; this way, they always work... - - * ircd/jupe.c: use ircd_vsnprintf conversion specifiers - - * ircd/gline.c: since write_log now uses ircd_vsnprintf, use - ircd_vsnprintf conversion specifiers - - * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so - I have my conversion specifiers - - * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP - - * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to - local users - - * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a - little less brain-dead - - * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply - - * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for - RPL_STATSDEBUG - - * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for - RPL_STATSDEBUG - - * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT - for RPL_STATSDEBUG - - * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING - - * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING - - * ircd/s_user.c (register_user): use RPL_EXPLICIT for - ERR_INVALIDUSERNAME - - * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT - - * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark - a numeric as needing to use an explicit pattern, which will be the - first argument in the variable argument list - - * ircd/s_user.c: use sendrawto_one instead of sendto_one to send - non-prefixed nospoof PING - - * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send - non-prefixed SERVER login - - * ircd/ircd.c (check_pings): fix last sendto_one calls (except for - a numeric usage further up) - - * include/send.h: declare sendrawto_one - - * ircd/send.c (sendrawto_one): new function to use ONLY for - non-prefixed commands, like PING to client, or PASS/SERVER on - server registration - -2000-04-25 Kevin L. Mitchell - - * ircd/ircd_snprintf.c (doprintf): implement %H for possible - future expansion (channel numerics?) - - * include/ircd_snprintf.h: added documentation to # to explain use - with %C; added documentation for : to explain use with %C; added - documentation for %H for channels - - * ircd/whocmds.c: use send_reply - - * ircd/userload.c: use sendcmdto_one - - * ircd/uping.c: use sendcmdto_one - - * ircd/send.c: use new flags to %C format string; ':' prefixes - client name with a colon for local connects, '#' uses - nick!user@host form for local connects - - * ircd/s_user.c: use send_reply, sendto_opmask_butone, - sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone - - * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone - - * ircd/s_bsd.c: use sendto_opmask_butone, send_reply, - sendcmdto_one - - * ircd/s_auth.c: use sendto_opmask_butone - - * ircd/res.c: use sendcmdto_one - - * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some - debugging assertions - -2000-04-24 Kevin L. Mitchell - - * ircd/support.c: dumpcore is no longer used, so get rid of it - - * ircd/parse.c: use send_reply, sendcmdto_one - - * ircd/map.c: use send_reply - - * ircd/listener.c: use send_reply - - * ircd/jupe.c: use sendto_opmask_butone, send_reply - - * ircd/ircd_reply.c: use send_reply - - * ircd/ircd.c: use sendto_opmask_butone - - * ircd/gline.c: use sendto_opmask_butone, send_reply - - * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely - registered clients; make FLAG_ALT print nick!user@host; make - FLAG_COLON print :blah - - * ircd/class.c (report_classes): use send_reply instead of - sendto_one - - * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one - - * ircd/IPcheck.c (ip_registry_connect_succeeded): replace - sendto_one with sendcmdto_one - -2000-04-21 Kevin L. Mitchell - - * ircd/send.c: clean up logic in sendcmdto_channel_butone; use - MyConnect() instead of IsServer() in sendcmdto_flag_butone; define - sendcmdto_match_butone - - * include/send.h: declare sendcmdto_match_butone - -2000-04-20 Kevin L. Mitchell - - * ircd/jupe.c: update to use send_reply() - - * ircd/gline.c: update to use send_reply() - - * include/ircd_reply.h: declare send_reply - - * ircd/ircd_reply.c (send_reply): send_error_to_client, but for - replies; uses ircd_snprintf - - * ircd/send.c: added comments to redirect searchers to appropriate - sendcmdto_* function; moved new functions to end of file; added - explanatory comments; reordered arguments; defined new functions - mentioned below - - * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions - - * ircd/m_gline.c: reorder arguments to sendcmdto_* functions - - * ircd/jupe.c: reorder arguments to sendcmdto_* functions - - * ircd/gline.c: reorder arguments to sendcmdto_* functions - - * include/send.h: reorder arguments, add explanatory comments, - declare new functions sendcmdto_flag_butone, sendto_opmask_butone, - and vsendto_opmask_butone - -2000-04-19 Kevin L. Mitchell - - * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified - vsendto_op_mask that uses '*' instead of the receiving client - nickname - - * include/send.h: declare sendcmdto_channel_butone; takes a skip - argument that allows you to skip (or not to skip) deaf users, - users behind bursting servers, and non channel operators - -2000-04-17 Kevin L. Mitchell - - * ircd/send.c: new sendcmdto_channel_butserv -- note that old - sendto_channel_butserv has a subtle bug; also wrote - sendcmdto_common_channels. - - * include/send.h: declare new sendcmdto_* functions - - * ircd/jupe.c: support local deactivations of jupes - - * ircd/gline.c: support local deactivations of glines - - * include/jupe.h: JUPE_LDEACT allows jupes to be locally - deactivated; if they aren't locally deactivated, then it slaves to - the net-wide activation status; JupeIsRemActive() tests only - whether the jupe is active everywhere else - - * include/gline.h: GLINE_LDEACT allows glines to be locally - deactivated; if they aren't locally deactivated, then it slaves to - the net-wide activation status; GlineIsRemActive() tests only - whether the gline is active everywhere else - - * ircd/gline.c: detect overlapping G-lines; if an existing, wider - gline expires after the new one will, we drop the new one, - otherwise we add the G-line after that one (so the wide one will - apply first); if the new one contains an existing G-line and if it - will expire after the existing one, we drop the existing one to - save memory - - * ircd/m_gline.c (mo_gline): opers could issue remote local - glines when CONFIG_OPERCMDS was off; fixed - -2000-04-16 Kevin L. Mitchell - - * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if - this is a local JUPE - - * ircd/gline.c: add flags argument to gline_activate and - gline_deactivate for future expansion - - * ircd/m_gline.c: pass flags to gline_activate and - gline_deactivate - - * include/gline.h: add flags argument to gline_activate and - gline_deactivate - - * ircd/jupe.c: add flags argument to jupe_activate and - jupe_deactivate for future expansion - - * include/jupe.h: add flags argument to jupe_activate and - jupe_deactivate - - * ircd/m_jupe.c: pass a flags argument to jupe_add instead of - local, active; pass flags to jupe_activate and jupe_deactivate - - * include/gline.h: remove dead code - - * ircd/gline.c: make gline expire times relative to CurrentTime, - since that should be monotonically increasing, instead of - TStime(), which can be set backwards, and which can therefore - cause an expire time to increase; make local glines be removed - instead of just deactivated; don't let gline_find() look for - user@host glines if the mask being looked up is a channel mask - - * ircd/send.c (vsendcmdto_one): forgot to account for the case - where origin is a server and destination is a user - - * ircd/jupe.c: make jupe expire times relative to CurrentTime, - since that should be monotonically increasing, instead of - TStime(), which can be set backwards, and which can therefore - cause an expire time to increase; make local jupes be removed - instead of just deactivated - - * ircd/ircd_snprintf.c: d'oh, thanks for catching that; short for - limit is fine. any other warnings I should know about? - -2000-04-15 Thomas Helvey - - * ircd/*.c: const correctness and type safety cleanups to - get code to compile with C++ compiler. Still has - signed/unsigned comparison warnings. - -2000-04-15 Greg Sikorski - - * ircd/userload.c: change include to for - portability. - -2000-04-14 Kevin L. Mitchell - - * ircd/m_gline.c (mo_gline): d'oh, target isn't a numeric; use %C - and convert acptr... - - * ircd/s_user.c: move gline_lookup function call into - register_user, where it'll have a username to lookup! - - * ircd/m_gline.c: modify to utilize new sendcmdto_* series of - functions; also stuff send_error_to_client into return clauses - - * ircd/m_jupe.c: modify to utilize new sendcmdto_* series of - functions; also use send_error_to_client where that makes sense - - * ircd/jupe.c: modify to utilize new sendcmdto_* series of - functions; also use send_error_to_client where that makes sense - - * ircd/gline.c: modify to utilize new sendcmdto_* series of - functions; also fix gline_lookup() to deal properly with remote - clients--boy, do struct Client and struct User need to be cleaned - up! - - * ircd/ircd_snprintf.c (doprintf): a dest of &me is a server, - too... - - * ircd/send.c: wrote sendcmdto_one(), vsendcmdto_one(), and - sendcmdto_serv_butone(), all utilizing the %v conversion of - ircd_snprintf() - - * include/send.h: define IRC_BUFSIZE, max size of a message; - declare sendcmdto_one(), vsendcmdto_one(), and - sendcmdto_serv_butone() - - * include/msg.h: define all the CMD_* constants needed to utilize - the new sendcmdto_* series of functions - - * ircd/Makefile.in (SRC): list ircd_snprintf.c; run make depend - - * ircd/gline.c: remove old, dead code. - - * ircd/m_gline.c (mo_gline): disallow setting of global G-lines - unless CONFIG_OPERCMDS is enabled; disallow listing of all G-lines - (don't advertise proxies); remove dead code - - * ircd/parse.c: oper handler for JUPE only lists jupes unless - CONFIG_OPERCMDS is enabled - - * ircd/m_jupe.c (mo_jupe): don't compile mo_jupe() if - CONFIG_OPERCMDS is not enabled; we'll disable it in parse.c - - * ircd/m_opmode.c (mo_opmode): if CONFIG_OPERCMDS is not enabled, - always return ERR_DISABLED - - * ircd/m_clearmode.c (mo_clearmode): if CONFIG_OPERCMDS is not - enabled, always return ERR_DISABLED - - * ircd/s_err.c: add error message to indicate disabled commands - - * include/numeric.h (ERR_DISABLED): to indicate disabled commands - - * doc/Configure.help: add documentation for CONFIG_OPERCMDS - - * config/config-sh.in: add CONFIG_OPERCMDS, default both it and - CONFIG_NEW_MODE to 'y' for now - - * ircd/gline.c (gline_list): fix a minor formatting bogon - - * BUGS: since I fixed that bug, might as well mark it fixed. - - * ircd/m_join.c: look up badchans with GLINE_EXACT - - * ircd/m_gline.c: fix parc count problems; look up existing - G-lines with GLINE_EXACT; only set new lastmod when - activating/deactivating existing glines if old lastmod was not 0 - - * ircd/gline.c: forgot to copy the gline reason over; don't - propagate a gline with 0 lastmod if origin is user; add - GLINE_EXACT to force exact matching of gline mask - - * ircd/ircd_snprintf.c (doprintf): forgot to deal with the zero - flag properly - - * ircd/s_conf.c (find_kill): gline_find() takes a char *userhost, - but gline_lookup() actually takes a client--d'oh. - -2000-04-13 Thomas Helvey - * ircd/IPcheck.c: Back port BLMet's bugfix from 2.10.10 - -2000-04-13 Greg Sikorski - - * ircd/whocmds.c: Don't make idle flag default in /who, to prevent: - "/who * x" - "Gte3 H*iwg Gte@212.49.240.217 :1 :0 I am the one that was." - (Found by Plexus). - - * ircd/whocmds.c: Change idle time calc from socket idle to user - idle. - -2000-04-13 Kevin L. Mitchell - - * config/aclocal.m4 (unet_CHECK_TYPE_SIZES): check size of void *, - too, for ircd_snprintf.c - - * include/ircd_snprintf.h: documentation for ircd_(v)snprintf, in - comments; mostly descended from the Linux manpage for printf, but - also documenting the extensions. - - * ircd/ircd_snprintf.c: NULL dest is equivalent to going to a - client; make 'q' be the same as 'L'; remove __inline__; only - define EXTENSION if HAVE_LONG_LONG is defined - - * include/handlers.h: declare m_gline() - - * ircd/parse.c: gline can be called by users, but it only lists - the glines. - - * ircd/s_user.c (set_nick_name): resend gline if a remote server - introduces a glined client - - * ircd/s_serv.c (server_estab): burst glines, too - - * ircd/gline.c: fix up all the expire times to be offsets; - simplify gline_resend() - - * ircd/m_gline.c: begin coding replacements for ms_gline(), - mo_gline(), and m_gline() - - * ircd/gline.c (gline_add): allow *@#channel to work correctly; - also, prohibit local BADCHANs if LOCAL_BADCHAN not defined - -2000-04-13 Greg Sikorski - - * tools/Bouncer/*: Add comments/documentation/tags. - * tools/Bouncer/*: Add debug defines, make task fork(). - -2000-04-12 Thomas Helvey - * ircd/s_err.c: Cleanup s_err.c make one table so we - don't have to do anything tricky to get an error string. - -2000-04-12 Greg Sikorski - * Add port bouncer for http (x/w) - -2000-04-12 Kevin L. Mitchell - - * ircd/s_conf.c (find_kill): replaced call to find_gline() with a - call to gline_find(); also used GlineReason() instead of direct - reference to structure member - - * ircd/m_join.c (m_join): replace bad_channel() calls with calls - to gline_find(name, GLINE_BADCHAN), and also check to see if gline - is active - - * ircd/channel.c: nothing seems to be called anywhere... - - * ircd/s_err.c: update a couple of replies to dovetail with new - semantics - - * ircd/gline.c: begin complete re-implementation of gline.c along - the lines of the final design of jupe.c - - * include/gline.h: begin complete re-implementation of gline.c - along the lines of the final design of jupe.c - - * ircd/channel.c (mode_process_clients): fix "Deop of +k user on - %s by %s" message... - - * ircd/ircd_snprintf.c: my new snprintf()-like functions - - * include/ircd_snprintf.h: my new snprintf()-like functions - -2000-04-11 Thomas Helvey - * ircd/IPcheck.c: removed old dead code - * ircd/s_user.c (send_user_info): removed non-standard - user not found message for userhost/userip - -2000-04-11 Greg Sikorski - - * ircd/s_err.c: Added missing quotes to ERR_DONTCHEAT numeric. - * doc/p10.html: Work on chapter 4. - -2000-04-10 Kevin L. Mitchell - - * ircd/channel.c (mode_parse_client): fix coredump on /mode - #foobar +o nosuchnick - -2000-04-10 Perry Lorier - * BUGS: Added bug. - -2000-04-09 Thomas Helvey - * include/IPcheck.h: fix prototype - * ircd/s_user.c: fix usage of IPcheck_remote_connect - * ircd/IPcheck.c: removed unused args - -2000-04-09 Thomas Helvey - * include/IPcheck.h: add proto for IPcheck_expire - - * ircd/IPcheck.c: Rewrote - - * ircd/ircd.c: Add IPcheck_expire to main message loop - - * ircd/s_user.c: Redo target hashing, refactor target code - - * include/numeric.h: Cleaned up numerics, added which ones are - in use by other networks and what they are in use for. - - * ircd/channel.c: cleaned can_join(), allow anyone through anything - if /invited, simplified the function. Opers overusing OPEROVERRIDE - will get a message explaining to them not to cheat. - - * ircd/m_join.c: cleaned up the various join functions, should be - a lot more efficient. Still needs work. Now assumes that s<->s - won't send it a JOIN 0. Service coders - note this and tread with - care. - - * ircd/m_stats.c: added Gte-'s stats doc patch. - - * ircd/m_version.c: /version now returns the 005 numeric as well. - as requested by Liandrin. - - -2000-04-07 Kevin L. Mitchell - - * ircd/m_clearmode.c: add include for support.h for write_log() - - * configure: move ircd/crypt/* to tools/* - -2000-04-06 Thomas Helvey - * ircd/s_auth.c: Shorten auth connect timeout to 60 seconds - set client host to server alias if connection from localhost - -2000-04-06 Perry Lorier - * ircd/ircd.c: Fix core during pinging (oops) - -2000-04-06 Perry Lorier - * ircd/send.c: fixed wrong ident being sent to channels bug. - * include/numerics.h: Updated some of the numerics from other - networks. Flagged some as 'unused' by undernet. - -2000-03-30 Perry Lorier - * ircd/ircd.c: Lets see if this helps the ping problem at all. - * ircd/whocmds.c, /doc/readme.who: Added %l specifier to get idle - time for local clients. (as requested), extended who now returns all - the flags (@+!) so you can tell the complete state of a client. - -2000-03-30 Thomas Helvey - * m_rping.c m_rpong.c: add Gte's rping/rpong fixes - -2000-03-30 Perry Lorier - * ircd/parse.c: oops, missed opers. - -2000-03-30 Perry Lorier - * ircd/parse.c: fixed mystifying ping bug thats been plaguing us - for so long. Remember: m_ping MUST be in the parse array. :) - -2000-03-30 Perry Lorier - * ircd/ircd.c: test in check_pings was wrong. I move that we - disallow cvs commit after 10pm localtime.... - -2000-03-30 Perry Lorier - * ircd/m_pong.c: Fix it for servers too. - -2000-03-30 Perry Lorier - * ircd/m_pong.c: Fix ping timeout bugs - -2000-03-30 Perry Lorier - * ircd/channel.c: Bans had CurrentTime in their when field instead - of TStime() - -2000-03-31 Thomas Helvey - * ircd/numnicks.c (SetXYYCapacity): fix for extended - numerics. - -2000-03-30 Perry Lorier - * ircd/m_nick.c: send kills both ways so when we add nick change - on collision we don't desync the network. - - * ircd/map.c: Fixup the map a bit more. - -2000-03-31 Kevin L. Mitchell - - * ircd/m_clearmode.c (do_clearmode): Log the CLEARMODE to OPATH - - * ircd/m_opmode.c: Log the mode changes to OPATH - - * ircd/channel.c (modebuf_flush_int): Log the mode changes to - OPATH - - * include/channel.h (MODEBUF_DEST_LOG): Log the mode changes to - OPATH - - * doc/Configure.help: help text for CONFIG_LOG_OPMODE / OPATH - - * config/config-sh.in: added OPATH for opmode log file - - * ircd/m_clearmode.c (do_clearmode): updated uses of - modebuf_mode_string() for the new usage - - * ircd/channel.c: added flag MODE_FREE and an int argument to - modebuf_mode_string() to indicate that the string must be free'd; - updated calls to modebuf_mode_string() for the new usage; called - collapse(pretty_mask()) on the ban string and use allocated memory - for it; added ban list length accounting; fixed a number of small - bugs in ban processing - - * include/channel.h: added flag MODE_FREE and an int argument to - modebuf_mode_string() to indicate that the string must be free'd - - * ircd/m_clearmode.c (do_clearmode): made sure clearmode removed - keys and limits that are set - -2000-03-30 Perry Lorier - * ircd/ircd.c: rewrote check_pings() for maintainability - and speed. Also changed quit msg's so they don't have - redundant nick[host] info in them. - - * ircd/send.c: Changed write errors to report what error - occured (if possible). - - * ircd/gline.c: added gline comment to the quit. - - * ircd/m_server.c: Added suggestions to server quits mentioning - what went wrong so the admin can fix it earlier instead of asking - questions... - - * ircd/map.c: Changed m_map() to hide numerics, show a * beside - servers that aren't fully burst yet. And show '(--s)' for servers - where its not sure. - - * doc/example.conf: Fixed wrapped U: - -2000-03-30 Kevin L. Mitchell - - * ircd/m_mode.c (ms_mode): implemented a new m_mode in terms of - mode_parse() (version selectable at compile time) - - * ircd/m_clearmode.c (mo_clearmode): clean_channelname(parv[1]) - - * ircd/m_opmode.c (mo_opmode): clean_channelname(parv[1]) - - * config/config-sh.in: add new config option to enable new m_mode - implementation - - * doc/Configure.help: add documentation for new config option - CONFIG_NEW_MODE - - * ircd/channel.c (mode_parse_client): /opmode #foobar -o -- 461 - MODE -v : Not enough parameters - - * ircd/m_clearmode.c (do_clearmode): do_clearmode() would remove - +k and +l even if they weren't set... - - * ircd/m_opmode.c: implement the OPMODE command using mode_parse() - - * ircd/channel.c: make mode_process_clients() clear the DEOPPED - flag; fix +s+p exclusivity; add MODE_ADD/MODE_DEL to flag list - for; test the 0-th member, not the i-th member, of the client - change state stuff - - * ircd/m_clearmode.c (do_clearmode): use the new - mode_invite_clear() function - - * ircd/channel.c: cleared up all the compile-time warnings and - errors - - * include/channel.h: added declarations for mode_ban_invalidate() - and mode_invite_clear() - - * ircd/channel.c: finished mode_parse(), then broke it up into a - dozen or so helper functions to make the code easier to read - -2000-03-29 Thomas Helvey - * ircd/ircd.c: refactor server initialization a bit, use - getopt for parsing command line, refactor init_sys, main, - and other bits. - - * ircd/s_bsd.c: add functions for initialization to clean - up logic a bit and remove duplicated code. - - * include/ircd.h: add struct for server process related - variables. - -2000-03-29 Kevin L. Mitchell - - * ircd/channel.c: initial definition of mode_parse(); flags to - prevent doing the same thing multiple times; helper method - send_notoper() to send a "Not oper"/"Not on channel" notice - - * include/channel.h: declare mode_parse() and helper flags - - * ircd/channel.c (modebuf_flush_int): fiddled with timestamp - sending to match the current action of set_mode() closely enough - that hopefully there won't be major conflicts - - * ircd/channel.c (modebuf_flush_int): consolidated the mode string - building logic, reversed the order of the arguments to mode - commands to have '-' preceed '+' - -2000-03-29 Thomas Helvey - * ircd/s_bsd.c (add_connection): don't disable socket options - let OS tune itself and allow important performance tweaks to - work. - -2000-03-28 Kevin L. Mitchell - - * ircd/channel.c (modebuf_flush_int): use %d, not %-15d; I got - confused by set_mode, which is doing some really weird logic; - guess what I'm going to rewrite next? ;) - -2000-03-28 Kevin L. Mitchell - - * include/channel.h: added MODE_SAVE for the bounds checking stuff - in modebuf_flush - - * ircd/channel.c: make modebuf_flush into modebuf_flush_int and - make it do bounds checking on the buffer; all modes are sent only - if the all parameter is 1; modebuf_flush is the exported wrapper - - * include/channel.h: add BOUNCE, renumber flags to get a little - more space - - * ircd/channel.c (modebuf_flush): don't overload HACK2, add - BOUNCE; send DESYNCH message - -2000-03-27 Kevin L. Mitchell - - * ircd/m_clearmode.c (do_clearmode): only mark the modes the - channel actually has in effect for deletion - - * ircd/channel.c: added explanatory comments to all added - functions; made flushing take place at the correct place even if - the MODEBUF_DEST_DEOP flag is set; rewrote build_string() helper - to bash some stupid bugs; made modebuf_flush() return if ModeBuf - is empty, fixed the apparent source, removed some bogus string - termination code, properly terminate the mode strings, add support - for HACK2 and HACK3, made limit strings not be sent if the limit - is being removed, changed where '+' and '-' come from in sent - strings, added support for DEOP flag, set up bouncing code for - HACK2 - - * ircd/Makefile.in: ran make depend - - * include/channel.h: added new defines for future functionality, - made modebuf_flush() return int so I can use tail recursion - - * ircd/m_clearmode.c: add msg.h to includes; other misc cleanups - to make it all compile - - * ircd/m_opmode.c: add msg.h to includes... - - * ircd/m_clearmode.c: implemented mo_clearchan()/ms_clearchan() - - * ircd/channel.c (modebuf_flush): realized I forgot to - nul-terminate addbuf/rembuf properly... - - * ircd/m_clearmode.c (do_clearmode): wrote do_clearmode()... - - * ircd/channel.c (modebuf_flush): correct sendto_server_butone to - sendto_serv_butone--blah^2 - - * ircd/send.c (sendto_serv_butone): stupid comments confused me - - * ircd/channel.c (modebuf_flush): if there are no mode changes to - propagate, we're done... - - * ircd/channel.c (modebuf_flush): duh; it's sendto_server_butone, - not sendto_all_butone - - * ircd/m_clearmode.c: define skeleton for m{o,s}_clearmode - - * ircd/m_opmode.c: define skeleton for m{o,s}_opmode - - * ircd/Makefile.in (SRC): added m_opmode() and m_clearmode() to - the list - - * ircd/parse.c: added messages for opmode and clearmode - - * include/handlers.h: added declarations for mo_opmode(), - ms_opmode(), mo_clearmode(), and ms_clearmode() - - * include/msg.h: define MSG_OPMODE, TOK_OPMODE, MSG_CLEARMODE, and - TOK_CLEARMODE - - * include/channel.h (MODEBUF_DEST_OPMODE): Define the - MODEBUF_DEST_OPMODE flag - - * ircd/channel.c (modebuf_flush): added new flag, - MODEBUF_DEST_OPMODE; causes channel MODE/HACK(4) notice to appear - to originate from source's server (or source itself, if - IsServer(source)); also causes a server-level MODE to be sent as - OPMODE instead - - * include/channel.h: defined MODEBUF_DEST_SERVER, - MODEBUF_DEST_HACK4 - - * ircd/channel.c: Add another argument to build_string() to handle - numeric nicks; implemented MODEBUF_DEST_SERVER to send MODEs to - servers; implemented MODEBUF_DEST_HACK4 to cause HACK(4) notices - to be sent out - -2000-03-27 Perry Lorier - - * ircd/s_bsd.c: fixed missing 'u' typo. - -2000-03-26 Kevin L. Mitchell - - * ircd/channel.c: implement modebuf_init(), _mode(), _mode_uint(), - _mode_string(), _mode_client(), _flush(); also implemented a - simple build_string() - - * include/channel.h: added definition of ModeBuf, modebuf_* - manipulation functions, and a couple of helper macros - diff --git a/doc/irc.1 b/doc/irc.1 deleted file mode 100644 index 09b3ad3..0000000 --- a/doc/irc.1 +++ /dev/null @@ -1,82 +0,0 @@ -.\" @(#)irc.1 2.6 7 Oct 90 -.TH IRC 1 "7 October 1990" -.SH NAME -irc \- User Interface to Internet Relay Chat Protocol -.SH SYNOPSIS -\fBirc\fP [\fB-p\fP \fIportnum\fP] [\fB-c\fP \fIchannel\fP] [ \fInickname\fP [ \fIserver\fP ]] -.SH DESCRIPTION -.LP -\fBIrc\fP is a user interface to the Internet Relay Chat, a CB-like -interactive discussion environment. It is structured into \fIchannels\fP, -which are public discussion forums, and also allows for private intercommunication. -Each participant has a \fInickname\fP, which is the one specified in the command -line or else his login name. -.LP -Once invoked, \fBirc\fP connects as a client to the specified server, -\fIserver\fP or to the default one (see below). The screen splits into a dialogue -window (the major part -of the screen) and a command line, from which messages can be sent and -commands given to control irc. -.SH COMMAND SYNTAX -The syntax of irc commands is of the form \fB/COMMAND\fP. The most notable -ones are listed below. For an uptodate list, use the \fBHELP\fP command -of \fBirc\fP. Case is ignored. -.IP "\fB/ADMIN\fR [\fIserver\fP]" -Prints administrative information about an IRC \fIserver\fP. -.IP "\fB/AWAY\fP [\fImessage\fP]" -Mark yourself as being away (with an automatic reply \fImessage\fP -if specified) -.IP "\fB/BYE\fR, \fB/EXIT\fR, \fB/QUIT\fR" -Terminate the session -.IP "\fB/CHANNEL\fR [\fIchannel\fP]" -Join another \fIchannel\fP -.IP "\fB/CLEAR\fR" -Clear the screen -.IP "\fB/HELP\fR [\fIcommand\fP]" -Display a brief description of the \fIcommand\fP (or list all commands, if none -specified). -.IP "\fB/SUMMON\fR \fIuser\fP" -Allows to summon a \fIuser\fP specified as a full Internet address, i.e., -\fIlogin@host.domain\fP, to an IRC dialogue session (in much the same -way as the talk(1) command). It is usable ONLY if the irc daemon runs on -the target machine (host.domain). -.IP "\fB/TOPIC\fR \fItopic\fP" -Sets the \fItopic\fP for the current channel -.IP "\fB/WHO\fR [\fIchannel\fP|*]" -Lists all users of IRC if no argument, of the specified \fIchannel\fP or of the -current channel (*). -.SH ARGUMENTS -.IP "\fB-p\fP \fIportnum\fP" -TCP/IP "port number. Default is 6667 and this option should seldom if ever" -be used. -.IP "\fB-c\fP \fIchannel\fP" -\fIChannel\fP number to join upon beginning of the session. Default is no channel. -.IP "\fInickname\fP" -\fINickname\fP used in the session (can be changed with the \fB/NICK\fP command). -Default is user login name. -.IP "\fIserver\fP" -\fIServer\fP to connect to. Default is specified in the irc system configuration -file, and can be superseded with the environment variable IRCSERVER. -.SH EXAMPLE -.RS -.nf -tolmoon% \fBirc -p6667 Wizard tolsun\fP -.fi -.RE -.LP -connects you to irc server in host tolsun (port 6667) with nickname Wizard -.SH COPYRIGHT -Copyright (c) 1988 University of Oulu, Computing Center, Finland. -.nf -Copyright (c) 1988,1989,1990 Jarkko Oikarinen -.nf -All rights reserved. -For full COPYRIGHT see LICENSE file with IRC package. -.SH "SEE ALSO" -ircd(8) -.SH BUGS -What bugs ? -.SH AUTHOR -Jarkko Oikarinen -.nf -Manual page updated by Michel Fingerhut diff --git a/doc/ircd.8 b/doc/ircd.8 deleted file mode 100644 index 681fbc3..0000000 --- a/doc/ircd.8 +++ /dev/null @@ -1,111 +0,0 @@ -.\" @(#)ircd.8 2.0 (beta version) 29 Mar 1989 -.TH IRCD 8 "10 July 2000" -.SH NAME -ircd \- The Undernet Internet Relay Chat Daemon -.SH SYNOPSIS -.hy 0 -.IP \fBircd\fP -[-t] [-d directory] [-f configfile] [-x debuglevel] [-h hostname] -.SH DESCRIPTION -.LP -\fIircd\fP is the Undernet Internet Relay Chat daemon. -\fIircd\fP is a server in that its function is to "serve" -the client program \fIirc(1)\fP with messages and commands. All commands -and user messages are passed directly to \fIircd\fP for processing -and relaying to other servers. \fIirc(1)\fP depends upon -there being an \fIircd\fP server running somewhere for it to connect to -and thus allow the user to begin talking to other users. -.LP -There are many common clients including ircII, EPIC, and BitchX for UNIX, -mIRC and pIRCh for Windows, and IRCle and Homer for the Macintosh. -.SH OPTIONS -.TP -.B \-d directory -This option tells the server to change to that directory and use -that as a reference point when opening \fIircd.conf\fP and other startup -files. -.TP -.B \-t -Instructs the server run in the foreground and to direct debugging output to -standard output. -.TP -.B \-x# -Defines the debug level for \fIircd\fP. The higher the debug level, the more -messages get directed to debugging file (or standard output if the -t option is -used). -.TP -.B \-w interface -This option is deprecated. Outgoing connections are bound to the -interface specified in the M: line, and incoming connections are accepted only on -interfaces specified in the P: lines. -.TP -.B \-f filename -Specifies the \fIircd.conf\fP file to be used for this server. The option -is used to override the default \fIircd.conf\fP given at compile time. -.TP -.B \-c -This flag must be given if you are running \fIircd\fP from \fI/dev/console\fP or -any other situation where fd 0 isn't a TTY and you want the server to fork -off and run in the background. This needs to be given if you are starting -\fIircd\fP from an \fIrc\fP (such as \fI/etc/rc.local\fP) file. -.TP -.B \-h hostname -Allows the user to manually set the server name at startup. The default -name is hostname.domainname. -.TP -.B \-p portname -This is deprecated in favor of specifying server ports in P: lines. - -.SH CONFIGURATION -If you plan to connect your \fIircd\fP server to an existing IRC network, -you will need to alter your local \fIircd\fP configuration file (typically named -\fIircd.conf\fP) so that it will accept and make connections to other IRC -servers. This file contains the hostnames, network addresses, and -passwords for connections to other IRC servers around the world. Because -the description of the \fIircd.conf\fP file is beyond the scope of this -document, please refer to the INSTALL file in the \fIircd\fP -documentation directory. -.LP -BOOTING THE SERVER: The \fIircd\fP server can be started as part of the -UNIX boot procedure or just by placing the server into Unix Background. -Keep in mind that if it is *not* part of your UNIXES Boot-up procedure -then you will have to manually start the \fIircd\fP server each time your -UNIX is rebooted. This means if your UNIX is prone to crashing -or going for for repairs a lot it would make sense to start the \fIircd\fP -server as part of your UNIX bootup procedure. In some cases the \fIirc(1)\fP -will automatically attempt to boot the \fIircd\fP server if the user is -on the SAME UNIX that the \fIircd\fP is supposed to be running on. If the -\fIirc(1)\fP cannot connect to the \fIircd\fP server it will try to start -the server on it's own and will then try to reconnect to the newly booted -\fIircd\fP server. -.SH EXAMPLE -.RS -.nf -tolsun% \fBircd\fP -.fi -.RE -.LP -Places \fIircd\fP into UNIX Background and starts up the server for use. -Note: You do not have to add the "&" to this command, the program will -automatically detach itself from tty. -.SH COPYRIGHT -(c) 1988,1989 University of Oulu, Computing Center, Finland, -.LP -(c) 1988,1989 Department of Information Processing Science, -University of Oulu, Finland -.LP -(c) 1988,1989,1990,1991 Jarkko Oikarinen -.LP -For full COPYRIGHT see LICENSE file with IRC package. -.LP -.RE -.SH FILES - /etc/utmp - "ircd.conf" -.SH "SEE ALSO" -irc(1) -.SH BUGS -See the file 'BUGS' included in the distribution. -.SH AUTHOR -The current authors of the undernet IRC daemon are coder-com@undernet.org, -the original author was Jarkko Oikarinen. \ No newline at end of file diff --git a/ircd-patch b/ircd-patch index ab1e045..9637b89 100644 --- a/ircd-patch +++ b/ircd-patch @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # -# $Id: ircd-patch,v 1.5.2.1 2005/12/29 03:41:56 entrope Exp $ +# $Id: ircd-patch,v 1.5.2.1 2005-12-29 03:41:56 entrope Exp $ # # # Experimental centralized patch system for ircu -- 2.20.1