[IRC-Dev CVS] [CVS] Module ircd-ircdev: Change committed
Brought to you by:
zolty
From: Toni G. <zo...@us...> - 2005-03-09 18:12:58
|
CVSROOT : /cvsroot/irc-dev Module : ircd-ircdev Commit time: 2005-03-09 18:12:45 UTC Modified files: ChangeLog ChangeLog.es configure configure.in doc/ircd.sample-en.conf doc/ircd.sample-es.conf doc/history/Undernet/ChangeLog-u2.10.12 include/channel.h include/client.h include/patchlevel.h ircd/Makefile.in ircd/channel.c ircd/client.c ircd/ircd_lexer.l ircd/ircd_parser.y ircd/m_list.c ircd/m_who.c ircd/match.c ircd/s_auth.c ircd/s_stats.c Log message: Author: zoltan <zo...@ir...> Log message: 2005-03-09 Toni García <zo...@ir...> 1.0.alpha19 * Fix de bug cosmetico de IPv6 ---------------------- diff included ---------------------- Index: ircd-ircdev/ChangeLog diff -u ircd-ircdev/ChangeLog:1.20 ircd-ircdev/ChangeLog:1.21 --- ircd-ircdev/ChangeLog:1.20 Wed Mar 9 09:11:56 2005 +++ ircd-ircdev/ChangeLog Wed Mar 9 10:12:25 2005 @@ -1,10 +1,13 @@ # # ChangeLog for ircd-ircdev # -# $Id: ChangeLog,v 1.20 2005/03/09 17:11:56 zolty Exp $ +# $Id: ChangeLog,v 1.21 2005/03/09 18:12:25 zolty Exp $ # # Insert new changes at beginning of the change list. # +2005-03-09 Toni García <zo...@ir...> 1.0.alpha19 + * Fix IPv6 cosmetic bug + 2005-02-21 Toni García <zo...@ir...> 1.0.alpha18 * Fix some IPv6 cosmetic bugs * Fix IPv6 on STATS cosmetic bugs Index: ircd-ircdev/ChangeLog.es diff -u ircd-ircdev/ChangeLog.es:1.20 ircd-ircdev/ChangeLog.es:1.21 --- ircd-ircdev/ChangeLog.es:1.20 Wed Mar 9 09:11:56 2005 +++ ircd-ircdev/ChangeLog.es Wed Mar 9 10:12:29 2005 @@ -1,10 +1,13 @@ # # Log de Cambios para ircd-ircdev # -# $Id: ChangeLog.es,v 1.20 2005/03/09 17:11:56 zolty Exp $ +# $Id: ChangeLog.es,v 1.21 2005/03/09 18:12:29 zolty Exp $ # # Insertar los nuevos cambios al principio de esta lista de cambios. # +2005-03-09 Toni García <zo...@ir...> 1.0.alpha19 + * Fix de bug cosmetico de IPv6 + 2005-02-21 Toni García <zo...@ir...> 1.0.alpha18 * Fix de más bugs cosmeticos IPv6 * Fix bugs cosmeticos IPv6 de STATS I, C, O Index: ircd-ircdev/configure diff -u ircd-ircdev/configure:1.12 ircd-ircdev/configure:1.13 --- ircd-ircdev/configure:1.12 Mon Feb 21 02:19:43 2005 +++ ircd-ircdev/configure Wed Mar 9 10:12:30 2005 @@ -9299,7 +9299,7 @@ if test x"$unet_cv_enable_poll" = xyes; then cat >>confdefs.h <<\_ACEOF -#define USE_POLL +#define USE_POLL 1 _ACEOF ENGINE_C=engine_poll.c @@ -9328,7 +9328,7 @@ if test x"$unet_cv_enable_debug" = xyes; then cat >>confdefs.h <<\_ACEOF -#define DEBUGMODE +#define DEBUGMODE 1 _ACEOF fi @@ -9379,7 +9379,7 @@ if test x"$ac_cv_use_ipv6" != "xno" ; then cat >>confdefs.h <<\_ACEOF -#define IPV6 +#define IPV6 1 _ACEOF fi @@ -9404,7 +9404,7 @@ if test x"$unet_cv_enable_asserts" = xno; then cat >>confdefs.h <<\_ACEOF -#define NDEBUG +#define NDEBUG 1 _ACEOF fi @@ -9513,7 +9513,7 @@ if test x"$unet_cv_enable_inlines" = xyes; then cat >>confdefs.h <<\_ACEOF -#define FORCEINLINE +#define FORCEINLINE 1 _ACEOF fi @@ -9543,7 +9543,7 @@ if test x"$unet_cv_enable_devpoll" != xno; then cat >>confdefs.h <<\_ACEOF -#define USE_DEVPOLL +#define USE_DEVPOLL 1 _ACEOF ENGINE_C="engine_devpoll.c $ENGINE_C" @@ -9574,7 +9574,7 @@ if test x"$unet_cv_enable_kqueue" != xno; then cat >>confdefs.h <<\_ACEOF -#define USE_KQUEUE +#define USE_KQUEUE 1 _ACEOF ENGINE_C="engine_kqueue.c $ENGINE_C" @@ -9651,7 +9651,7 @@ echo "${ECHO_T}no" >&6 cat >>confdefs.h <<\_ACEOF -#define EPOLL_NEED_BODY +#define EPOLL_NEED_BODY 1 _ACEOF fi @@ -9659,7 +9659,7 @@ conftest$ac_exeext conftest.$ac_ext cat >>confdefs.h <<\_ACEOF -#define USE_EPOLL +#define USE_EPOLL 1 _ACEOF ENGINE_C="engine_epoll.c $ENGINE_C" Index: ircd-ircdev/configure.in diff -u ircd-ircdev/configure.in:1.12 ircd-ircdev/configure.in:1.13 --- ircd-ircdev/configure.in:1.12 Tue Feb 15 08:31:49 2005 +++ ircd-ircdev/configure.in Wed Mar 9 10:12:30 2005 @@ -22,7 +22,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl $Id: configure.in,v 1.12 2005/02/15 16:31:49 zolty Exp $ +dnl $Id: configure.in,v 1.13 2005/03/09 18:12:30 zolty Exp $ dnl dnl Make sure we are in the correct directory (someone could have run @@ -253,7 +253,7 @@ AC_MSG_RESULT([$unet_cv_enable_poll]) if test x"$unet_cv_enable_poll" = xyes; then - AC_DEFINE([USE_POLL], , [Specify whether or not to use poll()]) + AC_DEFINE([USE_POLL], 1, [Specify whether or not to use poll()]) ENGINE_C=engine_poll.c else ENGINE_C=engine_select.c @@ -270,7 +270,7 @@ AC_MSG_RESULT([$unet_cv_enable_debug]) if test x"$unet_cv_enable_debug" = xyes; then - AC_DEFINE([DEBUGMODE], , [Enable debugging code]) + AC_DEFINE([DEBUGMODE], 1, [Enable debugging code]) fi dnl Now look for --enable-leak-detect @@ -296,7 +296,7 @@ [ac_cv_use_ipv6=$unet_have_sockaddr_in6]) AC_CACHE_CHECK([whether to use IPv6], [ac_cv_use_ipv6], [ac_cv_use_ipv6=no]) if test x"$ac_cv_use_ipv6" != "xno" ; then - AC_DEFINE([IPV6], , [Enable IPv6 support]) + AC_DEFINE([IPV6], 1, [Enable IPv6 support]) fi dnl And now for --disable-asserts @@ -309,7 +309,7 @@ AC_MSG_RESULT([$unet_cv_enable_asserts]) if test x"$unet_cv_enable_asserts" = xno; then - AC_DEFINE([NDEBUG], , [Disable assertions]) + AC_DEFINE([NDEBUG], 1, [Disable assertions]) fi dnl Check for --enable-symbols @@ -374,7 +374,7 @@ AC_MSG_RESULT([$unet_cv_enable_inlines]) if test x"$unet_cv_enable_inlines" = xyes; then - AC_DEFINE([FORCEINLINE], , [Force inlining for a few critical functions]) + AC_DEFINE([FORCEINLINE], 1, [Force inlining for a few critical functions]) fi dnl --disable-devpoll check... @@ -392,7 +392,7 @@ AC_MSG_RESULT([$unet_cv_enable_devpoll]) if test x"$unet_cv_enable_devpoll" != xno; then - AC_DEFINE([USE_DEVPOLL], , [Define to enable the /dev/poll engine]) + AC_DEFINE([USE_DEVPOLL], 1, [Define to enable the /dev/poll engine]) ENGINE_C="engine_devpoll.c $ENGINE_C" fi @@ -411,7 +411,7 @@ AC_MSG_RESULT([$unet_cv_enable_kqueue]) if test x"$unet_cv_enable_kqueue" != xno; then - AC_DEFINE([USE_KQUEUE], , [Define to enable the kqueue engine]) + AC_DEFINE([USE_KQUEUE], 1, [Define to enable the kqueue engine]) ENGINE_C="engine_kqueue.c $ENGINE_C" fi @@ -436,8 +436,8 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <sys/epoll.h>], [epoll_create(10);])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) - AC_DEFINE([EPOLL_NEED_BODY],,[Define to implement epoll system calls])]) - AC_DEFINE([USE_EPOLL], , [Define to enable the epoll engine]) + AC_DEFINE([EPOLL_NEED_BODY], 1, [Define to implement epoll system calls])]) + AC_DEFINE([USE_EPOLL], 1, [Define to enable the epoll engine]) ENGINE_C="engine_epoll.c $ENGINE_C" fi Index: ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12 diff -u ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.2 ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.3 --- ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12:1.2 Fri May 21 08:39:33 2004 +++ ircd-ircdev/doc/history/Undernet/ChangeLog-u2.10.12 Wed Mar 9 10:12:32 2005 @@ -1,3 +1,1673 @@ +2005-03-08 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * doc/example.conf: Fix comment's description of "whox" privilege. + +2005-02-21 Michael Poole <md...@tr...> + + * 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 <is...@un...> + + * ircd/s_stats.c: Hide the hub IP's. They're kinda important. + +2005-02-20 Perry Lorier <is...@un...> + + * 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 <is...@un...> + + * 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 <is...@un...> + + * 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 <md...@tr...> + + * 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 <NULL> when IP or host + is null. + +2005-02-18 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <string.h> to get + declarations for certain functions. + + * ircd/umkpasswd.c (CurrentTime): Define in case of memdebug. + (sendto_opmask_butone): Likewise. + +2005-01-25 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/engine_kqueue.c: Move <sys/types.h> earlier to fix build on + FreeBSD 5.x (which needs it for <sys/event.h>). + + * 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 <sys/file.h> because + it fails to compile on FreeBSD 5.3. + +2005-01-22 Perry Lorier <is...@un...> + + * ircd/ircd_parser.y: Fix missing ; + +2005-01-19 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * RELEASE.NOTES: Update for 2.10.12. + +2005-01-08 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * ircd/ircd.c (try_connections): Test Connect hold time before + updating it (spotted by Kev). + +2005-01-03 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <kl...@mi...> + + * ircd/s_user.c (is_silenced): is_silenced() would core if sptr + was a server; fixed to skip servers + +2004-12-28 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <arpa/inet.h>. + +2004-12-28 Michael Poole <md...@tr...> + + * ircd/match.c: Remove obsolete #include <arpa/inet.h>. + (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 <arpa/inet.h>, "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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/s_user.c (hide_hostmask): Add a missing "break;" to fix bug + #1087461. + +2004-12-18 Michael Poole <md...@tr...> + + * 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 <kl...@mi...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/m_topic.c (do_settopic): Allow +k services to set topics on + channels they are not joined. + +2004-12-15 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * ircd/s_user.c (hide_hostmask): Preserve user's visibility in a + +D channel when they hide their hostmask. + +2004-12-15 Michael Poole <dm...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <kl...@mi...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/m_server.c (m_server, ms_server): Assign timestamp before + it might be used in exit_new_server(). + +2004-11-07 Michael Poole <md...@tr...> + + * aclocal.m4, config.h.in, configure, ircd/Makefile.in: Regenerate + to reflect the changes since these files' last rebuild. + +2004-11-07 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/s_conf.c (attach_iline): Test resolved host names against + aconf->host, not the (NULL) aconf->name. + +2004-10-19 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <kl...@mi...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/crule.c (crule_via): Simplify the lookup for the directly + connected server name. + +2004-10-16 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/ircd_parser.y: Consistently zero out global variables after + they are used (prevents double frees and other problems). + +2004-10-12 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/random.c: Convert to use ircd_md5 interface and hopefully + keep more internal random state. + +2004-10-05 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * adns, lib/adns: Remove unused adns library. + +2004-10-05 Michael Poole <md...@tr...>, hikari <hi...@un...>, Perry Lorier <is...@un...> + + * 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 <md...@tr...> + + * ircd/s_auth.c (HeaderMessages): Make the compiler, not the + programmer, generate magic numbers. + (AuthIncompleteList): Remove. + (AuthPollList): Remove. + +2004-09-19 Michael Poole <md...@tr...> + + * 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 <hi...@un...> + + * 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 <md...@tr...> + + * 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 <hi...@un...> + + * ircd/Makefile.in: Fixed a missing internal build dependency. + +2004-09-16 Michael Poole <md...@tr...> + + * 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 <ste...@xs...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <out...@ke...> + + * ircd/m_topic.c : Don't allow banned users to set a topic in a + channel. + +2004-09-11 Kevin L Mitchell <kl...@mi...> + + * 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 <md...@tr...> + + * doc/example.conf: Add examples for FEAT_HIS_* features. + +2003-06-08 Matthias Crauwels <ult...@wo...> + [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 <md...@tr...> + + * 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 <kl...@mi...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * include/supported.h (FEATURESVALUES2): Include A,u, in CHANMODES + when oplevels are enabled. + +2004-09-10 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/os_generic.c (sockaddr_from_irc): Fix IPv4 implementation + to use the correct address family and IP offset. + +2004-09-10 Michael Poole <md...@tr...> + + * 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 <is...@un...> + * ircd/parse.c: Don't rate limit /gline messages + +2004-09-10 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/parse.c (msg_tree_parse): Reject commands that contain + non-alphabetic characters. + +2004-09-09 Michael Poole <md...@tr...> + + * config.h.in: Remove duplicated and unused macro definitions. + +2004-08-24 Michael Poole <md...@tr...> + + * ircd/client.h: Properly parenthesize "flag" argument to + FLAGSET_INDEX() and FLAGSET_MASK() macros. + +2004-08-22 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + * 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 <dec...@us...> + + * include/ircd_defs.h: increased SOCKIPLEN to fit ipv6 addresses + +2004-08-19 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + 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 + <netinet/in.h>) 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 <netinet/in.h>) 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 <md...@tr...> + + * ircd/ircd_lexer.l: Change tokenizer to reduce number of lexer + states and be case-insensitive again. + +2004-08-15 Michael Poole <md...@tr...> + + * 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 <stdint.h> 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 <libgen.h> 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 <md...@tr...> + + * 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 <md...@tr...> + + * ircd/ircd_parser.y: Remove redundant semicolon; it causes + errors on some versions of yacc. + +2004-07-21 Michael Poole <md...@tr...> + + * 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 <md...@tr...> + + 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, ir... [truncated message content] |