X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=RELEASE.NOTES;fp=RELEASE.NOTES;h=77911a9cca01f153f316b584710bc945ce97f89b;hb=390120c1071bd96116eb3a86727583d33dee89f7;hp=1c5df59f31c59cd69f077cff0d80fbb8f668008e;hpb=59600ba2b200c0e9223317c51f29fdb515902ff7;p=ircu2.10.12-pk.git diff --git a/RELEASE.NOTES b/RELEASE.NOTES index 1c5df59..77911a9 100644 --- a/RELEASE.NOTES +++ b/RELEASE.NOTES @@ -1,107 +1,247 @@ -Release Notes for ircu2.10.10 +Release Notes for ircu2.10.11 +Last Updated: August 17, 2001 +Written by Kev +Based on a document written by Braden This is a brief description of the changes we have made to the server -since the release of ircu2.10.07. +since the release of ircu2.10.10. -This is the first Undernet server that is fully P10, it is no longer -compatible with older P9 only servers. The server has been verified -to be compatible with Undernet server versions 2.10.06 and above. +This server is only compatible with other servers that are P10. It is +compatible and is verified to work with Undernet server versions +u2.10.10 and above. Note, however, that some advanced features are +only compatible with u2.10.11 and above. Enhancements: -All server to server communications use tokenization and numeric id's, -this reduces the bandwidth requirements approximately 10-20%. -Much of the network code has been rewritten and many old bugs relating -to the networking core of the server have been fixed. +GLINE has been extended to allow IRC operators to issue global +G-lines; see doc/readme.gline for more information about how to use +this feature. These extended features should not be used on networks +with u2.10.10 servers. -The port handling code has been rewritten to allow much better control -over listeners. +A new JUPE command has been added to permit servers to be juped in a +more reliable fashion. This command should not be used on networks +with u2.10.10 servers. -The server supports extended numerics which theoretically would allow -the entire population of the planet to participate on a network without -running out of unique values. +Two new channel mode manipulation commands, OPMODE and CLEARMODE, have +been added. OPMODE works exactly like MODE, except that 1) only IRC +operators can use it; 2) it ignores whether or not the operator is a +channel operator. CLEARMODE is a reliable means of eradicating +certain channel modes; it is given an argument string consisting of +the modes to clear. If that argument string is not given, it defaults +to "ovpsmikbl." These commands should not be used on networks with +u2.10.10 servers. -Added ISUPPORT messages on client connects to allow client coders to -detect network specific enhancements to the client protocol. +When a channel MODE command from a remote user must be bounced, a +"MODE -o" for the user will also be sent, in order to attempt to +"heal" the desync. Also, the old anti-hack code has been removed, +since servers never send MODEs except for bounces. -Server aliasing and virtual hosting (port forwarding) are available for -larger DoS attack prone networks. This will be improved in the next -release. +Most compile-time options have been converted to run-time options +which may be set through the configuration file or through the use of +the new commands SET, RESET, and GET; for more information about +these, please refer to doc/example.conf (for configuration file +information), doc/readme.features (for a list and description of the +options), and doc/readme.log (for a description of the logging +subsystem configuration). -Status messages are sent to connecting clients so connections don't -seem to hang during client registration. +A new logging subsystem has been written, making it much easier to get +ircd to write out log files, or to use syslog if that's desired. + +The old chroot() code has been removed; that should now be handled via +an external wrapper. Such a wrapper has been included in the tools +subdirectory. PLEASE READ doc/readme.chroot IF YOU WISH TO USE +CHROOT-STYLE JAILS WITH IRCD. + +The build system has been completely revamped; since most compile-time +options are now run-time, the few remaining ones can be placed in +./configure and set with --with-* and --enable-*. Please read INSTALL +for more information on how to compile and install the daemon. + +All of the old select()- and poll()-based event loop has been +completely ripped out and replaced, enabling ircd to use kqueue() and +/dev/poll, on systems that support those interfaces. + +All changes made to the u2.10.10 branch have been forward-ported to +u2.10.11. + +The server now uses extended numerics exclusively. + +A large number of code clean-ups, changes, and fixes have been made. +Some of these should hopefully increase performance; others will make +it easier to maintain the code. -The server now uses a bit less memory and cpu under full load, we -estimate around a 10% improvement in resource usage over the previous -version. Configuration Changes: -Please read example.conf in the doc directory for detailed information -on various configuration options. -Virtual host IP addresses are now in the password field of the server M:line, -there is no longer a command line option for specifying them. This is the -address the server will bind to for all outgoing server to server connections. -The port field of the server M:line is no longer used and is ignored when -the server reads the configuration file, server ports are now specified -only on P:lines. -The server ignores N:lines, C:lines are used for all connect server -information now. This means that the passwords for both sides of the -connection must match, this change does not degrade server connection -security of the existing protocol. -There are several new configuration options for P:lines (listener ports). + +Most compile-time options are now run-time configurable features, and +can be set through the daemon configuration file. Please see +doc/example.conf for an illustration of the format (search for +F-lines). Documentation for the logging subsystem is in +doc/readme.log, and the list and description of all the features is +located in doc/readme.features. + Compile Time Options: -If you are planning on hosting more than 1000 clients on your server -we recommend that you do not turn on asserts and heap checking or -debug messages. This is known to cause problems. -There are several new compile time options that you will automatically -be prompted for when you configure the server which should be self -explanitory. + +Again, most compile-time options are now set in the configuration +file. The remaining options are set through arguments to +./configure. A list of these options is available with ./configure +--help; a more detailed description follows: + +--enable-poll + The configure script attempts to only use poll on systems where that +is a direct system call. Sometimes, however, it will not properly +detect this. This option is meant to force ircd to use poll on +systems where ./configure does not detect that it is a system call. + +--enable-debug + This option turns on DEBUGMODE, which enables code useful for +debugging the server. THIS FEATURE SHOULD NOT BE USED ON A PRODUCTION +NETWORK; it represents a severe privacy risk. + +--enable-asserts + Assertions are a means of checking that certain underlying +assumptions are met. This option enables those assertions. Note: +This option should not be activated on production servers due to +debugging code in the server's MyMalloc() implementation which will +cause the server to leak memory. + +--disable-symbols + By default, the -g compiler option is used to enable symbols on the +binary. These symbols are useful when attempting to track down the +cause of a crash. Please do not use this option. + +--enable-profile + This option simply adds the -pg compiler option to enable profiling +support. + +--enable-pedantic +--enable-warnings + The Coder Committee attempts to release code that generates no +compile-time warnings or errors. These two options add gcc-specific +warning flags to the compiler flags. These options should not be used +if your compiler is not gcc. + +--disable-inlines + Some critical functions are forcefully inlined. This flag disables +that behavior. It should not be used for performance reasons. + +--disable-devpoll + On systems that have /dev/poll, the /dev/poll-based engine is +automatically enabled. This option inhibits that behavior. + +--disable-kqueue + On systems that have kqueue(), the kqueue()-based engine is +automatically enabled. This option inhibits that behavior. + +--with-symlink=name + When "make install" is executed, the daemon is installed in such a +way that old versions are kept, and a symlink is made to the latest +installed version. This option selects the name given to that +symlink. Specify a symlink name of "no" or use "--without-symlink" to +disable this behavior. + +--with-mode=mode + The daemon binary is installed with permissions 711 by default; this +option may be used to specify a different permission set for the +binary. + +--with-owner=owner + By default, the owner of the installed binary will be the same as +the person that compiled it; this option permits a different owner to +be specified. + +--with-group=group + By default, the group owner of the installed binary will be the same +as the primary group of the person that compiled it (at the time it +was compiled); this option permits a different group owner to be +specified. + +--with-domain=domain + The daemon attempts to keep some statistics on the server's user +load, including how many local users connect to the server. A local +user is determined by comparing the user's host name to a domain +name. The domain name can be set through the feature subsystem, as +documented in doc/readme.features; however, it will default either to +the domain specified with this flag, or to a name extracted from +/etc/resolv.conf, if it exists. + +--with-chroot=dir + Some admins may wish to run ircd within a chroot "jail," to enhance +the security of their systems. Although the chroot() code was removed +from ircd, the build system still supports operation of this form. If +you wish to use chroot-based jails, read doc/readme.chroot and give +this option to ./configure. + +--with-dpath=dir + This option simply specifies the path to the data directory for the +daemon. If --with-chroot has been given, this path must be compatible +with the chroot directory. See doc/readme.chroot for more information +about this restriction. + +--with-cpath=file + This option simply specifies the path to the configuration file for +the daemon, and may be either a relative or absolute path name. If it +is an absolute path, and if --with-chroot has been given, this path +must be compatible with the chroot directory. See doc/readme.chroot +for more information about this restriction. + +--with-lpath=file + When the server is compiled in DEBUGMODE (--enable-debug), the +debugging logs will be sent to the file specified here (defaulting to +"ircd.log" in the data directory). If this is an absolute path, +--with-chroot has been given, and if that path is not compatible with +the chroot directory, then a warning will be issued and the default +will be used. See doc/readme.chroot for more information about this +restriction. + +--with-maxcon=maxcon + The maximum number of sockets that the server may open is normally +derived from the hard limit on the number of file descriptors. If +desired, a higher value may be used by specifying this option to +./configure. + Undocumented Features: + Every Undernet server released has had at least one undocumented -feature ;-) Here are a few of the ones available in ircu2.10.10. -I'm sure there are a few more we are unaware of, these are the ones -we know about. -To enable these you need to add them to the extra CFLAGS when you -run make config. --DEXTENDED_NUMERICS This option configures the server to send -extended numerics as well as parse them. This option should only -be used on networks that run ircu2.10.07 and above only. --DWALLOPS_OPER_ONLY Setting this option removes the ability for -clients that are not opered to see wallops messages. --DNOOPER Disallow the /oper command. - -There are a few to be used for debugging or other networks. These -should *NOT* be defined on the undernet production network. - --DNICKLEN=15 This allows you do override the default nick length -to 15 characters. If this has different values on different servers -your network *WILL* fall apart. Only use this option if you know -what your doing. If you don't, ask in #coder-com on undernet. --DNO_THROTTLE This disables the throttling code. This is used for -debugging *only*. It lets you connect up to 255 clients from one -host with no time conciderations. If this is enabled on a -production server I will personally drive your server into the -ground. You have been warned. +feature ;-) Here are a few of the ones available in ircu2.10.11. I'm +sure there are a few more we are unaware of, these are the ones we +know about. + +To enable these, you need to add them to CFLAGS prior to running +./configure, usually as in: CFLAGS="-O2 -D