From 73b9d0c5cb02f0ea8350de28bc3687e0af70ea0f Mon Sep 17 00:00:00 2001 From: brain Date: Thu, 23 Jan 2003 19:45:57 +0000 Subject: Initial revision git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@132 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/COPYING | 339 +++++++ docs/ChangeLog | 49 + docs/SUPPORTED | 62 ++ docs/inspircd.conf.example | 231 +++++ docs/module-doc/annotated.html | 32 + docs/module-doc/channels_8h-source.html | 146 +++ docs/module-doc/channels_8h.html | 248 ++++++ docs/module-doc/classAdmin-members.html | 19 + docs/module-doc/classAdmin.html | 160 ++++ docs/module-doc/classBanItem-members.html | 20 + docs/module-doc/classBanItem.html | 34 + docs/module-doc/classBanItem.png | Bin 0 -> 303 bytes docs/module-doc/classConfigReader-members.html | 22 + docs/module-doc/classConfigReader.html | 324 +++++++ docs/module-doc/classConnectClass-members.html | 18 + docs/module-doc/classConnectClass.html | 106 +++ docs/module-doc/classExemptItem-members.html | 20 + docs/module-doc/classExemptItem.html | 34 + docs/module-doc/classExemptItem.png | Bin 0 -> 333 bytes docs/module-doc/classFileReader-members.html | 22 + docs/module-doc/classFileReader.html | 312 +++++++ docs/module-doc/classHostItem-members.html | 20 + docs/module-doc/classHostItem.html | 185 ++++ docs/module-doc/classHostItem.png | Bin 0 -> 511 bytes docs/module-doc/classInviteItem-members.html | 20 + docs/module-doc/classInviteItem.html | 34 + docs/module-doc/classInviteItem.png | Bin 0 -> 318 bytes docs/module-doc/classInvited-members.html | 16 + docs/module-doc/classInvited.html | 58 ++ docs/module-doc/classModule-members.html | 22 + docs/module-doc/classModule.html | 315 +++++++ docs/module-doc/classModuleFactory-members.html | 18 + docs/module-doc/classModuleFactory.html | 134 +++ docs/module-doc/classServer-members.html | 34 + docs/module-doc/classServer.html | 913 +++++++++++++++++++ docs/module-doc/classVersion-members.html | 20 + docs/module-doc/classVersion.html | 191 ++++ docs/module-doc/classchanrec-members.html | 32 + docs/module-doc/classchanrec.html | 534 +++++++++++ docs/module-doc/classes.html | 26 + docs/module-doc/classucrec-members.html | 19 + docs/module-doc/classucrec.html | 161 ++++ docs/module-doc/classuserrec-members.html | 47 + docs/module-doc/classuserrec.html | 1085 +++++++++++++++++++++++ docs/module-doc/doxygen.css | 49 + docs/module-doc/doxygen.png | Bin 0 -> 2351 bytes docs/module-doc/files.html | 21 + docs/module-doc/ftv2blank.png | Bin 0 -> 173 bytes docs/module-doc/ftv2doc.png | Bin 0 -> 254 bytes docs/module-doc/ftv2folderclosed.png | Bin 0 -> 258 bytes docs/module-doc/ftv2folderopen.png | Bin 0 -> 260 bytes docs/module-doc/ftv2lastnode.png | Bin 0 -> 232 bytes docs/module-doc/ftv2link.png | Bin 0 -> 357 bytes docs/module-doc/ftv2mlastnode.png | Bin 0 -> 159 bytes docs/module-doc/ftv2mnode.png | Bin 0 -> 193 bytes docs/module-doc/ftv2node.png | Bin 0 -> 234 bytes docs/module-doc/ftv2plastnode.png | Bin 0 -> 164 bytes docs/module-doc/ftv2pnode.png | Bin 0 -> 199 bytes docs/module-doc/ftv2vertline.png | Bin 0 -> 228 bytes docs/module-doc/functions.html | 191 ++++ docs/module-doc/globals.html | 57 ++ docs/module-doc/hierarchy.html | 34 + docs/module-doc/index.html | 7 + docs/module-doc/main.html | 16 + docs/module-doc/modules_8cpp-source.html | 249 ++++++ docs/module-doc/modules_8cpp.html | 24 + docs/module-doc/modules_8h-source.html | 159 ++++ docs/module-doc/modules_8h.html | 96 ++ docs/module-doc/tree.html | 11 + docs/module-doc/tree.js | 44 + docs/module-doc/treeview.js | 500 +++++++++++ docs/module-doc/users_8cpp-source.html | 109 +++ docs/module-doc/users_8cpp.html | 24 + docs/module-doc/users_8h-source.html | 158 ++++ docs/module-doc/users_8h.html | 239 +++++ 75 files changed, 8070 insertions(+) create mode 100644 docs/COPYING create mode 100644 docs/ChangeLog create mode 100644 docs/SUPPORTED create mode 100644 docs/inspircd.conf.example create mode 100644 docs/module-doc/annotated.html create mode 100644 docs/module-doc/channels_8h-source.html create mode 100644 docs/module-doc/channels_8h.html create mode 100644 docs/module-doc/classAdmin-members.html create mode 100644 docs/module-doc/classAdmin.html create mode 100644 docs/module-doc/classBanItem-members.html create mode 100644 docs/module-doc/classBanItem.html create mode 100644 docs/module-doc/classBanItem.png create mode 100644 docs/module-doc/classConfigReader-members.html create mode 100644 docs/module-doc/classConfigReader.html create mode 100644 docs/module-doc/classConnectClass-members.html create mode 100644 docs/module-doc/classConnectClass.html create mode 100644 docs/module-doc/classExemptItem-members.html create mode 100644 docs/module-doc/classExemptItem.html create mode 100644 docs/module-doc/classExemptItem.png create mode 100644 docs/module-doc/classFileReader-members.html create mode 100644 docs/module-doc/classFileReader.html create mode 100644 docs/module-doc/classHostItem-members.html create mode 100644 docs/module-doc/classHostItem.html create mode 100644 docs/module-doc/classHostItem.png create mode 100644 docs/module-doc/classInviteItem-members.html create mode 100644 docs/module-doc/classInviteItem.html create mode 100644 docs/module-doc/classInviteItem.png create mode 100644 docs/module-doc/classInvited-members.html create mode 100644 docs/module-doc/classInvited.html create mode 100644 docs/module-doc/classModule-members.html create mode 100644 docs/module-doc/classModule.html create mode 100644 docs/module-doc/classModuleFactory-members.html create mode 100644 docs/module-doc/classModuleFactory.html create mode 100644 docs/module-doc/classServer-members.html create mode 100644 docs/module-doc/classServer.html create mode 100644 docs/module-doc/classVersion-members.html create mode 100644 docs/module-doc/classVersion.html create mode 100644 docs/module-doc/classchanrec-members.html create mode 100644 docs/module-doc/classchanrec.html create mode 100644 docs/module-doc/classes.html create mode 100644 docs/module-doc/classucrec-members.html create mode 100644 docs/module-doc/classucrec.html create mode 100644 docs/module-doc/classuserrec-members.html create mode 100644 docs/module-doc/classuserrec.html create mode 100644 docs/module-doc/doxygen.css create mode 100644 docs/module-doc/doxygen.png create mode 100644 docs/module-doc/files.html create mode 100644 docs/module-doc/ftv2blank.png create mode 100644 docs/module-doc/ftv2doc.png create mode 100644 docs/module-doc/ftv2folderclosed.png create mode 100644 docs/module-doc/ftv2folderopen.png create mode 100644 docs/module-doc/ftv2lastnode.png create mode 100644 docs/module-doc/ftv2link.png create mode 100644 docs/module-doc/ftv2mlastnode.png create mode 100644 docs/module-doc/ftv2mnode.png create mode 100644 docs/module-doc/ftv2node.png create mode 100644 docs/module-doc/ftv2plastnode.png create mode 100644 docs/module-doc/ftv2pnode.png create mode 100644 docs/module-doc/ftv2vertline.png create mode 100644 docs/module-doc/functions.html create mode 100644 docs/module-doc/globals.html create mode 100644 docs/module-doc/hierarchy.html create mode 100644 docs/module-doc/index.html create mode 100644 docs/module-doc/main.html create mode 100644 docs/module-doc/modules_8cpp-source.html create mode 100644 docs/module-doc/modules_8cpp.html create mode 100644 docs/module-doc/modules_8h-source.html create mode 100644 docs/module-doc/modules_8h.html create mode 100644 docs/module-doc/tree.html create mode 100644 docs/module-doc/tree.js create mode 100644 docs/module-doc/treeview.js create mode 100644 docs/module-doc/users_8cpp-source.html create mode 100644 docs/module-doc/users_8cpp.html create mode 100644 docs/module-doc/users_8h-source.html create mode 100644 docs/module-doc/users_8h.html (limited to 'docs') 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. + + + Copyright (C) 19yy + + 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. + + , 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/ChangeLog b/docs/ChangeLog new file mode 100644 index 000000000..085f93e01 --- /dev/null +++ b/docs/ChangeLog @@ -0,0 +1,49 @@ +1.0 alpha 5 + +* Changed channel array to a hash_map similar to the one used for users, faster and more efficient +* Changed ./configure, no longer asks for hard channel limit (depreciated) +* Added support for users to be disconnected once MAXUSERS is reached +* Changed code a lot, major overhauls for C++ and STL use for added stability and speed +* Changed entire user system to use the hash_map container type instead of an array +* Added /TIME command +* Added /INFO command +* Added restart and die passwords +* Partially implemented /RESTART command +* Fixed amusing bug which allowed partially connected clients to issue commands under the context of other users! *gulp!* (reported again by Craig) +* Fixed SegFault caused when doing a /who 0 or /who * whilst not in channels (Reported by Craig, Fixed by Craig :p) +* Added /who 0 o to display online Opers (Craigs First Scratch of Code :p) +* Fixed Typo in LUSERS (Reported by MrBOFH and CC) +* Fixed Joining Channels withough a # bug. (Reported by MrBOFH) + + +1.0 alpha 4 + +* Fixed parameters bug discovered by Allan +* Fixed /NICK repeating bug found by piggles. +* Added /REHASH command +* Added /LUSERS command +* Added ability to kill -HUP to rehash +* Fixed lock up after ping timeout +* Added system to /VERSION +* Added DNS lookups on connect (*FIXME* this needs to be asyncronous!) +* Fixed IRCop status shown on wrong users +* Fixed socket linger option via setsockopt (can restart faster as sockets arent in use after shutdown!) +* Added operators can now see real userhost in WHOIS +* Added oper-up failed msg to online opers +* Changed layout of /motd command start numeric +* Fixed empty channels are now purged upon user quit +* Changed: support for WHO * as well as WHO 0 (do the same thing) +* Fixed ability to kick users when you arent on the channel :) +* Fixed grammatical error when halfop tries to kick an op, "You must be at least a half-operator" + + +1.0 alpha 3 + +* Fixed problem where nicks containing control codes were allowed +* Added support so that ircd honours channel mode +n +* Added support so that ircd honours channel mode +t +* Fixed linefeeds in middle of line bug (reported by Craig) +* Fixed buffer overflow in channel names (reported by Allan) +* Fixed close() on nonblocking sockets problem +* Added /KILL command >:) +* Added /KICK command diff --git a/docs/SUPPORTED b/docs/SUPPORTED new file mode 100644 index 000000000..c172ccf71 --- /dev/null +++ b/docs/SUPPORTED @@ -0,0 +1,62 @@ +As this release is ALPHA, not everything is supported. Because of this, this +document will show you the commands and modes that are supported in this +version. All commands listed below are as listed in request for comments (RFC) +number 1459, the original IRC documentation. Anything extra to this RFC +(with the exception of commands for loading plugins etc) will be a loadable +module and not implemented in the core. + +Unimplemented user commands: + + WHOWAS + +Unimplimented server to server commands: + + SERVER CONNECT + LINKS SQUIT + +Implemented commands: + + NICK USER + OPER QUIT + JOIN MODE + TOPIC NAMES + LIST KICK + VERSION STATS + TIME ADMIN + INFO PRIVMSG + NOTICE WHO + WHOIS KILL + PING PONG + AWAY REHASH + RESTART SUMMON + USERS WALLOPS + USERHOST ISON + INVITE PASS + TRACE + +------------------------------------------------------------------------------ + +CHANNEL MODES: i,m,n,t,k,l,p,s,o,h**,v +USER MODES: i,w,s,o + +------------------------------------------------------------------------------ + +* WARNING: In this Alpha, RESTART will not work, it will perform the same as /DIE + until implemented. + +** CHANNEL MODE h will be optional, and eventually be enabled or disabled by a stub + module. + +The following features are supported: + + * Dynamic module support + * Object orientated architecture to save memory and increase speed + * Connection multiplexing, one process for all (no forking!) + +The following operating systems are supported: + + * Linux (i386, possibly others) + Tested on: RedHat, Slackware + * FreeBSD (i386, possibly others) + Tested on: 4.7-STABLE + diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example new file mode 100644 index 000000000..3402a2c60 --- /dev/null +++ b/docs/inspircd.conf.example @@ -0,0 +1,231 @@ +######################################################################## +# # +# --------------------------- # +# InspIRCd Configuration File # +# --------------------------- # +# # +##################################||#################################### + #||# +##################################||#################################### +# # +# This is an example of the config file for InspIRCd. # +# Change the options to suit your network # +# # +# Last updated on : 30/10/2002 # +# Written by : CC (cc@backchat.co.za) # +# # +######################################################################## + + + +#-#-#-#-#-#-#-#-#-#-#-#- SERVER DESCRIPTION -#-#-#-#-#-#-#-#-#-#-#-#- +# # +# Here is where you enter the information about your server. # +# # +# Syntax is as follows: # +# # +# # + + + + +#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-# +# # +# Describes the Server Administrator's real name, nick # +# and email address. # +# # +# Syntax is as follows: # +# # +# # + + + + +#-#-#-#-#-#-#-#-#-#-#-#- PORT CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- +# # +# Enter the port and address bindings here. # +# # +# bind address - specifies which the address which ports bind # +# port - opens an unused port # +# # +# Leaving address empty binds to all available interfaces # +# # +# Syntax is as follows: # +# # +# # + + + + + +#-#-#-#-#-#-#-#-#-#- DIE/RESTART CONFIGURATION -#-#-#-#-#-#-#-#-#-#- +# # +# You can configure the passwords here which you wish to use for # +# the die and restart commands. Only trusted ircops who will # +# need this ability should know the die and restart password. # +# # +# Syntax is as follows: # +# # +# # + + + + +#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#- +# # +# This is where you can configure which connections are allowed # +# and denied access onto your server. # +# The password is optional. # +# You may have as many of these as you require. # +# To allow/deny all connections use a * # +# # +# Syntax is as follows: # +# # +# # +# # +# # + + + + + + + +#-#-#-#-#-#-#-#-#-#-#-#- CLASS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#- +# # +# Classes are a group of commands which are grouped together # +# and given a unique name. They used to define which commands # +# are available to certain types of Operators. # +# # +# Syntax is as follow: # +# # +# # + + + + + + + + +#-#-#-#-#-#-#-#-#-#-#-#- OPERATOR COMPOSITION -#-#-#-#-#-#-#-#-#-#-# +# # +# This is where you specify which types of operators you have on # +# your server, as well as the commands they are allowed to use. # +# This works alongside with the classes specified above. # +# # +# type name - a name for the combined class types # +# classes - specified above, used for flexibility for the # +# server admin to decide on which operators get # +# what commands # +# host - hostmask operators will recieve on oper-up # +# # +# Syntax is as follows: # +# # +# # + + + + + + + +#-#-#-#-#-#-#-#-#-#-#- OPERATOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-# +# # +# Opers are defined here. This is a very important section. # +# Remember to only make operators out of truthworthy people. # +# # +# name - oper name, best to use lower-case # +# password - password to oper-up, # +# encryption not yet available # +# host - host of client allowed to oper-up, more hostmasks # +# seperated by spaces, wildcards accepted # +# type - specified above, defines the kind of operator # +# # +# Syntax is as follows: # +# # +# # + + + + +#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#- +# # +# These options let you define the path to your motd and rules # +# files. # +# # + + + + + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-# +# # +# Just remove this... Its here to make you read ALL of the config # +# file options ;) # + + + + + +#-#-#-#-#-#-#-#-#-#-#-#-#- SERVER OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-# +# # +# Settings to define which features are useable on your server. # +# # +# prefixquit - a prefix for a client's quit message # +# debug - provides an in-depth log file, # +# this should not need to be enabled # +# allowhalfop - allows the +h channel mode # +# allowprotect - allows the +a channel mode # +# allowfounder - allows the +q channel mode # +# # + + + + + +#-#-#-#-#-#-#-#-#-#-#-#-#- MODULE OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-# +# # +# These tags define which modules will be loaded on startup by your # +# server. Add modules without any paths. When you make your ircd # +# using the 'make' command, all compiled modules will be moved into # +# the folder you specified when you ran ./configure. The module tag # +# automatically looks for modules in this location. # + + + + + +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# # +# You should already know what to do here :) # + + + + +######################################################################### +# # +# -InspIRCd Development and Coding Team- # +# www.inspircd.org # +# # +######################################################################### diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html new file mode 100644 index 000000000..5e88bcf06 --- /dev/null +++ b/docs/module-doc/annotated.html @@ -0,0 +1,32 @@ + + +Annotated Index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd Compound List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + +
AdminHolds /ADMIN data This class contains the admin details of the local server
BanItemA subclass of HostItem designed to hold channel bans (+b)
chanrecHolds all relevent information for a channel
ConfigReaderAllows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file
ConnectClassHolds information relevent to <connect allow> and <connect deny> tags in the config file
ExemptItemA subclass of HostItem designed to hold channel exempts (+e)
FileReaderCaches a text file into memory and can be used to retrieve lines from it
HostItemHolds an entry for a ban list, exemption list, or invite list
InvitedHolds a channel name to which a user has been invited
InviteItemA subclass of HostItem designed to hold channel invites (+I)
ModuleBase class for all InspIRCd modules This class is the base class for InspIRCd modules
ModuleFactoryInstantiates classes inherited from Module This class creates a class inherited from type Module, using new
ServerAllows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers
ucrecHolds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class
userrecHolds all information about a user This class stores all information about a user connected to the irc server
VersionHolds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module
+
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/channels_8h-source.html b/docs/module-doc/channels_8h-source.html new file mode 100644 index 000000000..ba7592c81 --- /dev/null +++ b/docs/module-doc/channels_8h-source.html @@ -0,0 +1,146 @@ + + +channels.h Source File + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

channels.h

Go to the documentation of this file.
00001 /*
+00002 
+00003 $Log$
+00003 Revision 1.1  2003/01/23 19:45:57  brain
+00003 Initial revision
+00003 
+00003 Revision 1.6  2003/01/22 20:59:12  brain
+00003 Added FileReader class documentation
+00003 
+00004 Revision 1.7  2003/01/22 00:44:26  brain
+00005 Added documentation comments
+00006 
+00007 Revision 1.6  2003/01/21 21:11:17  brain
+00008 Added documentation
+00009 
+00010 Revision 1.5  2003/01/16 20:11:55  brain
+00011 fixed some ugly pointer bugs (thanks dblack and a|KK|y!)
+00012 
+00013 Revision 1.4  2003/01/15 22:47:44  brain
+00014 Changed user and channel structs to classes (finally)
+00015 
+00016    
+00017 */
+00018 
+00019 #include "inspircd_config.h"
+00020 #include <time.h>
+00021 #include <vector>
+00022 
+00023 #ifndef __CHANNELS_H__
+00024 #define __CHANNELS_H__
+00025 
+00029 class HostItem
+00030 {
+00031  public:
+00032         time_t set_time;
+00033         char set_by[NICKMAX];
+00034         char data[MAXBUF];
+00035 
+00036         HostItem() { /* stub */ }
+00037         virtual ~HostItem() { /* stub */ }
+00038 };
+00039 
+00040 // banlist is inherited from HostList mainly for readability
+00041 // reasons only
+00042 
+00045 class BanItem : public HostItem
+00046 {
+00047 };
+00048 
+00049 // same with this...
+00050 
+00053 class ExemptItem : public HostItem
+00054 {
+00055 };
+00056 
+00057 // and this...
+00058 
+00061 class InviteItem : public HostItem
+00062 {
+00063 };
+00064 
+00065 
+00068 typedef vector<BanItem>         BanList;
+00069 
+00072 typedef vector<ExemptItem>      ExemptList;
+00073 
+00076 typedef vector<InviteItem>      InviteList;
+00077 
+00082 class chanrec
+00083 {
+00084  public:
+00087         char name[CHANMAX]; /* channel name */
+00091         char custom_modes[MAXMODES];     /* modes handled by modules */
+00095         char topic[MAXBUF];
+00098         time_t created;
+00102         time_t topicset;
+00106         char setby[NICKMAX];
+00107 
+00111         long limit;
+00112         
+00116         char key[32];
+00117         
+00120         short int topiclock;
+00121         
+00124         short int noexternal;
+00125         
+00128         short int inviteonly;
+00129         
+00132         short int moderated;
+00133         
+00137         short int secret;
+00138         
+00142         short int c_private;
+00143         
+00146         BanList bans;
+00147 
+00150         chanrec()
+00151         {
+00152                 strcpy(name,"");
+00153                 strcpy(custom_modes,"");
+00154                 strcpy(topic,"");
+00155                 strcpy(setby,"");
+00156                 strcpy(key,"");
+00157                 created = topicset = limit = 0;
+00158                 topiclock = noexternal = inviteonly = moderated = secret = c_private = false;
+00159         }
+00160 
+00161         virtual ~chanrec() { /* stub */ }
+00162 };
+00163 
+00164 /* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o
+00165  * needs to come AFTER struct chanrec */
+00166 
+00167 #define UCMODE_OP      1
+00168 #define UCMODE_VOICE   2
+00169 #define UCMODE_HOP     4
+00170 #define UCMODE_PROTECT 8
+00171 #define UCMODE_FOUNDER 16
+00172  
+00178 class ucrec
+00179 {
+00180  public:
+00184         long uc_modes;
+00185         
+00189         chanrec *channel;
+00190 
+00191         ucrec() { /* stub */ }
+00192         virtual ~ucrec() { /* stub */ }
+00193 };
+00194 
+00195 #endif
+00196 
+

Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/channels_8h.html b/docs/module-doc/channels_8h.html new file mode 100644 index 000000000..1eadc5857 --- /dev/null +++ b/docs/module-doc/channels_8h.html @@ -0,0 +1,248 @@ + + +channels.h File Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

channels.h File Reference

#include "inspircd_config.h"
+#include <time.h>
+#include <vector>
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Compounds

class  BanItem
 A subclass of HostItem designed to hold channel bans (+b). More...

class  chanrec
 Holds all relevent information for a channel. More...

class  ExemptItem
 A subclass of HostItem designed to hold channel exempts (+e). More...

class  HostItem
 Holds an entry for a ban list, exemption list, or invite list. More...

class  InviteItem
 A subclass of HostItem designed to hold channel invites (+I). More...

class  ucrec
 Holds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class. More...


Defines

#define UCMODE_OP   1
#define UCMODE_VOICE   2
#define UCMODE_HOP   4
#define UCMODE_PROTECT   8
#define UCMODE_FOUNDER   16

Typedefs

typedef vector< BanItemBanList
 Holds a complete ban list.

typedef vector< ExemptItemExemptList
 Holds a complete exempt list.

typedef vector< InviteItemInviteList
 Holds a complete invite list.

+


Define Documentation

+

+ + + + +
+ + +
#define UCMODE_FOUNDER   16 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 171 of file channels.h.

+

+ + + + +
+ + +
#define UCMODE_HOP   4 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 169 of file channels.h.

+

+ + + + +
+ + +
#define UCMODE_OP   1 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 167 of file channels.h.

+

+ + + + +
+ + +
#define UCMODE_PROTECT   8 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 170 of file channels.h.

+

+ + + + +
+ + +
#define UCMODE_VOICE   2 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 168 of file channels.h.

+


Typedef Documentation

+

+ + + + +
+ + +
typedef vector<BanItem> BanList +
+
+ + + + + +
+   + + +

+Holds a complete ban list. +

+ +

+Definition at line 68 of file channels.h.

+

+ + + + +
+ + +
typedef vector<ExemptItem> ExemptList +
+
+ + + + + +
+   + + +

+Holds a complete exempt list. +

+ +

+Definition at line 72 of file channels.h.

+

+ + + + +
+ + +
typedef vector<InviteItem> InviteList +
+
+ + + + + +
+   + + +

+Holds a complete invite list. +

+ +

+Definition at line 76 of file channels.h.

+


Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classAdmin-members.html b/docs/module-doc/classAdmin-members.html new file mode 100644 index 000000000..39b406601 --- /dev/null +++ b/docs/module-doc/classAdmin-members.html @@ -0,0 +1,19 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Admin Member List

This is the complete list of members for Admin, including all inherited members. + + + + +
Admin(string name, string email, string nick)Admin
EmailAdmin
NameAdmin
NickAdmin

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classAdmin.html b/docs/module-doc/classAdmin.html new file mode 100644 index 000000000..663193311 --- /dev/null +++ b/docs/module-doc/classAdmin.html @@ -0,0 +1,160 @@ + + +Admin class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Admin Class Reference

Holds /ADMIN data This class contains the admin details of the local server. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + +

Public Methods

 Admin (string name, string email, string nick)

Public Attributes

const string Name
const string Email
const string Nick
+


Detailed Description

+Holds /ADMIN data This class contains the admin details of the local server. +

+It is constructed by class Server, and has three read-only values, Name, Email and Nick that contain the specified values for the server where the module is running. +

+ +

+Definition at line 67 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Admin::Admin string   name,
string   email,
string   nick
+
+ + + + + +
+   + + +

+ +

+Definition at line 33 of file modules.cpp. +

+

00033 : Name(name), Email(email), Nick(nick) { };
+
+


Member Data Documentation

+

+ + + + +
+ + +
const string Admin::Email +
+
+ + + + + +
+   + + +

+ +

+Definition at line 70 of file modules.h.

+

+ + + + +
+ + +
const string Admin::Name +
+
+ + + + + +
+   + + +

+ +

+Definition at line 70 of file modules.h.

+

+ + + + +
+ + +
const string Admin::Nick +
+
+ + + + + +
+   + + +

+ +

+Definition at line 70 of file modules.h.

+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classBanItem-members.html b/docs/module-doc/classBanItem-members.html new file mode 100644 index 000000000..11295cdc7 --- /dev/null +++ b/docs/module-doc/classBanItem-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

BanItem Member List

This is the complete list of members for BanItem, including all inherited members. + + + + + +
dataHostItem
HostItem()HostItem [inline]
set_byHostItem
set_timeHostItem
~HostItem()HostItem [inline, virtual]

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classBanItem.html b/docs/module-doc/classBanItem.html new file mode 100644 index 000000000..194010968 --- /dev/null +++ b/docs/module-doc/classBanItem.html @@ -0,0 +1,34 @@ + + +BanItem class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

BanItem Class Reference

A subclass of HostItem designed to hold channel bans (+b). +More... +

+#include <channels.h> +

+

Inheritance diagram for BanItem: +

+ +HostItem + +List of all members. + +
+

Detailed Description

+A subclass of HostItem designed to hold channel bans (+b). +

+ +

+Definition at line 45 of file channels.h.


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classBanItem.png b/docs/module-doc/classBanItem.png new file mode 100644 index 000000000..e0a7f35b2 Binary files /dev/null and b/docs/module-doc/classBanItem.png differ diff --git a/docs/module-doc/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html new file mode 100644 index 000000000..d27bbd43e --- /dev/null +++ b/docs/module-doc/classConfigReader-members.html @@ -0,0 +1,22 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ConfigReader Member List

This is the complete list of members for ConfigReader, including all inherited members. + + + + + + + +
ConfigReader()ConfigReader
ConfigReader(string filename)ConfigReader
Enumerate(string tag)ConfigReader
fnameConfigReader [protected]
ReadValue(string tag, string name, int index)ConfigReader
Verify()ConfigReader
~ConfigReader()ConfigReader

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classConfigReader.html b/docs/module-doc/classConfigReader.html new file mode 100644 index 000000000..f0221a1a1 --- /dev/null +++ b/docs/module-doc/classConfigReader.html @@ -0,0 +1,324 @@ + + +ConfigReader class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ConfigReader Class Reference

Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + + + + + + + + + + + +

Public Methods

 ConfigReader ()
 Default constructor.

 ConfigReader (string filename)
 Overloaded constructor.

 ~ConfigReader ()
 Default destructor.

string ReadValue (string tag, string name, int index)
 Retrieves a value from the config file.

int Enumerate (string tag)
 Counts the number of times a given tag appears in the config file.

bool Verify ()
 Returns true if a config file is valid.


Protected Attributes

string fname
 The filename of the configuration file, as set by the constructor.

+


Detailed Description

+Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file. +

+It may either be instantiated with one parameter or none. Constructing the class using one parameter allows you to specify a path to your own configuration file, otherwise, inspircd.conf is read. +

+ +

+Definition at line 226 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
ConfigReader::ConfigReader  
+
+ + + + + +
+   + + +

+Default constructor. +

+This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure. +

+Definition at line 161 of file modules.cpp. +

+References fname. +

+

00162 {
+00163         fname = CONFIG_FILE;
+00164 }
+
+

+ + + + +
+ + + + + + + + + + +
ConfigReader::ConfigReader string   filename
+
+ + + + + +
+   + + +

+Overloaded constructor. +

+This constructor initialises the ConfigReader class to read a user-specified config file +

+Definition at line 172 of file modules.cpp. +

+

00172 : fname(filename) { };
+
+

+ + + + +
+ + + + + + + + + +
ConfigReader::~ConfigReader  
+
+ + + + + +
+   + + +

+Default destructor. +

+This method destroys the ConfigReader class. +

+Definition at line 167 of file modules.cpp. +

+

00168 {
+00169 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
int ConfigReader::Enumerate string   tag
+
+ + + + + +
+   + + +

+Counts the number of times a given tag appears in the config file. +

+This method counts the number of times a tag appears in a config file, for use where there are several tags of the same kind, e.g. with opers and connect types. It can be used with the index value of ConfigReader::ReadValue to loop through all copies of a multiple instance tag. +

+Definition at line 183 of file modules.cpp. +

+References fname. +

+

00184 {
+00185         return EnumConf(fname.c_str(),tag.c_str());
+00186 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
string ConfigReader::ReadValue string   tag,
string   name,
int   index
+
+ + + + + +
+   + + +

+Retrieves a value from the config file. +

+This method retrieves a value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. +

+Definition at line 174 of file modules.cpp. +

+References fname. +

+

00175 {
+00176         char val[MAXBUF];
+00177         ReadConf(fname.c_str(),tag.c_str(),name.c_str(),index,val);
+00178         string s = val;
+00179         return s;
+00180 }
+
+

+ + + + +
+ + + + + + + + + +
bool ConfigReader::Verify  
+
+ + + + + +
+   + + +

+Returns true if a config file is valid. +

+This method is unimplemented and will always return true. +

+Definition at line 189 of file modules.cpp. +

+

00190 {
+00191         return true;
+00192 }
+
+


Member Data Documentation

+

+ + + + +
+ + +
string ConfigReader::fname [protected] +
+
+ + + + + +
+   + + +

+The filename of the configuration file, as set by the constructor. +

+ +

+Definition at line 231 of file modules.h. +

+Referenced by ConfigReader(), Enumerate(), and ReadValue().

+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html new file mode 100644 index 000000000..f8b7a913a --- /dev/null +++ b/docs/module-doc/classConnectClass-members.html @@ -0,0 +1,18 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ConnectClass Member List

This is the complete list of members for ConnectClass, including all inherited members. + + + +
hostConnectClass
passConnectClass
typeConnectClass

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classConnectClass.html b/docs/module-doc/classConnectClass.html new file mode 100644 index 000000000..7fd64062e --- /dev/null +++ b/docs/module-doc/classConnectClass.html @@ -0,0 +1,106 @@ + + +ConnectClass class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ConnectClass Class Reference

Holds information relevent to <connect allow> and <connect deny> tags in the config file. +More... +

+#include <users.h> +

+List of all members. + + + + + +

Public Attributes

int type
char host [MAXBUF]
char pass [MAXBUF]
+


Detailed Description

+Holds information relevent to <connect allow> and <connect deny> tags in the config file. +

+ +

+Definition at line 56 of file users.h.


Member Data Documentation

+

+ + + + +
+ + +
char ConnectClass::host[MAXBUF] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 60 of file users.h.

+

+ + + + +
+ + +
char ConnectClass::pass[MAXBUF] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 61 of file users.h.

+

+ + + + +
+ + +
int ConnectClass::type +
+
+ + + + + +
+   + + +

+ +

+Definition at line 59 of file users.h.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html new file mode 100644 index 000000000..37ac533e3 --- /dev/null +++ b/docs/module-doc/classExemptItem-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ExemptItem Member List

This is the complete list of members for ExemptItem, including all inherited members. + + + + + +
dataHostItem
HostItem()HostItem [inline]
set_byHostItem
set_timeHostItem
~HostItem()HostItem [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classExemptItem.html b/docs/module-doc/classExemptItem.html new file mode 100644 index 000000000..de865231d --- /dev/null +++ b/docs/module-doc/classExemptItem.html @@ -0,0 +1,34 @@ + + +ExemptItem class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ExemptItem Class Reference

A subclass of HostItem designed to hold channel exempts (+e). +More... +

+#include <channels.h> +

+

Inheritance diagram for ExemptItem: +

+ +HostItem + +List of all members. + +
+

Detailed Description

+A subclass of HostItem designed to hold channel exempts (+e). +

+ +

+Definition at line 53 of file channels.h.


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classExemptItem.png b/docs/module-doc/classExemptItem.png new file mode 100644 index 000000000..6aa67a9ef Binary files /dev/null and b/docs/module-doc/classExemptItem.png differ diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html new file mode 100644 index 000000000..e61cf78d8 --- /dev/null +++ b/docs/module-doc/classFileReader-members.html @@ -0,0 +1,22 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

FileReader Member List

This is the complete list of members for FileReader, including all inherited members. + + + + + + + +
fcFileReader [private]
FileReader()FileReader
FileReader(string filename)FileReader
FileSize()FileReader
GetLine(int x)FileReader
LoadFile(string filename)FileReader
~FileReader()FileReader

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classFileReader.html b/docs/module-doc/classFileReader.html new file mode 100644 index 000000000..ee84a6d74 --- /dev/null +++ b/docs/module-doc/classFileReader.html @@ -0,0 +1,312 @@ + + +FileReader class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

FileReader Class Reference

Caches a text file into memory and can be used to retrieve lines from it. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + + + + + + + + + + +

Public Methods

 FileReader ()
 Default constructor.

 FileReader (string filename)
 Secondary constructor.

 ~FileReader ()
 Default destructor.

void LoadFile (string filename)
 Used to load a file.

string GetLine (int x)
 Retrieve one line from the file.

int FileSize ()
 Returns the size of the file in lines.


Private Attributes

file_cache fc
+


Detailed Description

+Caches a text file into memory and can be used to retrieve lines from it. +

+This class contains methods for read-only manipulation of a text file in memory. Either use the constructor type with one parameter to load a file into memory at construction, or use the LoadFile method to load a file. +

+ +

+Definition at line 271 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
FileReader::FileReader  
+
+ + + + + +
+   + + +

+Default constructor. +

+This method does not load any file into memory, you must use the LoadFile method after constructing the class this way. +

+Definition at line 202 of file modules.cpp. +

+

00203 {
+00204 }
+
+

+ + + + +
+ + + + + + + + + + +
FileReader::FileReader string   filename
+
+ + + + + +
+   + + +

+Secondary constructor. +

+This method initialises the class with a file loaded into it ready for GetLine and and other methods to be called. If the file could not be loaded, FileReader::FileSize returns 0. +

+Definition at line 195 of file modules.cpp. +

+References fc, and file_cache. +

+

00196 {
+00197         file_cache c;
+00198         readfile(c,filename.c_str());
+00199         this->fc = c;
+00200 }
+
+

+ + + + +
+ + + + + + + + + +
FileReader::~FileReader  
+
+ + + + + +
+   + + +

+Default destructor. +

+This deletes the memory allocated to the file. +

+Definition at line 213 of file modules.cpp. +

+

00214 {
+00215 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
int FileReader::FileSize  
+
+ + + + + +
+   + + +

+Returns the size of the file in lines. +

+This method returns the number of lines in the read file. If it is 0, no lines have been read into memory, either because the file is empty or it does not exist, or cannot be opened due to permission problems. +

+Definition at line 224 of file modules.cpp. +

+References fc. +

+

00225 {
+00226         return fc.size();
+00227 }
+
+

+ + + + +
+ + + + + + + + + + +
string FileReader::GetLine int   x
+
+ + + + + +
+   + + +

+Retrieve one line from the file. +

+This method retrieves one line from the text file. If an empty non-NULL string is returned, the index was out of bounds, or the line had no data on it. +

+Definition at line 217 of file modules.cpp. +

+References fc. +

+

00218 {
+00219         if ((x<0) || (x>fc.size()))
+00220                 return "";
+00221         return fc[x];
+00222 }
+
+

+ + + + +
+ + + + + + + + + + +
void FileReader::LoadFile string   filename
+
+ + + + + +
+   + + +

+Used to load a file. +

+This method loads a file into the class ready for GetLine and and other methods to be called. If the file could not be loaded, FileReader::FileSize returns 0. +

+Definition at line 206 of file modules.cpp. +

+References fc, and file_cache. +

+

00207 {
+00208         file_cache c;
+00209         readfile(c,filename.c_str());
+00210         this->fc = c;
+00211 }
+
+


Member Data Documentation

+

+ + + + +
+ + +
file_cache FileReader::fc [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 273 of file modules.h. +

+Referenced by FileReader(), FileSize(), GetLine(), and LoadFile().

+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classHostItem-members.html b/docs/module-doc/classHostItem-members.html new file mode 100644 index 000000000..bf8242760 --- /dev/null +++ b/docs/module-doc/classHostItem-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

HostItem Member List

This is the complete list of members for HostItem, including all inherited members. + + + + + +
dataHostItem
HostItem()HostItem [inline]
set_byHostItem
set_timeHostItem
~HostItem()HostItem [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classHostItem.html b/docs/module-doc/classHostItem.html new file mode 100644 index 000000000..de0e216f6 --- /dev/null +++ b/docs/module-doc/classHostItem.html @@ -0,0 +1,185 @@ + + +HostItem class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

HostItem Class Reference

Holds an entry for a ban list, exemption list, or invite list. +More... +

+#include <channels.h> +

+

Inheritance diagram for HostItem: +

+ +BanItem +ExemptItem +InviteItem + +List of all members. + + + + + + + + +

Public Methods

 HostItem ()
virtual ~HostItem ()

Public Attributes

time_t set_time
char set_by [NICKMAX]
char data [MAXBUF]
+

Detailed Description

+Holds an entry for a ban list, exemption list, or invite list. +

+This class contains a single element in a channel list, such as a banlist. +

+ +

+Definition at line 29 of file channels.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
HostItem::HostItem   [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 36 of file channels.h. +

+

00036 { /* stub */ }
+
+

+ + + + +
+ + + + + + + + + +
virtual HostItem::~HostItem   [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Definition at line 37 of file channels.h. +

+

00037 { /* stub */ }
+
+


Member Data Documentation

+

+ + + + +
+ + +
char HostItem::data[MAXBUF] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 34 of file channels.h.

+

+ + + + +
+ + +
char HostItem::set_by[NICKMAX] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 33 of file channels.h.

+

+ + + + +
+ + +
time_t HostItem::set_time +
+
+ + + + + +
+   + + +

+ +

+Definition at line 32 of file channels.h.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classHostItem.png b/docs/module-doc/classHostItem.png new file mode 100644 index 000000000..99f88aacd Binary files /dev/null and b/docs/module-doc/classHostItem.png differ diff --git a/docs/module-doc/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html new file mode 100644 index 000000000..a65d27fc8 --- /dev/null +++ b/docs/module-doc/classInviteItem-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InviteItem Member List

This is the complete list of members for InviteItem, including all inherited members. + + + + + +
dataHostItem
HostItem()HostItem [inline]
set_byHostItem
set_timeHostItem
~HostItem()HostItem [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classInviteItem.html b/docs/module-doc/classInviteItem.html new file mode 100644 index 000000000..80336bca9 --- /dev/null +++ b/docs/module-doc/classInviteItem.html @@ -0,0 +1,34 @@ + + +InviteItem class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InviteItem Class Reference

A subclass of HostItem designed to hold channel invites (+I). +More... +

+#include <channels.h> +

+

Inheritance diagram for InviteItem: +

+ +HostItem + +List of all members. + +
+

Detailed Description

+A subclass of HostItem designed to hold channel invites (+I). +

+ +

+Definition at line 61 of file channels.h.


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classInviteItem.png b/docs/module-doc/classInviteItem.png new file mode 100644 index 000000000..8ebdd8403 Binary files /dev/null and b/docs/module-doc/classInviteItem.png differ diff --git a/docs/module-doc/classInvited-members.html b/docs/module-doc/classInvited-members.html new file mode 100644 index 000000000..bd4003b69 --- /dev/null +++ b/docs/module-doc/classInvited-members.html @@ -0,0 +1,16 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Invited Member List

This is the complete list of members for Invited, including all inherited members. + +
channelInvited

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classInvited.html b/docs/module-doc/classInvited.html new file mode 100644 index 000000000..c6d945068 --- /dev/null +++ b/docs/module-doc/classInvited.html @@ -0,0 +1,58 @@ + + +Invited class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Invited Class Reference

Holds a channel name to which a user has been invited. +More... +

+#include <users.h> +

+List of all members. + + + +

Public Attributes

char channel [CHANMAX]
+


Detailed Description

+Holds a channel name to which a user has been invited. +

+ +

+Definition at line 47 of file users.h.


Member Data Documentation

+

+ + + + +
+ + +
char Invited::channel[CHANMAX] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 50 of file users.h. +

+Referenced by userrec::InviteTo().

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classModule-members.html b/docs/module-doc/classModule-members.html new file mode 100644 index 000000000..3a1f87ed4 --- /dev/null +++ b/docs/module-doc/classModule-members.html @@ -0,0 +1,22 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Module Member List

This is the complete list of members for Module, including all inherited members. + + + + + + + +
GetVersion()Module [virtual]
Module()Module
OnUserConnect(userrec *user)Module [virtual]
OnUserJoin(userrec *user, chanrec *channel)Module [virtual]
OnUserPart(userrec *user, chanrec *channel)Module [virtual]
OnUserQuit(userrec *user)Module [virtual]
~Module()Module [virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classModule.html b/docs/module-doc/classModule.html new file mode 100644 index 000000000..519fbeb27 --- /dev/null +++ b/docs/module-doc/classModule.html @@ -0,0 +1,315 @@ + + +Module class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Module Class Reference

Base class for all InspIRCd modules This class is the base class for InspIRCd modules. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + + + + + + + + + + +

Public Methods

 Module ()
 Default constructor creates a module class.

virtual ~Module ()
 Default destructor destroys a module class.

virtual Version GetVersion ()
 Returns the version number of a Module.

virtual void OnUserConnect (userrec *user)
 Called when a user connects.

virtual void OnUserQuit (userrec *user)
 Called when a user quits.

virtual void OnUserJoin (userrec *user, chanrec *channel)
 Called when a user joins a channel.

virtual void OnUserPart (userrec *user, chanrec *channel)
 Called when a user parts a channel.

+


Detailed Description

+Base class for all InspIRCd modules This class is the base class for InspIRCd modules. +

+All modules must inherit from this class, its methods will be called when irc server events occur. class inherited from module must be instantiated by the ModuleFactory class (see relevent section) for the plugin to be initialised. +

+ +

+Definition at line 79 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
Module::Module  
+
+ + + + + +
+   + + +

+Default constructor creates a module class. +

+ +

+Definition at line 40 of file modules.cpp. +

+

00040 { }
+
+

+ + + + +
+ + + + + + + + + +
Module::~Module   [virtual]
+
+ + + + + +
+   + + +

+Default destructor destroys a module class. +

+ +

+Definition at line 41 of file modules.cpp. +

+

00041 { }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
Version Module::GetVersion   [virtual]
+
+ + + + + +
+   + + +

+Returns the version number of a Module. +

+The method should return a Version object with its version information assigned via Version::Version +

+Definition at line 46 of file modules.cpp. +

+

00046 { return Version(1,0,0,0); }
+
+

+ + + + +
+ + + + + + + + + + +
void Module::OnUserConnect userrec  user [virtual]
+
+ + + + + +
+   + + +

+Called when a user connects. +

+The details of the connecting user are available to you in the parameter userrec *user +

+Definition at line 42 of file modules.cpp. +

+

00042 { }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void Module::OnUserJoin userrec  user,
chanrec  channel
[virtual]
+
+ + + + + +
+   + + +

+Called when a user joins a channel. +

+The details of the joining user are available to you in the parameter userrec *user, and the details of the channel they have joined is available in the variable chanrec *channel +

+Definition at line 44 of file modules.cpp. +

+

00044 { }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void Module::OnUserPart userrec  user,
chanrec  channel
[virtual]
+
+ + + + + +
+   + + +

+Called when a user parts a channel. +

+The details of the leaving user are available to you in the parameter userrec *user, and the details of the channel they have left is available in the variable chanrec *channel +

+Definition at line 45 of file modules.cpp. +

+

00045 { }
+
+

+ + + + +
+ + + + + + + + + + +
void Module::OnUserQuit userrec  user [virtual]
+
+ + + + + +
+   + + +

+Called when a user quits. +

+The details of the exiting user are available to you in the parameter userrec *user +

+Definition at line 43 of file modules.cpp. +

+

00043 { }
+
+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html new file mode 100644 index 000000000..bd8a7618c --- /dev/null +++ b/docs/module-doc/classModuleFactory-members.html @@ -0,0 +1,18 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ModuleFactory Member List

This is the complete list of members for ModuleFactory, including all inherited members. + + + +
CreateModule()=0ModuleFactory [pure virtual]
ModuleFactory()ModuleFactory [inline]
~ModuleFactory()ModuleFactory [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classModuleFactory.html b/docs/module-doc/classModuleFactory.html new file mode 100644 index 000000000..12bf82cef --- /dev/null +++ b/docs/module-doc/classModuleFactory.html @@ -0,0 +1,134 @@ + + +ModuleFactory class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ModuleFactory Class Reference

Instantiates classes inherited from Module This class creates a class inherited from type Module, using new. +More... +

+#include <modules.h> +

+List of all members. + + + + + + +

Public Methods

 ModuleFactory ()
virtual ~ModuleFactory ()
virtual ModuleCreateModule ()=0
 Creates a new module.

+


Detailed Description

+Instantiates classes inherited from Module This class creates a class inherited from type Module, using new. +

+This is to allow for modules to create many different variants of Module, dependent on architecture, configuration, etc. In most cases, the simple class shown in the example module m_foobar.so will suffice for most modules. +

+ +

+Definition at line 316 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
ModuleFactory::ModuleFactory   [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 319 of file modules.h. +

+

00319 { }
+
+

+ + + + +
+ + + + + + + + + +
virtual ModuleFactory::~ModuleFactory   [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Definition at line 320 of file modules.h. +

+

00320 { }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
virtual Module* ModuleFactory::CreateModule   [pure virtual]
+
+ + + + + +
+   + + +

+Creates a new module. +

+Your inherited class of ModuleFactory must return a pointer to your Module class using this method.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classServer-members.html b/docs/module-doc/classServer-members.html new file mode 100644 index 000000000..63c331106 --- /dev/null +++ b/docs/module-doc/classServer-members.html @@ -0,0 +1,34 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Server Member List

This is the complete list of members for Server, including all inherited members. + + + + + + + + + + + + + + + + + + + +
ChanMode(userrec *User, chanrec *Chan)Server [virtual]
CommonChannels(userrec *u1, userrec *u2)Server [virtual]
Debug(string s)Server [virtual]
FindChannel(string channel)Server [virtual]
FindNick(string nick)Server [virtual]
GetAdmin()Server [virtual]
GetNetworkName()Server [virtual]
GetServerName()Server [virtual]
IsNick(string nick)Server [virtual]
Send(int Socket, string s)Server [virtual]
SendChannel(userrec *User, chanrec *Channel, string s, bool IncludeSender)Server [virtual]
SendCommon(userrec *User, string text, bool IncludeSender)Server [virtual]
SendFrom(int Socket, userrec *User, string s)Server [virtual]
SendOpers(string s)Server [virtual]
SendServ(int Socket, string s)Server [virtual]
SendTo(userrec *Source, userrec *Dest, string s)Server [virtual]
SendWallops(userrec *User, string text)Server [virtual]
Server()Server
~Server()Server [virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classServer.html b/docs/module-doc/classServer.html new file mode 100644 index 000000000..d7a809046 --- /dev/null +++ b/docs/module-doc/classServer.html @@ -0,0 +1,913 @@ + + +Server class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Server Class Reference

Allows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Methods

 Server ()
 Default constructor.

virtual ~Server ()
 Default destructor.

virtual void SendOpers (string s)
 Sends text to all opers.

virtual void Debug (string s)
 Sends a debug string.

virtual void Send (int Socket, string s)
 Sends a line of text down a TCP/IP socket.

virtual void SendServ (int Socket, string s)
 Sends text from the server to a socket.

virtual void SendFrom (int Socket, userrec *User, string s)
 Sends text from a user to a socket.

virtual void SendTo (userrec *Source, userrec *Dest, string s)
 Sends text from a user to another user.

virtual void SendChannel (userrec *User, chanrec *Channel, string s, bool IncludeSender)
 Sends text from a user to a channel (mulicast).

virtual bool CommonChannels (userrec *u1, userrec *u2)
 Returns true if two users share a common channel.

virtual void SendCommon (userrec *User, string text, bool IncludeSender)
 Sends text from a user to one or more channels (mulicast).

virtual void SendWallops (userrec *User, string text)
 Sends a WALLOPS message.

virtual bool IsNick (string nick)
 Returns true if a nick is valid.

virtual userrecFindNick (string nick)
 Attempts to look up a nick and return a pointer to it.

virtual chanrecFindChannel (string channel)
 Attempts to look up a channel and return a pointer to it.

virtual string ChanMode (userrec *User, chanrec *Chan)
 Attempts to look up a user's privilages on a channel.

virtual string GetServerName ()
 Returns the server name of the server where the module is loaded.

virtual string GetNetworkName ()
 Returns the network name, global to all linked servers.

virtual Admin GetAdmin ()
 Returns the information of the server as returned by the /ADMIN command.

+


Detailed Description

+Allows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers. +

+All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks. +

+ +

+Definition at line 121 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
Server::Server  
+
+ + + + + +
+   + + +

+Default constructor. +

+Creates a Server object. +

+Definition at line 52 of file modules.cpp. +

+

00053 {
+00054 }
+
+

+ + + + +
+ + + + + + + + + +
Server::~Server   [virtual]
+
+ + + + + +
+   + + +

+Default destructor. +

+Destroys a Server object. +

+Definition at line 56 of file modules.cpp. +

+

00057 {
+00058 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
string Server::ChanMode userrec  User,
chanrec  Chan
[virtual]
+
+ + + + + +
+   + + +

+Attempts to look up a user's privilages on a channel. +

+This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify. +

+Definition at line 139 of file modules.cpp. +

+

00140 {
+00141         string mode = cmode(User,Chan);
+00142         return mode;
+00143 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
bool Server::CommonChannels userrec  u1,
userrec  u2
[virtual]
+
+ + + + + +
+   + + +

+Returns true if two users share a common channel. +

+This method is used internally by the NICK and QUIT commands, and the Server::SendCommon method. +

+Definition at line 102 of file modules.cpp. +

+

00103 {
+00104         return (common_channels(u1,u2) != 0);
+00105 }
+
+

+ + + + +
+ + + + + + + + + + +
void Server::Debug string   s [virtual]
+
+ + + + + +
+   + + +

+Sends a debug string. +

+This method writes a line of text to the debug log. If debugging is disabled in the configuration, this command has no effect. +

+Definition at line 65 of file modules.cpp. +

+

00066 {
+00067         debug("%s",s.c_str());
+00068 }
+
+

+ + + + +
+ + + + + + + + + + +
chanrec * Server::FindChannel string   channel [virtual]
+
+ + + + + +
+   + + +

+Attempts to look up a channel and return a pointer to it. +

+This function will return NULL if the channel does not exist. +

+Definition at line 134 of file modules.cpp. +

+

00135 {
+00136         return FindChan(channel.c_str());
+00137 }
+
+

+ + + + +
+ + + + + + + + + + +
userrec * Server::FindNick string   nick [virtual]
+
+ + + + + +
+   + + +

+Attempts to look up a nick and return a pointer to it. +

+This function will return NULL if the nick does not exist. +

+Definition at line 129 of file modules.cpp. +

+

00130 {
+00131         return Find(nick);
+00132 }
+
+

+ + + + +
+ + + + + + + + + +
Admin Server::GetAdmin   [virtual]
+
+ + + + + +
+   + + +

+Returns the information of the server as returned by the /ADMIN command. +

+See the Admin class for further information of the return value. The members Admin::Nick, Admin::Email and Admin::Name contain the information for the server where the module is loaded. +

+Definition at line 155 of file modules.cpp. +

+

00156 {
+00157         return Admin(getadminname(),getadminemail(),getadminnick());
+00158 }
+
+

+ + + + +
+ + + + + + + + + +
string Server::GetNetworkName   [virtual]
+
+ + + + + +
+   + + +

+Returns the network name, global to all linked servers. +

+ +

+Definition at line 150 of file modules.cpp. +

+

00151 {
+00152         return getnetworkname();
+00153 }
+
+

+ + + + +
+ + + + + + + + + +
string Server::GetServerName   [virtual]
+
+ + + + + +
+   + + +

+Returns the server name of the server where the module is loaded. +

+ +

+Definition at line 145 of file modules.cpp. +

+

00146 {
+00147         return getservername();
+00148 }
+
+

+ + + + +
+ + + + + + + + + + +
bool Server::IsNick string   nick [virtual]
+
+ + + + + +
+   + + +

+Returns true if a nick is valid. +

+Nicks for unregistered connections will return false. +

+Definition at line 124 of file modules.cpp. +

+

00125 {
+00126         return (isnick(nick.c_str()) != 0);
+00127 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void Server::Send int   Socket,
string   s
[virtual]
+
+ + + + + +
+   + + +

+Sends a line of text down a TCP/IP socket. +

+This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required. +

+Definition at line 70 of file modules.cpp. +

+

00071 {
+00072         Write(Socket,"%s",s.c_str());
+00073 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void Server::SendChannel userrec  User,
chanrec  Channel,
string   s,
bool   IncludeSender
[virtual]
+
+ + + + + +
+   + + +

+Sends text from a user to a channel (mulicast). +

+This method writes a line of text to a channel, with the given user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in MODE (see RFC 1459). +

+Definition at line 90 of file modules.cpp. +

+

00091 {
+00092         if (IncludeSender)
+00093         {
+00094                 WriteChannel(Channel,User,"%s",s.c_str());
+00095         }
+00096         else
+00097         {
+00098                 ChanExceptSender(Channel,User,"%s",s.c_str());
+00099         }
+00100 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void Server::SendCommon userrec  User,
string   text,
bool   IncludeSender
[virtual]
+
+ + + + + +
+   + + +

+Sends text from a user to one or more channels (mulicast). +

+This method writes a line of text to all users which share a common channel with a given user, with the user's nick/ident/host combination prepended, as used in PRIVMSG etc commands (see RFC 1459). If the IncludeSender flag is set, then the text is also sent back to the user from which it originated, as seen in NICK (see RFC 1459). Otherwise, it is only sent to the other recipients, as seen in QUIT. +

+Definition at line 107 of file modules.cpp. +

+

00108 {
+00109         if (IncludeSender)
+00110         {
+00111                 WriteCommon(User,"%s",text.c_str());
+00112         }
+00113         else
+00114         {
+00115                 WriteCommonExcept(User,"%s",text.c_str());
+00116         }
+00117 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void Server::SendFrom int   Socket,
userrec  User,
string   s
[virtual]
+
+ + + + + +
+   + + +

+Sends text from a user to a socket. +

+This method writes a line of text to an established socket, with the given user's nick/ident /host combination prepended, as used in PRIVSG etc commands (see RFC 1459) +

+Definition at line 80 of file modules.cpp. +

+

00081 {
+00082         WriteFrom(Socket,User,"%s",s.c_str());
+00083 }
+
+

+ + + + +
+ + + + + + + + + + +
void Server::SendOpers string   s [virtual]
+
+ + + + + +
+   + + +

+Sends text to all opers. +

+This method sends a server notice to all opers with the usermode +s. +

+Definition at line 60 of file modules.cpp. +

+

00061 {
+00062         WriteOpers("%s",s.c_str());
+00063 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void Server::SendServ int   Socket,
string   s
[virtual]
+
+ + + + + +
+   + + +

+Sends text from the server to a socket. +

+This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459) +

+Definition at line 75 of file modules.cpp. +

+

00076 {
+00077         WriteServ(Socket,"%s",s.c_str());
+00078 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void Server::SendTo userrec  Source,
userrec  Dest,
string   s
[virtual]
+
+ + + + + +
+   + + +

+Sends text from a user to another user. +

+This method writes a line of text to a user, with a user's nick/ident /host combination prepended, as used in PRIVMSG etc commands (see RFC 1459) +

+Definition at line 85 of file modules.cpp. +

+

00086 {
+00087         WriteTo(Source,Dest,"%s",s.c_str());
+00088 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void Server::SendWallops userrec  User,
string   text
[virtual]
+
+ + + + + +
+   + + +

+Sends a WALLOPS message. +

+This method writes a WALLOPS message to all users with the +w flag, originating from the specified user. +

+Definition at line 119 of file modules.cpp. +

+

00120 {
+00121         WriteWallOps(User,"%s",text.c_str());
+00122 }
+
+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classVersion-members.html b/docs/module-doc/classVersion-members.html new file mode 100644 index 000000000..438f2645f --- /dev/null +++ b/docs/module-doc/classVersion-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Version Member List

This is the complete list of members for Version, including all inherited members. + + + + + +
BuildVersion
MajorVersion
MinorVersion
RevisionVersion
Version(int major, int minor, int revision, int build)Version

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classVersion.html b/docs/module-doc/classVersion.html new file mode 100644 index 000000000..3c3e53d8c --- /dev/null +++ b/docs/module-doc/classVersion.html @@ -0,0 +1,191 @@ + + +Version class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

Version Class Reference

Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module. +More... +

+#include <modules.h> +

+List of all members. + + + + + + + + +

Public Methods

 Version (int major, int minor, int revision, int build)

Public Attributes

const int Major
const int Minor
const int Revision
const int Build
+


Detailed Description

+Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module. +

+A class of type Version is returned by the GetVersion method of the Module class. +

+ +

+Definition at line 54 of file modules.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Version::Version int   major,
int   minor,
int   revision,
int   build
+
+ + + + + +
+   + + +

+ +

+Definition at line 29 of file modules.cpp. +

+

00029 : Major(major), Minor(minor), Revision(revision), Build(build) { };
+
+


Member Data Documentation

+

+ + + + +
+ + +
const int Version::Build +
+
+ + + + + +
+   + + +

+ +

+Definition at line 57 of file modules.h.

+

+ + + + +
+ + +
const int Version::Major +
+
+ + + + + +
+   + + +

+ +

+Definition at line 57 of file modules.h.

+

+ + + + +
+ + +
const int Version::Minor +
+
+ + + + + +
+   + + +

+ +

+Definition at line 57 of file modules.h.

+

+ + + + +
+ + +
const int Version::Revision +
+
+ + + + + +
+   + + +

+ +

+Definition at line 57 of file modules.h.

+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classchanrec-members.html b/docs/module-doc/classchanrec-members.html new file mode 100644 index 000000000..7d34a88a0 --- /dev/null +++ b/docs/module-doc/classchanrec-members.html @@ -0,0 +1,32 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

chanrec Member List

This is the complete list of members for chanrec, including all inherited members. + + + + + + + + + + + + + + + + + +
banschanrec
c_privatechanrec
chanrec()chanrec [inline]
createdchanrec
custom_modeschanrec
inviteonlychanrec
keychanrec
limitchanrec
moderatedchanrec
namechanrec
noexternalchanrec
secretchanrec
setbychanrec
topicchanrec
topiclockchanrec
topicsetchanrec
~chanrec()chanrec [inline, virtual]

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classchanrec.html b/docs/module-doc/classchanrec.html new file mode 100644 index 000000000..bf8299560 --- /dev/null +++ b/docs/module-doc/classchanrec.html @@ -0,0 +1,534 @@ + + +chanrec class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

chanrec Class Reference

Holds all relevent information for a channel. +More... +

+#include <channels.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Methods

 chanrec ()
 Creates a channel record and initialises it with default values.

virtual ~chanrec ()

Public Attributes

char name [CHANMAX]
 The channels name.

char custom_modes [MAXMODES]
 Custom modes for the channel.

char topic [MAXBUF]
 Channel topic.

time_t created
 Creation time.

time_t topicset
 Time topic was set.

char setby [NICKMAX]
 The last user to set the topic.

long limit
 Contains the channel user limit.

char key [32]
 Contains the channel key.

short int topiclock
 Nonzero if the mode +t is set.

short int noexternal
 Nonzero if the mode +n is set.

short int inviteonly
 Nonzero if the mode +i is set.

short int moderated
 Nonzero if the mode +m is set.

short int secret
 Nonzero if the mode +s is set.

short int c_private
 Nonzero if the mode +p is set.

BanList bans
 The list of all bans set on the channel.

+


Detailed Description

+Holds all relevent information for a channel. +

+This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type. +

+ +

+Definition at line 82 of file channels.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
chanrec::chanrec   [inline]
+
+ + + + + +
+   + + +

+Creates a channel record and initialises it with default values. +

+ +

+Definition at line 150 of file channels.h. +

+

00151         {
+00152                 strcpy(name,"");
+00153                 strcpy(custom_modes,"");
+00154                 strcpy(topic,"");
+00155                 strcpy(setby,"");
+00156                 strcpy(key,"");
+00157                 created = topicset = limit = 0;
+00158                 topiclock = noexternal = inviteonly = moderated = secret = c_private = false;
+00159         }
+
+

+ + + + +
+ + + + + + + + + +
virtual chanrec::~chanrec   [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Definition at line 161 of file channels.h. +

+

00161 { /* stub */ }
+
+


Member Data Documentation

+

+ + + + +
+ + +
BanList chanrec::bans +
+
+ + + + + +
+   + + +

+The list of all bans set on the channel. +

+ +

+Definition at line 146 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::c_private +
+
+ + + + + +
+   + + +

+Nonzero if the mode +p is set. +

+This value cannot be set at the same time as chanrec::secret +

+Definition at line 142 of file channels.h.

+

+ + + + +
+ + +
time_t chanrec::created +
+
+ + + + + +
+   + + +

+Creation time. +

+ +

+Definition at line 98 of file channels.h.

+

+ + + + +
+ + +
char chanrec::custom_modes[MAXMODES] +
+
+ + + + + +
+   + + +

+Custom modes for the channel. +

+Plugins may use this field in any way they see fit. +

+Definition at line 91 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::inviteonly +
+
+ + + + + +
+   + + +

+Nonzero if the mode +i is set. +

+ +

+Definition at line 128 of file channels.h.

+

+ + + + +
+ + +
char chanrec::key[32] +
+
+ + + + + +
+   + + +

+Contains the channel key. +

+If this value is an empty string, there is no channel key in place. +

+Definition at line 116 of file channels.h.

+

+ + + + +
+ + +
long chanrec::limit +
+
+ + + + + +
+   + + +

+Contains the channel user limit. +

+If this value is zero, there is no limit in place. +

+Definition at line 111 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::moderated +
+
+ + + + + +
+   + + +

+Nonzero if the mode +m is set. +

+ +

+Definition at line 132 of file channels.h.

+

+ + + + +
+ + +
char chanrec::name[CHANMAX] +
+
+ + + + + +
+   + + +

+The channels name. +

+ +

+Definition at line 87 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::noexternal +
+
+ + + + + +
+   + + +

+Nonzero if the mode +n is set. +

+ +

+Definition at line 124 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::secret +
+
+ + + + + +
+   + + +

+Nonzero if the mode +s is set. +

+This value cannot be set at the same time as chanrec::c_private +

+Definition at line 137 of file channels.h.

+

+ + + + +
+ + +
char chanrec::setby[NICKMAX] +
+
+ + + + + +
+   + + +

+The last user to set the topic. +

+If this member is an empty string, no topic was ever set. +

+Definition at line 106 of file channels.h.

+

+ + + + +
+ + +
char chanrec::topic[MAXBUF] +
+
+ + + + + +
+   + + +

+Channel topic. +

+If this is an empty string, no channel topic is set. +

+Definition at line 95 of file channels.h.

+

+ + + + +
+ + +
short int chanrec::topiclock +
+
+ + + + + +
+   + + +

+Nonzero if the mode +t is set. +

+ +

+Definition at line 120 of file channels.h.

+

+ + + + +
+ + +
time_t chanrec::topicset +
+
+ + + + + +
+   + + +

+Time topic was set. +

+If no topic was ever set, this will be equal to chanrec::created +

+Definition at line 102 of file channels.h.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classes.html b/docs/module-doc/classes.html new file mode 100644 index 000000000..d305624f7 --- /dev/null +++ b/docs/module-doc/classes.html @@ -0,0 +1,26 @@ + + +Alphabetical index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd Compound Index

+
  A  
+
ConfigReader   
  H  
+
  M  
+
  U  
+
Admin   ConnectClass   HostItem   Module   ucrec   
  B  
+
  E  
+
  I  
+
ModuleFactory   userrec   
BanItem   ExemptItem   Invited   
  S  
+
  V  
+
  C  
+
  F  
+
InviteItem   Server   Version   
chanrec   FileReader   

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classucrec-members.html b/docs/module-doc/classucrec-members.html new file mode 100644 index 000000000..43e5c1cca --- /dev/null +++ b/docs/module-doc/classucrec-members.html @@ -0,0 +1,19 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ucrec Member List

This is the complete list of members for ucrec, including all inherited members. + + + + +
channelucrec
uc_modesucrec
ucrec()ucrec [inline]
~ucrec()ucrec [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classucrec.html b/docs/module-doc/classucrec.html new file mode 100644 index 000000000..c95b8a3b6 --- /dev/null +++ b/docs/module-doc/classucrec.html @@ -0,0 +1,161 @@ + + +ucrec class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

ucrec Class Reference

Holds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class. +More... +

+#include <channels.h> +

+List of all members. + + + + + + + + + +

Public Methods

 ucrec ()
virtual ~ucrec ()

Public Attributes

long uc_modes
 Contains a bitmask of the UCMODE_OP ...

chanrecchannel
 Points to the channel record where the given modes apply.

+


Detailed Description

+Holds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class. +

+The uc_modes member holds a bitmask of which privilages the user has on the channel, such as op, voice, etc. +

+ +

+Definition at line 178 of file channels.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
ucrec::ucrec   [inline]
+
+ + + + + +
+   + + +

+ +

+Definition at line 191 of file channels.h. +

+

00191 { /* stub */ }
+
+

+ + + + +
+ + + + + + + + + +
virtual ucrec::~ucrec   [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Definition at line 192 of file channels.h. +

+

00192 { /* stub */ }
+
+


Member Data Documentation

+

+ + + + +
+ + +
chanrec* ucrec::channel +
+
+ + + + + +
+   + + +

+Points to the channel record where the given modes apply. +

+If the record is not in use, this value will be NULL. +

+Definition at line 189 of file channels.h. +

+Referenced by userrec::userrec().

+

+ + + + +
+ + +
long ucrec::uc_modes +
+
+ + + + + +
+   + + +

+Contains a bitmask of the UCMODE_OP ... +

+UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel. +

+Definition at line 184 of file channels.h.

+


The documentation for this class was generated from the following file: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classuserrec-members.html b/docs/module-doc/classuserrec-members.html new file mode 100644 index 000000000..78781c9e8 --- /dev/null +++ b/docs/module-doc/classuserrec-members.html @@ -0,0 +1,47 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

userrec Member List

This is the complete list of members for userrec, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
awaymsguserrec
bytes_inuserrec
bytes_outuserrec
chansuserrec
cmds_inuserrec
cmds_outuserrec
dhostuserrec
fduserrec
fullnameuserrec
GetFullHost()userrec [virtual]
GetFullRealHost()userrec [virtual]
haspasseduserrec
hostuserrec
identuserrec
idle_lastmsguserrec
inbufuserrec
invitesuserrec [private]
InviteTo(char *channel)userrec [virtual]
ipuserrec
IsInvited(char *channel)userrec [virtual]
lastpinguserrec
modesuserrec
nickuserrec
npinguserrec
portuserrec
registereduserrec
RemoveInvite(char *channel)userrec [virtual]
resultuserrec
serveruserrec
signonuserrec
userrec()userrec
~userrec()userrec [inline, virtual]

Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/classuserrec.html b/docs/module-doc/classuserrec.html new file mode 100644 index 000000000..d4be7912e --- /dev/null +++ b/docs/module-doc/classuserrec.html @@ -0,0 +1,1085 @@ + + +userrec class Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

userrec Class Reference

Holds all information about a user This class stores all information about a user connected to the irc server. +More... +

+#include <users.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Methods

 userrec ()
virtual ~userrec ()
virtual char * GetFullHost ()
 Returns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form.

virtual char * GetFullRealHost ()
 Returns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form.

virtual bool IsInvited (char *channel)
 Returns true if a user is invited to a channel.

virtual void InviteTo (char *channel)
 Adds a channel to a users invite list (invites them to a channel).

virtual void RemoveInvite (char *channel)
 Removes a channel from a users invite list.


Public Attributes

char nick [NICKMAX]
 The users nickname.

unsigned long ip
 The users ip address in network order.

char ident [64]
 The users ident reply.

char host [256]
 The users hostname, or ip address in string form.

char dhost [256]
 The host displayed to non-opers (used for cloaking etc).

char fullname [128]
 The users full name.

int fd
 The users file descriptor.

char modes [32]
 The user's mode string.

char inbuf [MAXBUF]
 The users input buffer.

time_t lastping
 The last time the user was pinged by the core.

time_t signon
 The users signon time.

time_t idle_lastmsg
 The time the user last sent a message.

time_t nping
 True if the user replied to their last ping.

int registered
 Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command.

ucrec chans [MAXCHANS]
 A list of the channels the user is currently on.

char server [256]
 The server the user is connected to.

char awaymsg [512]
 The user's away message.

int port
 The port that the user connected to.

long bytes_in
 Stores the number of incoming bytes from the connection.

long bytes_out
 Stores the number of outgoing bytes to the connection.

long cmds_in
 Stores the number of incoming commands from the connection.

long cmds_out
 Stores the number of outgoing commands to the connection.

char result [256]
 Stores the result of the last GetFullHost or GetRealHost call.

bool haspassed
 True if a correct password has been given using PASS command.


Private Attributes

InvitedList invites
 A list of channels the user has a pending invite to.

+


Detailed Description

+Holds all information about a user This class stores all information about a user connected to the irc server. +

+Everything about a connection is stored here primarily, from the user's socket ID (file descriptor) through to the user's nickname and hostname. Use the Find method of the server class to locate a specific user by nickname. +

+ +

+Definition at line 80 of file users.h.


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
userrec::userrec  
+
+ + + + + +
+   + + +

+ +

+Definition at line 23 of file users.cpp. +

+References bytes_in, bytes_out, ucrec::channel, chans, cmds_in, cmds_out, fd, haspassed, idle_lastmsg, invites, ip, lastping, nping, port, registered, and signon. +

+

00024 {
+00025         // the PROPER way to do it, AVOID bzero at *ALL* costs
+00026         strcpy(nick,"");
+00027         ip = 0;
+00028         strcpy(ident,"");
+00029         strcpy(host,"");
+00030         strcpy(dhost,"");
+00031         strcpy(fullname,"");
+00032         strcpy(modes,"");
+00033         strcpy(inbuf,"");
+00034         strcpy(server,"");
+00035         strcpy(awaymsg,"");
+00036         fd = lastping = signon = idle_lastmsg = nping = registered = 0;
+00037         port = bytes_in = bytes_out = cmds_in = cmds_out = 0;
+00038         haspassed = false;
+00039         strcpy(result,"");
+00040         for (int i = 0; i < MAXCHANS; i++)
+00041         {
+00042                 chans[i].channel = NULL;
+00043         }
+00044         invites.clear();
+00045 }
+
+

+ + + + +
+ + + + + + + + + +
virtual userrec::~userrec   [inline, virtual]
+
+ + + + + +
+   + + +

+ +

+Definition at line 213 of file users.h. +

+

00213 {  }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
char * userrec::GetFullHost   [virtual]
+
+ + + + + +
+   + + +

+Returns the full displayed host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. +

+ +

+Definition at line 48 of file users.cpp. +

+References result. +

+

00049 {
+00050         sprintf(result,"%s!%s@%s",nick,ident,dhost);
+00051         return result;
+00052 }
+
+

+ + + + +
+ + + + + + + + + +
char * userrec::GetFullRealHost   [virtual]
+
+ + + + + +
+   + + +

+Returns the full real host of the user This member function returns the hostname of the user as seen by other users on the server, in nick!identhost form. +

+If any form of hostname cloaking is in operation, e.g. through a module, then this method will ignore it and return the true hostname. +

+Definition at line 55 of file users.cpp. +

+References result. +

+

00056 {
+00057         sprintf(result,"%s!%s@%s",nick,ident,host);
+00058         return result;
+00059 }
+
+

+ + + + +
+ + + + + + + + + + +
void userrec::InviteTo char *   channel [virtual]
+
+ + + + + +
+   + + +

+Adds a channel to a users invite list (invites them to a channel). +

+ +

+Definition at line 72 of file users.cpp. +

+References Invited::channel, and invites. +

+

00073 {
+00074         Invited i;
+00075         strcpy(i.channel,channel);
+00076         invites.push_back(i);
+00077 }
+
+

+ + + + +
+ + + + + + + + + + +
bool userrec::IsInvited char *   channel [virtual]
+
+ + + + + +
+   + + +

+Returns true if a user is invited to a channel. +

+ +

+Definition at line 61 of file users.cpp. +

+References invites. +

+

00062 {
+00063         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+00064         {
+00065                 if (!strcasecmp(i->channel,channel))
+00066                 {
+00067                         return true;
+00068                 }
+00069         }
+00070 }
+
+

+ + + + +
+ + + + + + + + + + +
void userrec::RemoveInvite char *   channel [virtual]
+
+ + + + + +
+   + + +

+Removes a channel from a users invite list. +

+This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation. +

+Definition at line 79 of file users.cpp. +

+References invites. +

+

00080 {
+00081         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+00082         {
+00083                 if (!strcasecmp(i->channel,channel))
+00084                 {
+00085                         invites.erase(i);
+00086                         return;
+00087                 }
+00088         }
+00089 }
+
+


Member Data Documentation

+

+ + + + +
+ + +
char userrec::awaymsg[512] +
+
+ + + + + +
+   + + +

+The user's away message. +

+If this string is empty, the user is not marked as away. +

+Definition at line 174 of file users.h.

+

+ + + + +
+ + +
long userrec::bytes_in +
+
+ + + + + +
+   + + +

+Stores the number of incoming bytes from the connection. +

+Used by /STATS +

+Definition at line 183 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
long userrec::bytes_out +
+
+ + + + + +
+   + + +

+Stores the number of outgoing bytes to the connection. +

+Used by /STATS +

+Definition at line 188 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
ucrec userrec::chans[MAXCHANS] +
+
+ + + + + +
+   + + +

+A list of the channels the user is currently on. +

+If any of these values are NULL, the record is not in use and may be associated with a channel by the JOIN command. see RFC 1459. +

+Definition at line 165 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
long userrec::cmds_in +
+
+ + + + + +
+   + + +

+Stores the number of incoming commands from the connection. +

+Used by /STATS +

+Definition at line 193 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
long userrec::cmds_out +
+
+ + + + + +
+   + + +

+Stores the number of outgoing commands to the connection. +

+Used by /STATS +

+Definition at line 198 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::dhost[256] +
+
+ + + + + +
+   + + +

+The host displayed to non-opers (used for cloaking etc). +

+This usually matches the value of userrec::host. +

+Definition at line 110 of file users.h.

+

+ + + + +
+ + +
int userrec::fd +
+
+ + + + + +
+   + + +

+The users file descriptor. +

+If this is zero, the socket has been closed and the core has not yet realised and removed the record from memory. +

+Definition at line 120 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::fullname[128] +
+
+ + + + + +
+   + + +

+The users full name. +

+ +

+Definition at line 114 of file users.h.

+

+ + + + +
+ + +
bool userrec::haspassed +
+
+ + + + + +
+   + + +

+True if a correct password has been given using PASS command. +

+If the user is a member of a connection class that does not require a password, the value stored here is of no use. +

+Definition at line 209 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::host[256] +
+
+ + + + + +
+   + + +

+The users hostname, or ip address in string form. +

+ +

+Definition at line 105 of file users.h.

+

+ + + + +
+ + +
char userrec::ident[64] +
+
+ + + + + +
+   + + +

+The users ident reply. +

+ +

+Definition at line 101 of file users.h.

+

+ + + + +
+ + +
time_t userrec::idle_lastmsg +
+
+ + + + + +
+   + + +

+The time the user last sent a message. +

+See also userrec::lastping and userrec::signon +

+Definition at line 147 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::inbuf[MAXBUF] +
+
+ + + + + +
+   + + +

+The users input buffer. +

+Used by the C recv() function. +

+Definition at line 131 of file users.h.

+

+ + + + +
+ + +
InvitedList userrec::invites [private] +
+
+ + + + + +
+   + + +

+A list of channels the user has a pending invite to. +

+ +

+Definition at line 86 of file users.h. +

+Referenced by InviteTo(), IsInvited(), RemoveInvite(), and userrec().

+

+ + + + +
+ + +
unsigned long userrec::ip +
+
+ + + + + +
+   + + +

+The users ip address in network order. +

+ +

+Definition at line 97 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
time_t userrec::lastping +
+
+ + + + + +
+   + + +

+The last time the user was pinged by the core. +

+When this value is more than 120 seconds difference from 'time(NULL)', a ping is sent to the client. If the user has an outstanding PING request the next time this event occurs after 4 total minutes, they are disconnected. +

+Definition at line 138 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::modes[32] +
+
+ + + + + +
+   + + +

+The user's mode string. +

+This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit. +

+Definition at line 126 of file users.h.

+

+ + + + +
+ + +
char userrec::nick[NICKMAX] +
+
+ + + + + +
+   + + +

+The users nickname. +

+An invalid nickname indicates an unregistered connection prior to the NICK command. +

+Definition at line 93 of file users.h.

+

+ + + + +
+ + +
time_t userrec::nping +
+
+ + + + + +
+   + + +

+True if the user replied to their last ping. +

+If this is true, the user can be sent another ping at the specified time, otherwise they will be discnnected. See also userrec::lastping +

+Definition at line 153 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
int userrec::port +
+
+ + + + + +
+   + + +

+The port that the user connected to. +

+ +

+Definition at line 178 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
int userrec::registered +
+
+ + + + + +
+   + + +

+Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command. +

+If both bits are set then the connection is awaiting MOTD. Sending of MOTD sets bit 3, and makes the value of userrec::registered == 7, showing a fully established client session. +

+Definition at line 159 of file users.h. +

+Referenced by userrec().

+

+ + + + +
+ + +
char userrec::result[256] +
+
+ + + + + +
+   + + +

+Stores the result of the last GetFullHost or GetRealHost call. +

+You may use this to increase the speed of use of this class. +

+Definition at line 203 of file users.h. +

+Referenced by GetFullHost(), and GetFullRealHost().

+

+ + + + +
+ + +
char userrec::server[256] +
+
+ + + + + +
+   + + +

+The server the user is connected to. +

+ +

+Definition at line 169 of file users.h.

+

+ + + + +
+ + +
time_t userrec::signon +
+
+ + + + + +
+   + + +

+The users signon time. +

+ +

+Definition at line 142 of file users.h. +

+Referenced by userrec().

+


The documentation for this class was generated from the following files: +
Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/doxygen.css b/docs/module-doc/doxygen.css new file mode 100644 index 000000000..8cb8b2e5b --- /dev/null +++ b/docs/module-doc/doxygen.css @@ -0,0 +1,49 @@ +H1 { text-align: center; } +CAPTION { font-weight: bold } +A.qindex {} +A.qindexRef {} +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code { text-decoration: none; font-weight: normal; color: #4444ee } +A.codeRef { font-weight: normal; color: #4444ee } +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +DIV.fragment { width: 100%; border: none; background-color: #eeeeee } +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } +TD.md { background-color: #f2f2ff; font-weight: bold; } +TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } +TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } +DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } +BODY { background: white; color: black } +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +span.keyword { color: #008000 } +span.keywordtype { color: #604020 } +span.keywordflow { color: #e08000 } +span.comment { color: #800000 } +span.preprocessor { color: #806020 } +span.stringliteral { color: #002080 } +span.charliteral { color: #008080 } diff --git a/docs/module-doc/doxygen.png b/docs/module-doc/doxygen.png new file mode 100644 index 000000000..5bb475e23 Binary files /dev/null and b/docs/module-doc/doxygen.png differ diff --git a/docs/module-doc/files.html b/docs/module-doc/files.html new file mode 100644 index 000000000..ba6de9b92 --- /dev/null +++ b/docs/module-doc/files.html @@ -0,0 +1,21 @@ + + +File Index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd File List

Here is a list of all files with brief descriptions: + + + + + +
channels.h [code]
modules.cpp [code]
modules.h [code]
users.cpp [code]
users.h [code]
+
Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/ftv2blank.png b/docs/module-doc/ftv2blank.png new file mode 100644 index 000000000..3f626d64f Binary files /dev/null and b/docs/module-doc/ftv2blank.png differ diff --git a/docs/module-doc/ftv2doc.png b/docs/module-doc/ftv2doc.png new file mode 100644 index 000000000..2d16532a6 Binary files /dev/null and b/docs/module-doc/ftv2doc.png differ diff --git a/docs/module-doc/ftv2folderclosed.png b/docs/module-doc/ftv2folderclosed.png new file mode 100644 index 000000000..fc9426819 Binary files /dev/null and b/docs/module-doc/ftv2folderclosed.png differ diff --git a/docs/module-doc/ftv2folderopen.png b/docs/module-doc/ftv2folderopen.png new file mode 100644 index 000000000..30e9a2c37 Binary files /dev/null and b/docs/module-doc/ftv2folderopen.png differ diff --git a/docs/module-doc/ftv2lastnode.png b/docs/module-doc/ftv2lastnode.png new file mode 100644 index 000000000..f1fc64e48 Binary files /dev/null and b/docs/module-doc/ftv2lastnode.png differ diff --git a/docs/module-doc/ftv2link.png b/docs/module-doc/ftv2link.png new file mode 100644 index 000000000..f2549516c Binary files /dev/null and b/docs/module-doc/ftv2link.png differ diff --git a/docs/module-doc/ftv2mlastnode.png b/docs/module-doc/ftv2mlastnode.png new file mode 100644 index 000000000..0de7e451f Binary files /dev/null and b/docs/module-doc/ftv2mlastnode.png differ diff --git a/docs/module-doc/ftv2mnode.png b/docs/module-doc/ftv2mnode.png new file mode 100644 index 000000000..72f185b0b Binary files /dev/null and b/docs/module-doc/ftv2mnode.png differ diff --git a/docs/module-doc/ftv2node.png b/docs/module-doc/ftv2node.png new file mode 100644 index 000000000..c23e9f943 Binary files /dev/null and b/docs/module-doc/ftv2node.png differ diff --git a/docs/module-doc/ftv2plastnode.png b/docs/module-doc/ftv2plastnode.png new file mode 100644 index 000000000..1bc6181ab Binary files /dev/null and b/docs/module-doc/ftv2plastnode.png differ diff --git a/docs/module-doc/ftv2pnode.png b/docs/module-doc/ftv2pnode.png new file mode 100644 index 000000000..2f6070ca2 Binary files /dev/null and b/docs/module-doc/ftv2pnode.png differ diff --git a/docs/module-doc/ftv2vertline.png b/docs/module-doc/ftv2vertline.png new file mode 100644 index 000000000..f5a03787b Binary files /dev/null and b/docs/module-doc/ftv2vertline.png differ diff --git a/docs/module-doc/functions.html b/docs/module-doc/functions.html new file mode 100644 index 000000000..668617b78 --- /dev/null +++ b/docs/module-doc/functions.html @@ -0,0 +1,191 @@ + + +Compound Member Index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd Compound Members

+a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | r | s | t | u | v | ~
+ +

+Here is a list of all class members with links to the classes they belong to:

- a - +

+

- b - +

+

- c - +

+

- d - +

+

- e - +

+

- f - +

+

- g - +

+

- h - +

+

- i - +

+

- k - +

+

- l - +

+

- m - +

+

- n - +

+

- o - +

+

- p - +

+

- r - +

+

- s - +

+

- t - +

+

- u - +

+

- v - +

+

- ~ - +

+
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/globals.html b/docs/module-doc/globals.html new file mode 100644 index 000000000..6a9878c0d --- /dev/null +++ b/docs/module-doc/globals.html @@ -0,0 +1,57 @@ + + +File Member Index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd File Members

+b | c | e | f | i | s | u
+ +

+Here is a list of all file members with links to the files they belong to:

- b - +

+

- c - +

+

- e - +

+

- f - +

+

- i - +

+

- s - +

+

- u - +

+
Generated on Wed Jan 22 20:56:49 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/hierarchy.html b/docs/module-doc/hierarchy.html new file mode 100644 index 000000000..35e1d316c --- /dev/null +++ b/docs/module-doc/hierarchy.html @@ -0,0 +1,34 @@ + + +Hierarchical Index + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/index.html b/docs/module-doc/index.html new file mode 100644 index 000000000..752d21b2d --- /dev/null +++ b/docs/module-doc/index.html @@ -0,0 +1,7 @@ + +InspIRCd + + + + + diff --git a/docs/module-doc/main.html b/docs/module-doc/main.html new file mode 100644 index 000000000..2080402f5 --- /dev/null +++ b/docs/module-doc/main.html @@ -0,0 +1,16 @@ + + +Main Page + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

InspIRCd Documentation

+

+


Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html new file mode 100644 index 000000000..b651919d5 --- /dev/null +++ b/docs/module-doc/modules_8cpp-source.html @@ -0,0 +1,249 @@ + + +modules.cpp Source File + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

modules.cpp

Go to the documentation of this file.
00001 /*
+00002 
+00003 $Log$
+00003 Revision 1.1  2003/01/23 19:45:58  brain
+00003 Initial revision
+00003 
+00003 Revision 1.9  2003/01/22 20:59:12  brain
+00003 Added FileReader class documentation
+00003 
+00004 Revision 1.7  2003/01/22 20:49:16  brain
+00005 Added FileReader file-caching class
+00006 Changed m_randquote to use FileReader class
+00007 
+00008 Revision 1.6  2003/01/21 20:31:24  brain
+00009 Modified to add documentation
+00010 Added ConfigReader class for modules
+00011 
+00012 Revision 1.5  2003/01/13 22:30:50  brain
+00013 Added Admin class (holds /admin info for modules)
+00014 Added methods to Server class
+00015 
+00016 
+00017 */
+00018 
+00019 
+00020 
+00021 #include <typeinfo>
+00022 #include <iostream.h>
+00023 #include "globals.h"
+00024 #include "modules.h"
+00025 #include "inspircd_io.h"
+00026 
+00027 // version is a simple class for holding a modules version number
+00028 
+00029 Version::Version(int major, int minor, int revision, int build) : Major(major), Minor(minor), Revision(revision), Build(build) { };
+00030 
+00031 // admin is a simple class for holding a server's administrative info
+00032 
+00033 Admin::Admin(string name, string email, string nick) : Name(name), Email(email), Nick(nick) { };
+00034 
+00035 //
+00036 // Announce to the world that the Module base
+00037 // class has been created or destroyed
+00038 //
+00039 
+00040 Module::Module() { }
+00041 Module::~Module() { }
+00042 void Module::OnUserConnect(userrec* user) { }
+00043 void Module::OnUserQuit(userrec* user) { }
+00044 void Module::OnUserJoin(userrec* user, chanrec* channel) { }
+00045 void Module::OnUserPart(userrec* user, chanrec* channel) { }
+00046 Version Module::GetVersion() { return Version(1,0,0,0); }
+00047 
+00048 // server is a wrapper class that provides methods to all of the C-style
+00049 // exports in the core
+00050 //
+00051 
+00052 Server::Server()
+00053 {
+00054 }
+00055 
+00056 Server::~Server()
+00057 {
+00058 }
+00059 
+00060 void Server::SendOpers(string s)
+00061 {
+00062         WriteOpers("%s",s.c_str());
+00063 }
+00064 
+00065 void Server::Debug(string s)
+00066 {
+00067         debug("%s",s.c_str());
+00068 }
+00069 
+00070 void Server::Send(int Socket, string s)
+00071 {
+00072         Write(Socket,"%s",s.c_str());
+00073 }
+00074 
+00075 void Server::SendServ(int Socket, string s)
+00076 {
+00077         WriteServ(Socket,"%s",s.c_str());
+00078 }
+00079 
+00080 void Server::SendFrom(int Socket, userrec* User, string s)
+00081 {
+00082         WriteFrom(Socket,User,"%s",s.c_str());
+00083 }
+00084 
+00085 void Server::SendTo(userrec* Source, userrec* Dest, string s)
+00086 {
+00087         WriteTo(Source,Dest,"%s",s.c_str());
+00088 }
+00089 
+00090 void Server::SendChannel(userrec* User, chanrec* Channel, string s,bool IncludeSender)
+00091 {
+00092         if (IncludeSender)
+00093         {
+00094                 WriteChannel(Channel,User,"%s",s.c_str());
+00095         }
+00096         else
+00097         {
+00098                 ChanExceptSender(Channel,User,"%s",s.c_str());
+00099         }
+00100 }
+00101 
+00102 bool Server::CommonChannels(userrec* u1, userrec* u2)
+00103 {
+00104         return (common_channels(u1,u2) != 0);
+00105 }
+00106 
+00107 void Server::SendCommon(userrec* User, string text,bool IncludeSender)
+00108 {
+00109         if (IncludeSender)
+00110         {
+00111                 WriteCommon(User,"%s",text.c_str());
+00112         }
+00113         else
+00114         {
+00115                 WriteCommonExcept(User,"%s",text.c_str());
+00116         }
+00117 }
+00118 
+00119 void Server::SendWallops(userrec* User, string text)
+00120 {
+00121         WriteWallOps(User,"%s",text.c_str());
+00122 }
+00123 
+00124 bool Server::IsNick(string nick)
+00125 {
+00126         return (isnick(nick.c_str()) != 0);
+00127 }
+00128 
+00129 userrec* Server::FindNick(string nick)
+00130 {
+00131         return Find(nick);
+00132 }
+00133 
+00134 chanrec* Server::FindChannel(string channel)
+00135 {
+00136         return FindChan(channel.c_str());
+00137 }
+00138 
+00139 string Server::ChanMode(userrec* User, chanrec* Chan)
+00140 {
+00141         string mode = cmode(User,Chan);
+00142         return mode;
+00143 }
+00144 
+00145 string Server::GetServerName()
+00146 {
+00147         return getservername();
+00148 }
+00149 
+00150 string Server::GetNetworkName()
+00151 {
+00152         return getnetworkname();
+00153 }
+00154 
+00155 Admin Server::GetAdmin()
+00156 {
+00157         return Admin(getadminname(),getadminemail(),getadminnick());
+00158 }
+00159 
+00160 
+00161 ConfigReader::ConfigReader()
+00162 {
+00163         fname = CONFIG_FILE;
+00164 }
+00165 
+00166 
+00167 ConfigReader::~ConfigReader()
+00168 {
+00169 }
+00170 
+00171 
+00172 ConfigReader::ConfigReader(string filename) : fname(filename) { };
+00173 
+00174 string ConfigReader::ReadValue(string tag, string name, int index)
+00175 {
+00176         char val[MAXBUF];
+00177         ReadConf(fname.c_str(),tag.c_str(),name.c_str(),index,val);
+00178         string s = val;
+00179         return s;
+00180 }
+00181 
+00182 
+00183 int ConfigReader::Enumerate(string tag)
+00184 {
+00185         return EnumConf(fname.c_str(),tag.c_str());
+00186 }
+00187 
+00188 
+00189 bool ConfigReader::Verify()
+00190 {
+00191         return true;
+00192 }
+00193 
+00194 
+00195 FileReader::FileReader(string filename)
+00196 {
+00197         file_cache c;
+00198         readfile(c,filename.c_str());
+00199         this->fc = c;
+00200 }
+00201 
+00202 FileReader::FileReader()
+00203 {
+00204 }
+00205 
+00206 void FileReader::LoadFile(string filename)
+00207 {
+00208         file_cache c;
+00209         readfile(c,filename.c_str());
+00210         this->fc = c;
+00211 }
+00212 
+00213 FileReader::~FileReader()
+00214 {
+00215 }
+00216 
+00217 string FileReader::GetLine(int x)
+00218 {
+00219         if ((x<0) || (x>fc.size()))
+00220                 return "";
+00221         return fc[x];
+00222 }
+00223 
+00224 int FileReader::FileSize()
+00225 {
+00226         return fc.size();
+00227 }
+00228 
+00229 
+

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/modules_8cpp.html b/docs/module-doc/modules_8cpp.html new file mode 100644 index 000000000..cfa3fa3a3 --- /dev/null +++ b/docs/module-doc/modules_8cpp.html @@ -0,0 +1,24 @@ + + +modules.cpp File Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

modules.cpp File Reference

#include <typeinfo>
+#include <iostream.h>
+#include "globals.h"
+#include "modules.h"
+#include "inspircd_io.h"
+ +

+Go to the source code of this file. + +
+


Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html new file mode 100644 index 000000000..9f80e2ea5 --- /dev/null +++ b/docs/module-doc/modules_8h-source.html @@ -0,0 +1,159 @@ + + +modules.h Source File + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

modules.h

Go to the documentation of this file.
00001 /*
+00002 
+00003 $Log$
+00003 Revision 1.1  2003/01/23 19:45:58  brain
+00003 Initial revision
+00003 
+00003 Revision 1.9  2003/01/22 20:59:12  brain
+00003 Added FileReader class documentation
+00003 
+00004 Revision 1.11  2003/01/22 20:49:16  brain
+00005 Added FileReader file-caching class
+00006 Changed m_randquote to use FileReader class
+00007 
+00008 Revision 1.10  2003/01/22 00:57:27  brain
+00009 Changes to documentation
+00010 
+00011 Revision 1.9  2003/01/22 00:44:26  brain
+00012 Added documentation comments
+00013 
+00014 Revision 1.8  2003/01/21 20:31:24  brain
+00015 Modified to add documentation
+00016 Added ConfigReader class for modules
+00017 
+00018 Revision 1.7  2003/01/15 22:47:44  brain
+00019 Changed user and channel structs to classes (finally)
+00020 
+00021 Revision 1.6  2003/01/13 22:30:50  brain
+00022 Added Admin class (holds /admin info for modules)
+00023 Added methods to Server class
+00024 
+00025 
+00026 */
+00027 
+00028 
+00029 #ifndef __PLUGIN_H
+00030 #define __PLUGIN_H
+00031 
+00032 #include "dynamic.h"
+00033 #include <string>
+00034 #include <deque>
+00035 
+00038 typedef deque<string> file_cache;
+00039 
+00040 
+00041 // This #define allows us to call a method in all
+00042 // loaded modules in a readable simple way, e.g.:
+00043 // 'FOREACH_MOD OnConnect(user);'
+00044 
+00045 #define FOREACH_MOD for (int i = 0; i <= MODCOUNT; i++) modules[i]->
+00046 
+00047 // class Version holds the version information of a Module, returned
+00048 // by Module::GetVersion (thanks RD)
+00049 
+00054 class Version
+00055 {
+00056  public:
+00057          const int Major, Minor, Revision, Build;
+00058          Version(int major, int minor, int revision, int build);
+00059 };
+00060 
+00061 
+00067 class Admin
+00068 {
+00069  public:
+00070          const string Name, Email, Nick;
+00071          Admin(string name,string email,string nick);
+00072 };
+00073 
+00079 class Module
+00080 {
+00081  public:
+00085         Module();
+00089         virtual ~Module();
+00094         virtual Version GetVersion();
+00098         virtual void OnUserConnect(userrec* user);
+00102         virtual void OnUserQuit(userrec* user);
+00107         virtual void OnUserJoin(userrec* user, chanrec* channel);
+00112         virtual void OnUserPart(userrec* user, chanrec* channel);
+00113 };
+00114 
+00115 
+00121 class Server
+00122 {
+00123  public:
+00127         Server();
+00131         virtual ~Server();
+00132 
+00136         virtual void SendOpers(string s);
+00141         virtual void Debug(string s);
+00146         virtual void Send(int Socket, string s);
+00151         virtual void SendServ(int Socket, string s);
+00156         virtual void SendFrom(int Socket, userrec* User, string s);
+00161         virtual void SendTo(userrec* Source, userrec* Dest, string s);
+00168         virtual void SendChannel(userrec* User, chanrec* Channel, string s,bool IncludeSender);
+00173         virtual bool CommonChannels(userrec* u1, userrec* u2);
+00181         virtual void SendCommon(userrec* User, string text,bool IncludeSender);
+00186         virtual void SendWallops(userrec* User, string text);
+00187 
+00191         virtual bool IsNick(string nick);
+00195         virtual userrec* FindNick(string nick);
+00199         virtual chanrec* FindChannel(string channel);
+00204         virtual string ChanMode(userrec* User, chanrec* Chan);
+00207         virtual string GetServerName();
+00210         virtual string GetNetworkName();
+00216         virtual Admin GetAdmin();
+00217          
+00218 };
+00219 
+00226 class ConfigReader
+00227 {
+00228   protected:
+00231         string fname;
+00232   public:
+00237         ConfigReader();                 // default constructor reads ircd.conf
+00241         ConfigReader(string filename);  // read a module-specific config
+00245         ~ConfigReader();
+00250         string ReadValue(string tag, string name, int index);
+00257         int Enumerate(string tag);
+00261         bool Verify();
+00262 };
+00263 
+00264 
+00265 
+00271 class FileReader
+00272 {
+00273  file_cache fc;
+00274  public:
+00279          FileReader();
+00285          FileReader(string filename);
+00289          ~FileReader();
+00295          void LoadFile(string filename);
+00300          string GetLine(int x);
+00306          int FileSize();
+00307 };
+00308 
+00309 
+00316 class ModuleFactory
+00317 {
+00318  public:
+00319         ModuleFactory() { }
+00320         virtual ~ModuleFactory() { }
+00325         virtual Module * CreateModule() = 0;
+00326 };
+00327 
+00328 #endif
+

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/modules_8h.html b/docs/module-doc/modules_8h.html new file mode 100644 index 000000000..6c9237a27 --- /dev/null +++ b/docs/module-doc/modules_8h.html @@ -0,0 +1,96 @@ + + +modules.h File Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

modules.h File Reference

#include "dynamic.h"
+#include <string>
+#include <deque>
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + + +

Compounds

class  Admin
 Holds /ADMIN data This class contains the admin details of the local server. More...

class  ConfigReader
 Allows reading of values from configuration files This class allows a module to read from either the main configuration file (inspircd.conf) or from a module-specified configuration file. More...

class  FileReader
 Caches a text file into memory and can be used to retrieve lines from it. More...

class  Module
 Base class for all InspIRCd modules This class is the base class for InspIRCd modules. More...

class  ModuleFactory
 Instantiates classes inherited from Module This class creates a class inherited from type Module, using new. More...

class  Server
 Allows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers. More...

class  Version
 Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module. More...


Defines

#define FOREACH_MOD   for (int i = 0; i <= MODCOUNT; i++) modules[i]->

Typedefs

typedef deque< string > file_cache
 Low level definition of a FileReader classes file cache area.

+


Define Documentation

+

+ + + + +
+ + +
#define FOREACH_MOD   for (int i = 0; i <= MODCOUNT; i++) modules[i]-> +
+
+ + + + + +
+   + + +

+ +

+Definition at line 45 of file modules.h.

+


Typedef Documentation

+

+ + + + +
+ + +
typedef deque<string> file_cache +
+
+ + + + + +
+   + + +

+Low level definition of a FileReader classes file cache area. +

+ +

+Definition at line 38 of file modules.h. +

+Referenced by FileReader::FileReader(), and FileReader::LoadFile().

+


Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/tree.html b/docs/module-doc/tree.html new file mode 100644 index 000000000..ca32b1db7 --- /dev/null +++ b/docs/module-doc/tree.html @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/docs/module-doc/tree.js b/docs/module-doc/tree.js new file mode 100644 index 000000000..ff40787d6 --- /dev/null +++ b/docs/module-doc/tree.js @@ -0,0 +1,44 @@ +foldersTree = gFld("InspIRCd", "", "") + insDoc(foldersTree, gLnk("Main Page", "", "main.html")) +aux1 = insFld(foldersTree, gFld("File List", "", "files.html")) + insDoc(aux1, gLnk("channels.h", "", "channels_8h.html")) + insDoc(aux1, gLnk("modules.cpp", "", "modules_8cpp.html")) + insDoc(aux1, gLnk("modules.h", "", "modules_8h.html")) + insDoc(aux1, gLnk("users.cpp", "", "users_8cpp.html")) + insDoc(aux1, gLnk("users.h", "", "users_8h.html")) +aux1 = insFld(foldersTree, gFld("Compound List", "", "annotated.html")) + insDoc(aux1, gLnk("Admin", "", "classAdmin.html")) + insDoc(aux1, gLnk("BanItem", "", "classBanItem.html")) + insDoc(aux1, gLnk("chanrec", "", "classchanrec.html")) + insDoc(aux1, gLnk("ConfigReader", "", "classConfigReader.html")) + insDoc(aux1, gLnk("ConnectClass", "", "classConnectClass.html")) + insDoc(aux1, gLnk("ExemptItem", "", "classExemptItem.html")) + insDoc(aux1, gLnk("FileReader", "", "classFileReader.html")) + insDoc(aux1, gLnk("HostItem", "", "classHostItem.html")) + insDoc(aux1, gLnk("Invited", "", "classInvited.html")) + insDoc(aux1, gLnk("InviteItem", "", "classInviteItem.html")) + insDoc(aux1, gLnk("Module", "", "classModule.html")) + insDoc(aux1, gLnk("ModuleFactory", "", "classModuleFactory.html")) + insDoc(aux1, gLnk("Server", "", "classServer.html")) + insDoc(aux1, gLnk("ucrec", "", "classucrec.html")) + insDoc(aux1, gLnk("userrec", "", "classuserrec.html")) + insDoc(aux1, gLnk("Version", "", "classVersion.html")) +aux1 = insFld(foldersTree, gFld("Class Hierarchy", "", "hierarchy.html")) + insDoc(aux1, gLnk("Admin", "", "classAdmin.html")) + insDoc(aux1, gLnk("chanrec", "", "classchanrec.html")) + insDoc(aux1, gLnk("ConfigReader", "", "classConfigReader.html")) + insDoc(aux1, gLnk("ConnectClass", "", "classConnectClass.html")) + insDoc(aux1, gLnk("FileReader", "", "classFileReader.html")) + aux2 = insFld(aux1, gFld("HostItem", "", "classHostItem.html")) + insDoc(aux2, gLnk("BanItem", "", "classBanItem.html")) + insDoc(aux2, gLnk("ExemptItem", "", "classExemptItem.html")) + insDoc(aux2, gLnk("InviteItem", "", "classInviteItem.html")) + insDoc(aux1, gLnk("Invited", "", "classInvited.html")) + insDoc(aux1, gLnk("Module", "", "classModule.html")) + insDoc(aux1, gLnk("ModuleFactory", "", "classModuleFactory.html")) + insDoc(aux1, gLnk("Server", "", "classServer.html")) + insDoc(aux1, gLnk("ucrec", "", "classucrec.html")) + insDoc(aux1, gLnk("userrec", "", "classuserrec.html")) + insDoc(aux1, gLnk("Version", "", "classVersion.html")) + insDoc(foldersTree, gLnk("Compound Members", "", "functions.html")) + insDoc(foldersTree, gLnk("File Members", "", "globals.html")) diff --git a/docs/module-doc/treeview.js b/docs/module-doc/treeview.js new file mode 100644 index 000000000..6b5ef5110 --- /dev/null +++ b/docs/module-doc/treeview.js @@ -0,0 +1,500 @@ +//**************************************************************** +// You are free to copy the "Folder-Tree" script as long as you +// keep this copyright notice: +// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ +// Author: Marcelino Alves Martins (martins@hks.com) December '97. +//**************************************************************** + +//Log of changes: +// 17 Feb 98 - Fix initialization flashing problem with Netscape +// +// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; +// make the ftien4 a js file +// +// DvH: Dec 2000 - Made some minor changes to support external +// references + +// Definition of class Folder +// ***************************************************************** + +function Folder(folderDescription, tagName, hreference) //constructor +{ + //constant data + this.desc = folderDescription + this.tagName = tagName + this.hreference = hreference + this.id = -1 + this.navObj = 0 + this.iconImg = 0 + this.nodeImg = 0 + this.isLastNode = 0 + + //dynamic data + this.isOpen = true + this.iconSrc = "ftv2folderopen.png" + this.children = new Array + this.nChildren = 0 + + //methods + this.initialize = initializeFolder + this.setState = setStateFolder + this.addChild = addChild + this.createIndex = createEntryIndex + this.hide = hideFolder + this.display = display + this.renderOb = drawFolder + this.totalHeight = totalHeight + this.subEntries = folderSubEntries + this.outputLink = outputFolderLink +} + +function setStateFolder(isOpen) +{ + var subEntries + var totalHeight + var fIt = 0 + var i=0 + + if (isOpen == this.isOpen) + return + + if (browserVersion == 2) + { + totalHeight = 0 + for (i=0; i < this.nChildren; i++) + totalHeight = totalHeight + this.children[i].navObj.clip.height + subEntries = this.subEntries() + if (this.isOpen) + totalHeight = 0 - totalHeight + for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) + indexOfEntries[fIt].navObj.moveBy(0, totalHeight) + } + this.isOpen = isOpen + propagateChangesInState(this) +} + +function propagateChangesInState(folder) +{ + var i=0 + + if (folder.isOpen) + { + if (folder.nodeImg) + if (folder.isLastNode) + folder.nodeImg.src = "ftv2mlastnode.png" + else + folder.nodeImg.src = "ftv2mnode.png" + folder.iconImg.src = "ftv2folderopen.png" + for (i=0; i 0) + auxEv = "" + else + auxEv = "" + + if (level>0) + if (lastNode) //the last 'brother' in the children array + { + this.renderOb(leftSide + auxEv + "") + leftSide = leftSide + "" + this.isLastNode = 1 + } + else + { + this.renderOb(leftSide + auxEv + "") + leftSide = leftSide + "" + this.isLastNode = 0 + } + else + this.renderOb("") + + if (nc > 0) + { + level = level + 1 + for (i=0 ; i < this.nChildren; i++) + { + if (i == this.nChildren-1) + this.children[i].initialize(level, 1, leftSide) + else + this.children[i].initialize(level, 0, leftSide) + } + } +} + +function drawFolder(leftSide) +{ + if (browserVersion == 2) { + if (!doc.yPos) + doc.yPos=8 + doc.write("") + } + if (browserVersion == 3) + { + doc.write("
") + } + + doc.write("\n") + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + this.outputLink() + doc.write("") + doc.write("") + if (USETEXTLINKS) + { + this.outputLink() + doc.write(this.desc + "") + } + else + doc.write(this.desc) + if (this.tagName!="") + { + doc.write(" [external]") + } + doc.write("
\n") + + if (browserVersion == 2) { + doc.write("") + } + if (browserVersion == 3) { + doc.write("
") + } + + if (browserVersion == 1) { + this.navObj = doc.all["folder"+this.id] + this.iconImg = doc.all["folderIcon"+this.id] + this.nodeImg = doc.all["nodeIcon"+this.id] + } else if (browserVersion == 2) { + this.navObj = doc.layers["folder"+this.id] + this.iconImg = this.navObj.document.images["folderIcon"+this.id] + this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] + doc.yPos=doc.yPos+this.navObj.clip.height + } else if (browserVersion == 3) { + this.navObj = doc.getElementById("folder"+this.id) + this.iconImg = doc.images.namedItem("folderIcon"+this.id) + this.nodeImg = doc.images.namedItem("nodeIcon"+this.id) + } +} + +function outputFolderLink() +{ + if (this.hreference) + { + doc.write(" 0) + doc.write("onClick='javascript:clickOnFolder("+this.id+")'") + doc.write(">") + } + else + doc.write("") +} + +function addChild(childNode) +{ + this.children[this.nChildren] = childNode + this.nChildren++ + return childNode +} + +function folderSubEntries() +{ + var i = 0 + var se = this.nChildren + + for (i=0; i < this.nChildren; i++){ + if (this.children[i].children) //is a folder + se = se + this.children[i].subEntries() + } + + return se +} + + +// Definition of class Item (a document or link inside a Folder) +// ************************************************************* + +function Item(itemDescription, tagName, itemLink) // Constructor +{ + // constant data + this.desc = itemDescription + this.tagName = tagName + this.link = itemLink + this.id = -1 //initialized in initalize() + this.navObj = 0 //initialized in render() + this.iconImg = 0 //initialized in render() + this.iconSrc = "ftv2doc.png" + + // methods + this.initialize = initializeItem + this.createIndex = createEntryIndex + this.hide = hideItem + this.display = display + this.renderOb = drawItem + this.totalHeight = totalHeight +} + +function hideItem() +{ + if (browserVersion == 1 || browserVersion == 3) { + if (this.navObj.style.display == "none") + return + this.navObj.style.display = "none" + } else { + if (this.navObj.visibility == "hidden") + return + this.navObj.visibility = "hidden" + } +} + +function initializeItem(level, lastNode, leftSide) +{ + this.createIndex() + + if (level>0) + if (lastNode) //the last 'brother' in the children array + { + this.renderOb(leftSide + "") + leftSide = leftSide + "" + } + else + { + this.renderOb(leftSide + "") + leftSide = leftSide + "" + } + else + this.renderOb("") +} + +function drawItem(leftSide) +{ + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (USETEXTLINKS && this.link!="") + doc.write("" + this.desc + "") + else + doc.write(this.desc) + if (this.tagName!="") + { + doc.write(" [external]"); + } + doc.write("\n
\n") + + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + if (browserVersion == 1) { + this.navObj = doc.all["item"+this.id] + this.iconImg = doc.all["itemIcon"+this.id] + } else if (browserVersion == 2) { + this.navObj = doc.layers["item"+this.id] + this.iconImg = this.navObj.document.images["itemIcon"+this.id] + doc.yPos=doc.yPos+this.navObj.clip.height + } else if (browserVersion == 3) { + this.navObj = doc.getElementById("item"+this.id) + this.iconImg = doc.images.namedItem("itemIcon"+this.id) + } +} + + +// Methods common to both objects (pseudo-inheritance) +// ******************************************************** + +function display() +{ + if (browserVersion == 1 || browserVersion == 3) + this.navObj.style.display = "block" + else + this.navObj.visibility = "show" +} + +function createEntryIndex() +{ + this.id = nEntries + indexOfEntries[nEntries] = this + nEntries++ +} + +// total height of subEntries open +function totalHeight() //used with browserVersion == 2 +{ + var h = this.navObj.clip.height + var i = 0 + + if (this.isOpen) //is a folder and _is_ open + for (i=0 ; i < this.nChildren; i++) + h = h + this.children[i].totalHeight() + + return h +} + + +// Events +// ********************************************************* + +function clickOnFolder(folderId) +{ + var clicked = indexOfEntries[folderId] + + if (!clicked.isOpen) + clickOnNode(folderId) + + return + + if (clicked.isSelected) + return +} + +function clickOnNode(folderId) +{ + var clickedFolder = 0 + var state = 0 + + clickedFolder = indexOfEntries[folderId] + state = clickedFolder.isOpen + + clickedFolder.setState(!state) //open<->close +} + +function initializeDocument() +{ + doc = document; + if (doc.all) + browserVersion = 1 //IE4 + else + if (doc.layers) + browserVersion = 2 //NS4 + else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1) + browserVersion = 3 //mozilla + else + browserVersion = 0 //other + + foldersTree.initialize(0, 1, "") + foldersTree.display() + + if (browserVersion > 0) + { + if(browserVersion != 3) + doc.write(" ") + + // close the whole tree + clickOnNode(0) + // open the root folder + clickOnNode(0) + } +} + +// Auxiliary Functions for Folder-Treee backward compatibility +// ********************************************************* + +function gFld(description, tagName, hreference) +{ + folder = new Folder(description, tagName, hreference) + return folder +} + +function gLnk(description, tagName, linkData) +{ + fullLink = "" + + if (linkData!="") + { + fullLink = "'"+linkData+"' target=\"basefrm\"" + } + + linkItem = new Item(description, tagName, fullLink) + return linkItem +} + +function insFld(parentFolder, childFolder) +{ + return parentFolder.addChild(childFolder) +} + +function insDoc(parentFolder, document) +{ + parentFolder.addChild(document) +} + +// Global variables +// **************** + +USETEXTLINKS = 1 +indexOfEntries = new Array +nEntries = 0 +doc = document +browserVersion = 0 +selectedFolder=0 diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html new file mode 100644 index 000000000..8575303e7 --- /dev/null +++ b/docs/module-doc/users_8cpp-source.html @@ -0,0 +1,109 @@ + + +users.cpp Source File + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

users.cpp

Go to the documentation of this file.
00001 /*
+00002 
+00003 $Log$
+00003 Revision 1.1  2003/01/23 19:45:58  brain
+00003 Initial revision
+00003 
+00003 Revision 1.6  2003/01/22 20:59:12  brain
+00003 Added FileReader class documentation
+00003 
+00004 Revision 1.3  2003/01/17 13:21:38  brain
+00005 Added CONNECT ALLOW and CONNECT DENY config tags
+00006 Added PASS command
+00007 
+00008 Revision 1.2  2003/01/17 10:37:55  brain
+00009 Added /INVITE command and relevent structures
+00010 
+00011 Revision 1.1  2003/01/16 01:10:04  brain
+00012 forgot to add this
+00013 
+00014 
+00015 */
+00016 
+00017 #include "inspircd_config.h" 
+00018 #include "channels.h"
+00019 #include "users.h"
+00020 #include "inspircd.h"
+00021 #include <stdio.h>
+00022 
+00023 userrec::userrec()
+00024 {
+00025         // the PROPER way to do it, AVOID bzero at *ALL* costs
+00026         strcpy(nick,"");
+00027         ip = 0;
+00028         strcpy(ident,"");
+00029         strcpy(host,"");
+00030         strcpy(dhost,"");
+00031         strcpy(fullname,"");
+00032         strcpy(modes,"");
+00033         strcpy(inbuf,"");
+00034         strcpy(server,"");
+00035         strcpy(awaymsg,"");
+00036         fd = lastping = signon = idle_lastmsg = nping = registered = 0;
+00037         port = bytes_in = bytes_out = cmds_in = cmds_out = 0;
+00038         haspassed = false;
+00039         strcpy(result,"");
+00040         for (int i = 0; i < MAXCHANS; i++)
+00041         {
+00042                 chans[i].channel = NULL;
+00043         }
+00044         invites.clear();
+00045 }
+00046 
+00047  
+00048 char* userrec::GetFullHost()
+00049 {
+00050         sprintf(result,"%s!%s@%s",nick,ident,dhost);
+00051         return result;
+00052 }
+00053 
+00054 
+00055 char* userrec::GetFullRealHost()
+00056 {
+00057         sprintf(result,"%s!%s@%s",nick,ident,host);
+00058         return result;
+00059 }
+00060 
+00061 bool userrec::IsInvited(char* channel)
+00062 {
+00063         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+00064         {
+00065                 if (!strcasecmp(i->channel,channel))
+00066                 {
+00067                         return true;
+00068                 }
+00069         }
+00070 }
+00071 
+00072 void userrec::InviteTo(char* channel)
+00073 {
+00074         Invited i;
+00075         strcpy(i.channel,channel);
+00076         invites.push_back(i);
+00077 }
+00078 
+00079 void userrec::RemoveInvite(char* channel)
+00080 {
+00081         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+00082         {
+00083                 if (!strcasecmp(i->channel,channel))
+00084                 {
+00085                         invites.erase(i);
+00086                         return;
+00087                 }
+00088         }
+00089 }
+

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/users_8cpp.html b/docs/module-doc/users_8cpp.html new file mode 100644 index 000000000..10c198675 --- /dev/null +++ b/docs/module-doc/users_8cpp.html @@ -0,0 +1,24 @@ + + +users.cpp File Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

users.cpp File Reference

#include "inspircd_config.h"
+#include "channels.h"
+#include "users.h"
+#include "inspircd.h"
+#include <stdio.h>
+ +

+Go to the source code of this file. + +
+


Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/users_8h-source.html b/docs/module-doc/users_8h-source.html new file mode 100644 index 000000000..446423af1 --- /dev/null +++ b/docs/module-doc/users_8h-source.html @@ -0,0 +1,158 @@ + + +users.h Source File + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

users.h

Go to the documentation of this file.
00001 /*
+00002 
+00003 $Log$
+00003 Revision 1.1  2003/01/23 19:45:58  brain
+00003 Initial revision
+00003 
+00003 Revision 1.6  2003/01/22 20:59:12  brain
+00003 Added FileReader class documentation
+00003 
+00004 Revision 1.9  2003/01/22 00:44:26  brain
+00005 Added documentation comments
+00006 
+00007 Revision 1.8  2003/01/21 21:11:17  brain
+00008 Added documentation
+00009 
+00010 Revision 1.7  2003/01/17 13:21:38  brain
+00011 Added CONNECT ALLOW and CONNECT DENY config tags
+00012 Added PASS command
+00013 
+00014 Revision 1.6  2003/01/17 10:37:55  brain
+00015 Added /INVITE command and relevent structures
+00016 
+00017 Revision 1.5  2003/01/16 20:11:56  brain
+00018 fixed some ugly pointer bugs (thanks dblack and a|KK|y!)
+00019 
+00020 Revision 1.4  2003/01/15 22:47:44  brain
+00021 Changed user and channel structs to classes (finally)
+00022 
+00023 Revision 1.3  2003/01/14 21:14:30  brain
+00024 added /ISON command (for mIRC etc basic notify)
+00025 
+00026 
+00027 */
+00028 
+00029 #include "inspircd_config.h" 
+00030 #include "channels.h"
+00031 
+00032 #include <string>
+00033  
+00034 #ifndef __USERS_H__ 
+00035 #define __USERS_H__ 
+00036  
+00037 #define STATUS_OP       4
+00038 #define STATUS_HOP      2
+00039 #define STATUS_VOICE    1
+00040 #define STATUS_NORMAL   0
+00041 
+00042 #define CC_ALLOW        0
+00043 #define CC_DENY         1
+00044 
+00047 class Invited
+00048 {
+00049  public:
+00050         char channel[CHANMAX];
+00051 };
+00052 
+00053 
+00056 class ConnectClass
+00057 {
+00058  public:
+00059         int type;
+00060         char host[MAXBUF];
+00061         char pass[MAXBUF];
+00062 };
+00063 
+00066 typedef vector<Invited> InvitedList;
+00067 
+00068 
+00069 
+00072 typedef vector<ConnectClass> ClassVector;
+00073 
+00080 class userrec
+00081 {
+00082  private:
+00083 
+00086         InvitedList invites;
+00087  public:
+00088         
+00093         char nick[NICKMAX];
+00094         
+00097         unsigned long ip;
+00098 
+00101         char ident[64];
+00102 
+00105         char host[256];
+00106         
+00110         char dhost[256];
+00111         
+00114         char fullname[128];
+00115         
+00120         int fd;
+00121         
+00126         char modes[32];
+00127         
+00131         char inbuf[MAXBUF];
+00132         
+00138         time_t lastping;
+00139         
+00142         time_t signon;
+00143         
+00147         time_t idle_lastmsg;
+00148         
+00153         time_t nping;
+00154         
+00159         int registered;
+00160         
+00165         ucrec chans[MAXCHANS];
+00166         
+00169         char server[256];
+00170         
+00174         char awaymsg[512];
+00175         
+00178         int port;
+00179         
+00183         long bytes_in;
+00184         
+00188         long bytes_out;
+00189         
+00193         long cmds_in;
+00194         
+00198         long cmds_out;
+00199         
+00203         char result[256];
+00204         
+00209         bool haspassed;
+00210 
+00211         userrec();
+00212         
+00213         virtual ~userrec() {  }
+00214         
+00219         virtual char* GetFullHost();
+00220         
+00226         virtual char* GetFullRealHost();
+00227         
+00230         virtual bool IsInvited(char* channel);
+00231         
+00234         virtual void InviteTo(char* channel);
+00235         
+00240         virtual void RemoveInvite(char* channel);
+00241         
+00242 };
+00243 
+00244 
+00245 #endif
+

Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + diff --git a/docs/module-doc/users_8h.html b/docs/module-doc/users_8h.html new file mode 100644 index 000000000..2593a2dcb --- /dev/null +++ b/docs/module-doc/users_8h.html @@ -0,0 +1,239 @@ + + +users.h File Reference + + + +
+Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  
+

users.h File Reference

#include "inspircd_config.h"
+#include "channels.h"
+#include <string>
+ +

+Go to the source code of this file. + + + + + + + + + + + + + + + + + + + + +

Compounds

class  ConnectClass
 Holds information relevent to <connect allow> and <connect deny> tags in the config file. More...

class  Invited
 Holds a channel name to which a user has been invited. More...

class  userrec
 Holds all information about a user This class stores all information about a user connected to the irc server. More...


Defines

#define STATUS_OP   4
#define STATUS_HOP   2
#define STATUS_VOICE   1
#define STATUS_NORMAL   0
#define CC_ALLOW   0
#define CC_DENY   1

Typedefs

typedef vector< InvitedInvitedList
 Holds a complete list of all channels to which a user has been invited and has not yet joined.

typedef vector< ConnectClassClassVector
 Holds a complete list of all allow and deny tags from the configuration file (connection classes).

+


Define Documentation

+

+ + + + +
+ + +
#define CC_ALLOW   0 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 42 of file users.h.

+

+ + + + +
+ + +
#define CC_DENY   1 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 43 of file users.h.

+

+ + + + +
+ + +
#define STATUS_HOP   2 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 38 of file users.h.

+

+ + + + +
+ + +
#define STATUS_NORMAL   0 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 40 of file users.h.

+

+ + + + +
+ + +
#define STATUS_OP   4 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 37 of file users.h.

+

+ + + + +
+ + +
#define STATUS_VOICE   1 +
+
+ + + + + +
+   + + +

+ +

+Definition at line 39 of file users.h.

+


Typedef Documentation

+

+ + + + +
+ + +
typedef vector<ConnectClass> ClassVector +
+
+ + + + + +
+   + + +

+Holds a complete list of all allow and deny tags from the configuration file (connection classes). +

+ +

+Definition at line 72 of file users.h.

+

+ + + + +
+ + +
typedef vector<Invited> InvitedList +
+
+ + + + + +
+   + + +

+Holds a complete list of all channels to which a user has been invited and has not yet joined. +

+ +

+Definition at line 66 of file users.h.

+


Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by + +doxygen1.3-rc2
+ + -- cgit v1.2.3