X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=RELEASE.NOTES;h=47106bd16a926841dc079ec95283396894e14c0a;hp=77911a9cca01f153f316b584710bc945ce97f89b;hb=3d59398668e6f0977c147c5efeefe7582d05b25b;hpb=390120c1071bd96116eb3a86727583d33dee89f7 diff --git a/RELEASE.NOTES b/RELEASE.NOTES index 77911a9..47106bd 100644 --- a/RELEASE.NOTES +++ b/RELEASE.NOTES @@ -1,227 +1,157 @@ -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.10. - -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. +Release notes for ircu2.10.12 +Last updated: 1 Sep 2005 +Written by Michael Poole +Based on earlier documents by Kev and +Braden . + +This document briefly describes changes in ircu2.10.12 relative to +ircu2.10.11. ircu2.10.12 is only compatible with servers that +implement the P10 protocol. It has been tested to link against +ircu2.10.11, but some features (notably IPv6 support and oplevels) are +not supported by ircu2.10.11. + +Semantic Changes (TAKE NOTE): + +Channel keys and passwords (see the "oplevels" enhancement below) +listed in a JOIN are now only checked against the corresponding +channel. In ircu2.10.11, "JOIN #a,#b key" would attempt to use "key" +as the key for both #a and #b. ircu2.10.12 will only attempt to use +it as the key for #a. ircu2.10.12's behavior matches that documented +in RFC 1459. Enhancements: -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. - -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 configuration file format has changed to one that is easier to +read. It is based on the configuration parser found in ircd-hybrid. +As usual, an example configuration file can be found in the doc +subdirectory. + +ircu now supports IPv6 clients. If your operating system provides +IPv6 socket support, ircu can accept connections on IPv6 addresses. +Even if your operating system does not support IPv6 sockets, you can +link (using IPv4) to a server that has IPv6 clients, and ircu will +treat the IPv6 clients correctly. + +The DNS resolver has been replaced with a streamlined version (also +from ircd-hybrid) that avoids some of the complications from using +the full libresolv or adns libraries. + +The server can query an IAUTH external authorization server. The +protocol is described in doc/readme.iauth. This allows an external +program to accept or reject any client that connects to the server +and allows that external program to assign an account stamp to the +incoming user. + +A new feature called "oplevels" has been added. It uses new channel +keys (+A for the administrator, +U for users) to grant chanop status +when you join using those keys. Part of this channel protection is +that you cannot be deopped in channel by someone who you opped. + +A new channel mode, +D, has been added for auditorium-style channels. +These are channels where most users listen but do not speak or receive +ops or voice. The effect of +D is that the server waits to send the +JOIN message for new users until the user gets ops or voice or sends a +message to the channel. A list of join-delayed users in a channel may +be retrieved by using /NAMES -d #channel. The response to /NAMES -d +uses the same format as numeric 353, but uses numeric 355 instead. If +an op removes +D while there are still join-delayed users, the server +automatically sets mode +d, and removes +d when the last user's join +is shown. It is not possible to set channel mode +d manually; its +purpose is to warn channel users that there are "hidden" users in the +channel. + +More than one hashing mechanism is now supported for oper passwords, +and a new tool (ircd/umkpasswd) is provided to generate them. + +Commands that send messages to specified services may be defined in +the configuration file by using Pseudo blocks. This lets users use +commands like /X or /CHANSERV from their client, without tying the +admin to a particular arrangement or naming of services. + +The /stats command accepts string identifiers in addition to +single-character identifiers. For example, "/stats access" shows the +same data as "/stats i". Supported names are shown by /stats. New +/stats options are: /stats a (nameservers), to list DNS nameservers in +use; /stats L (modules), to list loaded modules; and /stats R +(mappings), to list privmsg helper commands defined by Pseudo blocks. +By default, all of these are hidden from normal users. + +Client blocks (previously I: lines), Operator blocks (previously O: +and o: lines), channel bans and silences may use CIDR notation instead +of simple wildcards. You may also have silence exceptions by putting +'~' before the mask; for example, if you wish to silence everyone +except X, you could use SILENCE *!*@*,~X!cservice@undernet.org. + +The server will no longer kick "net riders" in keyed (+k) channels if +both sides of the net join have the same key. + +IP masks (as used in bans, G-lines, etc) are now parsed in a more +forgiving manner. 127.0.0.0/8, 127.* and 127/8 are all accepted and +mean the same thing. Ambiguous expressions like 127/8 are interpreted +as IPv4 masks; to interpret it as an IPv6 mask, use 127:/8. -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. +Configuration Changes: -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. +As mentioned above, the configuration file format has changed +radically. Please consult doc/example.conf for details on the +new format. Some prominent changes follow. -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). +The old contents of H: lines have been merged into the Connect block +that describes the peer server(s) that should be allowed to hub. -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. +Two default virtual host addresses may be specified, one for IPv4 +sockets and one for IPv6 sockets. -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. +Nickname jupes have their own blocks, and do not share structure with +UWorld server declarations. -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. +Operator connection classes and individual operator blocks may be +assigned privileges, rather than having them controlled globally. +Because of this, the feature settings that controlled the privileges +globally have been removed. -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. +The maximum number of clients allowed per IP may be set in a Client +block (the equivalent of C: lines). -All changes made to the u2.10.10 branch have been forward-ported to -u2.10.11. +New feature settings (see doc/readme.features for explanations): +ANNOUNCE_INVITES, HIS_STATS_L, HIS_STATS_a, HIS_STATS_R, +LOCAL_CHANNELS, TOPIC_BURST. -The server now uses extended numerics exclusively. +Deleted features, since they had no effect even in 2.10.11: AUTOHIDE, +HIS_DESYNCS, TIMESEC. -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. +Deleted features since they are now controlled by other configuration +entries: VIRTUAL_HOST, oper and locop privilege features. +Deleted feature since it no longer applies: HIS_STATS_h. -Configuration Changes: - -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: +A listing of supported compile-time options may be seen by running +"./configure --help". The defaults should be sane. In particular, +you should NOT compile with --enable-debug or with --disable-symbols +on a production network. -Compile Time Options: +Otherwise Undocumented Features: -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.11. I'm -sure there are a few more we are unaware of, these are the ones we -know about. +Despite our preferences to keep these undocumented, they are +occasionally useful, and are described here for users who may +need them. To enable these, you need to add them to CFLAGS prior to running ./configure, usually as in: CFLAGS="-O2 -D