diff --git a/.CHANGES.NEW b/.CHANGES.NEW index b645c13c3..5d9155bcc 100644 --- a/.CHANGES.NEW +++ b/.CHANGES.NEW @@ -7,7 +7,7 @@ \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_| Configuration Program - for Unreal3.4-dev + for Unreal3.4-alpha0 This program will help you to compile your IRC server, and ask you questions regarding the compile-time settings of it during the process. diff --git a/.RELEASE.NOTES b/.RELEASE.NOTES index 237109abb..c46f88851 100644 --- a/.RELEASE.NOTES +++ b/.RELEASE.NOTES @@ -1,52 +1,91 @@ -Unreal3.4-dev Release Notes -=========================== +Unreal3.4-alpha0 Release Notes +=============================== + +This will be the first alpha version of UnrealIRCd 3.4. +Some important remarks: +* This version is NOT STABLE and since this is the very first alpha release + it will probably CRASH or hang from time to time. Security issues are also + more likely in this 3.4-alpha series. + DO NOT EVEN THINK ABOUT USING THIS ON ANY SERIOUS (PRODUCTION) SERVER!! + Use this alpha version to play around with the latest features and + improvements, test them, and give us feedback(!) on bugs.unrealircd.org + and/or on the forums. +* Linking of 3.2 <-> 3.4 is supported. However, because this is such an + early alpha version we can make no guarantees about the impact of this 3.4 + server on the rest of the net. At this point WE DO NOT RECOMMEND LINKING + 3.4-alpha* to a 3.2 PRODUCTION/LIVE NETWORK. +* Things are likely to change between alpha versions. Including configuration, + commands, etc. You should not make any assumptions as long as 3.4 is in + alpha stage. +* If you are moving from 3.2.x then be sure to read 'CONFIGURATION CHANGES'! ==[ GENERAL INFORMATION ]== -- If you are upgrading on *NIX, then make sure you run 'make clean' and - './Config' first, before running 'make'. -- The official UnrealIRCd documentation is doc/unreal32docs.html - online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html - FAQ: http://www.vulnscan.org/UnrealIRCd/faq/ +* The official UnrealIRCd documentation for 3.4 is currently not up to date. + Translations have not been updated at all, don't use them for now! + The online version is available at www.unrealircd.com/unreal32docs.html + FAQ: http://www.unrealircd.com/faq Read them before asking for help. -- Report bugs at http://bugs.unrealircd.org/ -- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a +* Report bugs at http://bugs.unrealircd.org/ +* The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a SUMMARY of the changes in this release. There have been many changes in total, for the full list of changes see the Changelog. +==[ CONFIGURATION CHANGES ]== +* In your me { } block, change your "numeric" to "sid", and change the + value as follows: pick a 3 character Server ID that starts with a digit. + For example: sid "001"; +* For loadmodule lines you can (and should) now use the shorter syntax. + Instead of: + loadmodule "src/modules/cloaks.so"; + You should now use: + loadmodule "modules/cloak"; + UnrealIRCd will figure out the exact name of the module. Doesn't matter + if you are on Windows or *NIX, and if your modules are in src/modules/ or + in modules/. +* The commands module is gone and replaced with many individual modules: + 1) Remove the loadmodule line for commands.so + 2) Add the following line to your unrealircd.conf: + include "modules.conf"; + ==[ NEW ]== -- Entirely rewritten I/O and event loop. This allows the IRCd to scale to - tens of thousands of clients on a single process using kernel-evented I/O +* Entirely rewritten I/O and event loop. This allows the IRCd to scale + more easily to tens of thousands of clients by using kernel-evented I/O mechanisms such as epoll and kqueue. -- Full command modularity is now provided by default. Each command is it's - own module and all of them are loaded in the default config. See modules.conf. -- The local nickname length can be modified without recompiling the IRCd, the - compiled limit is displayed as MAXNICKLEN, per IRCv3 group discussions. -- Memory pooling has been added to improve memory allocation efficiency on - 'hot' codepaths. +* Memory pooling has been added to improve memory allocation efficiency + and performance. +* The local nickname length can be modified without recompiling the IRCd ==[ CHANGED ]== -- Numerics have been removed. You will need to remove the numeric setting - from me {} in unrealircd.conf. Instead, proper SID and UIDs are implemented. - See me::sid. +* Numerics have been removed. Instead we now use SIDs (Server ID's) and + UIDs (User ID's). SIDs work very similar to server numerics and UIDs + help us to fix a number of lag-related race conditions / bugs. +* The module commands.so / commands.dll has been removed. All commands + (those that are modular) are now in their own module. +* We are in the process of moving channel and user modes to individual + modules. All usual modes are included in modules.conf by default but + you can decide not to load some of them, simply by commenting them out. + Not only does this provide more customizability, it also makes it much + easier for developers to look at all the code for a particular feature. ==[ MAJOR BUGS FIXED ]== -- None? +* None? ==[ MINOR BUGS FIXED ]== -- None? +* None? ==[ REMOVED / DROPPED ]== -- Numeric server IDs, see above. -- PROTOCTL TOKEN and SJB64 are no longer implemented. -- Ziplinks -- use the built-in compression of TLS/SSL instead. +* Numeric server IDs, see above. +* PROTOCTL TOKEN and SJB64 are no longer implemented. +* Ziplinks have been removed. We recommend to use SSL/TLS for all server + connections. SSL/TSL already includes compression (when available). ==[ KNOWN ISSUES ]== -- Regexes: Be careful with backreferences (\1, etc), certain regexes can +* Regexes: Be careful with backreferences (\1, etc), certain regexes can slow the IRCd down considerably and even bring it to a near-halt. In the spamfilter user target it's usually safe though. Slow spamfilter detection can help prevent the slowdown/freeze, but might not work in worst-case scenario's. -- Regexes: Possessive quantifiers such as, for example, "++" (not to be +* Regexes: Possessive quantifiers such as, for example, "++" (not to be confused with "+") are not safe to use, they can easily freeze the IRCd. ==[ ADDITIONAL INFO ]== diff --git a/.hgignore b/.hgignore index f76b67da7..9ba1201f8 100644 --- a/.hgignore +++ b/.hgignore @@ -14,6 +14,8 @@ syntax: regexp # autotools ^config\.(status|log)$ +^autom4te.cache +^aclocal\.m4$ # not quite autotools ^config\.settings$ diff --git a/Makefile.in b/Makefile.in index abbb00051..8e9334681 100644 --- a/Makefile.in +++ b/Makefile.in @@ -20,7 +20,7 @@ #*/ CC=@CC@ -INCLUDEDIR=../include +INCLUDEDIR=@UNRLINCDIR@ NETWORKSDIR= FROMDOS=/home/cmunk/bin/4dos @@ -218,7 +218,7 @@ install: all $(INSTALL) -m 0700 -d $(IRCDDIR)/aliases $(INSTALL) -m 0600 aliases/*.conf $(IRCDDIR)/aliases $(INSTALL) -m 0600 doc/example.conf $(IRCDDIR)/unrealircd.conf - $(INSTALL) -m 0600 spamfilter.conf dccallow.conf $(IRCDDIR) + $(INSTALL) -m 0600 spamfilter.conf dccallow.conf modules.conf $(IRCDDIR) $(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR) $(INSTALL) -m 0700 unreal $(IRCDDIR) $(INSTALL) -m 0700 -d $(IRCDDIR)/modules diff --git a/Unreal.nfo b/Unreal.nfo index 647d12f2b..3c053451a 100644 --- a/Unreal.nfo +++ b/Unreal.nfo @@ -1,5 +1,5 @@ =============================================== -= UnrealIRCd v3.2.4-dev1 = += UnrealIRCd v3.4-alpha0 = =============================================== This release was brought to you by: @@ -10,7 +10,6 @@ Coders: ======== * binki - * nenolod Contributors: ============= @@ -20,6 +19,7 @@ ================ * Stskeeps * codemastr + * nenolod * Many more.. Internet Presence: diff --git a/configure b/configure index 828e622b5..850b9f21a 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unrealircd 3.4-dev. +# Generated by GNU Autoconf 2.69 for unrealircd 3.4-alpha0. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unrealircd' PACKAGE_TARNAME='unrealircd' -PACKAGE_VERSION='3.4-dev' -PACKAGE_STRING='unrealircd 3.4-dev' +PACKAGE_VERSION='3.4-alpha0' +PACKAGE_STRING='unrealircd 3.4-alpha0' PACKAGE_BUGREPORT='http://bugs.unrealircd.org/' PACKAGE_URL='http://unrealircd.org/' @@ -624,6 +624,7 @@ ac_includes_default="\ ac_subst_vars='LTLIBOBJS LIBOBJS +UNRLINCDIR URL CARES_LIBS CARES_CFLAGS @@ -1278,7 +1279,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unrealircd 3.4-dev to adapt to many kinds of systems. +\`configure' configures unrealircd 3.4-alpha0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1339,7 +1340,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unrealircd 3.4-dev:";; + short | recursive ) echo "Configuration of unrealircd 3.4-alpha0:";; esac cat <<\_ACEOF @@ -1472,7 +1473,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unrealircd configure 3.4-dev +unrealircd configure 3.4-alpha0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2078,7 +2079,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unrealircd $as_me 3.4-dev, which was +It was created by unrealircd $as_me 3.4-alpha0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3327,6 +3328,10 @@ fi fi +case "`$CC -v --help 2>&1`" in + *-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;; +esac + case "`$CC -v --help 2>&1`" in *-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;; esac @@ -7073,7 +7078,10 @@ rm -f core conftest.err conftest.$ac_objext \ fi -ac_config_files="$ac_config_files Makefile src/modules/Makefile unreal ircdcron/ircdchk ircdcron/ircd.cron" +UNRLINCDIR="`pwd`/include" + + +ac_config_files="$ac_config_files Makefile src/modules/Makefile src/modules/chanmodes/Makefile src/modules/usermodes/Makefile unreal ircdcron/ircdchk ircdcron/ircd.cron" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -7581,7 +7589,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unrealircd $as_me 3.4-dev, which was +This file was extended by unrealircd $as_me 3.4-alpha0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7644,7 +7652,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unrealircd config.status 3.4-dev +unrealircd config.status 3.4-alpha0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -7768,6 +7776,8 @@ do "include/setup.h") CONFIG_HEADERS="$CONFIG_HEADERS include/setup.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;; + "src/modules/chanmodes/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/chanmodes/Makefile" ;; + "src/modules/usermodes/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/usermodes/Makefile" ;; "unreal") CONFIG_FILES="$CONFIG_FILES unreal" ;; "ircdcron/ircdchk") CONFIG_FILES="$CONFIG_FILES ircdcron/ircdchk" ;; "ircdcron/ircd.cron") CONFIG_FILES="$CONFIG_FILES ircdcron/ircd.cron" ;; diff --git a/configure.ac b/configure.ac index e982e4758..22c1f1925 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ dnl Unreal.nfo dnl .CHANGES.NEW dnl src/version.c.SH -AC_INIT([unrealircd], [3.4-dev], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/]) +AC_INIT([unrealircd], [3.4-alpha0], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/]) AC_CONFIG_SRCDIR([src/ircd.c]) AC_CONFIG_HEADER([include/setup.h]) AC_CONFIG_AUX_DIR([autoconf]) @@ -56,6 +56,11 @@ fi dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton) +dnl UnrealIRCd might not be strict-aliasing safe at this time +case "`$CC -v --help 2>&1`" in + *-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;; +esac + dnl Pointer signedness warnings are really a pain and 99.9% of the time dnl they are of absolutely no use whatsoever. IMO the person who decided dnl to enable this without -Wall should be shot on sight. @@ -673,8 +678,13 @@ PKG_CHECK_MODULES([CARES], libcares >= 1.6.0) CHECK_LIBCURL +UNRLINCDIR="`pwd`/include" +AC_SUBST(UNRLINCDIR) + AC_CONFIG_FILES([Makefile src/modules/Makefile + src/modules/chanmodes/Makefile + src/modules/usermodes/Makefile unreal ircdcron/ircdchk ircdcron/ircd.cron]) diff --git a/doc/compiling_win32.txt b/doc/compiling_win32.txt index 22c7decbf..667e7a159 100644 --- a/doc/compiling_win32.txt +++ b/doc/compiling_win32.txt @@ -94,9 +94,9 @@ So, again, it will NOT work properly, if: ==[ SYMBOL FILES ]== If you get something like this: - Creating library L_COMMANDS.lib and object L_COMMANDS.exp -M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global re -ferenced in function _m_oper + Creating library .... +M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global + referenced in function _m_oper (note: the exact name of the symbol will vary!) diff --git a/doc/example.conf b/doc/example.conf index a9599c978..841bfae37 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -56,15 +56,14 @@ include "spamfilter.conf"; * info "Server Description"; * sid "server id"; * }; - * The server ID must begin with a number and have two additional numbers or letters - * afterward. - * If linking, the server ID may not be used by any other server on the network. + * The server ID (sid) must begin with a number, followed by two additional num- + * bers or letters. When linking, the server ID must be unique on the network. */ me { name "irc.foonet.com"; info "FooNet Server"; - sid "0AA"; + sid "001"; }; /* diff --git a/doc/technical/serverprotocol.html b/doc/technical/serverprotocol.html index bca600a55..13b9de9bb 100644 --- a/doc/technical/serverprotocol.html +++ b/doc/technical/serverprotocol.html @@ -141,7 +141,6 @@
  • W : Windows IRCd.
  • Y : Syslog logging enabled.
  • 6 : Server has IPv6 support (#define INET6 or answer "yes" to relevant ./Config prompt).
  • -
  • X : Server has badword stripping (user and channel modes +G) (#define STRIPBADWORDS).
  • P : Server is using poll().
  • e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).
  • O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).
  • diff --git a/doc/technical/vl.txt b/doc/technical/vl.txt index 3cd2a5eba..2c2f9e15b 100644 --- a/doc/technical/vl.txt +++ b/doc/technical/vl.txt @@ -2,7 +2,7 @@ VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com] Protocol Version ------------------------------------------------------------------------------------------------ -2312 3.4-alpha* +2350 3.4-alpha* 2311 3.2.10 2310 3.2.9 2309 3.2.6, 3.2.7, 3.2.8 @@ -30,7 +30,6 @@ W Windows version Y Syslog logging enabled K No ident checking (?) 6 IPv6 supported -X STRIPBADWORDS enabled (chmode/umode +G) P Uses poll() e SSL supported O OperOverride enabled diff --git a/doc/unreal32docs.de.html b/doc/unreal32docs.de.html index 043ab5269..d3782c5b6 100644 --- a/doc/unreal32docs.de.html +++ b/doc/unreal32docs.de.html @@ -1,7 +1,7 @@ -UnrealIRCd - 3.2 - Offical Documentation +UnrealIRCd - 3.4 - Offical Documentation