Fix more IAuth bugs and add IAUTH log target.
[ircu2.10.12-pk.git] / ChangeLog
index 4ffac104c1887f8289569f134124e4d1477275d4..106d3c51c8bfe0ed554453d6a3a488301a060adf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,329 @@
+2005-05-01  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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  <reed@reedloden.com>
+
+       * ircd/ircd_lexer.l: Add missing header to squash a warning.
+
+2005-04-25  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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  <klmitch@mit.edu>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * configure.in: When --enable-profile, add -pg to LDFLAGS.
+
+       * configure: Regenerate.
+
+2005-04-19  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * ircd/match.c (check_if_ipmask): Do not interpret masks that
+       start with . or / as IP-based host masks.
+
+2005-04-17  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * tools/linesync/linesync.sh: Fix typo comment.  Check for
+       multiple blocks per line in the linesync input.
+
+2005-04-17  Dan <daniel@undernet.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <isomer@undernet.org>
+       
+       * 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 <mdpoole@troilus.org>
+
+       * ircd/gline.c (do_gline): Fix typo when activating IP-based
+       G-lines.
+
+2005-04-16  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * doc/example.conf (Operator): Properly qualify plaintext password.
+       (Quarantine): Document (new) syntax.
+
+       * ircd/ircd.c: Add <sys/time.h> to make <sys/resource.h> 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 <querycmds.h> for UserStats.
+       (stats_server_verbose): Reinstate check for UserStats.
+
+2005-04-09  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * ircd/m_burst.c (ms_burst): Clear channel manager bit when wiping
+       out locally opped and voiced channel members.
+
+2005-04-06  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
+
+       * configure.in: For developers' ease, allow passing an option to
+       configure to persistently set optimization CFLAGS.
+
+       * configure: Regenerate.
+
+2005-04-04  Michael Poole <mdpoole@troilus.org>
+
+       * 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 <mdpoole@troilus.org>
 
        * include/capab.h (CAPFL_STICKY): Define.