pax_global_header00006660000000000000000000000064130554174520014520gustar00rootroot0000000000000052 comment=6fa52d140cbf27accb6235fccf63d5380c24372f charybdis-3.5.5/000077500000000000000000000000001305541745200135025ustar00rootroot00000000000000charybdis-3.5.5/.gitignore000066400000000000000000000010251305541745200154700ustar00rootroot00000000000000tags Makefile *~ *.o *.so *.lo *.la *.orig *.log *.sw? .deps .libs autom4te.cache bandb/bandb bandb/bantool config.log config.status include/setup.h libratbox/include/libratbox_config.h libratbox/include/librb-config.h libratbox/include/stamp-h1 libratbox/libratbox.pc libratbox/libtool libratbox/src/version.c libratbox/src/version.c.last scripts/*.tbz2 scripts/*.tgz servlink/servlink src/ircd src/lex.yy.c src/version.c src/version.c.last src/y.tab.h src/y.tab.c ssld/ssld tools/genssl tools/mkpasswd tools/viconf include/serno.h charybdis-3.5.5/.indent.pro000066400000000000000000000015311305541745200155630ustar00rootroot00000000000000/* $Id: .indent.pro 238 2005-09-21 05:26:03Z nenolod $ */ /* copy this file to the source dir then run indent file.c */ --gnu-style /* This is the indent before the brace not inside the block. */ --brace-indent0 /* Indent case: by 2 and braces inside case by 0(then by 0)... */ --case-brace-indentation0 --case-indentation2 --indent-level8 /* Put while() on the brace from do... */ --cuddle-do-while /* Disable an annoying format... */ --no-space-after-function-call-names /* Disable an annoying format... */ --dont-break-procedure-type /* Disable an annoying format... */ --no-space-after-casts --line-length200 /* typedefs */ -T boolean_t -T node_t -T list_t -T tld_t -T kline_t -T EVH -T sra_t -T server_t -T user_t -T channel_t -T chanuser_t -T myuser_t -T mychan_t -T chanacs_t -T CONFIGENTRY -T CONFIGFILE -T Block -T MemBlock -T BlockHeap charybdis-3.5.5/.mailmap000066400000000000000000000021111305541745200151160ustar00rootroot00000000000000Aaron Sethman androsyn Alexander Færøy Alexander F?r?y Brett Greenham B.Greenham Chris Mills TheChrisAM Chris Mills freenode!ChrisAM Elizabeth Jennifer Myers Elly Fong-Jones Elly Jilles Tjoelker jilles Nathan Phillip Brink Stephen Bennett Valeriy Yatsko Valeriy Yatsko Valeriy Yatsko Valeriy Yatsko Valeriy Yatsko William Pitcock William Pitcock nenolod charybdis-3.5.5/.travis.yml000066400000000000000000000025101305541745200156110ustar00rootroot00000000000000# Travis-CI Build for charybdis-3.5 # see travis-ci.org for details language: c # Use the faster container-based infrastructure. sudo: false matrix: include: - os: linux compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['gcc-4.8', 'automake', 'autoconf', 'libtool', 'shtool', 'libsqlite3-dev'] env: COMPILER=gcc-4.8 - os: linux compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['gcc-4.9', 'automake', 'autoconf', 'libtool', 'shtool', 'libsqlite3-dev'] env: COMPILER=gcc-4.9 - os: linux compiler: gcc addons: apt: sources: ['ubuntu-toolchain-r-test'] packages: ['gcc-5', 'automake', 'autoconf', 'libtool', 'shtool', 'libsqlite3-dev'] env: COMPILER=gcc-5 - os: linux compiler: clang addons: apt: sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7'] packages: ['clang-3.7', 'automake', 'autoconf', 'libtool', 'shtool', 'libsqlite3-dev'] env: COMPILER=clang-3.7 - os: osx compiler: clang env: COMPILER=clang LIBTOOLIZE=glibtoolize osx_image: xcode7.3 cache: apt: ccache: script: - CC=$COMPILER ./configure --with-shared-sqlite - make -j4 - make install charybdis-3.5.5/CREDITS000066400000000000000000000031711305541745200145240ustar00rootroot00000000000000Charybdis started as an evolution from ircd-ratbox. Its development is led by a team of dedicated developers who have put a lot of time into the project, and it has seen use on a variety of different network configurations. The Charybdis core team, listed in nick-alphabetical order: amdj, Aaron Jones Elizafox, Elizabeth Myers jilles, Jilles Tjoelker kaniini, William Pitcock mr_flea, Keith Buck Simon, Simon Arlott The following people are also project members, listed in nick-alphabetical order: grawity, Mantas Mikulėnas jdhore, JD Horelick viatsko, Valerii Iatsko The following people have made contributions to the Charybdis releases, in nick-alphabetical order: AndroSyn, Aaron Sethman anfl, Lee Hardy beu, Elfyn McBratney dwr, Valery Yatsko Elizacat, Elizabeth Myers Entrope, Michael Poole gxti, Michael Tharp mniip spb, Stephen Bennett Taros, Brett Greenham ThaPrince, Jon Christopherson twincest, River Tarnell w00t, Robin Burchell Visit the Charybdis website at: http://www.charybdis.io/ Visit us on IRC at: irc.charybdis.io #charybdis charybdis-3.5.5/GIT-Access000066400000000000000000000004401305541745200152450ustar00rootroot00000000000000The Charybdis GIT repository can be checked out using the following command: git clone git://github.com/charybdis-ircd/charybdis.git charybdis-devel Charybdis's GIT repository depot can be browsed over the internet at the following address: http://github.com/charybdis-ircd/charybdis charybdis-3.5.5/INSTALL000066400000000000000000000155301305541745200145370ustar00rootroot00000000000000 Charybdis INSTALL Document $Id: INSTALL 3384 2007-04-03 22:45:04Z jilles $ Copyright (c) 2001 by ircd-hybrid team Copyright (c) 2002-2004 ircd-ratbox development team Copyright (c) 2005-2008 charybdis development team ---------------------------------------------------------------------- HOW TO BUILD As of hybrid-4, the distribution uses GNU autoconf instead of the old Config script. The Makefile has also been updated to include CFLAGS defines for popular modern OSes. 1. Read the NEWS file to find out about the exciting new features in this version. Other good reads are BUGS, doc/ircd.conf.example, and README.FIRST. 2. Run the configure script. It will create include/setup.h and the Makefiles to match your system. In ircd-ratbox, the paths are now handled with the --prefix option to configure, not in config.h. /usr/local/ircd is the default if no prefix is specified. ./configure --prefix="/usr/local/ircd" Note: There are some special optional parameters to the configure script that some admins may wish to use. * --enable-kqueue - Use the superior kqueue(2) system call as opposed to the default poll(2). This is currently only available on FreeBSD 4.1 or higher. * --enable-devpoll - Enable the superior /dev/poll support on Solaris. Linux /dev/poll is broken and will not work with this option. * --enable-epoll - Enable the superior Linux Edge-Triggered Polling system. This is currently only available on 2.5 Linux kernel versions or later. * --enable-openssl - Enable the openssl dependent crypto functions. This will allow CHALLENGE to work and encrypted links. On systems where the configure script can automatically detect OpenSSL, this option is not necessary. If configure cannot find OpenSSL, you must specify a path with this option (--enable-openssl=/path/to/openssl) * --enable-ipv6 - Enable IPv6 support. * --enable-assert[=OPTION] - Enable some debugging code. OPTION is either 'soft' or 'hard' (default: hard). 'hard' should never be used on production servers as it may generate unnecessary cores. 'soft' prevents cores from being generated but still imposes some additional load. * --enable-small-net - Tunes the server for smaller networks by reducing the startup memory footprint. This should really only be used for *small* networks, as this tends to be a performance hit on larger networks. * --with-nicklen=LENGTH - Sets the maximum NICK length. Note that this must be consistent across your entire network. 3. make should build ircd. 4. make install will install the server, modules, and tools in the the prefix specified when configure was run. 5. If you wish to enable the user log, oper log, and failed oper log, issue these commands at the shell prompt (in the prefix directory) $ touch logs/userlog $ touch logs/operlog $ touch logs/foperlog Note: If you use different names in ircd.conf, you must 'touch' the specific names. ---------------------------------------------------------------------- HOW TO GET HELP Send Check or Money Order to... just kidding! You're on your own for support. Try asking other ircd-ratbox admins on EFnet if you can't fix it yourself. If you do fix anything, however, please send context or unified diffs to ircd-ratbox@lists.ratbox.org so the fixes can be incorporated into the next release of ircd-hybrid. If ratbox crashes on you, PLEASE contact ircd-ratbox@lists.ratbox.org ASAP with a backtrace of the core. DISCUSSION: There is a mailing list for discussion of ratbox issues, To subscribe, visit: http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox ---------------------------------------------------------------------- NOTES The best way to get a backtrace of the core is to follow this sequence of instructions: 1. Change to the directory containing the core file 2. Run gdb on the binary and the core file. With an unmodified ircd-ratbox installation, an example command line is below (in the /usr/local/ircd directory) $ gdb bin/ircd ircd.core 3. At the "(gdb)" prompt, enter the command "bt" 4. Save the output of the backtrace command and send it to ircd-ratbox@lists.ratbox.org 5. Be sure to save the ircd binary, the modules, and the core file in a safe place in case the developers need to look deeper than a backtrace provides. ---------------------------------------------------------------------- OPENSSL NOTES Older FreeBSD machines sometimes have the obsolete ports version of OpenSSL libcrypto in /usr/local/lib. When configure is used with --enable-openssl, and libintl is detected in /usr/local/lib, the /usr/local/lib directory will be searched BEFORE the system /usr/lib for libraries by the linker. The linker may try to link to the old /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some older versions may cause error messages similar to the following: gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt -lcrypto -lfl rsa.o: In function `get_randomness': /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to `RAND_pseudo_bytes' /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings' /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref' *** Error code 1 If this is the case, you may need to rerun configure without the --enable-openssl option, manually edit src/Makefile and modules/Makefile to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the old OpenSSL from /usr/local, and recompile all applications that use libcrypto to use the system one. charybdis-3.5.5/LICENSE000066400000000000000000000432071305541745200145150ustar00rootroot00000000000000# $Id: LICENSE 6 2005-09-10 01:02:21Z nenolod $ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy 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 of the License, 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. charybdis-3.5.5/Makefile.in000066400000000000000000000110141305541745200155440ustar00rootroot00000000000000#************************************************************************ #* IRC - Internet Relay Chat, Makefile #* Copyright (C) 1990, Jarkko Oikarinen #* #* 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, USA. #* #* $Id: Makefile.in 1347 2006-05-17 14:49:13Z nenolod $ #*/ RM=@RM@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ mandir = @mandir@ libdir = @libdir@ pkglibdir = @pkglibdir@ moduledir = @moduledir@ helpdir = @helpdir@ sysconfdir = @sysconfdir@ logdir = @logdir@ rundir = @rundir@ pkgrundir = @pkgrundir@ localstatedir = @localstatedir@ pkglocalstatedir= @pkglocalstatedir@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ # Default CFLAGS # CFLAGS = -g -O2 -DNDEBUG CFLAGS = @CFLAGS@ # Developers CFLAGS #CFLAGS= -g -O2 -Wunused -Wall -ggdb -pedantic -Wshadow -Wmissing-declarations # Default make flags - you may want to uncomment this on a multicpu machine #MFLAGS = -j 4 # # For developers #CFLAGS= -g -O2 -Wall # You may need to define the FD_SETSIZE in order to overrule # the system one. #CFLAGS= -DNDEBUG -g -O2 -D"FD_SETSIZE=1024" SHELL=/bin/sh # `extensions' must be after `modules' for proper creation of $(moduledir). SUBDIRS=libratbox modules extensions src tools ssld bandb doc help CLEANDIRS = ${SUBDIRS} RSA_FILES=rsa_respond/README rsa_respond/respond.c rsa_respond/Makefile all: build autoconf: configure.ac autoconf autoheader ${RM} -f config.cache build: -@if [ ! -f include/setup.h ] ; then \ echo "Hmm...doesn't look like you've run configure..."; \ echo "Doing so now."; \ sh configure; \ fi @if [ -d .git ] ; then \ revh=`git log -1 --date=short --pretty=format:%cd_%h 2>/dev/null | sed -e s/-//g -e s/_/-/`;\ [ -z "$$revh" ] || echo '#define SERNO "'$$revh'"' >include/serno.h ; \ elif [ -d .hg ] ; then \ revh=`hg parents --template '{date|shortdate}_{node|short}' 2>/dev/null | sed -e s/-//g -e s/_/-/`;\ [ -z "$$revh" ] || echo '#define SERNO "'$$revh'"' >include/serno.h ; \ fi @[ -f include/serno.h ] || echo '#define SERNO "unknown"' >include/serno.h @for i in $(SUBDIRS); do \ echo "build ==> $$i";\ cd $$i;\ ${MAKE} || exit; cd ..;\ done clean: ${RM} -f *~ core rsa_respond.tar rsa_respond.tar.gz @for i in $(CLEANDIRS); do \ echo "clean ==> $$i";\ cd $$i;\ ${MAKE} clean; cd ..;\ done -@if [ -f include/setup.h ] ; then \ echo "To really restart installation, make distclean" ; \ fi distclean: ${RM} -f Makefile *~ *.rej *.orig core ircd.core ${RM} -f config.status config.cache config.log cd include; ${RM} -f setup.h *~ *.rej *.orig ; cd .. @for i in $(CLEANDIRS); do \ echo "distclean ==> $$i";\ cd $$i;\ ${MAKE} distclean; cd ..;\ done depend: @[ -f include/serno.h ] || echo '#define SERNO "unknown"' >include/serno.h @for i in $(SUBDIRS); do \ echo "depend ==> $$i";\ cd $$i;\ ${MAKE} depend; cd ..;\ done lint: @for i in $(SUBDIRS); do \ echo "lint ==> $$i";\ cd $$i;\ ${MAKE} lint; cd ..;\ done install-mkdirs: @echo "ircd: setting up ircd directory structure" -@if test ! -d $(DESTDIR)$(prefix); then \ mkdir -p -m 755 $(DESTDIR)$(prefix); \ fi -@if test ! -d $(DESTDIR)$(bindir); then \ mkdir -p -m 755 $(DESTDIR)$(bindir); \ fi -@if test ! -d $(DESTDIR)$(sysconfdir); then \ mkdir -p -m 755 $(DESTDIR)$(sysconfdir); \ fi -@if test ! -d $(DESTDIR)$(mandir); then \ mkdir -p -m 755 $(DESTDIR)$(mandir); \ fi -@if test ! -d $(DESTDIR)$(logdir); then \ mkdir -p -m 755 $(DESTDIR)$(logdir); \ fi -@if test ! -d '$(DESTDIR)$(pkgrundir)'; then \ mkdir -p -m 755 '$(DESTDIR)$(pkgrundir)'; \ fi -@if test ! -d '$(DESTDIR)$(pkglocalstatedir)'; then \ mkdir -p -m 755 '$(DESTDIR)$(pkglocalstatedir)'; \ fi install: install-mkdirs all @for i in $(SUBDIRS); do \ echo "install ==> $$i";\ cd $$i;\ ${MAKE} install; \ cd ..; \ done rsa_respond: @cd tools;\ echo "Creating rsa_respond.tar.gz";\ tar cf ../rsa_respond.tar $(RSA_FILES);\ cd ..;\ gzip rsa_respond.tar charybdis-3.5.5/NEWS.md000066400000000000000000001063361305541745200146110ustar00rootroot00000000000000# News This is charybdis 3.5.3, Copyright (c) 2005-2016 Charybdis team. See LICENSE for licensing details (GPL v2). ## charybdis-3.5.5 This is a minor bugfix release only ### misc - GNUTLS: Initialise a variable before trying to load server certificates - GNUTLS: Log why certificate fingerprint generation fails - GNUTLS: Avoid using new tokens in the default priority string ## charybdis-3.5.4 ### security - Disable TLSv1.0 in all backends - Fix possible NULL dereference in mkpasswd - Backport SubjectPublicKeyInfo certificate digest methods from version 4 - Backport REHASH SSLD functionality from version 4 - This allows new ssld processes to be started (to inherit a new or upgraded TLS backend library) without dropping any existing clients or active server links ### misc - Various memory leak fixes in newconf, sslproc, zlib - Fix crash bug when performing /whois on someone half-way through a CHALLENGE - Fix crash bug when performing remote MODRESTART command - Allow extban matching presence in secret (+s) channels ## charybdis-3.5.3 ### security - incorporate all relevant security patches for charybdis through 6th September 2016: - fix issue allowing EXTERNAL authentications to be spoofed using a certificate not actually held by the authenticating user ### misc - mbedtls TLS backend improvements from charybdis 4 and 5: - add support for configurable ciphersuites - disable legacy (SSLv2) renegotiation support if possible - disable session tickets if possible - general robustness improvements - gnutls TLS backend improvements from charybdis 4: - make certfp support more reliable on newer gnutls versions - avoid possible null dereference when constructing ciphersuites - openssl TLS backend improvements from charybdis 4: - avoid a possible use-after-free issue when newer openssl versions cannot load keypairs in a rehash - improve compatibility with libressl - more robustly load DH parameters files - daemonization improvements from charybdis 4 ## charybdis-3.5.2 ### user - Allow IRCv3.1 STARTTLS to work with other SSL backends besides OpenSSL. - Fix an edge case regression involving channel ban cache that was introduced in 3.5.0. ### misc - Ensure ssld does not crash when DH parameters are not provided. - mbedtls TLS backend improvements from charybdis 4: - add support for CertFP - provide personalization data for the PRNG - fix library linking order - openssl TLS backend improvements from charybdis 4: - do not manually initialise openssl when running with OpenSSL 1.1.0 or later - support ECDHE on more than one curve on OpenSSL 1.0.2 and above - fix DH parameters memory leak - free the old TLS context before constructing a new one (#186) ## charybdis-3.5.1 ### misc - Backport various ssld IPC improvements from master. ## charybdis-3.5.0 ### server protocol - Fix propagation of ip_cloaking hostname changes (only when setting or unsetting the umode after connection). - Fix a remote-triggerable crash triggered by the CAPAB parsing code. - As per the TS6 spec, require QS and ENCAP capabilities. - Require EX and IE capabilities (+e and +I cmodes). - Check that UIDs start with the server's SID. ### user - Allow mode queries on mlocked modes. In particular, allow /mode #channel f to query the forward channel even if +f is mlocked. - Strip colours from channel topics in /list. - If umode +D or +g are oper-only, don't advertise them in 005. - If MONITOR is not enabled, don't advertise it in 005. - Add starttls as per ircv3. - Abort a whowas listing when it would exceed SendQ, which would previously disconnect the user. - Reject nicks with '~' in them, rather than truncating at the '~'. - Remove CHARSET=ascii from ISUPPORT - Use the normal rules for IP visibility in /whowas. - Cmode +c now strips '\x0F' (^O, formatting off), fixing weird rendering in some clients that internally use mIRC formatting such as highlighted messages in HexChat. - Indicate join failure because of the chm_sslonly extension (cmode +S) using the same 480 numeric as ircd-ratbox. - Do not allow SASL authentication when the configured SASL agent is unavailable. - Automatically add unidentified users to the ACCEPT list when a user is set +R, as we do when the user is set +g. - Implement IRCv3.2 capabilities: - cap-notify - chghost - userhost-in-names - Implement the $&, $| and $m extban types: - $& combines 1 or more child extbans as an AND expression - $| combines 1 or more child extbans as an OR expression - $m provides normal hostmask matching as an extban for the above - Do not allow STARTTLS if a connection is already using TLS. - Display an operator's privilege set in WHOIS. - The $o extban now matches against privilege set names as well as individual privileges. Privilege set names are preferred over individual privileges. ### oper - Fix a crash with /testline. - Complain to opers if a server that isn't a service tries to SU/RSFNC/NICKDELAY/SVSLOGIN. - Turn off umode +p (override) when deopering. - Make listener error messages (e.g. port already in use) visible by default instead of only on snomask +d and in ioerrorlog. - Remove snotes on +r about GET/PUT/POST commands ("HTTP Proxy disconnected"). - Add DNSBL snotes on snomask +r. ### config - Add hide_uncommon_channels extension to hide uncommon channel memberships in WHOIS, like in ircd-seven. - Add chm_nonotice extension, cmode +T to reject notices. - Add restrict-unauthenticated extension, prevents unauthenticated users from doing anything as channel operator. - Add no_kill_services extension, prevents local opers from killing services. - Allow matching specific replies of DNSBLs, using the new matches option. - Remove blowfish crypt since it has the BSD advertising clause. - Fix SHA256 ($5$) crypt. - Make the channel::channel_target_change option actually work (it used to be always on). - SSL/TLS listeners now have defer_accept unconditionally enabled on them. - The method used for certificate fingerprints (CertFP) is now configurable. SHA1, SHA256 and SHA512 are available options. - The minimum user threshold for channels in default /list output is now configurable. ### misc - Work around timerfd/signalfd brokenness on OpenVZ. - Fix a compilation issue in libratbox/src/sigio.c with recent glibc. - Extend documentation slightly. - Remove a BSD advertising clause that permission was granted to remove. - Add support for hooking PRIVMSG/NOTICE. - Reenable and fix the GnuTLS support. - Add mbedTLS backend for SSL/TLS. - Remove EGD support. - Try other DNS servers if errors or corrupt replies are encountered. - Rename genssl.sh script to genssl. - Choose more secure SSL/TLS algorithms. - Fix reconnecting with SSL/TLS with some clients such as ChatZilla (see https://bugzilla.mozilla.org/show_bug.cgi?id=858394#c34 for details.) - Improve error messages about the configuration file. - Fix a crash when compiled with recent clang on 32-bit systems. - Fix various memory leaks in rehash. - Fix various code quality issues. - Add --with-shared-sqlite to allow distribution packages to link to a shared sqlite library. Using this is not recommended for on-server compilation. - ISUPPORT tokens which are actually provided by modules have been moved to their respective modules. ## charybdis-3.4.0 ### server protocol - Allow overriding opers (with the new extension) to op themselves on channels. - Allow RSFNC to change a nickname's capitalization only. - Add channel ban forwarding $ much like ircd-seven. Local use of this is controlled by the channel::use_forward config option. - Add ENCAP TGINFO to propagate IP addresses that exceeded target change limits (these get a lower limit when they reconnect). ### user - Consider bogus CTCP ACTION messages (without action text) CTCP (for cmode +C). - Send ERR_TOOMANYCHANNELS for each channel join that fails due to channel limits. - Add account-notify client capability to notify clients about logins and logouts of users in common channels. See doc/account-notify.txt. - Add extended-join client capability to add account name and ircname to JOIN. - Add topic TS and channel TS constraints for /LIST (T<, T>, C<, C> parameters as in some other servers). - Disallow wildcarded nicknames in "hunted" parameters like /stats and /motd. - Disallow mIRC italics in channel names when disable_fake_channels. - Add AUTHENTICATE EXTERNAL support, allows SASL authentication using a certificate fingerprint. - Allow channel::kick_on_split_riding to protect channels with mlocked keys. - The NICKLEN token in 005 now only specifies the maximum usable nick length. The MAXNICKLEN token specifies the maximum nick length any user can have. - Disallow $ in usernames as this may cause problems with ban forwarding. - Add an error message (numeric 743) if a ban mask is invalid. - Extract the underlying IPv4 address from 6to4 and Teredo IPv6 addresses. Show it in a remote /whois and check channel bans, quiets, D:lines and K:lines against it. Note that ban exceptions and auth{} blocks are not checked. - Allow normal users to perform /privs on themselves, showing some privileges from the auth{} block. - Add away-notify client capability, see doc/away-notify.txt. - Add rate limit for high-bandwidth commands, in particular /who . - Rate limit /away to help avoid flooding via away-notify. - Apply colour stripping (cmode +c) and CTCP checking (cmode +C) to messages to @/+ channel as well. - Channel mode +c (and other places that disallow colour codes) now also strip ASCII 4 (a different kind of colour code). ### oper - Add operspy for /list. - Add a server notice to snomask +b if a user exceeds target change limits. - Add missing server notice for kills from RSFNC and SVSLOGIN. - Add /stats C to show information about dynamically loaded server capabilities. ### config - Add support for linking using SSL certificate fingerprints as the link credential rather than the traditional password pair. - Add m_roleplay extension, provides various roleplay commands. - Add override extension, umode +p oper override for opers with oper:override permission, with accountability notices and timeout. Note that opers cannot op themselves if there are older servers on the network. - Add channel::disable_local_channels config option. - Add support for IPv6 DNSBLs. A new "type" option specifies the IP version(s) for which each DNSBL should be checked. - Make flood control settings configurable by those who know exactly what they are doing. - Add serverinfo::nicklen config option to limit the nick length for local users. Different values of this option do not break the server protocol. - Add extb_usermode extension, $m:+- extban matching against umodes. - Extend extb_oper extension to allow matching against oper privileges. - Add m_remove extension, /remove command as in ircd-seven. - Add general::away_interval to allow configuring /away rate limiting. - Add listener::defer_accept to delay accepting a connection until the client sends data. This depends on kernel support. It may break BOPM checking. ### misc - In mkpasswd, default to SHA512-based crypt instead of MD5-based crypt. - Add --with-custom-branding and --with-custom-version configure options to help forks/patchsets distinguish themselves. - Change version control from Mercurial to GIT. - Ensure SIGHUP and SIGINT keep working after a SIGINT restart. - Add --enable-fhs-paths configure option to allow installing into a more FHS-like hierarchy. - Remove broken GnuTLS support. SSL/TLS is now only provided using OpenSSL. ## charybdis-3.3.0 ### server protocol - Add new BAN command, for propagated network-wide bans (K/X:lines and RESVs). These will burst to new servers as they are introduced, and will stay in sync across the whole network (new BAN capab). - Add new MLOCK command, to implement ircd-side channel mode locks. This allows services to send out a list of mode letters for a given channel which may not be changed, preventing mode fights between services and client bots (new MLOCK capab). ### user - New RPL_QUIETLIST(728) and RPL_ENDOFQUIETLIST(729) numerics are used for the quiet (+q) list, instead of overloading the ban list numerics. - Users may no longer change the topic of a -t channel if they cannot send to it. - Add help for EXTBAN, describing the syntax of extended bans in general, as well as the most common types. - Changed AWAY messages are now propagated to other servers. Previously, AWAY was only propagated when the user was not already away. - Channel mode +c (and other places that disallow colour codes) now also strip ASCII 29 (mIRC 7 italics). - Add auto-accept for user mode +g (callerid): Messaging a user while set +g will automatically add them to your accept list. - Add target change for channels. It applies to unopped, unvoiced and unopered users. This has the effect of stopping spambots which join, message and part many channels at a time. - Show RPL_WHOISLOGGEDIN in /whowas as well as in /whois entries. This adds at most an additional 0.5MB of memory usage. ### config - Add general::use_propagated_bans to switch the new BAN system on or off. - Add general::default_ident_timeout, to control the timeout for identd (auth) connections. - Add channel::channel_target_change to switch the new channel target change limits on or off. - Fix class::number_per_ident so that it also applies to connections without identd. - Change the example sslport option to 6697, which is more standard than 9999. ### misc - The custom channel mode API has been rewritten, allowing these modules to work correctly when reloaded, or loaded from the config file. - The EFNet RBL is now recommended, instead of DroneBL. - Remove the unsupported modules directory. - Numerous bug fixes and code cleanups. - In mkpasswd, default to MD5 crypt instead of insecure DES. ## charybdis-3.2.0 ### server protocol - Apply +z to messages blocked by +b and +q as well. (new EOPMOD capab) - Add new topic command ETB, allowing services to set topic+setter+ts always. (new EOPMOD capab) - The slash ('/') character is now allowed in spoofs. ### user - Add can_kick hook, based on the ircd-seven one. - Add cmode +C (no CTCP) from ircd-seven. - Flood checking has been reworked. - Fix op-moderate (cmode +z) for channel names with '@'. - Add CERTFP support, allowing users to connect with an SSL client certificate and propagating the certificate fingerprint to other servers. Services packages can use this to identify users based on client certificates. - Maintain the list of recently used targets (for the target change anti-spam system) in most-recently-used order, overwriting the least recently used target with a new one. This should be friendlier to users without giving spambots anything. - Do not require target change slots for replying to the last five users to send a private message, notice or invite. - Apply target change restrictions to /invite. - Apply umode +g/+R restrictions to /invite, with the difference that instead of sending " is messaging you" the invite is let through since that is just as noisy. ### oper - Add /rehash throttles to clear throttling. - Send all server notices resulting from a remote /rehash to the oper. - '\s' for space is now part of the matching, not a substitution at xline time, fixing various issues with it. - Display o:line "nickname" in oper-up server notices. - Fix sendq exceeded snotes for servers. - SCAN UMODES: default list-max to 500, like a global WHO. - Ignore directory names in MODRELOAD to avoid crashing if it is a core module and the path is incorrect. - Tweaks to spambot checks. ### config - Add channel::only_ascii_channels config option to restrict channel names to printable ascii only. - Add channel::resv_forcepart, forcibly parts local users on channel RESV, default enabled. ### misc - New mkpasswd from ircd-ratbox. - Check more system calls for errors and handle the errors. - Various ssld/libratbox bugfixes from ircd-ratbox. [some MERGED] - Fix fd passing on FreeBSD/amd64 and possibly Solaris/sparc. [MERGED] - Various documentation improvements. [some MERGED] - Fix some crash issues. [MERGED] - Add bandb from ircd-ratbox, which stores permanent dlines/klines/xlines/resvs in an sqlite database instead of a flatfile and does the storage in a helper process. Use bin/bantool -i to import your old bans into the database. ## charybdis-3.1.0 - Remove TS5 support. No TS5 servers are permitted in a network with charybdis 3.1.0 or newer, except jupes. - Replace oper flags by privilege sets (privsets). This adds an extra level of indirection between oper flags and operator blocks. /stats O (capital O) shows the configured privsets. - Update libratbox and ssld from upstream and use it better. - Add auth_user to auth{}. This allows specifying a username:password instead of just a password in PASS, so that a fixed user@host is not necessary for a specific auth{} block. - Add need_ssl to auth{} and operator{}. This makes these blocks reject the user if not connected via SSL. - Allow modules to provide simple channel modes without parameter. - Remove restrictions on CNAME in the resolver. - Make the resolver remember nonresponsive nameservers. - Move nick collision notices from +s to +k. - Add additional information to various server notices about server connections. - Show throttle information in /stats t. - Show rejectcache and throttle information in /testline. - Show oper reason in /testline. - Allow opers to see other users' umodes with /mode . - SCAN UMODES GLOBAL NO-LIST MASK is no longer an operspy command. - Also apply floodcount to messages to remote clients (except services). - Remove user@server messages to local users. Sending such messages to remote servers is still possible, for securely messaging pseudoservers whether service{}'ed or not. The special oper-only syntax opers@server remains as well. - Allow /list on a named +p channel. A full /list already included +p channels. - Add operspy /topic. - For remote rehashes, send error messages to the requesting oper as well. - Disable autoconnect for a server with excessive TS delta. - Disallow invites to juped channels. - Warn about certain duplicate and redundant auth blocks. - Make PRIVMSG/NOTICE behave as CPRIVMSG/CNOTICE automatically if possible. - Allow +z messages from outside if a channel is -n. - Allow coloured part reasons in -c channels. - Add ircu-like WHOX support. This allows requesting specific information in /who and allows obtaining services login name for all users in a channel. XChat/Conspire use WHOX to update away status more efficiently. - Allow opers and shide_exempt users to see hopcounts even if flatten_links is on. - Rework ip_cloaking. - Add the IP address to userlog, as in ircd-ratbox 3.0. - Split cidr_bitlen into cidr_ipv4_bitlen and cidr_ipv6_bitlen. - Allow using ziplinks with SSL connections. This is not as efficient as using OpenSSL's built in compression, but also works with older versions of OpenSSL. - Fix an off by one error with zipstats processing, which could overwrite a variable with NULL causing a crash on some systems. - Document some extensions in charybdis-oper-guide. - Add more server protocol documentation. - Add m_sendbans extension, SENDBANS command to propagate xlines and resvs manually. - Add chm_sslonly extension, cmode +S for SSL/TLS only channels. - Add chm_operonly extension, cmode +O for IRCop only channels. - Add chm_adminonly extension, cmode +A for server admin only channels. - Various code cleanups. ## charybdis-3.0.4 - Fix a crash on certain recent versions of Ubuntu. - Allow 127.x.y.z for DNSBL replies instead of just 127.0.0.x. - Various documentation improvements. ## charybdis-3.0.3 - Fix IPv6 D:lines - Fix rejectcache and unknown_count. - Fix genssl.sh. - Fix ident for SSL/TLS connections. - Fix SSL/TLS bugs for servers with more than about 100 connections. - Small bugfixes. ## charybdis-3.0.2 - Improve OLIST extension error messages. - Improve some kline error checking. - Avoid timing out clients if we are still waiting for a DNSBL lookup. - Fix resolver hangs with epoll. - Fix compilation without zlib. ## charybdis-3.0.1 - Fix occasional hung clients with kqueue. - Fix a rare ssld crash. - Fix a bug that could cause incorrect connect failure reasons to be reported. - Make the IRCd work on MacOS X again. ## charybdis-3.0.0 - Port the IRCd to libratbox, which has improved our portability and allows us to reuse low-level code instead of maintaining our own. - Change configuration of maximum number of clients to ircd-ratbox 3 way. - Add adminwall from ircd-ratbox, as an extension. - Add client and server-to-server SSL, read example.conf for setup. - Replace servlink with ssld (also for ziplinks). - A new extban, $z, has been added for ssl users (extensions/extb_ssl.so). - A new compatibility channel mode, +R, has been added, it sets +q/-q $~a (extensions/chm_operonly_compat.so). This is similar to the +R seen in ircd-seven. - A new compatibility channel mode, +S, has been added, it sets +b/-b $~z (extensions/chm_sslonly_compat.so). - A new compatibility channel mode, +O, has been added, it sets +iI/-iI $o (extensions/chm_operonly_compat.so). - Add remote D:lines. Note that these are not enabled by default. - Remove EFnet-style G:lines. Noone appears to use these. - Remove idle time checking (auto disconnecting users idle too long). - Display a notice to clients when the IRCd is shut down using SIGTERM. - Some error messages have been clarified to enhance usability. - Close the link to servers that send invalid nicks (e.g. nicklen mismatches). Formerly the users were killed from the network. - Enable topicburst by default in connect{}. - Fix a potential desync which can happen with oper override. - Remove "deopped" flag (TS5 legacy). - Use 127.0.0.1 as nameserver if none can be found in /etc/resolv.conf. - Only accept 127.0.0.x as a dnsbl listing. - Change cloaking module (same as 2.2.1, different from 2.2.0). - Make some more server notices about failed remote connect attempts network wide. - Make some server notices about flooders and TS delta network wide. - Remove redundant " had been connected for