diff options
author | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
---|---|---|
committer | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
commit | c777c8d9aa7cd5c2e9a399727a7fa9985a77fb1c (patch) | |
tree | 9e996ae4a1bbb833cec036c5cd4d87a590149e85 /docs |
Anope Stable Branch
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@1902 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'docs')
-rw-r--r-- | docs/BUGS | 4 | ||||
-rw-r--r-- | docs/COPYING | 339 | ||||
-rw-r--r-- | docs/DEFCON | 118 | ||||
-rw-r--r-- | docs/EVENTS | 416 | ||||
-rw-r--r-- | docs/FAQ | 480 | ||||
-rw-r--r-- | docs/INSTALL | 184 | ||||
-rw-r--r-- | docs/IRCD | 601 | ||||
-rw-r--r-- | docs/MODULES | 124 | ||||
-rw-r--r-- | docs/MYSQL | 109 | ||||
-rw-r--r-- | docs/NEWS | 55 | ||||
-rw-r--r-- | docs/OLDCHANGES | 1299 | ||||
-rw-r--r-- | docs/OLDNEWS | 139 | ||||
-rw-r--r-- | docs/PROXY | 41 | ||||
-rw-r--r-- | docs/README | 377 | ||||
-rw-r--r-- | docs/WIN32.txt | 209 |
15 files changed, 4495 insertions, 0 deletions
diff --git a/docs/BUGS b/docs/BUGS new file mode 100644 index 000000000..1f640fa5e --- /dev/null +++ b/docs/BUGS @@ -0,0 +1,4 @@ +Reported Bugs from Bugzilla: http://bugs.anope.org/ +--------------------------------------------------- + + diff --git a/docs/COPYING b/docs/COPYING new file mode 100644 index 000000000..a43ea2126 --- /dev/null +++ b/docs/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, 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 + + Appendix: 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. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + 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., 675 Mass Ave, Cambridge, MA 02139, 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. + + <signature of Ty Coon>, 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. diff --git a/docs/DEFCON b/docs/DEFCON new file mode 100644 index 000000000..1f5218d19 --- /dev/null +++ b/docs/DEFCON @@ -0,0 +1,118 @@ +Anope DefCon +------------ + +1) Introduction +2) Installation +3) Configuration +4) Usage +5) Usage Example +6) Support + +1) Introduction + + Anope 1.6 onwards supports a unique protection mechanism based on the + military "Defense Readiness Condition" (DefCon) system. It is based on + 5 levels of defense readiness defined as: + + DEFCON5 Normal peacetime readiness + DEFCON4 Increased intelligence and security readiness + DEFCON3 Increase in force readiness + DEFCON2 Further increase in force readiness + DEFCON1 Maximum force readiness. + + These are configurable levels that mandates what actions Anope should + take in case of emergency and change in readiness status. + + It is used to prevent abuse to both Services, and the ircd on which they + are running. Also to protect the users, primarily in the event of Clones + and/or FloodBOT attacks. + +2) Installation + + The DefCon system is part of Anope's core, + + The DefCon system has to be configured on your services.conf file to + be enabled. All directives are optional unless they depend on what + options you enable for each level. Look for the "DefCon configuration" + section on your services.conf file for more information. + + Make sure you restart Anope after changing the DefCon configuration + directives. + +3) Configuration + + Pre-defined DefCon actions: + + No new channel registrations 1 + No New Nick Registrations 2 + No MLOCK changes 4 + Force Chan Mode 8 + Use Reduced Session Limit 16 + KILL any new clients trying to connect 32 + Services will ignore everyone but opers 64 + Services will silently ignore everyone but opers 128 + AKILL all new clients trying to connect 256 + No new memos sent to block MemoServ attacks 512 + + These are the values used to determine each defcon setting, are set via: + + DefCon1 XX + DefCon2 XX + DefCon3 XX + DefCon4 XX + + To set the desired value, you simply add the value of the numbers together + and place that as your DefCon# setting. For instance: + + Say you wish to set: + + No Channel Registrations, No Nickname Registrations and Services Ignoring + everyone except for Operators. You would do this by: + + 1 + 2 + 128 (Each value listed above is added together) + Giving: 131 + + You would then place this as which ever Defcon setting you want: + + DefCon1 131 + + The recommended default values are safe to use on any network. + +4) Usage + + Anope starts up in DEFCON5 (normal readiness). To change the Defcon level + in action use: + + /msg OperServ DEFCON 1|2|3|4|5 + +5) Usage Example + + Place the network on DEFCON4: + + /msg OperServ DEFCON 4 + + *** Global -- from OperServ: dengel Changed the DEFCON level to 4 + + -OperServ- Services are now at DEFCON 4 + -OperServ- * No new channel registrations + -OperServ- * No new nick registrations + -OperServ- * No MLOCK changes + -OperServ- * Use the reduced session limit of 5 + + -Global- The Defcon Level is now at Level: 4 + + Restore normal readiness: + + /msg OperServ DEFCON 5 + + *** Global -- from OperServ: dengel Changed the DEFCON level to 5 + + -OperServ- Services are now at DEFCON 5 + + -Global- Services are now back to normal, sorry for any inconvenience + +6) Support + + You might get DefCon support by posting on our online forum, or maybe on + our #anope channel at /server irc.anope.org. + diff --git a/docs/EVENTS b/docs/EVENTS new file mode 100644 index 000000000..bc8af9dce --- /dev/null +++ b/docs/EVENTS @@ -0,0 +1,416 @@ +Anope Internal Events +--------------------- + +1) Intro +2) Complex Events +3) Triggered Events +4) Triggered Events List + +1) Introduction to Internal Events + + Internal Events are setup to give module developers more information + about what the core is doing at different times. This information can + be as complex as data we are feeding to the uplink, to simple triggered + events such as the databases being saved. A list of triggered events + can be found below. Additional there is a module included with the core + which can provide some clue as to how to use the code in your modules. + The rest of this document assumes that you are used to writing modules. + +2) Complex Events + + This type of events are based around what happens when we talk to the + IRCd, much like MESSAGE events that the IRCD sends to us. The events + are triggered when Anope writes to the ircd. To watch for these events + you must have some knowledge of how the IRCd command system works. In + our example we will trap for NICK events. + + A) All functions most be formatted as: + + int functioname(char *source, int ac, char **av); + + B) In AnopeInit you must declare EvtMessage in some fashion, it is into + this variable that we will create the event handler. Here is what the + base AnopeInit should look like at this point: + + int AnopeInit(int argc, char **argv) + { + EvtMessage *msg = NULL; + int status; + + moduleAddAuthor(AUTHOR); + moduleAddVersion(VERSION); + return MOD_CONT; + } + + Note that AUTHOR and VERSION should be defined above the AnopeInit + function, just like you should do with any module. + + C) Pass "createEventHandler" the name of the message in this case NICK, + and the function that was created in Step A. At this point you should + assign the return of "createEventHandler" to the EvtMessage variable. + + msg = createEventHandler("NICK", my_nick); + + D) The Handler is not ready for use yet; now you must add it to the hash + with "moduleAddEventHandler". You will want to pass to this function + the return of "createEventHandler". + + status = moduleAddEventHandler(msg); + + It will return the same module error codes as adding a regular message, + which you can use to confirm it was added correctly. + + E) With that setup in your function you will be passed 3 items. The source + most of the time this will be set to ServerName or NULL; consult our + IRCd documentation about how messages are formatted. AC is the count of + variables you will find in AV. + + int my_nick(char *source, int ac, char **av) + { + alog("Internal Event - nick is %s",av[0]); + return MOD_CONT; + } + +3) Triggered Events + + These events also known as "event hooks" are internal events such as + expiring of nicks to the saving of databases. + + A) All functions most be formatted as: + + int functioname(int argc, char **argv); + + B) In AnopeInit you must declare EvtHook in some fashion; it is into + this variable that we will create the event handler. Here is what + the base AnopeInit should look like at this point: + + int AnopeInit(int argc, char **argv) + { + EvtHook *hook = NULL; + int status; + + moduleAddAuthor(AUTHOR); + moduleAddVersion(VERSION); + return MOD_CONT; + } + + C) Pass "createEventHook" the name of the event. In this case we are + going to hook to the saving of databases, "EVENT_DB_SAVING". + + hook = createEventHook(EVENT_DB_SAVING, my_save); + + D) The Handler is not ready for use yet; now you must add it to the hash + with "moduleAddEventHook". You will want to pass to this function the + return of "createEventHook" + + status = moduleAddEventHook(hook); + + It will return the same module error codes as adding a regular message, + which you can use to confirm it was added correctly. + + E) With that setup in your function you will be passed 1 item. The message + is very simple; it could be as simple as a start, stop or message. In + the case of saving it has a start and stop. + + int my_save(int argc, char **argv) + { + if (argc < 1) { + return MOD_CONT; + } + + if (!stricmp(argv[0], EVENT_START)) { + alog("Saving the databases! has started"); + } else { + alog("Saving the databases is complete"); + } + return MOD_CONT; + } + +4) Triggered Events List + + Here's a list of all event hooks we currently offer, with a description + of what argument is being passed to the event functions for this type of + event. All arguments are plain-text strings (char *). The list is sorted + in alphabetical order. + + Note that all events are emitted AFTER the action has taken place, so + any deleted nick/channel/etc won't exist anymore and any created one will + exist when your function is being run, unless noted otherwise. + + Also note that EVENT_START and EVENT_STOP should not be matched with an + equal sign, but with string comparision. See the bundled events module for + an example on how to do this. + + The arguments are given as av[0] for the first argument, av[1] for the + second argument, and so on. If av[0] and av[1] are given, the event has + two arguments, and argc should be 2. + + EVENT_ACCESS_ADD + An user has been added to a channel access list. + av[0] Name of the channel the user has been added to. + av[1] The nickname of the user that has just added an entry to the + access list. + av[2] The nickname of the user that has been added to the access + list. + av[3] The level number the user has been added with. + + EVENT_ACCESS_CHANGE + An user level has been changed on a channel access list. + av[0] Name of the channel the access list has been modified which. + av[1] The nickname of the user that has just modified the access + list of the channel. + av[2] The nickname of the user wich his access level has just been + modified. + av[3] The new access level for the user. + + EVENT_ACCESS_CLEAR + A channel access list has been cleared. + av[0] Name of the channel the access list has been cleared of + av[1] The nickname of the user that has cleared the access list + + EVENT_ACCESS_DEL + An user has been deleted of a channel access list. + av[0] Name of the channel the access entry has been deleted which. + av[1] The nickname of the user that has just deleted the access entry. + av[2] [OPTIONAL] The nickname of the user wich his access level has just + been removed. Not present if numbers were used (e.g. /cs access + del 7). + + EVENT_BOT_ASSIGN + A BotServ bot has been assigned to a channel. + av[0] Name of the channel the bot has been assigned to. + av[1] The nickname of the bot that has been assigned to the channel. + + EVENT_BOT_BAN + A BotServ bot has banned a user, e.g. kickers. + av[0] The nick of the user banned. + av[1] The Channel the user was banned from. + av[2] The mask that was banned. + + EVENT_BOT_CHANGE + The properties of a BotServ bot have been changed. + av[0] The nickname of the bot involved. + + EVENT_BOT_CREATE + A new BotServ bot has been created, and is ready to use. + av[0] The nickname of the newly created bot. + + EVENT_BOT_DEL + A BotServ bot is being deleted from BotServ. This event is being sent + just before the actual deletion is performed. + av[0] The nickname of the bot being deleted. + + EVENT_BOT_FANTASY + A fantasy command of the bot has been triggered. This event should be + used to create your own fantasy commands. + av[0] The fantasy command that has been triggered without leading '!'. + av[1] The nickname of the user that has triggered the fantasy + command. + av[2] The name of the channel the fantasy command has been triggered + on. + av[3] Contains any optional paramenters passed after the fantasy + command. If none are present, this will not exist, and argc will + will be 3. + + EVENT_BOT_FANTASY_NO_ACCESS + A fantasy command of the bot has been triggered by someone without + access to BotServ FANTASY commands on the channel. This will NOT + trigger if someone with access has triggered a fantasy command; use + EVENT_BOT_FANTASY for those. Hook to both events to catch both event + triggers. + av[0] The fantasy command that has been triggered without leading '!'. + av[1] The nickname of the user that has triggered the fantasy + command. + av[2] The name of the channel the fantasy command has been triggered + on. + av[3] Contains any optional paramenters passed after the fantasy + command. If none are present, this will not exist, and argc will + will be 3. + + EVENT_BOT_JOIN + A BotServ bot has joined a channel and opped itself. + av[0] The channel name the bot has just joined. + av[1] The nickname of the bot that has joined the channel. + + EVENT_BOT_KICK + A BotServ bot has kicked a user from a channel. + av[0] The name of the user that has been kicked. + av[1] The name of the channel the user was kicked from. + av[2] The reason for the kick. + + EVENT_BOT_UNASSIGN + A BotServ bot is being unassigned from a channel. This event is being + sent before the actual removing of the bot is done. + av[0] The channel name the bot has been unassigned from. + av[1] The nickname of the bot that has been unassigned. + + EVENT_CHAN_DROP + A channel has been dropped and deleted. + av[0] The name of the channel that has been dropped. + + EVENT_CHAN_EXPIRE + A channel has been expired and will be deleted. The event will be + emitted just before the actual channel deletion happens. + av[0] The name of the channel that has been expired. + + EVENT_CHAN_FORBIDDEN + A channel has been forbidden (ChanServ FORBID). + av[0] The name of the channel that has been forbidden. + + EVENT_CHAN_KICK + Someone has just been kicked from a channel. + av[0] The nick of the user that has been kicked. + av[1] The channel the user has been kicked from. + + EVENT_CHAN_REGISTERED + A new channel has been registered. + av[0] The name of the channel that has been registered. + + EVENT_CHAN_SUSPENDED + A channel has been suspended (ChanServ SUSPEND). + av[0] The name of the channel that has been suspended. + + EVENT_CHAN_UNSUSPEND + A channel has been unsuspended (ChanServ UNSUSPEND). + av[0] The name of the channel that has been unsuspended. + + EVENT_CHANGE_NICK + A user has just changed it's nick. + av[0] The new nickname of the user. + + EVENT_CONNECT + This event is emitted when the connection to our uplink hub is being + made. + av[0] EVENT_START or EVENT_STOP, to indicate if it's emitted before + or after the connection has been made. EVENT_STOP is emitted + before our burst is being sent over the link. + + EVENT_DB_EXPIRE + This event is emitted when the expiry routines for all things that can + expire in Anope are being run. + av[0] EVENT_START or EVENT_STOP, to indicate if it's being emitted + before or after the expiry routines have been run. + + EVENT_DB_SAVING + This event is emitted when the databases are being saved. + av[0] EVENT_START or EVENT_STOP, to indicate if it's emitted before + or after the saving routines have been run. + + EVENT_DB_BACKUP + This event is emitted when the databases are backed up. + av[0] EVENT_START when the backup commences, and EVENT_STOP when it + finishes. + + EVENT_DEFCON_LEVEL + The DefCon level has just been changed. This event is emitted before + any DefCon-related action is taken. The internal DefConLevel has + already been raised at this point. + av[0] The new level of DefCon being invoked. + + EVENT_GROUP + A user has grouped it's nickname to another user group. + av[0] The nickname of the user that joined the group. + + EVENT_JOIN_CHANNEL + A user joins a channel. + av[0] EVENT_START or EVENT_STOP. EVENT_START when the user has passed + all access checks and is allowed to join, but has not yet + joined the channel. EVENT_STOP when the user has joined and all + needed modes are set etc. + av[1] The nickname of the user joining the channel. + av[2] The name of the channel the user has joined. + + EVENT_NEWNICK + A new user has been introduced on the network. + av[0] The nickname of the newly introduced user. + + EVENT_NICK_DROPPED + A user's nick has just been dropped. Note that the nickname information + has already been deleted! + av[0] The nickname of the user that has just been dropped. + + EVENT_NICK_EXPIRE + A user's nick has just expired. Note that, as with EVENT_NICK_DROPPED, + the nickname information has already been deleted! + av[0] The nickname of the user that has just expired. + + EVENT_NICK_FORBIDDEN + A user's nick has just been forbidden. + av[0] The nickname that has just been forbidden. + + EVENT_NICK_IDENTIFY + A user has just identified for it's nickname with NickServ. + av[0] The nickname of the user that just identified. + + EVENT_NICK_LOGOUT + A user has just (been) logged out. + av[0] The nickname of the user that has (been) logged out. + + EVENT_NICK_REGISTERED + A new user has just registered it's nickname. This event is being + emitted when the registration is completed, but the user modes have not + yet been set. + av[0] The nickname of the newly registered user. + + EVENT_NICK_SUSPENDED + A user's nick has just been suspended. + av[0] The nickname that has just been suspended. + + EVENT_NICK_UNSUSPEND + A user's nick has just been unsuspended. + av[0] The nickname that has just been unsuspended. + + EVENT_PART_CHANNEL + A user parts a channel. + av[0] EVENT_START or EVENT_STOP. EVENT_START when the user is about + to be removed from the channel internally, EVENT_STOP when + this has been done. + av[1] The nickname of the user parting the channel. + av[2] The name of the channel the user has parted. + av[3] The reason the user parted the channel, this is not always sent + so check the count to make sure it was passed. (ac == 4) + + EVENT_RELOAD + This event is emitted after the configuration file has been reloaded. + av[0] Always EVENT_START. + + EVENT_RESTART + This event is emitted before the services are being restarted. + av[0] Always EVENT_START. + + EVENT_SERVER_CONNECT + A new server has just connected to the network. + av[0] The name of the new server. + + EVENT_SERVER_SQUIT + A server has sent an SQUIT and is about to be removed from the + network. This event is being sent before the server is actually + removed from the network. + av[0] The name of the server that is being removed. + + EVENT_SHUTDOWN + This event is emitted when Anope is being shut down. + av[0] EVENT_START or EVENT_STOP, to indicate where in the process of + restarting the core is. With EVENT_START, services are still + fully online and operating. With EVENT_STOP, every internal + clean up has been done already, and the SQUIT has been sent; + the only thing done after emitting the event is closing the + socket to the uplink hub. + + EVENT_SIGNAL + This event is emitted when Anope is quitting because of a signal it + received. + av[0] The quit message that will be sent with the SQUIT for this + shutdown. + + EVENT_TOPIC_UPDATED + A channel topic has been succesfully updated. Note that this event is + only emitted if the new topic has been fully accepted and set by the + Anope core. + av[0] The name of the channel involved. + av[1] The new topic set on the channel. + + EVENT_USER_LOGOFF + A user has left the network. This event is emitted before the internal + removal is performed, so the user still exists internally. + av[0] The nickname of the user leaving the network. diff --git a/docs/FAQ b/docs/FAQ new file mode 100644 index 000000000..93c069f0b --- /dev/null +++ b/docs/FAQ @@ -0,0 +1,480 @@ +Frequently Asked Questions (FAQ) concerning Anope +------------------------------------------------ + +NOTE: +An updated version of this FAQ can be found on our website: www.anope.org + +Table of Contents +----------------- + +1) General + 1.1) What is Anope? + 1.2) Where can I find Anope? + 1.3) Does Anope run under Windows? + 1.4) Can I send you questions without reading the FAQ, INSTALL or README + files? + 1.5) I need support for the XYZ protocol. + 1.6) Your Services program doesn't do XYZ like DALnet (or other) Services. + What's wrong? + 1.7) I've got a great new idea for Services. Do you want it? + 1.8) Examples of features we have been asked about and why we won't add (or + haven't yet added) them, so don't ask us about them: + 1.9) Can you help me? + 1.10) Where is RootServ? + +2) Installation / Configuration + 2.1) When I run "make", I get an error message like "missing separator", + "Unassociated shell command", "Unexpected end of line seen", etc. + 2.2) I get an error like "Makefile.inc not found". + 2.3) I typed "./services" at the command line, but nothing happened! + 2.4) Whenever I start Anope, I get a message on my IRC server saying + "connection refused" or something similar, and Anope gives an error + message from the server saying "Closing Link: ...". + 2.5) My IRC server is giving me messages like "Connection to + services.whatever.net[127.0.0.1] activated" and then "Access denied -- + no N line". Why? + 2.6) When I say "/connect services.*", it doesn't work! + 2.7) Anope starts up okay, but if I try to register a nickname, it comes + back with "Sorry, registration failed." + 2.8) Anope reports (via /stats u or /msg OperServ STATS) a different number + of users online than I get from doing /lusers. + +3) OperServ + 3.1) Using the OperServ JUPE command results in server messages like + "Server juped.server introduced by non-hub server services.my.net". + 3.2) I can't use the ADMIN command to add Services admins, it tells me + "Permission denied." + 3.3) When I add an AKILL, the users matching it don't get killed. + 3.4) Trying to use OperServ gives me "Access denied", but my nick is in the + ServicesRoot directive and is registered, and I've identified for my + nick. + 3.5) When I used the OperServ RAW command, Anope and/or my network crashed, + or did weird things! Please fix this bug! + 3.6) I would like to have the list of the different RAW on OperServ. + 3.7) I can't get /OS UMODES and /OS SVSNICK to work! + 3.8) What is a Super-Admin? How does it work? Why might it not work? + 3.9) How can i enable the OperServ RAW command? + +4) Bugs / Crashes + 4.1) Anope always dies after about five minutes, saying "FATAL ERROR! Can't + back up nick.db". + 4.2) Anope crashed with a segmentation fault. + 4.3) I've found a bug that's not mentioned here or in the README or BUGS + files. What should I do? + 4.4) My FreeBSD box complains about 'Shared object "nss_dns.so.1" not + found' + 4.5) Anope and long (more then 30 character) nicknames. + +5) ChanServ + 5.1) Anope's channel mode setting doesn't work. I can't set modes with + OperServ, and every time ChanServ tries to set a mode, my server + reverses the change. + 5.2) Anope ignored the SET SUCCESSOR setting and deleted a channel when the + founder expired. + 5.3) How to auto voice all those whom join my #channel? + 5.4) Channel options like RESTRICTED or SECUREOPS don't work. What's wrong? + +6) BotServ + 6.1) How do I add bots to BotServ? + 6.2) Why do kick triggers and fantasy commands fail to work with my Bahamut + IRCd? + +7) Language + 7.1) Anope complains in the logfile about being unable to load the default + language. + 7.2) Anope spricht kein Deutsch!, etc. (Anope doesn't speak my language!) + 7.3) I selected a language other than English, but sometimes Anope sends + responses in English instead. + +8) DevNull + 8.1) What is the purpose of DevNull? + +------------------------------------------------------------------------------- + +1) General + +1.1) What is Anope? + + Anope is a set of services for IRC networks. See the README file for more + information. And in case you were wondering, Anope is Epona spelt backwards + :) + +1.2) Where can I find Anope? + + The latest version can always be found at the official Anope distribution + site: + + * http://www.anope.org/ + + New version announcements can also be found at http://www.anope.org/ in the + main page. + +1.3) Does Anope run under Windows? + + Yes. For more information on how to obtain the windows version of Anope + visit http://wiki.anope.org/Windows + +1.4) Can I send you questions without reading the FAQ, INSTALL or README files? + + No. If you don't read those files, your messages will most probably be + ignored. We don't mean to be rude, but if we took the time to write down + some documentation, we'd expect you to take some time to read it. + +1.5) I need support for the XYZ protocol. + + Since Anope 1.7.9, support for other IRCD's, and thus protocols, has been + made modular. More information on making a support file for your favorite + IRCD can be found in the docs/IRCD file. + +1.6) Your Services program doesn't do XYZ like DALnet (or other) Services. + What's wrong? + + Nothing is wrong, except your expectations. Anope is a completely + different program from that used on DALnet; they are similar in concept + only. + +1.7) I've got a great new idea for Services. Do you want it? + + We are always interested in hearing new ideas. HOWEVER, do not expect your + proposal to be in the next Anope release for sure. As a rule, we usually + don't add anything that can be equivalently done by other means, or that we + consider totally useless; see question 1.8 for examples of things we don't + plan to add. + + Our general intent is for Anope to provide as much functionality as + possible--while staying as lean as possible. So features which are + arguably beneficial will tend to be added, while features of limited or no + benefit or which can be equally provided by something else already in use + will tend to be passed over. + + If you'd like to give us your idea, you can go to our website at + http://www.anope.org/ and add it on our online Forum, in the Feature + Requests section. + +1.8) Examples of features we have been asked about and why we won't add (or + haven't yet added) them, so don't ask us about them: + + * An option to make ChanServ stay in some/all registered channels: we see + absolutely no necessity for this feature, since BotServ already does this + anyway. + + * A "current time" field in NickServ and ChanServ INFO displays: Most + people have clocks of some sort either on their computer screens or on + their walls (or both), and all IRC servers, as well as Services, have a + command to return the server's current time. Thus a current-time field in + INFO displays would simply take up extra space for no reason. + +1.9) Can you help me? + + No, we can't help you unless you tell us what you need help with. + +1.10) Where is RootServ? + + Anope does not supply RootServ. All functions you would find in RootServ + have been integrated into OperServ. If you really want to use RootServ, you + can set the OperServAlias in services.conf to be RootServ. This will enable + the RootServ nick to be used for OperServ as well. Read the comments near + OperServAlias in the configuration file for more information. + + +2) Installation / Configuration + +2.1) When I run "make", I get an error message like "missing separator", + "Unassociated shell command", "Unexpected end of line seen", etc. + + Your make program isn't compatible with the Makefile for Anope. The + Makefile was designed to work with GNU make, and as such may not work on + other systems' "make" programs. If you get an error from "make", obtain + GNU make from ftp://prep.ai.mit.edu/pub/gnu/ (or wherever you prefer) and + use it instead of your system's default "make". Note that GNU make may + already be installed on your system; try using the command "gmake" instead + of "make". + + The make programs bundled with SunOS/Solaris and FreeBSD have been reported + not to work; you will need to use GNU make on these systems. + +2.2) I get an error like "Makefile.inc not found". + + You forgot to run the Config script first. See the INSTALL file for + compilation instructions. + +2.3) I typed "./services" at the command line, but nothing happened! + + Anope puts itself in the background when it starts, so you get your shell + prompt right back. Meanwhile, Anope will continue setting up, then connect + to the IRC server specified in services.conf (or on the command line). If + it doesn't connect, you probably specified the wrong server type in the + configuration file. (Also make sure that you are actually running one of + the supported servers. There are a gazillion different variations on the + basic IRC protocol out there, and we have neither the time nor the desire + to add support for them.) + + The recommended server, under which Epona (the original code base used by + Anope) was developed, is Bahamut. DreamForge 4.6.7 will also work fine, but + it's a bit obsolete nowadays. Derivatives of Bahamut and DreamForge may + also work, if they don't change the server<->server protocol too much; + contact their authors for more information. Most people, though, are + running Anope with UnrealIRCd, UltimateIRCd or Bahamut. + + As always, you can check the log file (services.log by default) for error + messages. You can also start services with the -nofork command line option + to prevent it from running in the background, and it will output the + messages written to the log file to the console as well. + +2.4) Whenever I start Anope, I get a message on my IRC server saying + "connection refused" or something similar, and Anope gives an error + message from the server saying "Closing Link: ...". + + See section 3 of the INSTALL file. + +2.5) My IRC server is giving me messages like "Connection to + services.whatever.net[127.0.0.1] activated" and then "Access denied -- no + N line". Why? + + This is typically caused by including a port number in the C:line for + services, which tells your server to try to autoconnect to it (depending on + the class (Y:line) settings). This is not what you want, because Anope + will connect to the server itself, but does not listen for servers to + connect to it. The solution is to remove the port number from the C:line. + +2.6) When I say "/connect services.*", it doesn't work! + + Of course not. RTFM (Read The Fine Manual), and see the previous answer. + +2.7) Anope starts up okay, but if I try to register a nickname, it comes back + with "Sorry, registration failed." + + Make sure you've selected the correct IRC server type in the configure + script; see question 2.4 for details. + +2.8) Anope reports (via /stats u or /msg OperServ STATS) a different number of + users online than I get from doing /lusers. + + Anope doesn't count its own pseudo-clients (NickServ, ChanServ, etc.) in + its user count, while the IRC server does. + + +3) OperServ + +3.1) Using the OperServ JUPE command results in server messages like "Server + juped.server introduced by non-hub server services.my.net". + + Services' uplink must have an H: line for Services in the ircd.conf file, + which looks something like: + + H:*::services.whatever.net + +3.2) I can't use the ADMIN command to add Services admins, it tells me + "Permission denied." + + Did you define yourself as the Services root? You need to insert your + nickname in the ServicesRoot directive in services.conf. Also, you must be + a global IRC Operator and your nickname must be registered and properly + indentified with NickServ. + +3.3) When I add an AKILL, the users matching it don't get killed. + + Use the AkillOnAdd configuration directive. + +3.4) Trying to use OperServ gives me "Access denied", but my nick is in the + ServicesRoot directive and is registered, and I've identified for my nick. + + You need to be a global oper (i.e. user mode +o) to access OperServ. This + can be configured via the OSOpersOnly directive in services.conf . + +3.5) When I used the OperServ RAW command, Anope and/or my network crashed, or + did weird things! Please fix this bug! + + "That's not a bug, it's a feature." + + Have you ever typed /msg OperServ HELP RAW? It's clearly stated there that + this command is dangerous and that its use may result in very bad things. + + And that's why this command has been disabled by default. If you enabled + and used it, YOU'RE ON YOUR OWN. All help requests will be ignored, even if + the problem happens not immediately. + +3.6) I would like to have the list of the different RAW on OperServ. + + If you have to ask, you should not be messing with RAW :) + +3.7) I can't get /OS UMODES and /OS SVSNICK to work! + + You need to be a SuperAdmin to be able to use these commands. + +3.8) What is a Super-Admin? How does it work? Why might it not work? + + Super-Admin's have extra privileges, including being founder on all + channels. It must be activated on a per user basis and is only available to + Services Roots. It is set using OperServ and is not persistent. It only + works if SuperAdmin is not commented in the services configuration file. + This is commented by default. Read /msg OperServ HELP SET SUPERADMIN for + further help. + +3.9) How can i enable the OperServ RAW command? + + Enabling the OperServ RAW command is VERY dangerous and should never be + done on a real network without thinking about it very well first. The RAW + command can easily break your whole network if used incorrectly, and thus + you will receive NO SUPPORT if you enable RAW on your network. + + Before you enable RAW, be very sure you really want to enable it, and keep + in mind that you will NOT BE ABLE to receive ANY SUPPORT anymore, because + Anope's stability cannot be guaranteed if RAW is enabled. + + The RAW command comes bundled as a core module for operserv. To load it, + add the os_raw module to the list of OperServ core modules. But be sure to + keep in mind that when you enable the RAW command, you CANNOT GET ANY + SUPPORT for Anope anymore. + + +4) Bugs / Crashes + +4.1) Anope always dies after about five minutes, saying "FATAL ERROR! Can't + back up nick.db". + + Make sure that the user Anope runs as has write access to the data + directory, and that the data directory actually exists (the latter + shouldn't be a problem if you ran the Config script). This means Anope + needs write and execute permission on the data directory itself and execute + permission on every parent directory of the data directory. + +4.2) Anope crashed with a segmentation fault. + + See if you can reproduce this by doing a certain sequence of things. If + so, please report it to us (see part 6 of README file). If not, you're + probably out of luck; if you like, you can report it to us anyway, but + chances are it won't get fixed if we don't have instructions on reproducing + it. If you do have such a problem, you may find the crontab utility useful + for dealing with it. + + Also, see the DumpCore directive in the configuration file. It allows Anope + to dump its core whenever it's segfaulting, usually calling it core and + placing it into Anope's main directory. Open up gdb by issuing the + following command at your shell: + + * gdb services core + + (of course replacing 'core' with the name of the core if different) and + type 'bt' at the gdb prompt. After that, send us the output you got and + keep the core file in a safe place, in case we need it to dig deeper into + the problem. + +4.3) I've found a bug that's not mentioned here or in the README or BUGS files. + What should I do? + + See section 6 of the README file. + +4.4) My FreeBSD box complains about 'Shared object "nss_dns.so.1" not found' + + We haven't figured out the exact cause yet, but as a quickfix you can + delete the /etc/nsswitch.conf file. Please keep in mind that removing a + configuration file can be dangerous, so only do this if you know what you + are doing. + +4.5) Anope and long (more then 30 character) nicknames. + + By default anope only supports nicknames up to 30 characters (NICKLEN=30). + If your IRCd allows for longer nicknames or has been modified to do so + anope will start logging a lot of ("NICK from nonexistent nick") messages. + This is because once a user uses a nick that is too long for anope to handle, + anope loses track of the user for the remainder of the session. + It is POSSIBLE but not NOT RECOMMENDED to extend the maximum length of nicknames + anope can track, however this will also break database compatibility. DBs saved + with anope set to allow for example 40 chars cannot be read by a default anope + and vice versa. So changing the maximum nick length is only possible + when starting with fresh databases and even then the consequences of this are + UNTESTED. + In order to change the maximum internal nick length, change the NICKMAX setting + in include/config.h, recompile anope and start without databases. + + +5) ChanServ + +5.1) Anope's channel mode setting doesn't work. I can't set modes with + OperServ, and every time ChanServ tries to set a mode, my server reverses + the change. + + Make sure EVERY server on your network has a U: line for Services in + ircd.conf, for example: + + U:services.whatever.net:*:* + +5.2) Anope ignored the SET SUCCESSOR setting and deleted a channel when the + founder expired. + + Normally, this is because the successor had too many channels registered; + in this case, you will see an entry in the log file like the following: + + [date] Successor (SuccessorNick) of channel #somechannel owns too many + channels, deleting channel #somechannel + + If you don't get a message like this or you can verify that the successor + wasn't running into the channel limit, please report it using the + bug-reporting procedure below (see section 6 of the README file). + +5.3) How to auto voice all those whom join my #channel? + + Execute the following commands (/cs is an alias for /msg ChanServ): + + /cs set #channel secure off + /cs set #channel xop off + /cs levels #channel set AUTOVOICE -1 + +5.4) Channel options like RESTRICTED or SECUREOPS don't work. What's wrong? + + Make sure that you didn't put any of your normal IRCd's as a ULined server + in Anope. Some access checks for clients from ULined servers are skipped to + avoid fights between the ULined servers. This is usually only useful when + you have a statistics server connected to your network. + + +6) BotServ + +6.1) How do I add bots to BotServ? + + Read /msg BotServ HELP and /msg BotServ HELP BOT. Note that you need to be + opered up and identified as a Services Administrator before you can use the + BOT command. + +6.2) Why do kick triggers and fantasy commands fail to work with my Bahamut + IRCd? + + Bahamut allows you to setup a server as 'serviceshub'. This will filter + certain data services usually don't need to process. This option also + filters channel messages, because DALnet's services have no use for them. + Anope parses the channel messages for kick triggers and fantasy commands. + To make sure these work the server type of the hub they're linked to should + be simply 'hub' and not 'serviceshub'. + + +7) Language + +7.1) Anope complains in the logfile about being unable to load the default + language. + + You forgot to run "make install". + +7.2) Anope spricht kein Deutsch!, etc. (Anope doesn't speak my language!) + + See section 5 of the README file. + +7.3) I selected a language other than English, but sometimes Anope sends + responses in English instead. + + Some language files are not complete--in other words, they don't have a + translation of every message Anope uses, but only some of them. In this + case, the missing messages will be displayed in English. You can either + wait for the primary translator to provide us with a translation, or do the + translation yourself and send us the messages translated into your + language. + + +8) DevNull + +8.1) What is the purpose of DevNull? + + DevNull functions as a message sink. Any message sent to it will be + ignored. It will not be logged, there will be no response. It will be lost + forever. Whether it's useful or not is up to you; we just provide you with + the option. diff --git a/docs/INSTALL b/docs/INSTALL new file mode 100644 index 000000000..33e62f346 --- /dev/null +++ b/docs/INSTALL @@ -0,0 +1,184 @@ +Anope Installation Instructions +------------------------------- + +1) Installing Anope +2) Upgrading Anope +3) Setting up the IRCd +4) Starting Anope +5) Setting up a crontab + +Note: You should also read the README and FAQ files! + +1) Installing Anope + + IMPORTANT NOTE: it is not recommended to use (and therefore install) + Anope as root. Use an unprivileged user instead -- the + one you're using for the ircd or a dedicated one will + be good enough. + + The very first thing you need to do is to get the Anope package (if not + already done). You can find it at: + + http://www.anope.org/ + + Next, unpack the package in your home directory, and go into the created + directory. + + Now type ./Config to start the configuration script. It will ask you a + few questions, and figure out how to compile Anope on your system. If + you are unsure about the answer to a question, use the default value. + + NOTE: although you may specify different binary and data paths, it is + RECOMMENDED that you use the same value for both. + + You can now type make to compile Anope. If there are errors in the + Makefile, *try to use gmake* instead. If it still doesn't work, you (or + the system administrator if it's a shell) must install GNU make. You may + find it at ftp://prep.ai.mit.edu/pub/gnu/. + + Now type make install (or gmake install; see above). This will install + all the needed files in the paths you specified with the configure + script, and setup file permissions. You should ensure that the data + directory is not accessible by other users, as malicious users may + cause trouble on your network if passwords are not encrypted, or read + the memos of any user. + + If you see errors during this process, please mail us with the *complete* + error output, and don't forget to mention your OS, compiler and C library + versions. + + Now go into the data directory (by default, ~/services). Copy the example + configuration file (example.conf) to services.conf, and open the latter + with your favorite text editor. It contains all the configuration + directives Anope will use at startup. Read the instructions contained in + the file carefully. Using the default values is NOT a good idea, and will + most likely not work! + + If you need help, you should subscribe to the Anope mailing list and mail + there to get help from other users. See the README file for more + information. + +2) Upgrading Anope + + If you got a .diff file and want to patch the old Anope sources with it, + do the following: + + * Copy the .diff file into the root Anope sources directory. + * Type patch -p1 <file.diff + + Note that upgrading anope with a patchfile isn't recommended. You should + download a new, clean source package, as this will give the best results. + + To upgrade Anope, just follow the installation instructions described in + section 1. There are however a few specific guidelines: + + * IMPORTANT: Back up your old databases! + * If you are upgrading to a new major release, ALWAYS restart a + fresh configuration file from example.conf. + +3) Setting up the IRCd + + Services acts as an IRC server with pseudo-clients on it. To link them to + your network, you'll need to add some lines in the ircd.conf of their hub + server (as stated in the RemoteServer configuration directive). + + For samples below we'll take services.localhost.net as the name of the + Services (as stated in the ServerName configuration directive). Note that + this samples are made to be as generic as possible, but there might be + small variations, depending on your IRCd. For IRCd-specific help with + configuration, read near the end of this section. + + First, the C/N lines, that allow Services to link. They also need a + Y:line to work correctly. + + Y:27:180:0:0:4000000 + C:127.0.0.1:mypass:services.localhost.net::30 + N:127.0.0.1:mypass:services.localhost.net::30 + + "mypass" is the same password you mentioned in the RemoteServer + configuration directive. 127.0.0.1 is the IP from which Services connect + from (linking in localhost is the most efficient way to run Services). + + Then, you have to set-up an U:line, that will allow Services to change + channel modes, topics, and much more without being opped in the channel. + + U:services.localhost.net:*:* + + NOTE: if you have more than one server in your network, this line MUST + be added on ALL servers, or things won't work correctly. + + Finally, you'll need to add an H:line, to make the OperServ JUPE command + work correctly. + + H:*::Services.LocalHost.Net + + Don't forget to /rehash your IRCd to apply changes. + + A new trend in ircd configuration is popping all over the place, good + examples are the latest Hybrid, Unreal and Bahamut, which use a more + "readable" form of configuration. For those, use something like: + + link services.localhost.net + { + username *; + hostname localhost; + bind-ip *; + port 6667; + hub *; + password-connect "mypass"; + password-receive "mypass"; + class servers; + }; + + Note that this block-style configuration files differ heavily, depending + on the IRCd. Consult the interactive link maker (link is below) for more + details on the exact configuration used by your IRCd. + + If you're unable to get a link with your IRCd after reading this section, + you might try the interactive link maker, which is located at: + + http://anope.org/~heinz/ilm.php + +4) Starting Anope + + Go into the directory where binaries were installed (by default, this is + ~/services). Type ./services to launch Anope. + + If there are syntax errors in the configuration file they will be + displayed on the screen. Correct them until there are no errors anymore. + A successful startup won't generate any message. + + Give Services at least one minute to link to your network, as certain + IRCds on some OSes may be really slow for the link process. If nothing + happens after about a minute, it is probably a configuration problem. Try + to launch Anope with ./services -debug -nofork to see any errors that it + encounters, and try to correct them. + + If you need help to solve errors, feel free to subscribe to the Anope + mailing list and ask there. See the README file for details. + +5) Setting up a crontab + + A crontab entry will allow you to check periodically whether Anope is + still running, and restart it if not. You'll need to have Anope binaries + and data installed in the same directory for this to work without + modification. + + First rename the example.chk script that is in Anope path (by default, + this is ~/services) to services.chk and edit it. You'll need to modify + the CONFIGURATION part of the file. Then ensure that the file is marked + as executable by typing chmod +x services.chk, and try to launch the + script to see if it works (Anope must not be running when you do this ;)) + + When this is done, you'll have to add the crontab entry. Type crontab -e. + This will open the default text editor with the crontab file. Enter the + following (with correct path): + + */5 * * * * /home/ircd/services/services.chk >/dev/null 2>&1 + + The */5 at the beginning means "check every 5 minutes". You may replace + the 5 with other another number if you want (but less than 60). Consult + your system's manual pages for more details on the syntax of the crontab + file. Interesting manpages are crontab(5), crontab(1) and cron(8). + + Save and exit, and it's installed. diff --git a/docs/IRCD b/docs/IRCD new file mode 100644 index 000000000..c99f2558a --- /dev/null +++ b/docs/IRCD @@ -0,0 +1,601 @@ +How To Add IRCd Support +----------------------- + +1) Files to Edit +2) Modifing the Header File +3) The Code +4) Modes +5) Functions / Events +6) CAPAB/PROTOCTL + +1) Files to Edit + + When preparing to add support to Anope for your ircd, you need to edit + the following files. + + A) Make a copy of the .c and .h file of the IRCd that matches the ircd + that you are attempting to add support for best. + B) Make a backup copy of include/services.h, include/sysconf.h.in + C) Make a backup copy of Config and configure.in + + First step in this process is to rename the .c and .h file after the IRCd + that you are going to be adding support for. Its recommended that you come + up with a name that is clear and easy to understand. + + Now that you have the files that you will need to create your own ircd + support, starting with Config. This file is a shell script file; scroll + down until you find the list of ircs for the user to select. Indicate + the based ircd version which is supported such as a series 1.x or 2.2.x, + placing in the comment side an exact version that the support is for or + "experimental" if you are not the ircd developer. The next step is to + decide how the IRCd will be defined, following the existing examples edit + 'IRCTYPE_DEF="IRC_RATBOX"' to be the descriptive define for your ircd. + + With the Config file ready to go, edit configure.in and find in there the + reference to --with-ircd. You should see the various other ircds, and + you will want to add yours in there using the same IRC_ name you came up + with above. Important in this step is to make sure that you set the + IRCDFILE to the name of the .c file you set in step 1. Once you have the + configure.in created you can remove the old configure and at the command + prompt type "autconf"; this will generate the new configure file. + + Getting close to actually modify code. Open sysconf.h.in and add two + lines for your given ircd, which is similar to this: + + /* "First IRCD type" */ + #undef IRC_RATBOX + + Open services.h and add a line with the rest of the ircd include files to + match the name of the .h file you set in step 1. + + #include "ratbox.h" + + Taking the .c and .h file open them and replace the #ifdef IRC_* with the + IRC_ name you set in step two. Ensure that the code comments at the top + of the file match the ircd that the code will be for. + + You are now ready to start getting into the code. + +2) Modifying the Header File + + Now that you have gotten past the first part of the creation process, you + are into the code. This part is the harder and more complex part. You + will need a general understanding of C code to continue. Here are the + step by step instructions required to make this work. + + Open the .h file and find the section of code with + + #define PROTECT_SET_MODE "+" + #define PROTECT_UNSET_MODE "-" + #define CS_CMD_PROTECT "PROTECT" + #define CS_CMD_DEPROTECT "DEPROTECT" + #define FANT_PROTECT_ADD "!protect" + #define FANT_PROTECT_DEL "!deprotect" + #define LEVEL_PROTECT_WORD "AUTOPROTECT" + #define LEVELINFO_PROTECT_WORD "PROTECT" + #define LEVELINFO_PROTECTME_WORD "PROTECTME" + + If the ircd supports a protective/admin (not owner) mode, set the + PROTECT_SET_MODE and PROTECT_UNSET_MODE to be that mode. On most ircds + it's usermode "a" so you will be setting it to "+a" and "-a". The next + two are based more on what this mode is called. When you message ChanServ + to get this mode, this is the command you will be using. After this are + the fantasy commands which can be used in channel to get these modes. The + next three relate to the ACCESS LEVEL list system. Again these are the + words to gain these levels in the ACCESS LEVEL system. If your ircd does + not have these functions, leave them at what ever value is currently set; + the core code will ignore the request of the user. + + Now that this is set, you can define the MODES. All user modes are stored + with UMODE_ followed by a letter matching the modes case; be careful to + use the correct case as this will make it clear when you setup MODES in + the .c in a few. Use hex values for the modes so starting at 0x00000001 + to 0x8000000. In most cases you want to list all modes. If you run out of + values look at removing any modes that do not impact services. + + Channel modes are done much like user modes, with the exception that + bans, exceptions, invites, and modes that are applied to a user such as + op and voice are not defined here. All other modes are defined in here. + Again be clear and use the correct case and use hex values as done with + user modes. + + Finally we come to DEFAULT_MLOCK; this is the mode that services will set + by default on channels when they are registered. In general you want this + to be what is acceptable by the ircd; in most cases this is "+nt" + +3) The Code + + Here is where the code of the .c file comes in. Be prepared to spend at + least an hour, if not longer, going over the code and getting it right; + Especially if you are setting up an ircd that is completely different + than the one you used as a base. This section covers the majority of the + code that is in use. + + The first bit of code you will face is: + + const char version_protocol[] = "Ratbox IRCD"; + + This the protocol name which will appear in various places; especially + when you do -version at the command prompt, this is where you state the + server name. The version is not always needed unless you are showing that + the support is for one branch of a ircd family, such as Unreal 3.1 and + Unreal 3.2. + + Once you have decided on this little piece of code, you will come to + flood mode characters being used for setting and removing. If your IRCd + does not support flood modes, you can just use ""; we will be setting if + your IRCD supports flooding or not in a little bit. + + const char flood_mode_char_set[] = "+f"; + const char flood_mode_char_remove[] = "-f"; + + The next task that you will face is setting whether the IRCD sends time + stamps on modes but does not tell us that it will do so. If it does, set + UseTSMODE to 1; if it does not set it to be 0. If you're not sure refer + to your IRCd's documentation on how MODE is sent. + + int UseTSMODE = 0; + + Now you've come to the part where you setup your ircd. There are two + structs which hold this information; This allows you to quickly setup + your specific ircd. + + IRCDVar ircd[] = { } + + This struct contains your basic IRCd functions. Your base source file has + the list of all available variables; note that you should not swap any + around, or you will break stuff. Here is a brief description of the usage + of each. + + 1) Name: This member tells Anope about the IRCD's name. It may contain + text about it's name and version. This is used to identify the + build on startup. + + 2) NickServ Mode: This is the user mode set by Anope on NickServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 3) ChanServ Mode: This is the user mode set by Anope on ChanServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 4) MemoServ Mode: This is the user mode set by Anope on MemoServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 5) HostServ Mode: This is the user mode set by Anope on HostServ. + Normally you want this to be some form of oper flag, + or a services flag. Note that if your ircd does not + support HostServ, you can safely make this NULL or +, + as there is a check before bringing HostServ online. + + 6) OperServ Mode: This is the user mode set by Anope on OperServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 7) BotServ Mode: This is the user mode set by Anope on BotServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 8) HelpServ Mode: This is the user mode set by Anope on HelpServ. + Normally you want this to be some form of oper flag, + or a services flag. + + 9) DevNull Mode: This is the user mode set by Anope on DevNull. + Normally you want this to be some form of oper flag, + or a services flag. + + 10) Global Mode: This is the user mode set by Anope on Global. + Normally you want this to be some form of oper flag, + or a services flag. + + 11) NickServ Alias Mode: This is the user mode set by Anope on the alias + of NickServ. Normally you want this to be some + form of oper flag, or a services flag. + + 12) ChanServ Alias Mode: This is the user mode set by Anope on the alias + of ChanServ. Normally you want this to be some + form of oper flag, or a services flag. + + 13) MemoServ Alias Mode: This is the user mode set by Anope on the alias + of MemoServ. Normally you want this to be some + form of oper flag, or a services flag. + + 14) HostServ Alias Mode: This is the user mode set by Anope on the alias + of MemoServ. Normally you want this to be some + form of oper flag, or a services flag. Note that + if your ircd does not support HostServ, you can + safely make this NULL or +, as there is a check + before bringing HostServ online. + + 15) OperServ Alias Mode: This is the user mode set by Anope on the alias + of OperServ. Normally you want this to be some + form of oper flag, or a services flag. + + 16) BotServ Alias Mode: This is the user mode set by Anope on the alias + of BotServ. Normally you want this to be some + form of oper flag, or a services flag. + + 17) HelpServ Alias Mode: This is the user mode set by Anope on the alias + of HelpServ. Normally you want this to be some + form of oper flag, or a services flag. + + 18) DevNull Alias Mode: This is the user mode set by Anope on the alias + of DevNull. Normally you want this to be some + form of oper flag, or a services flag. + + 19) Global Alias Mode: This is the user mode set by Anope on the alias + of Global. Normally you want this to be some form + of oper flag, or a services flag. + + 20) BotServ Bots Mode: This is the user mode set by Anope on all BotServ + bots. Normally you want this to be a some form of + service or bot flag; you can use + for no mode at + all. + + 21) Max Channelmode Symbols: This is the total number of possible channel + modes that can appear before a nick. Do + remember to count each possible mode, so +ov + is 2. + + 22) Modes to Remove: This is every mode that Anope should remove when + stripping channel modes. + + 23) Channelmode for bots: When a BotServ bot joins a channel, this is the + mode set on them. Normally you will want them + opped (+o), and protected (+a) on IRCd's that + support it. + + 24) SVSNICK: Can the ircd use SVSNICK to change some ones nick? Otherwise, + KILL is used. Use 1 for yes, 0 for no. + + 25) VHOST: Can a user's host be changed on the fly? Enabling this allow + HostServ online. Use 1 for yes, 0 for no. + + 26) OWNER: Has a channel umode for being the channel owner. For example, + UnrealIRCd has mode +q. Use 1 for yes, 0 for no. + + 27) OWNER MODE SET: What mode to set to make someone the owner. If the + IRCd doesn't support owners, set this to NULL. + + 28) OWNER MODE UNSET: What mode to unset to take away someone's channel + owner status. If the IRCd doesn't support owners, + set this to NULL. + + 29) ADMIN MODE SET: What mode to set to make someone a channel admin. + If the IRCd dosn't support admins, set to NULL. + + 30) ADMIN MODE UNSET: What mode to unset to take away channel admin. + If the IRCd dosn't support admins, set to NULL. + + 31) Mode on Nick Register: What mode to give users when they register + with NickServ. If your ircd doesn't set expect + a mode to be set on registration, you should + set this to NULL. + + 32) Mode on Nick Unregister: What mode to set give users when they cancel + their registration with NickServ. If your + IRCd doesn't set a mode for registered users + you should set this to NULL. + + 33) Mode on Nick Change: What mode to give users when they change their + nick. If your ircd doesn't set a mode, you + should set this to NULL. + + 34) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes, + 0 for no. + + 35) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no. + + 36) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no. + + 37) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for + yes, 0 for no. + + 38) Number of Server Args: When an IRCd connects, this is the number of + parameters that are passed. + + 39) Join to Set: Services must join a channel to set any modes on that + channel. Use 1 for yes, 0 for no. + + 40) Join to Message: Services must join a channel to send any message to + that channel (cannot override +n). Use 1 for yes, + 0 for no. + + 41) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes, + 0 for no. + + 42) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS + set forward by +1. Use 1 for yes, 0 for no. + + 43) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones) + like their topic TS set back by -1. Use 1 for yes, + 0 for no. + + 44) Protected Umode: UMODE_ define that defines the protected usermod. + Use 0 for no support, or enter the UMODE_ define. + + 45) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use + 1 for yes, 0 for no. + + 46) SQline Channels: The IRCd's supports banning channel names via + SQLINES. Use 1 for yes, 0 for no. + + 47) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a + QUIT message for that user? Use 1 for yes, 0 for no. + + 48) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use + 1 for yes, 0 for no. + + 49) Protect: Support for channel protect (mode +a, mainly being used by + UnrealIRCd and ViagraIRCd). Use 1 for yes, 0 for no. + + 50) Reverse: We can do a reverse check when unbanning. For use with + DreamForge based IRCd's. Use 1 for yes, 0 for no. + + 51) Register Channels: Supports sending a channelmode for registered + channels. Use 1 for yes, 0 for no. + + 52) Registered Mode: Channelmode to set on registered channels, see the + option above. Use 1 for yes, 0 for no. + + 53) vIdent: Support for including a user's ident in their vHost. Use + 1 for yes, 0 for no. + + 54) SVSHOLD: Support for temporarily 'holding' a nick, instead of using + a nick enforcer client. Use 1 for yes, 0 for no. + + 55) TS on MODE: We need to send a timestamp when modes are being changed. + Use 1 for yes, 0 for no. + + 56) NICKIP: The IP address of new users is being sent along with their + hostname when new users are being introduced on the network. + Use 1 for yes, 0 for no. + + 57) Umode: We can use OperServ to change a user's mode. Use 1 for yes, + 0 for no. + + 58) O:LINE: We can use OperServ to give some user a temporary O:LINE. + Use 1 for yes, 0 for no. + + 59) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes, + 0 for no. + + 60) Change Realname: Change real name. Use 1 for yes, 0 for no. + + 61) Extra Help: If the IRCd has more help for functions in ChanServ than + the default help, you should put the language string + identifier here. Use 0 for no extra help. + + 62) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support. + + 63) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support. + + 64) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes. + + 65) Vhost Umode: UMODE_ that indicates if the user currently has a vHost. + Use 0 for no support. + + 66) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for + yes, 0 for no. + + 67) Link Mode: The IRCd has a channelmode for linking a channel to some + other channel. Use 1 for yes, 0 for no. + + 68) CMode F: CMODE_ that defines flood mode. Use 0 for no support. + + 69) CMode L: CMODE_ that defines link mode. Use 0 for no support. + + 70) Check Nick ID: Should we check if a user should remain identified when + changing their nick? This is for IRCd's that remove + their registered-user mode when someone changes their + nick (like Bahamut does). + Use 1 for yes, 0 for no. + + 71) No Knock Requires +i: Does the No Knock channel mode require invite + only channels? Use 1 for yes, 0 for no. + + 72) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is + NULL by default. + + 73) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes, + 0 for no. + + 74) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive? + Use 1 for yes, 0 for no. + + 75) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use + 1 for yes, 0 for no. + + 76) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes, + 0 for no. + + 77) SJOIN Ban Char: Character used to identify bans. Use ''. + + 78) SJOIN Except Char: Character used to identify exceptions. use ''. + + 79) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use + 1 for yes, 0 for no. + + 80) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to + do so? Use 1 for yes, 0 for no. + + 81) Vhost Character: The character used to represent the vHost mode, if + this is supported by the IRCd. + + 82) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no. + + 83) UMode +h: Does the IRCd support usermode +h for helpers? + Use 1 for yes, 0 for no. + + 84) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no. + + 85) Character Set: Unreal passes the character set during PROTOCTL, + the value is stored here. Set this NULL to start. + + 86) Reports sync: Does the IRCd report when it's in sync (or done bursting, + depending on how you want to say it)? Remember to set + the sync state for servers correctly if it does. + Use 1 for yes, 0 for no. + + 87) Channel CIDR: Set to 1 if channel bans, excepts and invites + support CIDR masks. Expected syntax: *!*@ip/mask. + When set to 1, anope will only parse strict CIDR masks. + IRCd's that try to correct invalid CIDR's (like nefarious) + will need a custom implementation in the core. + Contact the anope Dev Team if this is the case. + Set to 0 if CIDR's are not supported by your IRCd. + + So we've had this long list. Now there's a second struct to fill. This + struct isn't as long as the previous one though, so we'll handle it quite + quick compared to the previous one. + + IRCDCAPAB ircdcap[] = { } + + This struct is based on the CAPAB defines. You should review the CAPAB + table below to see how this should be done. + + Define Table + -------------------------------------------------------------------------- + Define | Value | Token | Description + ----------------|------------|-----------|-------------------------------- + CAPAB_NOQUIT | 0x00000001 | NOQUIT | NOQUIT protocol support + CAPAB_TSMODE | 0x00000002 | TS | Chanmodes are timestamped + CAPAB_UNCONNECT | 0x00000004 | UNCONNECT | UNCONNECT protocol support + CAPAB_NICKIP | 0x00000008 | NICKIP | IP sent in the NICK line + CAPAB_NSJOIN | 0x00000010 | SSJOIN | Smart SJOIN support + CAPAB_ZIP | 0x00000020 | ZIP | Support for gzipped links + CAPAB_BURST | 0x00000040 | BURST | Supports BURST command + CAPAB_TS3 | 0x00000080 | TS3 | Support for TS3 protocol + CAPAB_TS5 | 0x00000100 | TS5 | Support for TS5 protocol + CAPAB_DKEY | 0x00000200 | DKEY | DH-Key exchange using DKEY + CAPAB_DOZIP | 0x00000400 | ZIP | Link traffic will be gzipped + CAPAB_DODKEY | 0x00000800 | DKEY | Do DKEY with this link + CAPAB_QS | 0x00001000 | QS | Supports quit storm removal + CAPAB_SCS | 0x00002000 | SCS | String Cache System support + CAPAB_PT4 | 0x00004000 | PT4 | Support for PT4 protocol + CAPAB_UID | 0x00008000 | UID | Support for UIDs + CAPAB_KNOCK | 0x00010000 | KNOCK | Supports KNOCK + CAPAB_CLIENT | 0x00020000 | CLIENT | Supports CLIENT + CAPAB_IPV6 | 0x00040000 | IPV6 | Support for IPv6 addresses + CAPAB_SSJ5 | 0x00080000 | SSJ5 | Smart Join protocol 5 support + CAPAB_SN2 | 0x00100000 | SN2 | Support for SN2 protocol + CAPAB_VHOST | 0x00200000 | VHOST | Supports VHOST protocol + CAPAB_TOKEN | 0x00400000 | TOKEN | Supports s2s tokens + CAPAB_SSJ3 | 0x00800000 | SSJ3 | Smart Join protocol 3 support + CAPAB_NICK2 | 0x01000000 | NICK2 | Support for extended NICK (v2) + CAPAB_UMODE2 | 0x02000000 | UMODE2 | Supports UMODE2 command + CAPAB_VL | 0x04000000 | VL | VLine information in info field + CAPAB_TLKEXT | 0x08000000 | TLKEXT | Not 8, but 10 params in TKL's + CAPAB_CHANMODE | 0x10000000 | CHANMODE | Channel modes are passed here + CAPAB_SJB64 | 0x20000000 | SJB64 | SJOIN timestamps are base64 encoded + CAPAB_NICKCHARS | 0x40000000 | NICKCHARS | Character set used by the IRCD for nicks + + +4) Modes + + The next thing you should do is defining the user modes. You will want to + have your .h file handy for this part. + + unsigned long umodes[128] = { } + + This array goes from 0 to 127 in the ASCII character set. Insert the user + modes at the slot where the mode fits. If you are adding a the user mode + of +i find the 105th (ASCII code of 'i') character slot in the array, and + place the UMODE_i into this slot. Your base .c file should contain a good + start for this, as well as a little help locating the characters. + + The following mode set is for the channel symbols. During a SJOIN event + the modes are sent usually before the nick. These normally are @, +, % + etc.. depending on the ircd. Starting at ASCII 0 and running to 127. + Replace the 0 with the character (o = @, h = %) for the given mode. In the + case of halfop which is usually sent as % replace the 37th character with + 'h', do this until all modes that are possible be received in this manor + have been inserted into the array. + + Now that you have that complete, the following array is ready to be dealt + with. This is the cmmodes array, like the others it is a ASCII array + starting at 0 and going to 127. However at the given letter you will want + to enter the add, and delete function for the given mode. In the case of + bans (+b) there is add_ban, and del_ban. Anope provides functions for + bans, exceptions and invites, should your ircd have more then these please + contact Anope to discuss what can be done to add this mode. + +5) Functions and Events + + A brief word about functions and events. All events are captured using: + + void moduleAddIRCDMsgs(void) + { + m = createMessage("NICK", anope_event_nick); + addCoreMessage(IRCD,m); + } + + Each event should have a event handler if its important enough to be + processed by services. All event functions should be formed like this: + + int anope_event_capab(char *source, int ac, char **av) + { + return MOD_CONT; + } + + They will receive the source; this can be NULL at times depending on the + event. Next, ac is the number of arguments that are in the event, and av + holds the values for each; so av[0] is the first variable, av[1] will be + the second one, and so on. Events are likely to pass to various upper + level event handlers; see the previous ircd source for how they handle + these events. + + All commands are formed like this: + + void anope_cmd_svsnoop(char *server, int set) + { + send_cmd(NULL, "SVSNOOP %s %s", server, (set ? "+" : "-")); + } + + They may take any number of arguments, depending on the command. They + should eventually come to a send_cmd(); this root function is how + commands are sent to the IRCd. + +6) CAPAB/PROTOCTL + + Most IRCD send a CAPAB or PROTOCTL line so that they can work out what + the other end of the connection is capable of doing. Anope has a function + to read these lines and set itself up to to handle these events better. + When adding support for your ircd, take the following steps. + + 1) In the ircd.c find the function anope_cmd_capab(); this function will + send the CAPAB/PROTOCTL line (consult your ircd documentation for + which to send). In a single line type in the tokens that anope must + send. Here is an example of Hybrid's capab line: + + /* CAPAB */ + void anope_cmd_capab() + { + send_cmd(NULL, "CAPAB TS5 EX IE HOPS HUB AOPS"); + } + + 2) In the ircd.h file make sure to place the defines (see below) that + match your IRCd's tokens; only use the ones that matter to your ircd. + Should your IRCd add new features not covered in the defined, please + contact the Anope Dev team before doing so. See README for information + on how to contact the Anope team. + + 3) Ensure that the CAPAB/PROTOCTL event his handled correctly. + + A) In the function "moduleAddIRCDMsgs" making sure that you have the + following two lines: + + m = createMessage("CAPAB", anope_event_capab); + addCoreMessage(IRCD,m); + + B) Add the function to handle the event + + int anope_event_capab(char *source, int ac, char **av) + { + capab_parse(ac, av); + return MOD_CONT; + } + + This function should call the capab_parse function which parses + the received CAPAB/PROTOCTL line. diff --git a/docs/MODULES b/docs/MODULES new file mode 100644 index 000000000..6c1fbcc8a --- /dev/null +++ b/docs/MODULES @@ -0,0 +1,124 @@ +Anope Modules +------------- + +1) Introduction +2) Installation +3) Usage +4) Usage Example +5) More Modules +6) Support +7) Information for Developers +8) Modules Repository + +1) Introduction + + Anope 1.6 onwards supports external modules. External modules are pieces + of code that can be attached to a running Anope process dynamically. These + modules can serve several purposes, and perform all kind of operations to + enhance your network. + +2) Installation + + 1. If modules are supported by your system, they will be configured + automatically when you run ./Config. The modules will be installed + to the modules directory in your data path (by default this will + be ~/services/modules). + + Note: you might need to run "make distclean" prior to running ./Config + + 2. Compile Anope as usual. The (g)make process will now compile module + support into Anope, and compile the default sample modules, and/or + any other module located on the modules folder ("src/modules/"). + + 3. Install Anope as usual. The install process will place the compiled + modules in their runtime location, making them available for loading. + + 4. Start or restart services to make use of the new Anope executable. + Note that you do not need to restart to load new or changed modules, + only to make use of a new Anope executable. + +3) Usage + + All module manipulation commands are done through OperServ. These are: + + MODLOAD Load a module + MODUNLOAD Un-Load a module + MODLIST List loaded modules + MODINFO Info about a loaded module + + These commands available to Service Roots only. + + You can also load (and pre-load) Modules automatically by loading them + on startup. To do so, edit your services.conf file and change the values + of "ModuleAutoload" and "ModuleDelayedAutoload" to include the modules + you want to load every time Anope starts. + +4) Usage Example + + /msg OperServ modload hs_moo + *** Global -- from OperServ: dengel loaded module hs_moo + -OperServ- Module hs_moo loaded + + /msg OperServ modinfo hs_moo + -OperServ- Module: hs_moo Version: 1.1 Author: Anope loaded: Mar 21 10:54:37 2004 CLT + -OperServ- Providing command: /msg HostServ moo + + /msg HostServ moo + -HostServ- MOO! - This command was loaded via a module! + + /msg OperServ modunload hs_moo + *** Global -- from OperServ: dengel unloaded module hs_moo + -OperServ- Module hs_moo unloaded + + /msg HostServ moo + -HostServ- Unknown command moo. "/msg HostServ HELP" for help. + + * Note that the name of the module file is "hs_moo.c", yet we load + and reference the module as "hs_moo" only. By naming convention + modules have an abbreviated service name they attach to (hs_ for + HostServ, cs_ for ChanServ, etc) followed by a descriptive keyword. + +5) More Modules + + Anope ships with three sample modules that only illustrates some of the + implemented module capabilities. They don't really do much or anything + useful. + + You can download more useful modules from http://modules.anope.org/. Just + grab the module file (usually with a .c extension). Place the module + file in your modules (src/modules) folder; the same folder that contains + both hs_moo.c and catserv.c module files. + + The new modules need to be compiled and installed before you can make + use of them: + + 1. Make sure you're in the main source directory. (usually anope-1.X.XX/) + 2. Run `make modules` to compile any new or changed modules. + 3. Run `make install` to install the modules. + + You can now use /msg OperServ MODLOAD to load the new modules. + +6) Support + + The Anope team is not responsible or liable for any unofficial module + (i.e. anything other than what was released with the Anope package). + + Use modules at your own risk, and make sure you get them from a + reputable source. You might get module support by contacting the module + author, posting on our online forum, or maybe on our #anope channel + at /server irc.anope.org. + +7) Information for Developers + + There are a number of useful documents on the Anope Wiki. The Anope Wiki + can be reached at: + + * http://wiki.anope.org/ + + +8) Modules Repository + + You can find modules at http://modules.anope.org + + These modules are 3rd party and as such are not supported by the Anope Team. + Contact the Module Author directly with problems, not the Anope Team. diff --git a/docs/MYSQL b/docs/MYSQL new file mode 100644 index 000000000..1dd10298e --- /dev/null +++ b/docs/MYSQL @@ -0,0 +1,109 @@ +Anope MySQL Support +------------------- + +1) Introduction + + Anope 1.6 onwards supports MySQL databases. On Anope 1.6.0 only PHASE 1 + has been implemented. Since the next phases require major changes in the + core, we decided to save it for 2.0. However, having your db's easily + accessible on your website is still a great feature. + + PHASE 1:Anope will be able to save all it's databases to MySQL. It will + happen in conjunction with the current FFF databases. This first step is + nothing more than a MySQL dump of the databases (i.e. read-only), since + Anope will not (for now) read from Mysql. (COMPLETED) + + PHASE 2:The next step is load the databases from MySQL, being able to + replace the FFF completely as an archive method (since all changes to + the MySQL db would be lost on the next Services save). All, while keeping + FFF intact. This is still not the final goal, but it's a milestone. + (COMPLETED) + + UPDATE: Anope 1.7.0 (Revision 11 and above) finally supports phase 2! + A new config directive called 'UseRDB' has been added. + If you enable this, anope will automatically try to load its + data from MySQL (if configured and compiled with). + + PHASE 3:The next step, and most convoluted of all (since we'll need to + modify pretty much all the source) is to load/save (SELECT/INSERT) data + in realtime. That way the MySQL db could be modified externally (web?). + Again, the FFF will be kept intact. + +2) Requirements + + 1. MySQL server version 3.23.32 or greater + 2. MySQL libs and development files (usually called mysql-dev). + 3. A MySQL user account + 4. A MySQL database + +3) Installation + + 1. The ./Config script automatically detects if your system is capable + of running Anope with MySQL support. There is no need anymore to + answer yes when asked. + + Note: You might need to run "make distclean" prior to running ./Config + + 2. Compile Anope as usual. The (g)make process will now compile MySQL + support into Anope. + + 3. Install Anope as usual. + +4) Configuration + + 1. Go to your "services bin directory" (eg: /home/someuser/services/) and run mydbgen + to help on the schema creation and adjustments. + + 2. Edit services.conf and add your MySQL data to the MySQL configuration + block. + + 3. Start or restart services to make use of the new Anope executable. + +5) Security + + To add a layer of security you have the option of encrypting or encoding + all passwords for nicks and chans. Use the "MysqlSecure" directive on your + services.conf file to enable it. The available storage methods are: + + #MysqlSecure "" + + or + + MysqlSecure "" + + Disables security. All passwords will be saved on the MySQL database + as clear text, with no encryption or encoding. FASTEST + + MysqlSecure "des" + + Encrypts all passwords using a UNIX DES encryption. This is a one way + encryption algorithm. You can only validate it against another DES + encrypted string, using the same "salt" (the first two characters of + the encrypted string). FAST + + MysqlSecure "md5" + + Calculates an MD5 128-bit checksum for the password. The value is + returned as a 32-digit hex number that may be used as a hash key. + This is a one way encryption algorithm. SLOW + + MysqlSecure "sha" + + Calculates an SHA 160-bit checksum for the password. The value is + returned as a 40-digit hex number. This is a one way encryption + algorithm. SLOWEST + + MysqlSecure "mykey" + + Encodes the passwords using "mykey" as the encryption password. It + produces a binary string and can be decoded using the MySQL built in + function DECODE(crypt_str,mykey). VARIABLE + + Caveat: Keep in mind that this if you use any method other than clear + text, services will need to encrypt/encode every single password on + every database save. On large networks, it may impact responsiveness + during the saves. + + Caveat: If you enable MysqlSecure you can not longer use the UseRDB directive + as all the password types are encrypted with a one way encryption method for + older MySQL servers. diff --git a/docs/NEWS b/docs/NEWS new file mode 100644 index 000000000..8b31c751b --- /dev/null +++ b/docs/NEWS @@ -0,0 +1,55 @@ +Highlighted News in Anope 1.8 +============================================ + * Added a new and improved ./Config script. + * Added MySQL phase 2 implementation (see docs/MYSQL). + * Added NickServ registration delays. + * Added read receipts for memos. + * Added a way for modules to store data with internal structures. + * Added nick tracking support. + * Added support for SVSHOLD. + * Added support for U:Lined servers. + * Added support for TS6 IRCd's. + * Added support for Windows. + * Added internal events for modules. + * Added a way to suspend nicks. + * Added support for module configuration directives. + * Added translation support for modules. + * Added a module pack with handy modules. + * Added IRCd protocol modules. + * Added support for new IRCd's. Currently supported: + - Bahamut 1.4.27 or later (including 1.8) + - Charybdis 1.0 or later + - DreamForge 4.6.7 + - Hybrid 7 or later + - InspIRCd 1.0 or later (including 1.1) + - Plexus 2.0 or later (including 3.0) + - PTLink 6.15 or later + - RageIRCd 2.0 or later + - Ratbox 2.0.6 or later + - ShadowIRCd 4.0 beta 7 or later + - Solid IRCd 3.4.6 or later + - UltimateIRCd 2.8.2 or later (including 3.0) + - UnrealIRCd 3.1.1 or later (including 3.2) + - ViagraIRCd 1.3 or later + * Added new languages. Currently included: + Catalan, German, English, Spanish, French, Greek, + Hungarian, Italian, Dutch, Polish, Portugese, + Russian, Turkish + * Added support for CIDR channel lists. + * Converted the core to be completely modular. + * Improved random number algorithm. + * Removed proxy detector (see docs/PROXY). + * Fixed various exploits and vulnerabilities. + * Fixed various language typos and inconsistencies. + * Fixed a bug in the database system causing nickserv passwords + to be saved incorrectly. Note that this breaks backwards + compatibility on nick.db !!! + + + +For the full changes, see the Changes file. + +For announcements and discussions about Anope, please visit our +web site http://www.anope.org + + diff --git a/docs/OLDCHANGES b/docs/OLDCHANGES new file mode 100644 index 000000000..af1ca30e5 --- /dev/null +++ b/docs/OLDCHANGES @@ -0,0 +1,1299 @@ +Anope Version 1.6.0 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2004/03/22 Added and updated several documents on "docs" folder. +2004/03/22 Added bin/dbgen to help MySQL db schema. +2004/03/21 Fixed module makefile to use -Wall for new modules +2004/03/21 Fixed config check startup warnings (0000467) +2004/03/21 Fixed bug where mkdir should be mkdir -p to create parent (0000468) +2004/03/22 Fixed Crash on channel memo (0000347) + +Anope Version 1.5.15 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2004/03/14 Fixed LogBot and LogChan issue (0000437) +2004/03/14 Fixed tiny bug in french lang file (0000465) +2004/03/14 Fixed chanmode +r not being removed. (0000462) +2004/03/12 Fixed MySQL limited data fields (0000434) +2004/03/12 Fixed a cosmetic typo (0000440) +2004/03/14 Fixed mysql (null) values (0000450) +2004/03/06 Fixed module duplicate functions (0000431) +2004/03/06 Fixed module unload issue (0000432) +2004/03/13 Fixed missing channel fields on MySQL schema +2004/03/13 Fixed MySQL calls even when disabled. +2004/03/07 Fixed a malformed mode crash for some ircd's +2004/03/13 Added db save on startup + +Anope Version 1.5.14 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2004/02/17 Disabled modules on OpenBSD for the time being (0000408) +2004/02/15 Added Viagra's VS command to handle vHosts properly (0000404) +2004/02/15 Fixed HostSetters to cover all aliases in the group (0000412) +2004/02/07 Fixed channel '#' may not be registered anymore (0000030) +2004/02/07 Fixed opers can't /OS MODE on +A chans anymore (0000403) +2004/02/07 Fixed registration via group on nicknames preconfirmation (0000400) +2004/02/14 Fixed hardcoded references to "OperServ" (0000411) +2004/02/19 Fixed nickserv list problem with unconfirmed nicknames (0000406) +2004/02/14 Fixed DefCon to cover more cases properly (0000407) +2004/02/02 Fixed bug where non-id'ed nicks could do /cs identify +2004/02/07 Fixed bug where you could /cs identify infinite times +2004/02/09 Fixed incorrect help files Changed ServicesAdmin->SuperAdmin +2004/02/14 Fixed typos in en_us.l language file + +Anope Version 1.5.13 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2004/01/30 Fixed malformed buffer bug (0000398) +2004/01/31 Fixed OperServ news system reordering. (0000396) +2004/01/19 Fixed minor typos on en_us.l (0000380) (0000381) +2004/01/31 Fixed ALL option for ChanServ info (0000395) +2004/01/18 Fixed HostServ Set message for non-registered nicks + +Anope Version 1.5.12 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2004/01/12 Added optimized language parser +2004/01/11 Added moduleSetHelpHelp to modules.h +2004/01/11 Added updated documentation +2004/01/12 Added language tool (langtool.pl) +2004/01/13 Added line length check (>60 char) to langtool.pl +2004/01/17 Added better MySQL detection on configure script +2004/01/17 Removed ExtSock experimental code +2004/01/07 Fixed broken CHANKILL expire (0000333) +2004/01/03 Fixed bot creation issue (0000348) +2004/01/11 Fixed /OS STAFF output (0000346) +2004/01/11 Fixed bot change/creation error (0000348) +2004/01/03 Fixed /MS STAFF output (0000356) +2004/01/07 Fixed modunload crash with disabled services (0000370) +2004/01/17 Fixed missing HostServ on HelpServ help list (0000377) + +Provided by GeniousDex +2004/01/04 Updated nl.l (Dutch language File) +2004/01/11 Updated documentation + +Anope Version 1.5.11 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/12/12 Fixed all printf parameters on all language files +2003/12/08 Fixed HOST_HELP string for all languages (0000340) +2003/12/08 ChanServ and NickServ LIST's now accept #X-Y for seaching +2003/12/09 Nickname enforcer will now kill instead of svsnick on hybridircd + +Provided by Oleg Nikolaev aka Isot <isot@complife.ru> +2003/12/12 New ru.l (Russian lang file) + +Provided by DrStein +2003/12/12 Updated es.l (Spanish language File). + +Provided by GeniousDex +2003/12/12 Updated nl.l (Dutch language File). + +Provided by Stuff <the.stuff@gmx.de> +2003/12/09 Updated de.l (German lang file) + +Anope Version 1.5.10 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/11/24 New version of putanope to make more robust +2003/11/24 New #defines for version tokens (see built version.h) +2003/11/24 New version schema: major.minor.patch.build +2003/11/16 Fixed mlock +c on Ultimate3 (0000320) +2003/11/16 Fixed BotServ +ao on PTLink (0000313) +2003/11/16 All channel modes now supported on PTLink (0000311) +2003/11/16 Absolute mode cleaning for /CS CLEAR #chan MODES +2003/11/16 Services will now kill users on hybrid instead of svsnick (0000240) +2003/11/15 Fixed a bug with module message's +2003/11/15 Added a generic footer to list's without (0000222) +2003/11/15 Adding a ./configure script to modules folder +2003/11/15 Removed Experimental status from Module and Viagra +2003/11/15 Fixed /ms staff on memo notifucation (0000221) +2003/11/09 Fixed compile.sh for bsd based systems +2003/11/09 Fixed bug in moduleDelCallback routine + +Anope Version 1.5.9 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/11/03 Added optional MysqlSecure password security directive +2003/11/03 Fixed case insensitive password fields on MySQL (0000196) +2003/11/03 Fixed /OS STAFF bug not showing online aliases (0000124) +2003/11/03 Fixed wrong /CS HELP output on Ultimate2/3 (0000189) +2003/11/02 Fixed empty fields on the cs_access table (0000197) +2003/11/02 Fixed SA's unable to /NS LOGOUT themselves (0000288) +2003/11/02 Fixed SQLINE help syntax (0000291) +2003/11/01 Added moduleDelCallback for module coders +2003/11/01 Modified module AnopeInit call, fixed bug (0000289) +2003/11/01 Fixed error in pt.l file and memoserv help +2003/10/29 Fixed -h bug for valid halfop's when joining a empty chan (0000245) +2003/10/29 Fixed forbidden chan spammy log file bug (0000284) + +Provided by GeniusDex <geniusdex@twistification.net> +2003/11/01 Converted HelpServ into a "real" services, modules now work for it + +Anope Version 1.5.8 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/10/08 Fixed compile errors on PTLink and Ultimate3 as nither have vIdents +2003/10/17 Fixed double TAB on language files (0000283) +2003/10/14 Added a check on nicksserv logout so you can't logout services admins +2003/10/17 Added new configuration directive AnonymousGlobal (0000116) + +Provided by ShadowMaster <ShadowMaster@Shadow-Realm.org> +2003/10/08 Added NickIP Akill matching + +Anope Version 1.5.7 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/10/05 Added /ns update to replace further identifies, /ns identify will now only work once +2003/10/03 Added check_unload function to modules. (like on-error unloading) +2003/10/03 Added directive MysqlPort +2003/09/22 Added moduleHelp framework for module coders, see hs_moo.c +2003/09/21 Added moduleGetLastBuffer() and a module cmdTable bug fixed +2003/08/16 Added moduleAddCallback command for module coders +2003/10/06 Fixed bug with botserv bot creation when using services-aliases. (thanks to Killerchen) +2003/10/05 Fixed vident on ban issue (bug 0000268) +2003/10/05 Fixed memo order reset on deletion (bug 0000270) +2003/09/07 Fixed clearmodes issue (bug 0000121) +2003/09/07 Fixed ServicesRoot reload issue (bug 0000194) +2003/09/07 Fixed empty ip proxy crash (bug 0000217) +2003/09/04 Fixed bug ref: 0000170 - optional ""'s in mail sending +2003/07/28 Fixed Channel DROP then FORBID crash on MySQL (0000199) +2003/07/28 Fixed HostServ launch on Viagra and PTlink (0000190) +2003/07/27 Fixed BotServ bots now unkickable on Ultimate3 (0000159) +2003/07/27 Fixed Hybrid NICK_IS_REGISTERED dupe (0000184) +2003/07/27 Fixed PTlink /newmask issue (0000188) +2003/07/20 Fixed MySQL compile errors on Ultimate +2003/07/20 Fixed PTlink sbuf compile error +2003/07/20 Fixed chanserv badword MySQL issue +2003/08/30 Allow for E/F lines when handling akilled host's joining the network +2003/07/25 Added External socket support (*VERY* EXPERIMENTAL) +2003/07/20 Made MySQL ns_id, na_id and ci_id useful by preserving it's value across updates +2003/07/20 Some MySQL Optimizations (MySQL 3.23.32+ required) + +Provided by DrStein +2003/10/05 Updated es.l (Spanish language File). + +Anope Version 1.5.6 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/07/16 Reimplemented +oa and +oq on net-joins and ModeOnId (less intrusive) +2003/07/16 Added bin directory with misc tools +2003/07/12 Fixed chankill no expire +2003/07/13 Fixed BotServ bug when trying to add a bot with a services client's name. +2003/07/10 Changed mlock_key from int to a String in mysql.c (Thanks goto Trystan) +2003/07/09 Added request Syntax. Changed version to show the actual compiled Ircd's name. +2003/06/29 Added services/modules/runtime for tmp storage of .so files +2003/06/29 Fixed a small bug in nickserv load. +2003/06/29 Fixed multiple chan modes at once Ulitmate issue + +Anope Version 1.5.5 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/06/24 Added the ability to autoload modules at services startup +2003/06/23 Now MySQL functionality is optional even when compiled with MySQL support +2003/06/23 Combined +oq +oa +ha +va on net-joins. +2003/06/22 Prevent botserv say sending a ctcp to a channel +2003/06/22 Fixed nickserv setting +d on users using group +2003/06/22 Fixed non services admins able to drop nick's still awaiting a email code +2003/06/17 Added EXPERIMENTAL module support. + +Provided by GeniusDex <geniusdex@twistification.net> +2003/06/23 Dutch language file. + +Anope Version 1.5.4 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/06/11 Added RemoteServer2 and RemoteServer3 to the conf. If one server is down, the services will try the next one. +2003/06/06 Added /MS SENDALL to send a massmemo to all registered users +2003/06/03 Renamed function log() to alog() to prevent gcc3.3 warnings +2003/06/03 Services now WALLOPS about db saves on /os shutdown +2003/06/03 Modified NetworkDomain directive to allow multiple domains +2003/06/03 Added NSRestrictGetPass and CSRestrictGetPass directives to restrict access to getpass command. +2003/06/03 Added a directive in the conf that makes ChanServ opers only. +2003/06/02 Added phase 1 of MySQL Support + +Anope Version 1.5.3 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/05/31 Removed TitanIRCd support. Difference willnot allow joint support +2003/05/25 Custom GlobalOnCycle message +2003/05/25 Defcon reject all new connections Kill message. +2003/05/25 CHANKILL will not akill opers in the channel +2003/05/25 Add command for MemoServ to send memo to all Admins/Opers +2003/05/24 Fixed /os restart bug +2003/05/24 Updated lang files - various errors/bug fixs +2003/05/23 Fixed NSModeOnID it will only set unset modes (as far as possible) + +Provided by Popcorn <popcorn@anope.org> +2003/05/26 Added ViagraIRCd 1.3.x / TitanIRCd 2.0.3 support (experimental) + +Provided by James <slowking50@aol.com> +2003/05/30 Fixed deleting ban exceptions. +2003/05/29 Added a much improved services ignore that can use wildcards. +2003/05/24 Added Hybrid 7 support - james your the daddy! :-) + +Provided by openglx <openglx@brasnerd.com.br> +2003/05/26 Added PTlink 6.15.0 or later support (experimental) + +Anope Version 1.5.2 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/05/20 Added GlobalOnDefcon to global current Defcon Level when set +2003/05/20 Added GlobalOnDefconMore to allow admin to attach a msg to users +2003/05/15 Added No New Memos to Defcon +2003/05/15 Edit lanuage file to allow the user to know services are in Defcon +2003/05/15 Added /NS GETEMAIL to allow matches of nick to email (0000013) +2003/04/28 Added /OS SVSNICK to forcefully change a user's nickname + +Anope Version 1.5.1 +-------------------- +Provided by Anope Dev. <dev@anope.org> :) +2003/04/27 Added Forbid/Suspend reason on akick if defined (0000023) +2003/04/27 Added /OS CHANKILL command to deal with botnet channels (0000066) +2003/04/26 Added DEFCON framework, along with basic settings +2003/04/23 Removed Sequana IRCd support as well as conversion from IRCservices v4.4 +2003/04/19 Added HostSetters directive to allow NON-OPERS to use HostServ +2003/04/19 Added Operserv Staff command feature request: 0000018 +2003/04/18 Added a pattern matching + range specifying to /HostServ LIST +2003/04/18 Added DELALL command to HostServ to compliment SETALL +2003/04/14 Services Root Admins are no longer affected by MailDelay +2003/04/10 Added user's ident and host to WallBadOS +2003/04/02 The old chanbot will now part on a /bs assign (smarter assign) +2003/04/02 Added name tag for globalmsgs (shows the name of the sender) + +Anope Version 1.4.23 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/05/18 Fixed /ns list display error with no-expire +2003/05/15 Fixed Exception move bug +2003/05/15 Fixed /msg Operserv noop issue +2003/05/05 Fixed Invalid nick/host/ident when using /bs bot CHANGE + +Anope Version 1.4.22 +-------------------- +Provided by Anope Dev. <dev@anope.org> +2003/04/27 Fixed unsuspend crash when the # sign was left out +2003/04/27 Fixed JOIN modes not set correctly internaly (e.g. for /cs clear ops) +2003/04/26 Fixed OperServ jupe will only attempt to Jupe valid server masks +2003/04/26 Fixed SETHOST for nonexistent user nickname in log files +2003/04/26 Fixed Nonrelevant compiler warning (eof on botserv.c) +2003/04/26 Fixed vIdent support for Ultimate2.x + +Provided by James <slowking50@aol.com> +2003/04/26 Fixed No valid tld and logchan issue on Ultimate3 + +Anope Version 1.4.21 +-------------------- +Provided by Anope Dev. <dev@anope.org> (thanks goto PopCorn) +2003/04/20 Fixed BotServ nick/host/ident checking +2003/04/20 Fixed HostServ valid host/ident checking + +Anope Version 1.4.20 +-------------------- +Provided by PopCorn +2003/04/18 Fixed xOP permission problem + +Anope Version 1.4.19 +-------------------- +Provided by Anope Dev. <dev@anope.org> :) +2003/04/12 Fixed MSNofityAll bug that crashed Services. +2003/04/12 Fixed MD5 compilation error. + +Anope Version 1.4.18 +-------------------- +Provided by Anope Dev. <dev@anope.org> :) +2003/03/27 SUSPENDed Channels can't be DROPed by Founder anymore +2003/03/27 Fixed a couple of log'ing errors to tidy logfiels up a bit +2003/03/20 Fixed a minor epona bug with !unban (BotServ will now + check the UNBAN level instead of the OPDEOP level) +2003/03/14 On Ultimate3 you can now MLOCK +NSA. + Please note that MLOCK'ing +A and +O will only work on + Ultimate3.a31 and later. +2003/03/11 Fixed buffer bug with long akill reasons and AddAkiller +2003/03/08 MemoServ notification for Channel memos, upon join and send. +2003/03/07 SuperAdmin can now be turned ON/OFF on a per-admin basis + logging of use is also added. +2003/03/07 Added OperServ ignore function +2003/03/07 Added optional globalmsg on startup and shutdown/restart +2003/03/07 Added config option to hide Services stats o from non-opers +2003/03/05 Fixed a bug with clearmodes +2003/03/03 Added OperServ umode function to change usermodes (SuperAdmin only) +2003/03/03 Added OperServ oline function to give operflags to users (SuperAdmin only) +2003/03/03 Fixed several issues with +p users and ChanServ/Botserv + kick and negative mode changes. +2003/03/02 Added Optional Channel ModeOnID +2003/02/22 Added email verification when registering a nick +2003/02/22 Added HostServ GROUP command, to allow users to sync + all vHost's in a nick group. +2003/02/22 Added /MS DEL LAST +2003/03/21 Updated it.l (Italian language File). +2003/03/21 Updated es.l (Spanish language File). +2003/03/21 Updated de.l (German language File). + +Provided by Kevin <kevin@botstats.com> +2003/03/21 Updated fr.l (French language File). + +Anope Version 1.4.17 +-------------------- +Provided by Anope Dev. <anope@zero.org> :) +2003/03/02 Fixed HostServ bug on non VHOST ircds. +2003/02/20 Fixed the -logchan -debug bug, now they are mutualy exclusive +2003/02/19 Added the #define HAS_VIDENT to signify an ircd able to + dynamicaly change a user's ident +2003/02/19 HostServ updated to allow ident@host's for compatiable + ircds +2003/02/19 NickServ ALIST command added which deprecates ChanServ + CLIST/ALIST +2003/02/19 Complain to the oper about long vhosts +2003/02/19 Added sanity check on vHost on HostServ SET/SETALL +2003/02/19 Fixed HostServ support for UltimateIRCd 3.0.0 +2003/02/18 NS INFO ALL shows the vHost if it was set with hostserv +2003/02/18 NS ID is an alias for NS IDENTIFY +2003/02/18 Updated it.l (Italian language File). +2003/02/18 Updated es.l (Spanish language File). +2003/02/17 Fixed KILL (Alias Recovery) bug. +2003/02/17 Fixed CHAN_CLIST_FORMAT on all languages. +2003/02/17 Removed "scalloc" warnings. + +Provided by Seb <seb@iftouch.net> +2003/02/18 Updated fr.l (French language File). + +Provided by Certus <Certus@irc-downloads.de> +2003/03/01 Updated de.l (German language File). + +Anope Version 1.4.16 +-------------------- +Provided by Anope Dev. <anope@zero.org> +2003/02/16 Fixed all language files to conform to latest index +2003/02/15 Fix for Bahamut/Ultimate3 AKILL command. +2003/02/14 CS XOP ADD moves an existing xop nick between lists +2003/02/14 CS ACCESS LIST shows xop properly instead of levels +2003/02/14 CS ALIST implemented +2003/02/14 CS CLIST modified for users +2003/02/13 HostServ Support + Alias +2003/02/13 CS SUSPEND/UNSUSPEND implemented +2003/02/13 Kill recovery for Aliases +2003/02/13 Exception checking banning mechanism + +Anope Version 1.4.15 +-------------------- +Provided by Daniel Engel <dane@zero.org> +2003/02/03 Interim name change for the project to Anope. +2003/02/03 Created Changes.conf for services.conf changes. +2003/02/03 Portuguese Language File up to date. +2003/02/03 Spanish Language File up to date. +2003/02/03 RAW messages now logged. +2003/02/03 Access list DELETE and CLEAR now logged. +2003/02/03 Added Super Admin founder of all (view new example.conf). +2003/02/03 Prepend nick to AKILL reason (view new example.conf). +2003/02/03 Added AKILL reason to WallOSAkill notifier. +2003/02/03 Added BotServ !k alias of !kick. +2003/02/03 Logging BotServ ACT and SAY to a channel (view new example.conf). +2003/02/03 Added a more informative error on disabled RAW command. +2003/02/03 Fixed most compile warnings. + +Provided by Lucas Nussbaum <lucas@lucas-nussbaum.net> +2003/02/03 Access Denied Logging. +2003/02/03 Services Alias (view new example.conf). +2003/02/03 Split Buffer exploit fix. + +Provided by David Narayan <jester@phrixus.net> +2003/02/03 Logging to a channel + CLI flag (view new example.conf). + +Provided by David <dv@diboo.net> +2003/02/03 OperServ corruption notification. + +Provided by JH <jh@irc-chat.net> +2003/02/03 ChanServ end of ACCESS list notification. + +Provided by Thomas Juberg <ShadowMaster@Shadow-Realm.org> +2003/02/03 UltimateIRCd version 3.0.0.1 (mod-1.2) support. + +Provided by Daniele Nicolucci <jollino@sogno.net> +2003/02/03 Italian language file. + +Epona Version 1.4.14 +-------------------- +2002/09/01 Nickname SQLINEs are now also enforced on nick change. + Reported by vandit <castortroy@piranho.net> +2002/08/27 Made NickServ and ChanServ log certain events more + verbosely. +2002/08/27 Added LogUsers configuration directive. +2002/08/20 Fixed NickServ password encryption for newly registered + nicknames. + Reported by -ozone <ozone@securify.org.uk> +2002/08/20 ChanServ will now also convert halfops to the HOP list + when switching to the xOP system. + Reported by Daniele Nicolucci <jollino@sogno.net> +2002/08/20 Fixed Operserv NOOP command for non-Bahamut networks. + Reported by zak beam <zak@beam.dropbear.id.au> + +Epona Version 1.4.13 +-------------------- +2002/08/13 Added ProxyMessage5 to 8 configuration directives. +2002/08/13 Added a Greek language file. + Submitted by Sergios Karalis <sergios_k@hotmail.com> +2002/08/13 Fixed proxy detector so that it doesn't akill legitimate + Apache HTTP servers. +2002/08/13 Fixed Unreal support so that akills work again with recent + Unreal releases. + Reported by Daniele Nicolucci <jollino@sogno.net> +2002/08/13 Upgraded Sequana support to 0.3.0. + +Epona Version 1.4.12 +-------------------- +2002/06/23 Fixed bug in NOTICE/GLOBOPS/PRIVMSG string formatting. + Reported by lucas <lucas@lucas-nussbaum.net> + and Aristotles. +2002/06/23 BotServ BOT ADD cannot drop a Services admin's nick + anymore when NSSecureAdmins is enabled. + Reported by AnGe_HwOaRaNg <ange.hwoarang@free.fr> +2002/06/23 Kick reasons now have a limited length. + Reported by BSD Admin <bsd@internetmx.com> +2002/06/23 The current value of CSMaxReg is now used for all groups, + not only new ones. + Reported by Daniel Engel <dane@zero.org> + +Epona Version 1.4.11 +-------------------- +2002/05/03 Fixed the cosmetic issue in /stats o seen when the + config file has been reloaded. + Reported by [ins4ne] <ins4ne@gmx.net> +2002/05/03 Fixed a bug in the HTTP proxy detection. + Reported by Marcel Stutz <solaris@swissirc.ch> +2002/04/22 "Fixed" the RAW command that was slightly broken. + Added the DisableRaw configuration directive that + breaks it again. +2002/04/14 Added a check in ChanServ LEVELS to make sure the + submitted level is valid. +2002/04/14 The BotServ SET DONTKICKOPS option now also protects + the +h/+a/+q users. +2002/04/14 ChanServ now also checks and removes the +h mode on + join and in the SECUREOPS check. +2002/04/14 Renamed the default crontab script from services.chk + to example.chk and updated the documentation + accordingly. +2002/04/14 Fixed a bug in the UsePrivmsg feature. + Reported by David Narayan <jester@phrixus.net> +2002/04/04 Fixed /stats l output. + Reported by lucas <lucas@langochat.net> + +Epona Version 1.4.10 +-------------------- +2002/02/27 Fixed the bug in MemoServ SEND that was also fixed + in ircservices. +2002/02/27 Added missing channel name to ChanServ ACCESS and xOP + log messages. + Reported by David Narayan <jester@phrixus.net> +2002/02/25 Enhanced the UsePrivmsg/SET MSG feature. +2002/02/25 Another bugfix in create_mask(). + Reported by Olfan <public@crononautas.com> +2002/02/25 Fixed a bug in the SQLINE command that could make + OperServ report that a channel SQLINE is covered + by a nickname SQLINE, hence preventing the + addition. + Reported by Laurent <laurent@langochat.net> +2002/02/24 OperServ RAW is now disabled by default. +2002/02/24 Updated the FAQ (about HostServ and OperServ RAW). + +Epona Version 1.4.9 +------------------- +2002/01/13 Fixed an harmless bug causing ChanServ to send multiple + (S)JOINs for its CSInhabit feature. + Reported by lucas <lucas@langochat.net> +2002/01/13 Made OperServ KILLCLONES always kill real host, to avoid + killing users with the same vanity-host. + Reported by Magnet <magnet@epiknet.org> +2002/01/13 Fixed bad snprintf parameters order in tr.l. + Reported by Reha BÝÇER <reha@showtvnet.com> +2002/01/13 Fixed(?) a weird bug in create_mask()... hopefully. +2002/01/04 Added a Catalan language file. + Submitted by the AUJAC. + +Epona Version 1.4.8 +------------------- +2001/12/09 Extended the NSSecureAdmins configuration directive to + apply to FORBID too. +2001/11/20 Updated Turkish language file. + Submitted by Guven Guzelbey <guzelbey@cs.utk.edu> +2001/11/18 Fixed the bug of thread support affecting Epona compiled + for glibc 2.1 and less on linux. +2001/11/10 Added support for Bahamut 1.4.30: channel mode M + and the new NS, CS, MS, OS and HS messages. +2001/11/08 Made notice_help() take care of the SET MSG option. + Reported by David Narayan <jester@phrixus.net> +2001/11/08 ChanServ now sends a SJOIN instead of a JOIN on Bahamut-based + networks. +2001/11/08 Fixed a bug in OperServ CLEARMODES. + +Epona Version 1.4.7 +------------------- +2001/10/01 Default NickServ access list entry and ban masks are + now always formatted to not take care of the tilde in + username, so they match whether the identd has been + enabled or not. +2001/10/01 Added missing *! when setting a ban of type 3. This + also fixes a memory leak when unsetting the ban. +2001/10/01 Fixed create_mask() so that it handle IP hostnames + correctly. + Reported by Bob <azz2000@hotmail.com> +2001/09/30 NSDefaultLanguage is now properly reloaded through + OperServ RELOAD. + Reported by MEAT <meat@epiknet.org> +2001/09/30 NSDefaultLanguage now also applies to forbidden + nicknames. + Reported by MEAT <meat@epiknet.org> +2001/09/30 Fixed portuguese BotServ HELP SET SYMBIOSIS. + Reported by Rafael Cerveira <papudo@interconect.com.br> +2001/09/30 Adjusted informative notices for collide()'d nicks. + Reported by MEAT <meat@epiknet.org> + +Epona Version 1.4.6 +------------------- +2001/09/23 Fixed a bug in version.sh when encryption is + enabled. +2001/09/23 Fixed a bug in ChanServ CLEAR MODES happening + on Unreal and Ultimate only. + Reported by Hurricane <hurricane@ifrance.com> + +Epona Version 1.4.5 +------------------- +2001/09/07 ChanServ won't set automatically +o on users + that get +q or +a on join anymore (because + of certain exotic levels configuration). +2001/09/07 Made ChanServ TOPIC be usable by services admins. +2001/08/26 Channel mode +f of Unreal now supports the *x:x + format for its parameter. +2001/08/26 Removed hard-coded references to NickServ and + ChanServ in language files. +2001/08/24 Updated the Turkish language file. + Submitted by CafeiN <oytuny@yahoo.com> +2001/08/24 Added ProxyCheckHTTP3 configuration directive to + scan proxy on port 80. + +Epona Version 1.4.4 +------------------- +2001/08/19 Made ChanServ also log SET XOP and LEVELS uses. +2001/08/19 Added compile flags to the /version output. +2001/08/19 OperServ commands manipulating channel modes + now override all ChanServ protections (such as + SET SECUREOPS, SET MLOCK, etc). +2001/08/19 Removed references to SET TOPIC in the language + files. +2001/08/19 Fixed various topic issues in ChanServ for Unreal + and Dreamforge. +2001/08/19 Fixed another bug in ChanServ AKICK (UN)STICK. + Reported by Alvaro Toledo <atoledo@keldon.org> +2001/08/15 Made ChanServ log access level additions. + +Epona Version 1.4.3 +------------------- +2001/08/12 Fixed a bug in OperServ list ranges. +2001/08/12 Fixed a bug in the AKICK STICK command. +2001/08/12 Fixed a bug in ChanServ SET MLOCK, that happens + only on Unreal networks. + Reported by Austin <austin1@uni.de> + +Epona Version 1.4.2 +------------------- +2001/08/08 A fix for UnrealIRCd NICK handling (sometimes sent + with only 7 parameters ?! oh well). + Reported by Benjamin <benjamin@chat-solutions.org> +2001/08/07 In an attempt to make the configure script clearer, + I added the DumpCore and NetworkDomain configuration + directives. +2001/08/06 Bots from BotServ now set themselves the mode +a + again on channels they join. + Reported by CyberScream <cyberscream@wondernet.nu> +2001/08/05 Updated the Spanish language file. + Submitted by Alvaro Toledo <atoledo@keldon.org> + +Epona Version 1.4.1 +------------------- +2001/08/02 Fixed two potential bugs in the AKICK system. +2001/08/01 Fixed help for BotServ SET PRIVATE that was not + displayed. + Reported by SpiderWeb <Spider.Web@Laposte.net> + +Epona Version 1.4.0 +------------------- +2001/07/23 Added support for Ultimate 2.8x. +2001/07/23 Rewritten Unreal support entirely, using parts of + the Sequana hostmasking support. Unreal is now + officially supported again. +2001/07/21 Added modes field to OperServ CHANLIST command. +2001/07/21 Made NickServ/ChanServ FORBID change nick/clear + the channel if it is currently used. +2001/07/21 Removed Ultimate 3.x support, since its development + has restarted. Cleanup of levels as well. +2001/07/20 Added ChanServ SET PEACE option. +2001/07/20 Added an INFO level for free consultation + of /chanserv INFO #chan ALL. +2001/07/20 Optimized processing of non fantasy channel + messages. +2001/07/20 Modified some help string to make them reflect + the truth. +2001/07/20 Added AOP/SOP/VOP commands to ChanServ (one of + the most requested features, but far from being + my favourite). + You can't use both xOP and access lists at the + same time, you have to choose between them via + the new ChanServ SET XOP command. + These are newbie-friendly commands, and + therefore should be enabled by default. +2001/07/20 Services admins can now use ACCESS ADD/DEL/CLEAR + without having a level on the channel (please + use this feature ethically =). +2001/07/19 Made lang/index generate automatically through + Makefile. +2001/07/18 Removed the CSRestrictDelay directive in ChanServ, + that is now useless due to the use of services + timestamp, and was dangerous anyways. +2001/07/18 Removed the useless privilege for IRC operators that + were never deopped automatically by ChanServ (by + SECUREOPS or when they join an empty registered channel + for example). +2001/07/18 Made OperServ JUPE send a SQUIT before introducing + the juped server because of so many reported + crashes when people don't care. If you're using + Bahamut, a better alternative to JUPE is to use + SZLINE. ;) +2001/07/18 Made the LocalAddress directive actually work, it + wasn't working even before Epona was born. +2001/07/18 Renamed ChanServ SET TOPIC to TOPIC so it can have a + dedicated level, and added ChanServ BAN command. +2001/07/18 Added ChanServ AKICK STICK command. +2001/07/13 Added NSMaxAliases directive to limit the number of + nicks in the same group. +2001/07/10 Finally fixed the BotServ HELP SET SYMBIOSIS bug (the + message was cut =) -- this alone is worth the upgrade :P +2001/07/10 /me are now handled correctly by BotServ kickers (ie. the + CTCP part is cut before processing the message). + Reported by Benjamin <benjamin@chat-solutions.org> +2001/07/10 Used Bahamut new CAPAB NICKIP feature in the proxy scanner + so it doesn't need to resolve the hostnames. +2001/07/08 Made some cleanup in proxy code. +2001/07/01 Rewritten OP/DEOP and other pairs in an easily extensible + way. +2001/06/30 Added OperServ SQLINE command. It will also support + Bahamut channel SQLINEs. However, bahamut 1.4.27 + or later is required. +2001/06/29 You needed a registered nick to use the privileges + given by ChanServ IDENTIFY, which is not the expected + behaviour. Fixed. +2001/06/27 Changed stuff in configure for libpthread detection. +2001/06/27 Fixed a bug in BotServ UNASSIGN. + Reported by lbr <lbr@langochat.net> +2001/06/26 Added BotServ SET PRIVATE option for bots that need + to be oper-only. + Suggested by a lot of people :P +2001/06/23 Added OperServ RANDOMNEWS. + Suggested by lucas <lucas@langochat.net> +2001/06/21 Added the ability to set the default language for + non/newly-registered users in services.conf. +2001/06/09 Rewritten do_sjoin so that it doesn't do useless things + sometimes. +2001/05/20 Added more support for Sequana in do_nick(). +2001/05/20 Changed stuff in do_sjoin to make it easily extensible. +2001/05/04 New more efficient channel modes handling. +2001/05/04 Changed whosends() to a macro. +2001/04/22 Fixed check_kick() not making ChanServ join the channel + if empty with Bahamut. +2001/04/22 Fixed a bug that caused the existence of channels with + no users in certain cases. +2001/04/06 Added support for services ids, allowing users to be + automatically re-identified after a split. It also prevents + the logon news to be resent for users that were already + there before the split. +2001/04/06 Fixed a bug in NickServ that was not refreshing the last + seen time after a nick change. + Reported by Lucas <lucas@langochat.net> +2001/04/05 Faster is_oper(). +2001/04/05 Improved the way the NICK command is handled with Bahamut, + it's now a LOT faster (and cleaner). +2001/04/05 Added ProxyAkillReason directive, and more information + to some other proxy-related directives. + Suggested by Yougli <Yougli@free.fr> +2001/04/05 Got rid of the usercount() function (should have been + done for months but I was just too lazy/busy). +2001/02/24 More bugfixes in Sequana support. +2001/02/24 NickServ usermask is now updated when an user changes + his nick to a nick from the same group. +2001/02/16 Fixed a bug in the Sequana support. +2001/02/16 Added configuration directives to specify what type of + detection must be done by the proxy detector. +2001/02/16 NickServ now prevents users from trying too many invalid + passwords for NickServ GROUP. + Reported by Blaire <lisa-bot@lookat.org> +2001/02/16 Fixed OperServ HELP RELOAD that pointed to HELP UPDATE. + Reported by Raynor <raynor@ministre.net> +2001/02/16 Fixed BotServ HELP SET DONTKICKVOICES that spoke + about SET DONTKICKOPS in the French language file. + Reported by Night <Night04@netcourrier.com> +2001/02/09 More support for Sequana. +2001/02/09 Made the code compile without thread support (oops). +2001/02/09 Added support for Sequana IRCd. +2001/02/03 Changed the way bot greets are said. +2001/01/28 Made is_services_root faster. It is also now fully + group-compatible. is_services_admin and is_services_operator + have been optimized as well. +2001/01/25 SOCKS5 detector is now much more reliable. +2001/01/22 Made some fixes to the proxy detector. +2001/01/21 Added a full featured proxy detector (detects Wingate, + SOCKS4, SOCKS5, and even HTTP proxy!). It comes along with + the CACHE command in OperServ, and several configuration + directives. +2001/01/21 Made the KILLCLONES command available to Services operators. +2001/01/17 Made some cleanup to main.c, it's more readable now. +2001/01/15 Made converter and core settings cachable in the configure + script. + +Epona Version 1.3.7 +------------------- +2001/04/22 Added German and Spanish language files. + +Epona Version 1.3.6 +------------------- +2001/03/09 Fixed a stupid bug in NickServ SET (oops). + +Epona Version 1.3.5 +------------------- +2001/03/07 The Epona official IRC channel (for bug reports ONLY) + is not on the Kewl IRC network anymore, it's now + on irc.langochat.net (see the README for details). +2001/03/07 Fixed bugs in NickServ ACCESS, SET, RECOVER, RELEASE, + GHOST, GETPASS and SENDPASS that caused Epona to crash + if they were used for forbidden nicks. + Reported (for RECOVER/RELEASE/GHOST) by + Vernom <vernom@sistec.com.mx>. +2001/03/07 Fixed a bug in the turkish language file (damn, damn.) + Reported by so much people that I was in fact + flooded :P + +Epona Version 1.3.4 +------------------- +2001/01/27 Fixed the timed_update evil crash, and a big memory leak as + a bonus. Another funny joke from Andy Church. + Reported by many people, so I thank them all. + I'd like also to say a special thank to Daniel Engel + <dane@zero.org> for his help in chasing this bug. + +Epona Version 1.3.3 +------------------- +2001/01/22 Added a Portuguese language file. + Submitted by Marcelo Conde Foscarini <ircadmin@brmarket.net> + +Epona Version 1.3.2 +------------------- +2001/01/18 Fixed the bug that was causing an infinite loop in Services if + someone tried to delete a very high range of records from + a numbered list. + +Epona Version 1.3.1 +------------------- +2001/01/12 Updated mirror list in the INSTALL file. +2001/01/11 Fixed the bug that made Epona crash when a Services + admin tried to drop a forbidden channel. + Reported by [Flop] <flop@oscfg.com> + +Epona Version 1.3.0 +------------------- +2001/01/07 The Turkish language file was updated by CafeiN + <oytuny@yahoo.com> +2001/01/06 Integrated patches for the Ultimate 3.0 basic support from + ShadowMaster <ShadowMaster@Shadow-Realm.Org> +2001/01/02 Added NickServ SET MSG command, to be used with UsePrivmsg. +2001/01/02 Made small fixes to AKILL/SGLINE/SZLINE commands. + Reported by ShadowMaster <ShadowMaster@Shadow-Realm.Org> +2000/12/23 Fixed various things in the do_nick function, and added + a log message if an user remains identified after a nick + change. +2000/12/23 Fixed a bug that allowed users to pass through the NickServ + protection option. + Reported by Daniel Engel <dane@zero.org> +2000/12/14 Oops.. DreamForge/Unreal support was dumping core. +2000/12/13 Made ChanServ SET TOPIC work with Unreal. +2000/12/12 Corrected a few bugs in NickServ. +2000/12/07 Cleanup of the FAQ file. +2000/12/07 Cleanup of README file. KnownBugs renamed to BUGS. +2000/12/06 Added an INSTALL file. Anyone willing to correct my poor + English? ;) +2000/12/06 Added a crontab script. +2000/12/05 Added BSDef... configuration directives. +2000/12/05 Channels with a '@' in their name are not ignored by BotServ + anymore. +2000/12/05 Bots now correctly reply to channel pings. +2000/12/04 Added a database converter for ircservices-4.4. Deleted the + (not working anymore) database converter for Daylight 4.3.3. +2000/12/04 Corrected a bug that would make Services segfault while loading + configuration file with certain versions of glibc. +2000/12/03 Added CSDef... configuration directives. +2000/12/02 Deleted SET LEAVEOPS command from ChanServ, because it's + just a big security hole maker. +2000/12/02 Added CLIST command to ChanServ. +2000/12/02 Added more Wall... configuration directives. +2000/12/02 Added NOOP command to OperServ. +2000/12/01 Corrected a little bug in the !seen command. +2000/12/01 Services now use SVSMODE #chan -b nick on Bahamut networks + to unban an user, so they are now fully supporting the + somewhat different Bahamut ban system. +2000/12/01 AKILL ADD, SGLINE ADD and SZLINE ADD now can change the + expiry time of an existing entry, but only if the new one + is longer than the old one. +2000/11/30 NickServ GHOST, RECOVER and RELEASE now can be used without + a password, as long as you are identified and in the group + of the target nick. +2000/11/30 Enhanced documentation for NickServ REGISTER and GROUP + commands. +2000/11/27 NickServ LIST does not hide the nicks that are in the + group of the user issuing the command anymore if they have + SET PRIVATE ON. The same applies to usermasks and SET HIDE + USERMASK. +2000/11/27 Added "remote" drop feature for nicks within the same + group of the user issuing the command. +2000/11/27 Channels in use cannot expire anymore. However, their last + used time is still not updated while they're in use. +2000/11/27 Made some needed cleanup in config.h. +2000/11/26 Added BSGentleBWReason configuration directive. + Suggested by ShadowMaster <ShadowMaster@Shadow-Realm.org> +2000/11/26 Added UsePrivmsg configuration directive. + Suggested by ShadowMaster <ShadowMaster@Shadow-Realm.org> +2000/11/26 Made password encryption work again. +2000/11/26 delnick was not cleaning NickServ timeouts... another + Churchery? +2000/11/25 Made CLEAR OPS and CLEAR VOICES work correctly again. + Reported by TataZ <tataz@thepentagon.com> +2000/11/24 Added NSNoGroupChange configuration directive. Its purpose + is easy to guess I think. =) +2000/11/24 Deleted the obsolete HelpDir configuration directive. +2000/11/24 NSDisableLink not used anymore; deleting it. +2000/11/23 Few bugs of the new link system corrected. +2000/11/22 New link system that is more efficient -- I let you discover + all the diffs! =) The GROUP, GLIST and SET DISPLAY commands + have been added to handle it. + The LINK, UNLINK, and LISTLINKS commands were all deleted + because they are not needed anymore. + The NoSplitRecovery config setting has been deleted, it is + always enabled now -- the code was buggy anyway. + NSExpireMaster and NSExpireSlaves are now only one setting, + NSExpire, like before, because there are no more master + and slave nicks. + During the conversion to the new system I corrected many bugs + and weird things in the code (especially two memory leaks when + freeing akick and nick structures). NickServ has now a faster + hash list -- this will greatly help on large networks. +2000/11/22 Added SENDPASS to ChanServ help index. +2000/11/21 Moved changes from (irc)services to the Changes.old file, as the + Changes file started to be really big. +2000/11/14 Corrected another bug during nick deletion... If a nick was founder + of a channel and was also on the access list of the same channel -> + access list entry was not cleaned -> it crashed. +2000/11/12 Channel successors were not cleaned on nick deletion. Oh well. +2000/11/12 Linked nicks now have a working SET PRIVATE. + Reported by garner <garner@voila.fr> +2000/11/11 Fixed some weird behaviour with certain compiler versions + in ChanServ ACCESS and AKICK lists. + Reported by lanxin <webmaster@nidenet.com> +2000/10/28 Corrected ChanServ behavior for resetting last used + time. Was when someone was autoopped on JOIN before, + is whenever someone from the ACCESS list uses the + channel in any way now, because there are cases where + nobody gets autoopped at all. +2000/10/26 Added SGLINE and SZLINE commands to OperServ (works + with latest Bahamut only). +2000/10/25 Rewritten the OperServ AKILL command code. There cannot + be two times the same host anymore, and the command + will check whether the added AKILLs are already covered + by another or not. The bug in the AKILL wallops has + been fixed as well. + Additionally, AKILLs are now stocked in the OperServ + database (not in a dedicated database anymore). +2000/10/23 Fixed OperServ RELOAD to make it reset all directives to 0 + before reloading the config file (when this was not done + some settings were not reloaded correctly if not present). +2000/10/23 Corrected the problem that caused some services admins list + entries to be "like a ghost" in wrong-way links. +2000/10/10 Corrected some weird behavior when unlinking from a nick. +2000/10/09 Changed the way channel user modes are handled, so it can + be easily extended. +2000/10/06 Corrected some cosmetic problems in the language files. + +Epona Version 1.2.6 +------------------- +2000/12/13 Made ChanServ SET TOPIC work with Unreal. +2000/12/07 Fixed bugs in MemoServ when accessing memos from forbidden + channels. + Reported by ZeRo K <zero@townsito.net> and others later. + +Epona Version 1.2.5 +------------------- +2000/11/06 For those who ask... Version 1.3.0 is currently being + developped. Don't know when it will go out though, but + probably in the beginning of December (no promises though). + I know it's a long time to wait but.. I'm coding Epona + during my free time that is not so huge currently. I know + you want more and more new features, but doing something + that does not crash every five minutes takes time for + coding AND testing. + Btw.. This version is probably the most stable ever. +2000/11/06 Services does not segfault anymore when DEF_LANGUAGE + is not LANG_EN_US. + Reported by Firou <I've not his mail>. +2000/11/03 Critical bug fixed in NickServ ... probably one that + had make the whole services crash periodically. +2000/11/03 Fixed a bug in ChanServ DROP that was making the Services + crash when a non Services admin user tried to drop a + forbidden channel. +2000/11/03 Fixed the bug in encryption (buffers needed to be + filled with zero). +2000/10/27 Added support for channel modes +u, +C and +G from + Unreal 3.1. Probably more things soon. +2000/10/23 Added support for +O channel mode from Bahamut. + +Epona Version 1.2.4 +------------------- +2000/10/07 Fixed bugs in fantaisist commands. + Special thanks to the channel #rezo@kewl.org, + SeB <seb@kewl.org> and lbr <lbr@loopback0.net> + +Epona Version 1.2.3 +------------------- +2000/09/11 Added a reference to BotServ in HelpServ HELP. +2000/09/10 Services admin and Services operator lists are now sorted + alphabetically. +2000/09/09 Epona now runs correctly on FreeBSD 5.0. + +Epona Version 1.2.2 +------------------- +2000/09/05 Make -log command line option work again. +2000/09/05 Turkish language file is finally back. +2000/08/30 OP/DEOP/VOICE/DEVOICE/HALFOP/DEHALFOP/PROTECT/DEPROTECT/KICK + now have a check to make sure the target user is on the channel. + +Epona Version 1.2.1 +------------------- +2000/08/30 Fixed the bug in ADMIN ADD that was making the whole + services to crash when the admin list is empty. + +Epona Version 1.2.0 +------------------- +2000/08/27 Fixed a bug that was preventing the use of BADWORDS CLEAR + without a keyword. + Reported by Galak <thegalak@hotmail.com> +2000/08/19 Fixed a bug in automatic akill in session limiting code + that used the nick of one user that is being killed + instead of OperServ. +2000/08/19 OperServ lists are now cleaned up when a nick is dropped. +2000/08/14 Added ChanServ SET SIGNKICK command. +2000/08/14 Complete rewrite of the OperServ ADMIN and OPER commands. They + look like a "standard" numbered list now. +2000/08/01 Added MaxSessionKill and SessionAutoKillExpiry configuration + directives. +2000/07/31 Added "is a services operator", "is a services admin" status + line to NickServ INFO. +2000/07/31 Added CLEARMODES to OperServ help index. +2000/07/31 Switched KillAkillUsers to AkillOnAdd. Different behavior too. +2000/07/31 Added ChanServ LOGOUT command. +2000/07/30 Added the possibility to have a GLOBOPS raised when using the + OperServ RAW command. +2000/07/30 Added NOTIFY info to MemoServ INFO command. +2000/07/30 Added NickServ LOGOUT command. +2000/07/28 MemoServ now shows to Services Admins whether the limit is + hard or not in /memoserv INFO <nick>. +2000/07/28 Changed the behavior of NickServ LISTLINKS ALL to also show + the direct link of the nick being looked up. It looks like + something usable now (finally ;). +2000/07/28 Forbidden channels cannot receive memos anymore. +2000/07/28 Forbidden nicknames cannot be set founder or successor + anymore, cannot be added to access or akick list anymore, + and cannot receive memos anymore. +2000/07/28 Added a confirmation notice for OperServ CLEARMODES. + Also, ALL parameter for CLEARMODES is now case + insensitive. +2000/07/28 Fixed a bug in EXCEPTION DEL reply. +2000/07/28 AKILL ADD now won't add masks that are only composed + of ~@.*?. +2000/07/26 Fixed a cosmetic bug in the Services' WHOIS reply. +2000/07/26 Channel successor cannot be the same nick as channel + founder anymore. +2000/07/26 Default level for ACC-CHANGE is now 10. +2000/07/26 Changed the way Services operators and admins are + handled. Although it's not totally finished yet + (but it works), it's already faster. +2000/07/25 Added SET NOBOT option to BotServ. +2000/07/25 Added ChanServ KICK command (with KICK and KICKME + levels). + Suggested (for over a year ;) by + Geo <geoffroy@geo.ouega.net> +2000/07/25 Added NickServ SET ICQ command. + Suggested by Jack <jack@irc.kewl.org> +2000/07/25 Added OperServ RELOAD command to allow configuration + file to be dynamically reloaded. + Suggested by Crow <crow@german-elite.net> +2000/07/25 Added SHUTDOWN to OperServ help index. +2000/07/24 Corrected ChanServ SENDPASS so it can now send + the password to the founder if it's a linked (slave) + nick. + Reported by shiva <aqua22@informaticien.org> +2000/07/24 Restricted BotServ INFO #channel to founder + and Services admins only (maybe should I + think to implement a INFO level in the future?). +2000/07/14 Color kicker can now be used on Bahamut and + Unreal networks. Although there is a mode +c + that *should* be used to prevent the use of + colors on the channel, some users have noticed + me that it does not make access level distinction. + Too right. :) +2000/07/14 Added the !seen command to the fantaisist + commands. +2000/07/12 Again changed the way AKILLs are handled on + Bahamut. Hopefully for the last time. +2000/07/12 Added a reference to LISTLINKS in NickServ HELP. +2000/07/12 Changed NickServ HELP output to reflect changes + in expiration system. +2000/06/27 NSExpire has been broken into NSExpireMaster and + NSExpireSlaves. +2000/06/23 If compiled for Bahamut, Epona will now use SVSKILL + instead of KILL for the GHOST and "Too many invalid + passwords" kills. +2000/06/23 Networks that use Bahamut now need to use at least + the version 1.4.3 for Epona to work fine. + +Epona Version 1.1.4 +------------------- +2000/07/07 Added Turkish language file. + Submitted by PRoLoGiC <oytuny@yahoo.com> + +Epona Version 1.1.3 +------------------- +2000/06/20 One more time corrected the way BotServ uses AKILL on + Bahamut networks. +2000/06/19 Corrected how MemoServ notifies online users of their + new memos that failed in certain cases if MSNotifyAll + is set. One more time, I'm asking myself how the heck + the link support was coded. + Reported by wezen <wezen@ifrance.com> +2000/06/18 Fixed another bug in SJOIN processing that affects only + networks that use BotServ (and that have no luck ;). + Reported by acta <hackta@wanadoo.fr> +2000/06/14 OperServ AKILL command is now case insensitive. + Reported by ShadWolf <netruner@bocal.cs.univ-paris8.fr> +2000/06/14 Fixed a bug in SJOIN processing that may cause problems + on big channels. + +Epona Version 1.1.2 +------------------- +2000/06/09 Added a 'For more info' notice in NickServ INFO. + This was needed because of the huge changement introduced + by the original Services maintainer. This + will certainly be removed in a future release. + Suggested by Lucas <lucas@ians.be> +2000/06/09 Bots are now stocked in a hash list (increased speed + and alphabetical order in the list ;) +2000/06/07 Corrected the way BotServ uses AKILL on Bahamut since + the command format has changed. + Reported by Lucas <lucas@ians.be> + +Epona Version 1.1.1 +------------------- +2000/06/06 Corrected the way BotServ bots remove bans that match + them when they're on the channel. + Reported by p0lo <ping@com.bi> +2000/06/06 Added !dehalfop, !deprotect, !halfop, !protect as + fantaisist commands in Unreal mode. +2000/06/05 Finished Unreal support. +2000/06/05 Added OPDEOPME level. +2000/06/03 Corrected a bug that was preventing users to use + NickServ SENDPASS on linked nicks. +2000/06/02 Services now sets -r on an user when it changes its + nick and he is not identified for. + Reported by AdRi <adri@pegirc.com> +2000/06/02 Added KillAkillUsers configuration directive. + Suggested by Lucas <lucas@kewl.org> +2000/05/31 Corrected a little bug that had make ChanServ LIST not + work anymore for wildcard masks. + Reported by Mars <mars@freemail.chatarea.net> +2000/05/29 Changed the behaviour of NickServ INFO in some ways, + considering that nick options are only interesting + for the nick owner (and services admin); also, the nick + owner is now extended to the nick itself and its links. + ChanServ INFO adopts the same rules, but for channel + founder. Also, topic is not displayed anymore in INFO + if the channel has the mode s locked or the channel + is in +s mode. + +Epona Version 1.1.0 +------------------- +2000/05/29 Corrected a bug in SJOIN handling code. + Reported by Peter <striker@zip.com.au> +2000/05/27 Help for MemoServ SET LIMIT now shows all their killer + functionalities to Services admins. +2000/05/27 The greet message in NickServ INFO is now only shown to + the nick owner. +2000/05/27 This is not a new feature of Epona, BUT irc.kewl.org (500 users + network) now uses Epona, with BotServ feature enabled - and + it works fine! ;) +2000/05/25 Rewritten Bahamut SJOIN handling, runs faster now especially + on large channels during a netjoin. Also it now works fine on + channels that have +k or +l mode set. ;) +2000/05/23 Updated NickServ and ChanServ mem stats routines. +2000/05/23 BSSmartJoin improved: the bot (virtually) invites itself + before joining when the channel is in +i mode or +l mode + if users limit has been reached. +2000/05/23 Services now remove the old Q line for a bot when its nick + is changed. +2000/05/23 Services now logs links/unlinks and password changes in + NickServ, as well as successor and password changes in + ChanServ. +2000/05/23 Services admins can now register as many channels as they + want. + Suggested by Peter <striker@zip.com.au> +2000/05/23 Rewritten is_services_root thingies, that was crashing on + some systems. +2000/05/21 Improved the way BotServ removes bans when BSSmartJoin is + enabled. +2000/05/21 Rewritten BADWORDS ADD command to allow words with spaces + (without breaking the old syntax). +2000/05/21 Added "Linked to:" in NickServ INFO. +2000/05/21 ChanServ ACCESS LIST and AKICK LIST/VIEW as well as BotServ + BADWORDS LIST now make case insensitive comparaison when a + mask is specified. +2000/05/21 Added STATS C and STATS O replies. +2000/05/21 BotServ now displays the channels a bot is on when a + Services admin uses the (BotServ) INFO command on a bot. +2000/05/19 Added initial support for UnrealIRCd; not complete now. + Those who use Unreal, PLEASE make any suggestion on what + has been done and what should be done to epona@pegirc.com. +2000/05/19 Changed "binary" mode handling system, so new modes can + be added quickly. +2000/05/13 Added HelpChannel configuration directive. +2000/05/13 ChanServ now saves who added an akick and when; this can be + seen with the AKICK VIEW command. +2000/05/13 Added ChanServ SET SECUREFOUNDER. +2000/05/13 Added ChanServ SET BANTYPE to control how ChanServ places bans + on the channel. +2000/05/12 NickServ now changes the nick of nicknames that are forbidden + immediately. +2000/05/12 Forbids now handle a reason, that can be make required + using configuration directive ForceForbidReason; also + forbid setter and reason are shown to IRC operators in + NickServ INFO output. +2000/05/12 Added databases backup subsystem, controlled by the + configuration directive KeepBackups. +2000/05/12 Log files are now located in logs directory. There is + a different log file used for each day. Also added the + KeepLogs configuration directive. Old log rotating stuff + in OperServ has been removed. +2000/05/12 There can now be more than one Services Root defined in + configuration file. +2000/05/12 Added ChanServ ACCESS CLEAR, AKICK CLEAR and BotServ + BADWORDS CLEAR. +2000/05/11 Fixed BotServ BADWORDS LIST so it can be accessed by Services + admins on any channel. +2000/05/11 BotServ BADWORDS LIST command now gives the type used to + add the word. +2000/05/11 Added ChanServ GETKEY commands. +2000/05/11 Added VOICE and DEVOICE commands to ChanServ, along with + two new levels VOICE and VOICEME; these levels now also control + the access to !voice and !devoice fantaisist commands. +2000/05/11 Added STATS RESET command to OperServ. +2000/05/11 Added MailDelay configuration directive. +2000/05/11 Added command line -noexpire option and OperServ SET + NOEXPIRE option. + From TODO, suggested by Martin Butler <ibm@qualitynet.org> +2000/05/11 Added MemoServ CANCEL command. +2000/05/10 Corrected AKICK ENFORCE (silly :) bug. +2000/05/10 Added NickServ SET GREET command, as well as BotServ SET + GREET command, and a GREET level in ChanServ. + +Epona Version 1.0.0 +------------------- +2000/05/10 Bot now parts the channel when it is dropped. +2000/05/10 Fixed an extremely crashing bug in BotServ BADWORDS stuff. + If you experienced segmentation fault on PRIVMSG the bug + should be fixed. + (Thanks come especially to Sysop_Mars + <mars@freemail.chatarea.net>, and all others that helped + me to find out the bug and fix it) +2000/04/07 Added NickServ and ChanServ SENDPASS. +2000/04/03 Added OperServ USERLIST and CHANLIST commands. + Suggested by Peter <striker@zip.com.au> +2000/03/20 Added !unban command in the fantaisist commands. + Suggested by illusions <illusions@axs2k.net> +2000/03/19 Fixed a bug in NickServ LINK that was allowing everybody + taking the target nick to be identified for it + automatically. +2000/03/16 ChanServ LIST now hides channels that have the PRIVATE flag. + Reported by Peter <striker@zip.com.au> + +Epona Version 1.0pre2 +--------------------- +2000/03/15 ChanServ OP and DEOP commands have been modified (see + their help topic for more information on the new + syntaxs). +2000/03/15 ChanServ SET PRIVATE has now its help topic accessible. +2000/03/14 Completed BotServ HELP and HELP SET topics. +2000/03/14 Added a configuration file option to force users to + give an e-mail when they register a nickname. It will + also ask already registered nicks for an e-mail when + they identify. Also, the REGISTER command has an + optional parameter email if this option is not enabled. +2000/03/14 NickServ SET URL and SET EMAIL are now finally shared + between linked nicks. +2000/03/14 Fixed a NickServ memory leak (it was not freeing the + email and url fields when a nick record was being deleted). +2000/03/14 Changed the behavior of expire_nicks, that was updating + the last seen time of an user being online whether it + was recognized or not. +2000/03/14 Added support for the SIDENTIFY command in NickServ. +2000/03/12 BotServ BOT DEL now removes the Q line make for the + bot when it was created. +2000/03/12 Added WallDrop and WallForbid configuration file options. +2000/03/12 Added BotServ SAY and ACT commands. +2000/03/12 Fixed the broken routine that loads the (very) old + ChanServ databases (it didn't initialize BotServ stuff). +2000/03/12 BotServ KICK COLORS now won't work on Bahamut networks + anymore. Users should use the channel mode 'c' instead. + +Epona Version 1.0pre1 +--------------------- +2000/03/11 Added SET SYMBIOSIS command in BotServ. +2000/03/11 Added SET FANTASY command in BotServ. +2000/03/09 Corrected tiny bug that was making SQLINE for bots + in the wrong way. +2000/03/09 Added SET DONTKICKOPS and SET DONTKICKVOICES commands in BotServ + to protect those ops and voice who aren't in the + access list (or not with the right level) against bot's + kicks. +2000/03/09 BotServ now generates an error when an unknown option + is used in KICK command. +2000/03/09 Optimized the way BotServ counts users on a channel. +2000/03/02 Added a French language file. +2000/03/02 Corrected some strings in language files. + +Epona Version 1.0pre0 +--------------------- +2000/02/23 Updated OperServ memory stats to reflect the changes + provided by BotServ. +2000/02/23 Just finished first version of BotServ. +2000/02/20 Fixed an exploit in do_nick(), that is usable in certain + conditions with linked nicks, see users.c for details. +2000/02/19 HelpServ rewritten, now delivering messages depending + of users' language. +2000/02/19 Removed irciihelp, not very useful nowadays. Heck, every + IRC clients are provided with an help file, so why + must we serve one? +2000/02/19 NickServ now will always change nick instead of kill users + -- since it is really more efficient. +2000/02/19 Fixed collide() problem that caused nick collision. +2000/02/19 Fixed problem of ChanServ CLEAR MODES and OperServ CLEARMODES + not unsetting mode 'R'. +2000/02/19 Corrected WHOIS output not giving right the end of WHOIS. +2000/02/19 Added SQLINE support. +2000/02/19 Corrected tiny bug in the command sent when an enforcer + is created. +2000/02/19 Added Bahamut support. Hope it will work. +2000/02/19 Removed support for all IRCd except dal4.4.15+. Epona + will definitely be dedicated to those using Dreamforge + or official successors. +2000/02/19 Here starts the life of Epona. ;) diff --git a/docs/OLDNEWS b/docs/OLDNEWS new file mode 100644 index 000000000..f8e0c85a6 --- /dev/null +++ b/docs/OLDNEWS @@ -0,0 +1,139 @@ +Highlighted News in Anope 1.7 (and soon 1.8) +============================================ + * Added a new and improved ./Config script. + * Added MySQL phase 2 implementation (see docs/MYSQL). + * Added NickServ registration delays. + * Added read receipts for memos. + * Added a way for modules to store data with internal structures. + * Added nick tracking support. + * Added support for SVSHOLD. + * Added support for U:Lined servers. + * Added support for TS6 IRCd's. + * Added support for Windows. + * Added internal events for modules. + * Added a way to suspend nicks. + * Added support for module configuration directives. + * Added translation support for modules. + * Added a module pack with handy modules. + * Added IRCd protocol modules. + * Added support for new IRCd's. Currently supported: + - Bahamut 1.4.27 or later (including 1.8) + - Charybdis 1.0 or later + - DreamForge 4.6.7 + - Hybrid 7 or later + - InspIRCd 1.0 or later (including 1.1) + - Plexus 2.0 or later (including 3.0) + - PTLink 6.15 or later + - RageIRCd 2.0 or later + - Ratbox 2.0.6 or later + - ShadowIRCd 4.0 beta 7 or later + - Solid IRCd 3.4.6 or later + - UltimateIRCd 2.8.2 or later (including 3.0) + - UnrealIRCd 3.1.1 or later (including 3.2) + - ViagraIRCd 1.3 or later + * Added new languages. Currently included: + Catalan, German, English, Spanish, French, Greek, + Hungarian, Italian, Dutch, Polish, Portugese, + Russian, Turkish + * Added support for CIDR channel lists. + * Converted the core to be completely modular. + * Improved random number algorithm. + * Removed proxy detector (see docs/PROXY). + * Fixed various exploits and vulnerabilities. + * Fixed various language typos and inconsistencies. + * Fixed a bug in the database system causing nickserv passwords + to be saved incorrectly. Note that this breaks backwards + compatibility on nick.db !!! + +Highlighted News in Anope 1.6 +============================= + * Fixed various exploits and vulnerabilities. + * Fixed various language typos and inconsistencies. + * Improved ignore system. + * Improved ./configure script. + * Removed all compile warning fixed. + * Converted HelpServ into a proper service. + * Added external module support. + * Added Defense Condition (DEFCON) System. + * Added MySQL support for mirroring databases. + * Added multi-server configuration. + * Added multi-domain /OS GLOBAL support. + * Added combined +oq +oa +ha +va on net-joins. + * Added support for ircd changes and upgrades. + * Added HostSetters configuration directive. + * Added /OS STAFF command. + * Added /OS SVSNICK command. + * Added /OS CHANKILL command. + * Added /MS STAFF command. + * Added /NS UPDATE command. + * Added /MS SENDALL command. + * Added /NS GETMAIL command. + * Added /HS DELALL command. + * Added /HS LIST command with pattern matching. + * New support scripts and tools. + * New ircd support, complete list: DreamForge 4.6.7, Bahamut 1.4.27, + UnrealIRCd 3.1.1, UltimateIRCd 2.8.2, + UltimateIRCd 3.0.0, Hybrid IRCd 7.0 + ViagraIRCd 1.3.x, PTlink 6.15.0 + * New Language files, complete list: cat.l, de.l, en_us.l, es.l, fr.l, + gr.l, it.l, nl.l, pt.l, ru.l, tr.l + +Highlighted News in Anope 1.4 +============================= + +After the change from Epona to Anope +------------------------------------ + * New Italian Language file + * Added support for UltimateIRCd 3.0 and later + * Services realtime logging to a channel + * SuperAdmin directive for access to "super" commands. + * Ban system is now exception aware. + * HostServ for hostname masquerading. + * Smarter XOP System. + * Email verification/handshake upon registration. + * Services can now /ignore users. + * Smarter memo notification for channels. + * Channel can be SUSPENDed instead of FORBIDen. + +Before the change from Epona to Anope +------------------------------------- + * HostServ for networks that support them. + * UnrealIRCd support has been rewritten, it is now fully + working (hopefully) and officially supported again. + * Added support for UltimateIRCd 2.8.2 and later. + * A multi-threaded proxy detector that can scan Wingates, + SOCKS 4/5 and HTTP proxies on ports 3128 and 8080. Don't use + it if you have not been authorized to use it by your system + administrator! + * The ChanServ AOP/SOP/VOP commands, and, on networks that + support halfops, the HOP command, have been added. They + allow a more user-friendly control of channel privileges. + * Use of services IDs that allow an user to be automatically + identified after a split (if he was identified before the split) + in a secure way. This also saves lots of bandwidth. + * Services' default language can now be set in services.conf. + * The OperServ RANDOMNEWS command provides an easy way to show + network news in a random manner without flooding your users + with them (one news per connection). + * The BotServ SET PRIVATE option allows services admins to + make the bot usable by IRC operators only. + * The OperServ SQLINE command allows you to forbid nick masks + and even channel masks with the latest Bahamut. + * The ChanServ AKICK STICK command allows akicks to be permanently + kept on channel. + * The ChanServ SET TOPIC command has been renamed to TOPIC, and + a new BAN command has been added. They both have their own + associated levels. + * A SET PEACE command has been added to ChanServ. It prevents + users to use pejorative services commands (DEOP, KICK, ...) + on users with greater or equal levels. + +Networks using Bahamut must upgrade to Bahamut 1.4.27 or later, +while networks using UnrealIRCd must upgrade to Unreal 3.1.1. + +For the full changes, see the Changes file. + +For announcements and discussions about Anope, please visit our +web site http://www.anope.org + + diff --git a/docs/PROXY b/docs/PROXY new file mode 100644 index 000000000..24499be11 --- /dev/null +++ b/docs/PROXY @@ -0,0 +1,41 @@ +Anope Proxy Detector +-------------------- + +1) Introduction +2) Alternatives + +1) Introduction + + Anope has had a built-in proxy detector since it's first version. Recently, + however, this built-in proxy detector has been removed. This was because + the Anope team found that the proxy detector was showing it's age, and the + time needed to restore it to a good state wasn't worth it, also considering + that there are currently good alternatives out there which do the job as + good as it can be done already. + +2) Alternatives + + A) Blitzed Open Proxy Monitor (BOPM) + B) NeoStats + OPSB + + Note that these are seperate projects and that the Anope team won't give + support on these programs. For support, please refer to the sites of the + creators of the software packages. + + A) Blitzed Open Proxy Monitor (BOPM) + + URL: http://wiki.blitzed.org/BOPM + + BOPM is currently the leading proxy detector for IRC networks out + there. Altough it is not designed to run on a central place for the + entire network, it can be done with some minor tweaking on most IRCd's. + The Anope Team advises BOPM for the best security. + + B) NeoStats + OPSB + + URL: http://www.neostats.net/ + + NeoStats is the swiss knife of IRC tools. In combination with the OPSB + module by NeoStats Software, it can scan for proxies in a similar way + as BOPM does. The OPSB module is based on BOPM and has been adjusted to + be able to scan all clients from one centralized proxy detector. diff --git a/docs/README b/docs/README new file mode 100644 index 000000000..830e97b33 --- /dev/null +++ b/docs/README @@ -0,0 +1,377 @@ +Anope -- a set of IRC services for IRC networks +----------------------------------------------- + +Anope is 2003-2008 Anope Team <info@anope.org>. +Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>. +Based on Services 1996-1999 Andrew Church <achurch@achurch.org>. + +This program is free but copyrighted software; see the file COPYING for +details. + +Information about Anope may be found at http://www.anope.org/ +Information about Epona may be found at http://www.epona.org/ +Information about Services may be found at http://www.ircservices.esper.net/ + +Table of Contents +----------------- +1) Credits +2) Presentation +3) Installation +4) Command Line Options +5) Messages Translation +6) Contact and Mailing List + +1) Credits + + Anope is based on Lara's Epona version 1.4.14. + Epona is based on Andy Church's IRC Services version 4.3.3. + + The original credits: + + * Mauritz Antunes + Portuguese translation + * Jose R. Holzmann, Raul S. Villarreal + Spanish translation + * Andrew Kempe <theshadow@shadowfire.org> + News system + * <d.duca@eurcom.net> + Italian translation + * <mikado@holyfire.com> + Turkish translation + * Andrew Kempe <theshadow@shadowfire.org> + Session limiting + + Epona credits: + + * lara <lara@pegsoft.net> + Main coding + * CafeiN <oytuny@yahoo.com> + Turkish translation + * Sylvain Cresto aka tost <scresto@netsante.fr> + FreeBSD 5 patch + * Marcelo Conde Foscarini aka Bras <ircadmin@brmarket.net> + Portuguese translation + * Alvaro Toledo aka POLLITO <atoledo@keldon.org> + Spanish translation + * chemical <chemical@musicplay.de> + German translation + * shine <dh@shinewelt.de> + German translation + * Guven Guzelbey aka MeShGuL <guzelbey@cs.utk.edu> + Turkish translation + * Jordi Pujol <jordi.pujol@aujac.org> + Catalan translation + * Eva Dachs <evadachs@terra.es> + Catalan translation + * Toni Perez <toni.perez@aujac.org> + Catalan translation + * Sergios Karalis <sergios_k@hotmail.com> + Greek translation + * Thomas J. Stensas aka ShadowMaster <shadowmaster@shadow-realm.org> + Ultimate 3.x support + + Anope credits: + + * Adam Kramer <ribosome@anope.org> + * Alvaro Toledo <atoledo@keldon.org> + * Amanda Folson <amanda@anope.org> + * Andrew Berquist <vash@anope.org> + * Björn Stiddien <keeper@anope.org> + * Charles Kingsley <chaz@anope.org> + * Chris Hogben <heinz@anope.org> + * Daniel Engel <dane@zero.org> + * David <dv@diboo.net> + * David Narayan <jester@phrixus.net> + * David Robson <rob@anope.org> + * Daniele Nicolucci <jollino@sogno.net> + * Florian Schulze <certus@anope.org> + * Gabriel Acevedo H. <drstein@anope.org> + * Jan Milants <viper@anope.org> + * JH <jh@irc-chat.net> + * Joris Vink <joris@anope.org> + * Lucas Nussbaum <lucas@lucas-nussbaum.net> + * Mark Summers <mark@goopler.net> + * Matthew Beeching <jobe@invictachat.net> + * Naram Qashat <cyberbotx@anope.org> + * Pieter Bootsma <geniusdex@anope.org> + * Robin Burchell <w00t@inspircd.org> + * Thomas Juberg Stensås <ShadowMaster@Shadow-Realm.org> + * Trystan .S Lee <trystan@nomadirc.net> + * openglx <openglx@brasnerd.com.br> + + Anope Translations: + + * GeniusDex <geniusdex@anope.org> (nl.l) + * Kein <kein-of@yandex.ru> (ru.l) + * Stuff <the.stuff@gmx.de> (de.l) + * Gabriel Acevedo H. <drstein@anope.org> (es.l) + * Janos Kapitany <sarkanyka@cjbchat.hu> (hun.l) + * Szymon S'wierkosz <szymek@adres.pl> (pl.l) + + Anope uses the strlcat() and strlcpy() functions from OpenSSH 2.5.1p2. + These functions are copyrighted by Todd C. Miller: + + Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED `AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + +2) Presentation + + Anope is a set of Services for IRC networks that allows users to manage + their nicks and channels in a secure and efficient way, and administrators + to manage their network with powerful tools. + + Currently available services are: + + * NickServ, a powerful nickname manager that users can use to protect + themselves against nick stealing. Each user has its own nickname + group, that allows the user to register as many nicks as needed + while still being able to take profit of his privileges and to + modify the nick configuration. NickServ also has an optional + password retrieval feature. + + * ChanServ, a powerful channel manager that helps users to administer + their channels in a totally customizable way. ChanServ has an + internal list of privileged users and banned users that controls + accesses on a per-channel basis. It eliminates all takeover + problems, because of its powerful op/unban/invite and even mass + deop and mass kick functions. + + * MemoServ, an helpful companion that allows sending short messages + to offline users, that they can then read when they come online + later. + + * BotServ, an original service that allows users to get a permanent, + friendly bot on their channels in an easy way. Each bot can be + configured to monitor the channels against floods, repetitions, + caps writing, and swearing, and to take appropriate actions. It + also can handle user-friendly commands (like !op, !deop, !voice, + !devoice, !kick, and many others), say a short greet message when + an user joins a channel, and even "take over" ChanServ actions such + as auto-opping users, saying the entry notice, and so on. This + service can be disabled if you want to save some bandwidth. + + * OperServ, the IRCops' and IRC admins' black box, that allows them + to manage the list of network bans (also known as AKILL (DALnet) or + GLINE (Undernet)), to configure messages displayed to users when + they log on, to set modes and to kick users from any channel, to + send notices quickly to the entire network, and much more! + + * HostServ, a neat service that allows users to show custom vHosts + (virtual hosts) instead of their real IP address; this only works + on daemons supporting ip cloaking, such as UnrealIRCd, UltimateIRCd + and ViagraIRCd. + + * HelpServ, a skeleton service used to serve help files. + + Anope currently works with: + + * Bahamut 1.4.27 or later (including 1.8) + * Charybdis 1.0 or later + * DreamForge 4.6.7 + * Hybrid 7 or later + * InspIRCd 1.0 or later (including 1.1) + * Plexus 2.0 or later (including 3.0) + * PTlink 6.15 or later + * RageIRCd 2.0 beta-6 or later + * Ratbox 2.0.6 or later + * ShadowIRCd 4.0 beta 7 or later + * Solid IRCd 3.4.6 or later + * UltimateIRCd 2.8.2 or later (including 3.0) + * UnrealIRCd 3.1.1 or later (including 3.2) + * ViagraIRCd 1.3 or later + + Anope could also work with some of the daemons derived by the ones listed + above, but there's no support for them if they work or don't work. + + +3) Installation + + See the INSTALL file for instruction on installing Anope. + + +4) Command Line Options + + Normally, Anope can be run simply by invoking the "services" executable. + Anope will then use the defaults specified in the services.conf file, and + connect to the specified uplink server. Alternatively, any of the + following command-line options can be specified to change the default + values: + + -remote server[:port] Connect to the specified server + -local host -or- Connect from the specified address (e.g. for + [host]:[port] multihomed servers) + -name servername Our server name (e.g. services.some.net) + -desc string Description of us (e.g. SomeNet Services) + -user username Username for Services' nicks (e.g. services) + -host hostname Hostname for Services' nicks (e.g. esper.net) + -dir directory Directory containing Services' data files + (e.g. /usr/local/lib/services) + -log filename Services log filename (e.g. services.log) + -update secs How often to update databases (in seconds) + -expire secs How often to check for nick/channel + expiration (in seconds) + + Additionally, the following command-line options can be used to modify + the behavior of Anope: + + -debug Enable debugging mode; more info sent to log (give + option more times for more info) + -readonly Enable read-only mode; no changes to databases + allowed, .db files and log not written + -skeleton Enable skeleton mode; like read-only mode, but only + OperServ is available + -nofork Do not fork after startup; log messages will be + written to terminal (as well as to the log file + if not in read-only mode) + -forceload Try to load as much of the databases as possible, + even if errors are encountered + -noexpire Expiration routines won't be run at all + -logchan Startup with logchan enabled + -version Display the version of Anope + -nothird Do not load the modules specified in ModulesAutoload + or ModulesDelayedAutoload in the config file + -protocoldebug Debug each incoming message after protocol parsing + -support Used for support, same as -debug -nofork -nothird + + Upon starting, Anope will parse its command-line parameters, open its + logfile, then (assuming the -nofork option is not given) detach itself + and run in the background. If Anope encounters a problem reading the + database files or cannot connect to its uplink server, it will terminate + immediately; otherwise, it will run until the connection is terminated + (or a QUIT, SHUTDOWN, or RESTART command is sent; see OperServ's help). + In the case of an error, an appropriate error message will be written to + the log file. + + If Anope is run with the "-readonly" command-line option, it can serve as + a "backup" to the full version of services. A "full" version of services + (run without -readonly) will automatically reintroduce its pseudo-clients + (NickServ, ChanServ, etc.), while a "backup" services will not, thus + allowing full services to be brought up at any time without disrupting + the network (and without having to take backup services down beforehand). + + If Anope is run with the "-skeleton" command-line option, it will not try + to load the nickname or channel databases, and will respond with "service + is inactive" messages to any commands sent to NickServ, ChanServ, + MemoServ or BotServ. This can be useful as an emergency stopgap measure + when the main copy of Anope cannot be started. + + The "-debug" option is useful if you find or suspect a problem in Anope. + Giving it once on the command line will cause all traffic to and from + services as well as some other debugging information to be recorded in + the log file; if you send a bug report, PLEASE include an excerpt from + the log file WITH DEBUGGING ACTIVE; we cannot emphasize enough how + important this is to tracking down problems. (You can also enable + debugging while Services is running using OperServ's SET DEBUG command.) + If you repeat the -debug option more than once, the debugging level will + be increased, which provides more detailed information but may also slow + Anope down considerably and make the log file grow dramatically faster + (in particular, at debug level 4 a message is written to the log for + every character received from the server). In general, a debug level of 1 + is sufficient for the coding team to be able to trace a problem, because + all network traffic is included and we can usually reproduce the problem. + + The "-forceload" option is provided to attempt recovery of data from + corrupted or truncated databases. Normally, if Anope encounters an error + writing to a database file, it will attempt to restore the original + version of the file and report an error to the logfile and through + WALLOPS. However, if this should fail (which normally should not happen), + or if Anope is terminated abruptly e.g. by kill -9 or a power failure, + then one or more of the databases may be corrupt. Normally, this will + cause Anope to abort the next time you try to run it; however, if yo + give the -forceload option to Anope, it will instead read as much as it + can, then skip to the next database. For obvious reasons, it's highly + recommended to keep backup copies of your databases in case something + does happen (since Anope will stop at the first error in a database, even + with -forceload, meaning you lose any data after that). + +5) Messages Translations + + Anope has a powerful option in NickServ allowing users to choose what + language it must use when sending messages to users. Messages are stored + in language files (located in the lang directory). + + Anope is currently provided with thirteen languages: Catalan, Dutch, + English, French, German, Greek, Hungarian, Italian, Polish, Portuguese, + Russian, Spanish and Turkish. If you want to translate Anope messages + into another language, follow this instructions: + + * Copy the lang/en_us.l file to a meaningful name (for example, if + you would like to translate messages in Spanish, you would rename + it to es.l). + + * Edit the file with your favorite text editor. Carefully read the + instructions given at the top of the file, and start translating + the whole file. The file is big, so make sure you have some coffee + available ;) Try to avoid the use of English words as much as + possible. If the new language contains only a few 'special' + characters, try and use latin representations of it, if possible. + Remember that most clients are only capable of handling the + ISO-8859-1 charset. Of course, if you are translating Anope to a + language with a totally different charset, such as Russian, feel + free to use the one that suites it best (and the one that is in use + by most speakers of that language ;)). + + * When this is done, you have two solutions: either patch Services + source code so they take in account the new language file + (basically, you'll have to modify lang/Makefile, language.c and + maybe services.h), or send us the translated file so we can make + the patch and include your language in the next Anope release. + + * Note that there is a language tool on bin/langtool.pl that can aid + the verification process on newly created language files. Try to + use it before you submit a language file. + + When new major releases come out, you'll not have to retranslate the + whole file; the Changes.lang file will help you to know which messages + were added, modified or deleted. + + If you did a language file translation, and want to let others use it, + please send it to dev@anope.org (don't forget to mention clearly your + (nick)name, your e-mail and the language name). You'll of course get full + credit for it, and will even get future final major releases before + anyone else to complete the translation!... ;) + +6) Contact + + For announcements and discussions about Anope, please visit our + Portal and Forums at http://www.anope.org/ -- make sure you register + yourself and your network to get full benefits. + + If you read the documentation carefully, and didn't find the answer to + your question, feel free to post on the website forums or join our irc + channel (irc.anope.org #anope). Once you join our Support channel, just + type "? report" for instructions on how to report a Bug. Be as precise as + possible when asking a question, because we have no extraordinary powers + and can't guess things if they aren't provided. The more precise you are, + the sooner you'll be likely to get an answer. + + If you think you found a bug, add it to the bug tracking system + (http://bugs.anope.org) and - again - be as precise as possible. Also say + whether the bug happens always or under what circumstances, and anything + that could be useful to track your bug down. If you wrote a patch, send + it over. :) diff --git a/docs/WIN32.txt b/docs/WIN32.txt new file mode 100644 index 000000000..241390271 --- /dev/null +++ b/docs/WIN32.txt @@ -0,0 +1,209 @@ +Anope for Windows +----------------- + +1) Building the Source +2) Installation +3) Compiling Modules +4) Other compile options +5) Credits + +1) Building the Source + + NOTE: If you have downloaded one of the pre-compiled installers, you do + NOT need to complete this step, and you can proceed to step 2. + + If you want to build Anope from source on a Win32 system, you will need + to follow this instructions: + + 1) Download the required files: + + * Current Anope source: + http://sourceforge.net/project/showfiles.php?group_id=94081 + + If you have Visual C++ 6, 7 (.NET 2002/2003) or 8 (2005) skip ahead to step 2, else you + need to download the following free components from Microsoft. Once + downloaded, install these packages. + + * Microsoft Visual C++ 2008 Express Edition: + http://www.microsoft.com/express/vc/ + + or + + * Microsoft Visual C++ 2005 Express Edition: + http://msdn.microsoft.com/vstudio/express/visualc/download/ + + then download and install: + + * Microsoft Windows PlatformSDK: (Requires WGA validation) + http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en + + (NOTE: Although this says for Windows Server 2003, it does infact work on all supported + versions of Windows. When installing, you should select the Custom option, and ensure + that only the top selection, and the bottom selection are checked. This will cut down + install time dramatically) + + * MySQL for Windows (only needed if building with MySQL enabled): + http://dev.mysql.com/ + + (NOTE: Anope can be compiled against MySQL Version 3.23 and above) + + + 2) Unpack the Anope tarball with your favorite uncompression program + (WinZip or WinRAR, etc). + + 3) Bring up the Visual C++ Command Prompt; This will launch a + DOS Command Prompt like window, which will set the environment + properties needed to make Anope. + + Change directories to where you unpacked the source code in step 2, by typing: + + cd <path to extracted source> + + e.g. + + cd c:\anope-trunk + + 4) You now need to configure Anope to your requirements. At the prompt type: + + Config.bat + + NOTE: If you run an Anti-Virus program such as McAfee or Norton, you may + be unable to run this command due to the protection in place. Some Anti- + Virus programs may detect the Anope Configuration Tool as a worm, however + this is not the case. If you are prompted to allow or deny execution of + the script, you should choose allow. If the script fails to run, and no + notice is displayed, please check your Anti-Virus settings before seeking + assistance. + + An interactive configuration program should guide you through the install + options, and then detect your Microsoft Visual C++ Library files. If it + fails to detect them, you should check you have everything installed. + + If you cannot find whats causing the error, please visit our forums or + our IRC Support channel for assistance. + + 5) You are now ready to compile. At the prompt type: + + nmake -f Makefile.win32 + + Once you are back at the command prompt again, if there have been no + errors, you are ready to go. + + Should you encounter errors with the installation process, check the + messages displayed for advice on resolving them. If you are unable to + resolve the issues yourself, seek assistance on our forums or in our + IRC Support channel. + + 6) Anope will install the files where they belong. The only thing you need + to do is rename "data/example.conf" to be "data/services.conf". + + You have now completed the building phase of Anope for Windows. You can + now move on to the next section, which is related to setting up Anope. + +2) Installation + + Since Anope for Windows does not use a visual interface, you must do the + configuration with a text editor before proceeding with running Anope + itself. + + NOTE: You may need to open the configuration file with Wordpad, or a text + editor which supports UNIX line endings. Opening the configuration file in + Notepad will cause strange characters to appear, and you may not be able to + edit the file correctly. + + Open services.conf, and read through it carefully and adjust the settings + you think you need to adjust. Pay special attention to these settings: + + A) IRCDModule: This is the name of an IRCd Module that Anope will use + to communicate with your server. Anope supports 15 IRCds, + so ensure you set the right value here. + B) RemoteServer: This is the address to your ircd, along with the port + and password. You should consult your ircd + documentation on how to link ircds. + C) ServicesRoot: Remove the # and change the names to your nick so you + can take control of services once they are online. + D) UserKey1/2/3: Remove the # infront of the three UserKey settings, and + change the parameters to numbers; around 6-7 digits will + do. + + If you are unsure of the settings, you can go to the dos command prompt + and run "anope.exe -nofork -debug" and watch the information as it + attempts to connect. + + You can launch services in two ways. If you are sure that the entered + configuration information is correct, simply double clicking the Anope + executable will cause it to start; no window will pop up. If you'd rather + have a more textual output, you can start at the dos prompt and type in + "anope.exe". If services are successfully started up the dos prompt will + seem to hang; at this point you can safely close the dos window. + +3) Compiling Modules + + If you want to build other modules than the ones shipped by default, you + will need to modify the Makefile.inc.win32 file, in the src\modules folder. + + A) Add modules; find the line stating "SRCS=" and add the name of the + file to the end of the line. So if you have two files: + + SRCS=file.c file2.c + + If you are compiling a folder of module components, such as the example + "catserv", you will need to add/change the "SUBS=" line. If you were + compiling the "catserv" example, the line would look like this: + + SUBS=catserv + + B) When you've done this, use the same command prompt you set up in part + 1, change directories to the src\modules folder, and type: + + nmake -f Makefile.win32 + + followed afterwards, by: + + nmake -f Makefile.win32 install + + C) You should now be able to load your modules on IRC via OperServ, or via + the services.conf file. + + +4) Other compile options + + A) If you have trouble recompiling Anope, you should try: + + nmake -f Makefile.win32 distclean + + This will clean up the source directory and allow for chages to be applied + to previously compiled files. + + B) A list of valid options are: + + install + distclean + clean + spotless + all + core + protocols + mypasql + languages + modules + + The syntax for these options is: + + nmake -f Makefile.win32 [option] + +5) Credits + + Anope is based on Epona and IRCServices. See CREDITS for more credits and + a complete list of all developers. + + Anope's Windows-specific code is provided by: + + * Dominick Meglio <codemastr@unrealircd.com> + * Trystan Scott Lee <trystan@nomadirc.net> + * Chris Hogben <heinz@anope.org> + + Anope's Windows Installer was made using: + + * NSIS 2.20 <http://nsis.sourceforge.net> + |