Highlighted News in Epona 1.5 ============================= * New command-line options, using a more standard format (e.g. -d or --debug and not -debug). See the README file for details. * New bind-style configuration file format, providing much more flexibility for both the users and the developers. The new command-line options -D, -I, -c are used to respectively set a configuration variable, add a configuration include path and specify an alternate main configuration file (default is epona.conf). * New module subsystem. The range of modules that can be written is still a bit limited for now (as that wasn't the focus of this release), but it's a good introduction as to what it'll look like when it's finished. * New log subsystem, along with the support of log modules and log levels, allows for extensive customization of the logging (what to log and how to log it). * New log files manager provided by the logfile module, which allows the configuration of multiple configuration files (each with its own contents type) and improved log rotation (logs can now span more or less than one day, rotated files can be compressed and have a customized suffix). * New database subsystem, allowing the use of database modules as the storage backend for services data. Supporting new database types is as simple as writing a module for each of them. There's no need to change the services' code, or write specific code for each service. Three utility modules, dbexport, dbimport and dbremove, are provided to easily convert the data between different database modules and remove unneeded databases. * New file-based database module twilight, that is meant to replace the (vcry) old file-based databases that were used in 1.4.x (these can be converted through the legacydb module). Databases are now saved only when there are really changes in them, and downgrades are now possible even if fields have been added or removed in newer versions. * New MySQL-based database module mysql, which supports both reading and writing the data from/to MySQL tables. It is possible to have external programs or scripts to modify the data and have Epona take the changes in account without having to restart. * New password modules system, allowing NickServ and ChanServ passwords to be encrypted with whatever algorithm you want (the md5 and sha1 modules are provided with Epona). Password encryption is no longer "experimental". * New mail subsystem that lets admins choose between multiple mail transport modules for delivery (the sendmail and smtp-cli modules are provided with Epona). * BotServ can no longer be disabled through the configuration file. Instead, you have to edit src/tweak.h and uncomment the NO_BOTSERV define. That way no extra memory at all will be used for BotServ stuff when it is disabled. * New hostname/IP blacklist feature, allowing to ban users with matching hostnames or IP addresses from the network in an efficient way. The blacklisted hosts are loaded through external files at startup and may be updated dynamically through other files that are read periodically. * New confdata module exports the configuration directives' values through database modules, thus allowing external programs interacting with Epona to change their behaviour according to the current configuration of Epona. * Added a way to change users hosts through the NickServ HOST and SET HOST commands. I know I said I'd never do it, but... :P * The OperServ MODULES command can be used to load, unload, get get information about and query modules. * NickServ and ChanServ now can be configured to allow extra time after nick and channel normal expiration before they delete the record. A special flag in records allows external programs to find pending expirations and do whatever they want with them (such as sending an e-mail to the owner to let him/her know that his/her nick/channel is going to expire). * The NickServ SET IM option has been added to set instant messenger contact info. It replaces the old SET ICQ option. * The NickServ AUTH command has been added to authentify nickname e-mail addresses as being valid. A few restrictions may be added to users whose e-mail address isn't authentified. * Added a way to forward new memos by e-mail through the MemoServ SET FORWARD option. * ChanServ AKICK now supports expiration. * Chanserv CLIST now can find access levels and successor status on channels in addition to the founder status in previous releases. * ChanServ LIST now supports ranges. * ChanServ GETPASS is now generating a new password rather than being disabled when password encryption is in use. * MemoServ SEND #channel now sends a memo to each user on the channel access list whose level matches the minimum required. Old channel memos are removed. * NickServ ACCESS is now a true numbered list like the others. * NickServ GETPASS is now generating a new password rather than being disabled when password encryption is in use. * NickServ GLIST now shows nickname expiration times. * NickServ LIST now supports ranges. * NickServ SET now uses = as a prefix for nicknames when it is used by Services admins to change an option for another user. It'll allow to change an option for a nick that is the same as one of the options. * NickServ SET DISPLAY has been renamed to SET GNAME. * NickServ SENDPASS is telling the user to use the AUTH PASS command rather than being disabled when encryption is in use. * OperServ AKILL ADD can now convert nicks of connected users into valid masks. * OperServ AKILL LIST can now match entries by their tracking IDs (that are generated automatically and appended to AKILL reasons issued to ircds). * OperServ SZLINE now supports CIDR notation on supported IRCds (Unreal and Bahamut). * OperServ USERLIST and CHANLIST now support ranges and show only a limited number of users by default; this makes these commands more usable on large networks. * OperServ LOGONNEWS/OPERNEWS/RANDOMNEWS have been unified in the command NEWS. * OperServ UPDATE, SHUTDOWN and QUIT have been renamed to, respectively, SYNC, STOP and FATAL. * Removed the outdated proxy detector. Consider using better alternatives, such as bopm or NeoStats and its opsb module. * Removed DevNull pseudo-client. May be back one day, but it's not exactly the most useful service anyway. * Removed the UsePrivmsg feature. On UnrealIRCd, you may use the mode +V as a substitute. For other IRCds, look if a similar feature is implemented. If not, ask the developers to add one... It's not a feature suitable for services, sorry. * Removed the NickServ and ChanServ FORBID commands, obsoleted by the OperServ SQLINE command. Existing FORBIDs are converted to SQLINEs by the legacydb module. * Removed the ChanServ AOP/SOP/HOP/VOP commands. * Removed the OperServ KILLCLONES command, which was no longer necessary due to AKILL now accepting nicks of connected users. For the full changes, see the Changes file. Note to past Epona users ------------------------ A lot of things have changed in the install phase since the 1.4.x days. It is therefore important to read carefully the updated INSTALL file (at least sections 1 and 2), especially if you're doing an upgrade as databases will need to be converted manually to a new format.