summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2003-01-23 19:45:57 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2003-01-23 19:45:57 +0000
commit73b9d0c5cb02f0ea8350de28bc3687e0af70ea0f (patch)
treea5845579b1363762650f0e45c62a13890e1efa43 /docs
Initial revision
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@132 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'docs')
-rw-r--r--docs/COPYING339
-rw-r--r--docs/ChangeLog49
-rw-r--r--docs/SUPPORTED62
-rw-r--r--docs/inspircd.conf.example231
-rw-r--r--docs/module-doc/annotated.html32
-rw-r--r--docs/module-doc/channels_8h-source.html146
-rw-r--r--docs/module-doc/channels_8h.html248
-rw-r--r--docs/module-doc/classAdmin-members.html19
-rw-r--r--docs/module-doc/classAdmin.html160
-rw-r--r--docs/module-doc/classBanItem-members.html20
-rw-r--r--docs/module-doc/classBanItem.html34
-rw-r--r--docs/module-doc/classBanItem.pngbin0 -> 303 bytes
-rw-r--r--docs/module-doc/classConfigReader-members.html22
-rw-r--r--docs/module-doc/classConfigReader.html324
-rw-r--r--docs/module-doc/classConnectClass-members.html18
-rw-r--r--docs/module-doc/classConnectClass.html106
-rw-r--r--docs/module-doc/classExemptItem-members.html20
-rw-r--r--docs/module-doc/classExemptItem.html34
-rw-r--r--docs/module-doc/classExemptItem.pngbin0 -> 333 bytes
-rw-r--r--docs/module-doc/classFileReader-members.html22
-rw-r--r--docs/module-doc/classFileReader.html312
-rw-r--r--docs/module-doc/classHostItem-members.html20
-rw-r--r--docs/module-doc/classHostItem.html185
-rw-r--r--docs/module-doc/classHostItem.pngbin0 -> 511 bytes
-rw-r--r--docs/module-doc/classInviteItem-members.html20
-rw-r--r--docs/module-doc/classInviteItem.html34
-rw-r--r--docs/module-doc/classInviteItem.pngbin0 -> 318 bytes
-rw-r--r--docs/module-doc/classInvited-members.html16
-rw-r--r--docs/module-doc/classInvited.html58
-rw-r--r--docs/module-doc/classModule-members.html22
-rw-r--r--docs/module-doc/classModule.html315
-rw-r--r--docs/module-doc/classModuleFactory-members.html18
-rw-r--r--docs/module-doc/classModuleFactory.html134
-rw-r--r--docs/module-doc/classServer-members.html34
-rw-r--r--docs/module-doc/classServer.html913
-rw-r--r--docs/module-doc/classVersion-members.html20
-rw-r--r--docs/module-doc/classVersion.html191
-rw-r--r--docs/module-doc/classchanrec-members.html32
-rw-r--r--docs/module-doc/classchanrec.html534
-rw-r--r--docs/module-doc/classes.html26
-rw-r--r--docs/module-doc/classucrec-members.html19
-rw-r--r--docs/module-doc/classucrec.html161
-rw-r--r--docs/module-doc/classuserrec-members.html47
-rw-r--r--docs/module-doc/classuserrec.html1085
-rw-r--r--docs/module-doc/doxygen.css49
-rw-r--r--docs/module-doc/doxygen.pngbin0 -> 2351 bytes
-rw-r--r--docs/module-doc/files.html21
-rw-r--r--docs/module-doc/ftv2blank.pngbin0 -> 173 bytes
-rw-r--r--docs/module-doc/ftv2doc.pngbin0 -> 254 bytes
-rw-r--r--docs/module-doc/ftv2folderclosed.pngbin0 -> 258 bytes
-rw-r--r--docs/module-doc/ftv2folderopen.pngbin0 -> 260 bytes
-rw-r--r--docs/module-doc/ftv2lastnode.pngbin0 -> 232 bytes
-rw-r--r--docs/module-doc/ftv2link.pngbin0 -> 357 bytes
-rw-r--r--docs/module-doc/ftv2mlastnode.pngbin0 -> 159 bytes
-rw-r--r--docs/module-doc/ftv2mnode.pngbin0 -> 193 bytes
-rw-r--r--docs/module-doc/ftv2node.pngbin0 -> 234 bytes
-rw-r--r--docs/module-doc/ftv2plastnode.pngbin0 -> 164 bytes
-rw-r--r--docs/module-doc/ftv2pnode.pngbin0 -> 199 bytes
-rw-r--r--docs/module-doc/ftv2vertline.pngbin0 -> 228 bytes
-rw-r--r--docs/module-doc/functions.html191
-rw-r--r--docs/module-doc/globals.html57
-rw-r--r--docs/module-doc/hierarchy.html34
-rw-r--r--docs/module-doc/index.html7
-rw-r--r--docs/module-doc/main.html16
-rw-r--r--docs/module-doc/modules_8cpp-source.html249
-rw-r--r--docs/module-doc/modules_8cpp.html24
-rw-r--r--docs/module-doc/modules_8h-source.html159
-rw-r--r--docs/module-doc/modules_8h.html96
-rw-r--r--docs/module-doc/tree.html11
-rw-r--r--docs/module-doc/tree.js44
-rw-r--r--docs/module-doc/treeview.js500
-rw-r--r--docs/module-doc/users_8cpp-source.html109
-rw-r--r--docs/module-doc/users_8cpp.html24
-rw-r--r--docs/module-doc/users_8h-source.html158
-rw-r--r--docs/module-doc/users_8h.html239
75 files changed, 8070 insertions, 0 deletions
diff --git a/docs/COPYING b/docs/COPYING
new file mode 100644
index 000000000..a43ea2126
--- /dev/null
+++ b/docs/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/docs/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: #
+# <server name="server.name" #
+# description="Server Description" #
+# network="MyNetwork"> #
+# #
+
+<server name="penguin.omega.org.za"
+ description="Waddle World"
+ network="Omega">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- ADMIN INFORMATION -#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Describes the Server Administrator's real name, nick #
+# and email address. #
+# #
+# Syntax is as follows: #
+# <admin name="real name" #
+# nick="nick name" #
+# email="email@address.com"> #
+# #
+
+<admin name="Johnny Casino"
+ nick="CC"
+ email="cc@monkeynut.co.za">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- 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: #
+# <bind address="ip number" port="port number"> #
+# #
+
+<bind address="" port="6667">
+<bind address="" port="7000">
+
+
+#-#-#-#-#-#-#-#-#-#- 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: #
+# <power diepass="die password" restartpass="restart password"
+# pause="secs before dying"> #
+# #
+
+<power diepass="diepass" restartpass="restartpass" pause="2">
+
+
+#-#-#-#-#-#-#-#-#-#- 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: #
+# <connect allow="ip number"> #
+# <connect allow="ip number" password="blahblah"> #
+# <connect deny="ip number"> #
+# #
+
+<connect allow="196.12.*" password="tiffany">
+<connect allow="*">
+
+<connect deny="69.254.*">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- 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: #
+# <class name="name" commands="oper commands"> #
+# #
+
+<class name="Shutdown" commands="DIE RESTART REHASH">
+<class name="ServerLink" commands="CONNECT SQUIT">
+<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE SHUN">
+<class name="OperChat" commands="WALLOPS CHATOPS">
+<class name="HostCloak" commands="SETHOST SETIDENT SETNAME">
+
+
+#-#-#-#-#-#-#-#-#-#-#-#- 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: #
+# <type name="name" classes="class name" host="oper hostmask"> #
+# #
+
+<type name="NetAdmin" classes="OperChat BanControl HostCloak Shutdown ServerLink" host="netadmin.omega.org.za">
+<type name="GlobalOp" classes="OperChat BanControl HostCloak ServerLink" host="ircop.omega.org.za">
+<type name="LocalOp" classes="OperChat BanControl HostCloak" host="local.omega.org.za">
+<type name="Helper" classes="HostCloak" host="helper.omega.org.za">
+
+
+#-#-#-#-#-#-#-#-#-#-#- 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: #
+# <oper name="login" #
+# password="pass" #
+# host="hostmask@of.oper" #
+# type="oper type"> #
+# #
+
+<oper name="cc"
+ password="s3cret"
+ host="*@*"
+ type="NetAdmin">
+
+
+#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-
+# #
+# These options let you define the path to your motd and rules #
+# files. #
+# #
+
+<files motd="/home/cc/inspircd-1.0/conf/inspire.motd"
+ rules="/home/cc/inspircd-1.0/conf/inspire.rules">
+
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# Just remove this... Its here to make you read ALL of the config #
+# file options ;) #
+
+<die value="And god came down from the heavens and smote down the noob.">
+
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- 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 #
+# #
+
+<options prefixquit="Quit: "
+ debug="off"
+ allowhalfop="yes"
+ allowprotect="yes"
+ allowfounder="yes">
+
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#- 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. #
+
+<module name="m_foobar.so">
+
+
+
+#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
+# #
+# You should already know what to do here :) #
+
+<die value="All l33t noobs must edit their configs.">
+
+
+#########################################################################
+# #
+# -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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Annotated Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="classAdmin.html">Admin</a></td><td class="indexvalue">Holds /ADMIN data This class contains the admin details of the local server</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classBanItem.html">BanItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classchanrec.html">chanrec</a></td><td class="indexvalue">Holds all relevent information for a channel</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classConfigReader.html">ConfigReader</a></td><td class="indexvalue">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</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classConnectClass.html">ConnectClass</a></td><td class="indexvalue">Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classExemptItem.html">ExemptItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classFileReader.html">FileReader</a></td><td class="indexvalue">Caches a text file into memory and can be used to retrieve lines from it</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classHostItem.html">HostItem</a></td><td class="indexvalue">Holds an entry for a ban list, exemption list, or invite list</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInvited.html">Invited</a></td><td class="indexvalue">Holds a channel name to which a user has been invited</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classInviteItem.html">InviteItem</a></td><td class="indexvalue">A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I)</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classModule.html">Module</a></td><td class="indexvalue">Base class for all InspIRCd modules This class is the base class for InspIRCd modules</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td class="indexvalue">Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classServer.html">Server</a></td><td class="indexvalue">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</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classucrec.html">ucrec</a></td><td class="indexvalue">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</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classuserrec.html">userrec</a></td><td class="indexvalue">Holds all information about a user This class stores all information about a user connected to the irc server</td></tr>
+ <tr><td class="indexkey"><a class="el" href="classVersion.html">Version</a></td><td class="indexvalue">Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module</td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>channels.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>channels.h</h1><a href="channels_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:57 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.7 2003/01/22 00:44:26 brain</span>
+00005 <span class="comment">Added documentation comments</span>
+00006 <span class="comment"></span>
+00007 <span class="comment">Revision 1.6 2003/01/21 21:11:17 brain</span>
+00008 <span class="comment">Added documentation</span>
+00009 <span class="comment"></span>
+00010 <span class="comment">Revision 1.5 2003/01/16 20:11:55 brain</span>
+00011 <span class="comment">fixed some ugly pointer bugs (thanks dblack and a|KK|y!)</span>
+00012 <span class="comment"></span>
+00013 <span class="comment">Revision 1.4 2003/01/15 22:47:44 brain</span>
+00014 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00015 <span class="comment"></span>
+00016 <span class="comment"> </span>
+00017 <span class="comment">*/</span>
+00018
+00019 <span class="preprocessor">#include "inspircd_config.h"</span>
+00020 <span class="preprocessor">#include &lt;time.h&gt;</span>
+00021 <span class="preprocessor">#include &lt;vector&gt;</span>
+00022
+00023 <span class="preprocessor">#ifndef __CHANNELS_H__</span>
+00024 <span class="preprocessor"></span><span class="preprocessor">#define __CHANNELS_H__</span>
+00025 <span class="preprocessor"></span>
+<a name="l00029"></a><a class="code" href="classHostItem.html">00029</a> <span class="keyword">class </span><a class="code" href="classHostItem.html">HostItem</a>
+00030 {
+00031 <span class="keyword">public</span>:
+<a name="l00032"></a><a class="code" href="classHostItem.html#m0">00032</a> time_t <a class="code" href="classHostItem.html#m0">set_time</a>;
+<a name="l00033"></a><a class="code" href="classHostItem.html#m1">00033</a> <span class="keywordtype">char</span> <a class="code" href="classHostItem.html#m1">set_by</a>[NICKMAX];
+<a name="l00034"></a><a class="code" href="classHostItem.html#m2">00034</a> <span class="keywordtype">char</span> <a class="code" href="classHostItem.html#m2">data</a>[MAXBUF];
+00035
+<a name="l00036"></a><a class="code" href="classHostItem.html#a0">00036</a> <a class="code" href="classHostItem.html#a0">HostItem</a>() { <span class="comment">/* stub */</span> }
+<a name="l00037"></a><a class="code" href="classHostItem.html#a1">00037</a> <span class="keyword">virtual</span> <a class="code" href="classHostItem.html#a1">~HostItem</a>() { <span class="comment">/* stub */</span> }
+00038 };
+00039
+00040 <span class="comment">// banlist is inherited from HostList mainly for readability</span>
+00041 <span class="comment">// reasons only</span>
+00042
+<a name="l00045"></a><a class="code" href="classBanItem.html">00045</a> <span class="keyword">class </span><a class="code" href="classBanItem.html">BanItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00046 {
+00047 };
+00048
+00049 <span class="comment">// same with this...</span>
+00050
+<a name="l00053"></a><a class="code" href="classExemptItem.html">00053</a> <span class="keyword">class </span><a class="code" href="classExemptItem.html">ExemptItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00054 {
+00055 };
+00056
+00057 <span class="comment">// and this...</span>
+00058
+<a name="l00061"></a><a class="code" href="classInviteItem.html">00061</a> <span class="keyword">class </span><a class="code" href="classInviteItem.html">InviteItem</a> : <span class="keyword">public</span> <a class="code" href="classHostItem.html">HostItem</a>
+00062 {
+00063 };
+00064
+00065
+<a name="l00068"></a><a class="code" href="channels_8h.html#a5">00068</a> <span class="keyword">typedef</span> vector&lt;BanItem&gt; <a class="code" href="channels_8h.html#a5">BanList</a>;
+00069
+<a name="l00072"></a><a class="code" href="channels_8h.html#a6">00072</a> <span class="keyword">typedef</span> vector&lt;ExemptItem&gt; <a class="code" href="channels_8h.html#a6">ExemptList</a>;
+00073
+<a name="l00076"></a><a class="code" href="channels_8h.html#a7">00076</a> <span class="keyword">typedef</span> vector&lt;InviteItem&gt; <a class="code" href="channels_8h.html#a7">InviteList</a>;
+00077
+<a name="l00082"></a><a class="code" href="classchanrec.html">00082</a> <span class="keyword">class </span><a class="code" href="classchanrec.html">chanrec</a>
+00083 {
+00084 <span class="keyword">public</span>:
+<a name="l00087"></a><a class="code" href="classchanrec.html#m0">00087</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m0">name</a>[CHANMAX]; <span class="comment">/* channel name */</span>
+<a name="l00091"></a><a class="code" href="classchanrec.html#m1">00091</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m1">custom_modes</a>[MAXMODES]; <span class="comment">/* modes handled by modules */</span>
+<a name="l00095"></a><a class="code" href="classchanrec.html#m2">00095</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m2">topic</a>[MAXBUF];
+<a name="l00098"></a><a class="code" href="classchanrec.html#m3">00098</a> time_t <a class="code" href="classchanrec.html#m3">created</a>;
+<a name="l00102"></a><a class="code" href="classchanrec.html#m4">00102</a> time_t <a class="code" href="classchanrec.html#m4">topicset</a>;
+<a name="l00106"></a><a class="code" href="classchanrec.html#m5">00106</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m5">setby</a>[NICKMAX];
+00107
+<a name="l00111"></a><a class="code" href="classchanrec.html#m6">00111</a> <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#m6">limit</a>;
+00112
+<a name="l00116"></a><a class="code" href="classchanrec.html#m7">00116</a> <span class="keywordtype">char</span> <a class="code" href="classchanrec.html#m7">key</a>[32];
+00117
+<a name="l00120"></a><a class="code" href="classchanrec.html#m8">00120</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m8">topiclock</a>;
+00121
+<a name="l00124"></a><a class="code" href="classchanrec.html#m9">00124</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m9">noexternal</a>;
+00125
+<a name="l00128"></a><a class="code" href="classchanrec.html#m10">00128</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m10">inviteonly</a>;
+00129
+<a name="l00132"></a><a class="code" href="classchanrec.html#m11">00132</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m11">moderated</a>;
+00133
+<a name="l00137"></a><a class="code" href="classchanrec.html#m12">00137</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m12">secret</a>;
+00138
+<a name="l00142"></a><a class="code" href="classchanrec.html#m13">00142</a> <span class="keywordtype">short</span> <span class="keywordtype">int</span> <a class="code" href="classchanrec.html#m13">c_private</a>;
+00143
+<a name="l00146"></a><a class="code" href="classchanrec.html#m14">00146</a> <a class="code" href="channels_8h.html#a5">BanList</a> <a class="code" href="classchanrec.html#m14">bans</a>;
+00147
+<a name="l00150"></a><a class="code" href="classchanrec.html#a0">00150</a> <a class="code" href="classchanrec.html#a0">chanrec</a>()
+00151 {
+00152 strcpy(name,<span class="stringliteral">""</span>);
+00153 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00154 strcpy(topic,<span class="stringliteral">""</span>);
+00155 strcpy(setby,<span class="stringliteral">""</span>);
+00156 strcpy(key,<span class="stringliteral">""</span>);
+00157 created = topicset = limit = 0;
+00158 topiclock = noexternal = inviteonly = moderated = secret = c_private = <span class="keyword">false</span>;
+00159 }
+00160
+<a name="l00161"></a><a class="code" href="classchanrec.html#a1">00161</a> <span class="keyword">virtual</span> <a class="code" href="classchanrec.html#a1">~chanrec</a>() { <span class="comment">/* stub */</span> }
+00162 };
+00163
+00164 <span class="comment">/* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o</span>
+00165 <span class="comment"> * needs to come AFTER struct chanrec */</span>
+00166
+<a name="l00167"></a><a class="code" href="channels_8h.html#a0">00167</a> <span class="preprocessor">#define UCMODE_OP 1</span>
+<a name="l00168"></a><a class="code" href="channels_8h.html#a1">00168</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_VOICE 2</span>
+<a name="l00169"></a><a class="code" href="channels_8h.html#a2">00169</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_HOP 4</span>
+<a name="l00170"></a><a class="code" href="channels_8h.html#a3">00170</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_PROTECT 8</span>
+<a name="l00171"></a><a class="code" href="channels_8h.html#a4">00171</a> <span class="preprocessor"></span><span class="preprocessor">#define UCMODE_FOUNDER 16</span>
+00172 <span class="preprocessor"></span>
+<a name="l00178"></a><a class="code" href="classucrec.html">00178</a> <span class="keyword">class </span><a class="code" href="classucrec.html">ucrec</a>
+00179 {
+00180 <span class="keyword">public</span>:
+<a name="l00184"></a><a class="code" href="classucrec.html#m0">00184</a> <span class="keywordtype">long</span> <a class="code" href="classucrec.html#m0">uc_modes</a>;
+00185
+<a name="l00189"></a><a class="code" href="classucrec.html#m1">00189</a> <a class="code" href="classchanrec.html">chanrec</a> *<a class="code" href="classucrec.html#m1">channel</a>;
+00190
+<a name="l00191"></a><a class="code" href="classucrec.html#a0">00191</a> <a class="code" href="classucrec.html#a0">ucrec</a>() { <span class="comment">/* stub */</span> }
+<a name="l00192"></a><a class="code" href="classucrec.html#a1">00192</a> <span class="keyword">virtual</span> <a class="code" href="classucrec.html#a1">~ucrec</a>() { <span class="comment">/* stub */</span> }
+00193 };
+00194
+00195 <span class="preprocessor">#endif</span>
+00196 <span class="preprocessor"></span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>channels.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>channels.h File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include &lt;time.h&gt;</code><br>
+<code>#include &lt;vector&gt;</code><br>
+
+<p>
+<a href="channels_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classBanItem.html">BanItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).</em> <a href="classBanItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html">chanrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds all relevent information for a channel.</em> <a href="classchanrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classExemptItem.html">ExemptItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).</em> <a href="classExemptItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html">HostItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds an entry for a ban list, exemption list, or invite list.</em> <a href="classHostItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classInviteItem.html">InviteItem</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).</em> <a href="classInviteItem.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classucrec.html">ucrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classucrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a0">UCMODE_OP</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a1">UCMODE_VOICE</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a2">UCMODE_HOP</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a3">UCMODE_PROTECT</a>&nbsp;&nbsp;&nbsp;8</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a4">UCMODE_FOUNDER</a>&nbsp;&nbsp;&nbsp;16</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classBanItem.html">BanItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a5">BanList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete ban list.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classExemptItem.html">ExemptItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a6">ExemptList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete exempt list.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classInviteItem.html">InviteItem</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="channels_8h.html#a7">InviteList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete invite list.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a4" doxytag="channels.h::UCMODE_FOUNDER"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_FOUNDER&nbsp;&nbsp;&nbsp;16
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00171">171</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="channels.h::UCMODE_HOP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_HOP&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00169">169</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a0" doxytag="channels.h::UCMODE_OP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_OP&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00167">167</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a3" doxytag="channels.h::UCMODE_PROTECT"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_PROTECT&nbsp;&nbsp;&nbsp;8
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00170">170</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="channels.h::UCMODE_VOICE"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define UCMODE_VOICE&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00168">168</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a5" doxytag="channels.h::BanList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classBanItem.html">BanItem</a>&gt; BanList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete ban list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00068">68</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="channels.h::ExemptList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classExemptItem.html">ExemptItem</a>&gt; ExemptList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete exempt list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00072">72</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="a7" doxytag="channels.h::InviteList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classInviteItem.html">InviteItem</a>&gt; InviteList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete invite list.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00076">76</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Admin Member List</h1>This is the complete list of members for <a class="el" href="classAdmin.html">Admin</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#a0">Admin</a>(string name, string email, string nick)</td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m1">Email</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m0">Name</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classAdmin.html#m2">Nick</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Admin class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Admin Class Reference</h1>Holds /ADMIN data This class contains the admin details of the local server.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classAdmin-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#a0">Admin</a> (string name, string email, string nick)</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m0">Name</a></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m1">Email</a></td></tr>
+<tr><td nowrap align=right valign=top>const string&nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html#m2">Nick</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds /ADMIN data This class contains the admin details of the local server.
+<p>
+It is constructed by class <a class="el" href="classServer.html">Server</a>, and has three read-only values, Name, Email and Nick that contain the specified values for the server where the module is running.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00067">67</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Admin::Admin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Admin::Admin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>email</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>nick</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00033">33</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00033 : <a class="code" href="classAdmin.html#m0">Name</a>(name), <a class="code" href="classAdmin.html#m1">Email</a>(email), <a class="code" href="classAdmin.html#m2">Nick</a>(nick) { };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="Admin::Email"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Email
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="Admin::Name"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Name
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="Admin::Nick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string Admin::Nick
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>BanItem Member List</h1>This is the complete list of members for <a class="el" href="classBanItem.html">BanItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>BanItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>BanItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for BanItem:
+<p><center><img src="classBanItem.png" usemap="#BanItem_map" border="0" alt=""></center>
+<map name="BanItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,59,24">
+</map>
+<a href="classBanItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel bans (+b).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00045">45</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classBanItem.png b/docs/module-doc/classBanItem.png
new file mode 100644
index 000000000..e0a7f35b2
--- /dev/null
+++ b/docs/module-doc/classBanItem.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConfigReader Member List</h1>This is the complete list of members for <a class="el" href="classConfigReader.html">ConfigReader</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a0">ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a1">ConfigReader</a>(string filename)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a4">Enumerate</a>(string tag)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#n0">fname</a></td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td><code> [protected]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a3">ReadValue</a>(string tag, string name, int index)</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a5">Verify</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConfigReader.html#a2">~ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ConfigReader class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConfigReader Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classConfigReader-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a0">ConfigReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a1">ConfigReader</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Overloaded constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a2">~ConfigReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a3">ReadValue</a> (string tag, string name, int index)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Retrieves a value from the config file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a4">Enumerate</a> (string tag)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Counts the number of times a given tag appears in the config file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#a5">Verify</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a config file is valid.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html#n0">fname</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The filename of the configuration file, as set by the constructor.</em> <a href="#n0"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00226">226</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ConfigReader::ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00161">161</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00162 {
+00163 <a class="code" href="classConfigReader.html#n0">fname</a> = CONFIG_FILE;
+00164 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ConfigReader::ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Overloaded constructor.
+<p>
+This constructor initialises the ConfigReader class to read a user-specified config file
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00172">172</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00172 : <a class="code" href="classConfigReader.html#n0">fname</a>(filename) { };
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="ConfigReader::~ConfigReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ConfigReader::~ConfigReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+This method destroys the ConfigReader class.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00167">167</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00168 {
+00169 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a4" doxytag="ConfigReader::Enumerate"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int ConfigReader::Enumerate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>tag</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Counts the number of times a given tag appears in the config file.
+<p>
+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 <a class="el" href="classConfigReader.html#a3">ConfigReader::ReadValue</a> to loop through all copies of a multiple instance tag.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00183">183</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00184 {
+00185 <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str());
+00186 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="ConfigReader::ReadValue"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string ConfigReader::ReadValue </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>tag</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>index</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieves a value from the config file.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00174">174</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00231">fname</a>.
+<p>
+<div class="fragment"><pre>00175 {
+00176 <span class="keywordtype">char</span> val[MAXBUF];
+00177 ReadConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str(),name.c_str(),index,val);
+00178 string s = val;
+00179 <span class="keywordflow">return</span> s;
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="ConfigReader::Verify"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool ConfigReader::Verify </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a config file is valid.
+<p>
+This method is unimplemented and will always return true.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00189">189</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00190 {
+00191 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="n0" doxytag="ConfigReader::fname"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string ConfigReader::fname<code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The filename of the configuration file, as set by the constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00231">231</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00161">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00183">Enumerate()</a>, and <a class="el" href="modules_8cpp-source.html#l00174">ReadValue()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConnectClass Member List</h1>This is the complete list of members for <a class="el" href="classConnectClass.html">ConnectClass</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m1">host</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m2">pass</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classConnectClass.html#m0">type</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ConnectClass class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ConnectClass Class Reference</h1>Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classConnectClass-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m0">type</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m1">host</a> [MAXBUF]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html#m2">pass</a> [MAXBUF]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00056">56</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="ConnectClass::host"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char ConnectClass::host[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00060">60</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="ConnectClass::pass"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char ConnectClass::pass[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00061">61</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="ConnectClass::type"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int ConnectClass::type
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00059">59</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ExemptItem Member List</h1>This is the complete list of members for <a class="el" href="classExemptItem.html">ExemptItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ExemptItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ExemptItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for ExemptItem:
+<p><center><img src="classExemptItem.png" usemap="#ExemptItem_map" border="0" alt=""></center>
+<map name="ExemptItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,74,24">
+</map>
+<a href="classExemptItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel exempts (+e).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00053">53</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classExemptItem.png b/docs/module-doc/classExemptItem.png
new file mode 100644
index 000000000..6aa67a9ef
--- /dev/null
+++ b/docs/module-doc/classExemptItem.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>FileReader Member List</h1>This is the complete list of members for <a class="el" href="classFileReader.html">FileReader</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#o0">fc</a></td><td><a class="el" href="classFileReader.html">FileReader</a></td><td><code> [private]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a0">FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a1">FileReader</a>(string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a5">FileSize</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a4">GetLine</a>(int x)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a3">LoadFile</a>(string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classFileReader.html#a2">~FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>FileReader class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>FileReader Class Reference</h1>Caches a text file into memory and can be used to retrieve lines from it.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classFileReader-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a0">FileReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a1">FileReader</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Secondary constructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a2">~FileReader</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a3">LoadFile</a> (string filename)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Used to load a file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>string&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a4">GetLine</a> (int x)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Retrieve one line from the file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#a5">FileSize</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the size of the file in lines.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="modules_8h.html#a1">file_cache</a>&nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html#o0">fc</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Caches a text file into memory and can be used to retrieve lines from it.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00271">271</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="FileReader::FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00202">202</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00203 {
+00204 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="FileReader::FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Secondary constructor.
+<p>
+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, <a class="el" href="classFileReader.html#a5">FileReader::FileSize</a> returns 0.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00195">195</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>, and <a class="el" href="modules_8h-source.html#l00038">file_cache</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00198 readfile(c,filename.c_str());
+00199 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00200 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="FileReader::~FileReader"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> FileReader::~FileReader </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+This deletes the memory allocated to the file.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00213">213</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00214 {
+00215 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a5" doxytag="FileReader::FileSize"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int FileReader::FileSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the size of the file in lines.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00224">224</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>.
+<p>
+<div class="fragment"><pre>00225 {
+00226 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00227 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="FileReader::GetLine"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string FileReader::GetLine </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>x</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieve one line from the file.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00217">217</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>.
+<p>
+<div class="fragment"><pre>00218 {
+00219 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00220 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00221 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00222 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="FileReader::LoadFile"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void FileReader::LoadFile </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>filename</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Used to load a file.
+<p>
+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, <a class="el" href="classFileReader.html#a5">FileReader::FileSize</a> returns 0.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00206">206</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00273">fc</a>, and <a class="el" href="modules_8h-source.html#l00038">file_cache</a>.
+<p>
+<div class="fragment"><pre>00207 {
+00208 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00209 readfile(c,filename.c_str());
+00210 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00211 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="o0" doxytag="FileReader::fc"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="modules_8h.html#a1">file_cache</a> FileReader::fc<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00273">273</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00195">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00224">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00217">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00206">LoadFile()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>HostItem Member List</h1>This is the complete list of members for <a class="el" href="classHostItem.html">HostItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>HostItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>HostItem Class Reference</h1>Holds an entry for a ban list, exemption list, or invite list.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for HostItem:
+<p><center><img src="classHostItem.png" usemap="#HostItem_map" border="0" alt=""></center>
+<map name="HostItem_map">
+<area href="classBanItem.html" alt="BanItem" shape="rect" coords="0,56,74,80">
+<area href="classExemptItem.html" alt="ExemptItem" shape="rect" coords="84,56,158,80">
+<area href="classInviteItem.html" alt="InviteItem" shape="rect" coords="168,56,242,80">
+</map>
+<a href="classHostItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#a0">HostItem</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#a1">~HostItem</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m0">set_time</a></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m1">set_by</a> [NICKMAX]</td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classHostItem.html#m2">data</a> [MAXBUF]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds an entry for a ban list, exemption list, or invite list.
+<p>
+This class contains a single element in a channel list, such as a banlist.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00029">29</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="HostItem::HostItem"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> HostItem::HostItem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00036">36</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00036 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="HostItem::~HostItem"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual HostItem::~HostItem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00037">37</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00037 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m2" doxytag="HostItem::data"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char HostItem::data[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00034">34</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="HostItem::set_by"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char HostItem::set_by[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00033">33</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="HostItem::set_time"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t HostItem::set_time
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00032">32</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classHostItem.png b/docs/module-doc/classHostItem.png
new file mode 100644
index 000000000..99f88aacd
--- /dev/null
+++ b/docs/module-doc/classHostItem.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InviteItem Member List</h1>This is the complete list of members for <a class="el" href="classInviteItem.html">InviteItem</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m2">data</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a0">HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m1">set_by</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#m0">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classHostItem.html#a1">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InviteItem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InviteItem Class Reference</h1>A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for InviteItem:
+<p><center><img src="classInviteItem.png" usemap="#InviteItem_map" border="0" alt=""></center>
+<map name="InviteItem_map">
+<area href="classHostItem.html" alt="HostItem" shape="rect" coords="0,0,64,24">
+</map>
+<a href="classInviteItem-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to hold channel invites (+I).
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00061">61</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/classInviteItem.png b/docs/module-doc/classInviteItem.png
new file mode 100644
index 000000000..8ebdd8403
--- /dev/null
+++ b/docs/module-doc/classInviteItem.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Invited Member List</h1>This is the complete list of members for <a class="el" href="classInvited.html">Invited</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classInvited.html#m0">channel</a></td><td><a class="el" href="classInvited.html">Invited</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Invited class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Invited Class Reference</h1>Holds a channel name to which a user has been invited.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classInvited-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classInvited.html#m0">channel</a> [CHANMAX]</td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds a channel name to which a user has been invited.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00047">47</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
+<a name="m0" doxytag="Invited::channel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char Invited::channel[CHANMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00050">50</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00072">userrec::InviteTo()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Module Member List</h1>This is the complete list of members for <a class="el" href="classModule.html">Module</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a2">GetVersion</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a0">Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a3">OnUserConnect</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a5">OnUserJoin</a>(userrec *user, chanrec *channel)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a6">OnUserPart</a>(userrec *user, chanrec *channel)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a4">OnUserQuit</a>(userrec *user)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModule.html#a1">~Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Module class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Module Class Reference</h1>Base class for all InspIRCd modules This class is the base class for InspIRCd modules.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classModule-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a0">Module</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor creates a module class.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a1">~Module</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor destroys a module class.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classVersion.html">Version</a>&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a2">GetVersion</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the version number of a Module.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a3">OnUserConnect</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user connects.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a4">OnUserQuit</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user quits.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a5">OnUserJoin</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user joins a channel.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classModule.html#a6">OnUserPart</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Called when a user parts a channel.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Base class for all InspIRCd modules This class is the base class for InspIRCd modules.
+<p>
+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 <a class="el" href="classModuleFactory.html">ModuleFactory</a> class (see relevent section) for the plugin to be initialised.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00079">79</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Module::Module"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Module::Module </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor creates a module class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00040">40</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00040 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="Module::~Module"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Module::~Module </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor destroys a module class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00041">41</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00041 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="Module::GetVersion"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classVersion.html">Version</a> Module::GetVersion </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the version number of a Module.
+<p>
+The method should return a <a class="el" href="classVersion.html">Version</a> object with its version information assigned via <a class="el" href="classVersion.html#a0">Version::Version</a>
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00046">46</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00046 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="Module::OnUserConnect"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserConnect </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>user</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user connects.
+<p>
+The details of the connecting user are available to you in the parameter userrec *user
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00042">42</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00042 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="Module::OnUserJoin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserJoin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>user</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>channel</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user joins a channel.
+<p>
+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
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00044">44</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00044 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="Module::OnUserPart"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>user</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>channel</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user parts a channel.
+<p>
+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
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00045">45</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00045 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="Module::OnUserQuit"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Module::OnUserQuit </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>user</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Called when a user quits.
+<p>
+The details of the exiting user are available to you in the parameter userrec *user
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00043">43</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00043 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ModuleFactory Member List</h1>This is the complete list of members for <a class="el" href="classModuleFactory.html">ModuleFactory</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a2">CreateModule</a>()=0</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [pure virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a0">ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classModuleFactory.html#a1">~ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ModuleFactory class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ModuleFactory Class Reference</h1>Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classModuleFactory-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a0">ModuleFactory</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a1">~ModuleFactory</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classModule.html">Module</a> *&nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html#a2">CreateModule</a> ()=0</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creates a new module.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.
+<p>
+This is to allow for modules to create many different variants of <a class="el" href="classModule.html">Module</a>, dependent on architecture, configuration, etc. In most cases, the simple class shown in the example module m_foobar.so will suffice for most modules.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00316">316</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ModuleFactory::ModuleFactory"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ModuleFactory::ModuleFactory </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00319">319</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+<div class="fragment"><pre>00319 { }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ModuleFactory::~ModuleFactory"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual ModuleFactory::~ModuleFactory </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00320">320</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+<div class="fragment"><pre>00320 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="ModuleFactory::CreateModule"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual <a class="el" href="classModule.html">Module</a>* ModuleFactory::CreateModule </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates a new module.
+<p>
+Your inherited class of ModuleFactory must return a pointer to your <a class="el" href="classModule.html">Module</a> class using this method. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Server Member List</h1>This is the complete list of members for <a class="el" href="classServer.html">Server</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a15">ChanMode</a>(userrec *User, chanrec *Chan)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a9">CommonChannels</a>(userrec *u1, userrec *u2)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a3">Debug</a>(string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a14">FindChannel</a>(string channel)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a13">FindNick</a>(string nick)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a18">GetAdmin</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a17">GetNetworkName</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a16">GetServerName</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a12">IsNick</a>(string nick)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a4">Send</a>(int Socket, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a8">SendChannel</a>(userrec *User, chanrec *Channel, string s, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a10">SendCommon</a>(userrec *User, string text, bool IncludeSender)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a6">SendFrom</a>(int Socket, userrec *User, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a2">SendOpers</a>(string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a5">SendServ</a>(int Socket, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a7">SendTo</a>(userrec *Source, userrec *Dest, string s)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a11">SendWallops</a>(userrec *User, string text)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a0">Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classServer.html#a1">~Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Server class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Server Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classServer-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a0">Server</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a1">~Server</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Default destructor.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a2">SendOpers</a> (string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text to all opers.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a3">Debug</a> (string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a debug string.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a4">Send</a> (int Socket, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a line of text down a TCP/IP socket.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a5">SendServ</a> (int Socket, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from the server to a socket.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a6">SendFrom</a> (int Socket, <a class="el" href="classuserrec.html">userrec</a> *User, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to a socket.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a7">SendTo</a> (<a class="el" href="classuserrec.html">userrec</a> *Source, <a class="el" href="classuserrec.html">userrec</a> *Dest, string s)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to another user.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a8">SendChannel</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Channel, string s, bool IncludeSender)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to a channel (mulicast).</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a9">CommonChannels</a> (<a class="el" href="classuserrec.html">userrec</a> *u1, <a class="el" href="classuserrec.html">userrec</a> *u2)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if two users share a common channel.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a10">SendCommon</a> (<a class="el" href="classuserrec.html">userrec</a> *User, string text, bool IncludeSender)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends text from a user to one or more channels (mulicast).</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a11">SendWallops</a> (<a class="el" href="classuserrec.html">userrec</a> *User, string text)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Sends a WALLOPS message.</em> <a href="#a11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a12">IsNick</a> (string nick)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a nick is valid.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a13">FindNick</a> (string nick)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a nick and return a pointer to it.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a14">FindChannel</a> (string channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a channel and return a pointer to it.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a15">ChanMode</a> (<a class="el" href="classuserrec.html">userrec</a> *User, <a class="el" href="classchanrec.html">chanrec</a> *Chan)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Attempts to look up a user's privilages on a channel.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a16">GetServerName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the server name of the server where the module is loaded.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual string&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a17">GetNetworkName</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the network name, global to all linked servers.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual <a class="el" href="classAdmin.html">Admin</a>&nbsp;</td><td valign=bottom><a class="el" href="classServer.html#a18">GetAdmin</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns the information of the server as returned by the /ADMIN command.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00121">121</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Server::Server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Server::Server </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+Creates a Server object.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00052">52</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00053 {
+00054 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="Server::~Server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Server::~Server </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default destructor.
+<p>
+Destroys a Server object.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00056">56</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a15" doxytag="Server::ChanMode"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::ChanMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Chan</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a user's privilages on a channel.
+<p>
+This function will return a string containing either @, , +, or an empty string, representing the user's privilages upon the channel you specify.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00139">139</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00140 {
+00141 string mode = cmode(User,Chan);
+00142 <span class="keywordflow">return</span> mode;
+00143 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a9" doxytag="Server::CommonChannels"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::CommonChannels </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>u1</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>u2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if two users share a common channel.
+<p>
+This method is used internally by the NICK and QUIT commands, and the <a class="el" href="classServer.html#a10">Server::SendCommon</a> method.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00102">102</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00103 {
+00104 <span class="keywordflow">return</span> (common_channels(u1,u2) != 0);
+00105 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="Server::Debug"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::Debug </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>s</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a debug string.
+<p>
+This method writes a line of text to the debug log. If debugging is disabled in the configuration, this command has no effect.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00065">65</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00066 {
+00067 debug(<span class="stringliteral">"%s"</span>,s.c_str());
+00068 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a14" doxytag="Server::FindChannel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classchanrec.html">chanrec</a> * Server::FindChannel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a channel and return a pointer to it.
+<p>
+This function will return NULL if the channel does not exist.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00134">134</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00135 {
+00136 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a13" doxytag="Server::FindNick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classuserrec.html">userrec</a> * Server::FindNick </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>nick</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Attempts to look up a nick and return a pointer to it.
+<p>
+This function will return NULL if the nick does not exist.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00129">129</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00130 {
+00131 <span class="keywordflow">return</span> Find(nick);
+00132 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a18" doxytag="Server::GetAdmin"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classAdmin.html">Admin</a> Server::GetAdmin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the information of the server as returned by the /ADMIN command.
+<p>
+See the <a class="el" href="classAdmin.html">Admin</a> class for further information of the return value. The members <a class="el" href="classAdmin.html#m2">Admin::Nick</a>, <a class="el" href="classAdmin.html#m1">Admin::Email</a> and <a class="el" href="classAdmin.html#m0">Admin::Name</a> contain the information for the server where the module is loaded.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00155">155</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00156 {
+00157 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00158 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a17" doxytag="Server::GetNetworkName"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::GetNetworkName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the network name, global to all linked servers.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00150">150</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 <span class="keywordflow">return</span> getnetworkname();
+00153 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a16" doxytag="Server::GetServerName"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string Server::GetServerName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the server name of the server where the module is loaded.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00145">145</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00146 {
+00147 <span class="keywordflow">return</span> getservername();
+00148 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a12" doxytag="Server::IsNick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool Server::IsNick </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>nick</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a nick is valid.
+<p>
+Nicks for unregistered connections will return false.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00124">124</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00125 {
+00126 <span class="keywordflow">return</span> (isnick(nick.c_str()) != 0);
+00127 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="Server::Send"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::Send </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a line of text down a TCP/IP socket.
+<p>
+This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00070">70</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00071 {
+00072 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a8" doxytag="Server::SendChannel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendChannel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Channel</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>IncludeSender</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to a channel (mulicast).
+<p>
+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).
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00090">90</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00091 {
+00092 <span class="keywordflow">if</span> (IncludeSender)
+00093 {
+00094 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00095 }
+00096 <span class="keywordflow">else</span>
+00097 {
+00098 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00099 }
+00100 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a10" doxytag="Server::SendCommon"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendCommon </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>text</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>IncludeSender</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to one or more channels (mulicast).
+<p>
+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.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00107">107</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00108 {
+00109 <span class="keywordflow">if</span> (IncludeSender)
+00110 {
+00111 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00112 }
+00113 <span class="keywordflow">else</span>
+00114 {
+00115 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00116 }
+00117 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="Server::SendFrom"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendFrom </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to a socket.
+<p>
+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)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00080">80</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00081 {
+00082 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00083 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a2" doxytag="Server::SendOpers"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendOpers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">string&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>s</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text to all opers.
+<p>
+This method sends a server notice to all opers with the usermode +s.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00060">60</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00061 {
+00062 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00063 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="Server::SendServ"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendServ </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Socket</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from the server to a socket.
+<p>
+This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00075">75</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00078 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a7" doxytag="Server::SendTo"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendTo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>Dest</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>s</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends text from a user to another user.
+<p>
+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)
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00085">85</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00086 {
+00087 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00088 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a11" doxytag="Server::SendWallops"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void Server::SendWallops </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>User</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>string&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>text</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sends a WALLOPS message.
+<p>
+This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00119">119</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00120 {
+00121 WriteWallOps(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00122 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Version Member List</h1>This is the complete list of members for <a class="el" href="classVersion.html">Version</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m3">Build</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m0">Major</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m1">Minor</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#m2">Revision</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classVersion.html#a0">Version</a>(int major, int minor, int revision, int build)</td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Version class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>Version Class Reference</h1>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 href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="modules_8h-source.html">modules.h</a>&gt;</code>
+<p>
+<a href="classVersion-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#a0">Version</a> (int major, int minor, int revision, int build)</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m0">Major</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m1">Minor</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m2">Revision</a></td></tr>
+<tr><td nowrap align=right valign=top>const int&nbsp;</td><td valign=bottom><a class="el" href="classVersion.html#m3">Build</a></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.
+<p>
+A class of type Version is returned by the GetVersion method of the <a class="el" href="classModule.html">Module</a> class.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00054">54</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="Version::Version"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> Version::Version </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>major</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>minor</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>revision</em>, </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td class="md" nowrap>int&nbsp;</td>
+ <td class="mdname" nowrap>&nbsp; <em>build</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00029">29</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+<div class="fragment"><pre>00029 : <a class="code" href="classVersion.html#m0">Major</a>(major), <a class="code" href="classVersion.html#m1">Minor</a>(minor), <a class="code" href="classVersion.html#m2">Revision</a>(revision), <a class="code" href="classVersion.html#m3">Build</a>(build) { };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m3" doxytag="Version::Build"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Build
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="Version::Major"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Major
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="Version::Minor"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Minor
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="Version::Revision"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const int Version::Revision
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00057">57</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="modules_8h-source.html">modules.h</a><li><a class="el" href="modules_8cpp-source.html">modules.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>chanrec Member List</h1>This is the complete list of members for <a class="el" href="classchanrec.html">chanrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m14">bans</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m13">c_private</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#a0">chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m3">created</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m1">custom_modes</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m10">inviteonly</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m7">key</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m6">limit</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m11">moderated</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m0">name</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m9">noexternal</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m12">secret</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m5">setby</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m2">topic</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m8">topiclock</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#m4">topicset</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classchanrec.html#a1">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>chanrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>chanrec Class Reference</h1>Holds all relevent information for a channel.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<a href="classchanrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a0">chanrec</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creates a channel record and initialises it with default values.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a1">~chanrec</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m0">name</a> [CHANMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The channels name.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m1">custom_modes</a> [MAXMODES]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Custom modes for the channel.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m2">topic</a> [MAXBUF]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Channel topic.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m3">created</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Creation time.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m4">topicset</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Time topic was set.</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m5">setby</a> [NICKMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The last user to set the topic.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m6">limit</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel user limit.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m7">key</a> [32]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel key.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m8">topiclock</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +t is set.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m9">noexternal</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +n is set.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m10">inviteonly</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +i is set.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m11">moderated</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +m is set.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m12">secret</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +s is set.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m13">c_private</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +p is set.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m14">bans</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The list of all bans set on the channel.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds all relevent information for a channel.
+<p>
+This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00082">82</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="chanrec::chanrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> chanrec::chanrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates a channel record and initialises it with default values.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00150">150</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00151 {
+00152 strcpy(name,<span class="stringliteral">""</span>);
+00153 strcpy(custom_modes,<span class="stringliteral">""</span>);
+00154 strcpy(topic,<span class="stringliteral">""</span>);
+00155 strcpy(setby,<span class="stringliteral">""</span>);
+00156 strcpy(key,<span class="stringliteral">""</span>);
+00157 <a class="code" href="classchanrec.html#m3">created</a> = <a class="code" href="classchanrec.html#m4">topicset</a> = <a class="code" href="classchanrec.html#m6">limit</a> = 0;
+00158 <a class="code" href="classchanrec.html#m8">topiclock</a> = <a class="code" href="classchanrec.html#m9">noexternal</a> = <a class="code" href="classchanrec.html#m10">inviteonly</a> = <a class="code" href="classchanrec.html#m11">moderated</a> = <a class="code" href="classchanrec.html#m12">secret</a> = <a class="code" href="classchanrec.html#m13">c_private</a> = <span class="keyword">false</span>;
+00159 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="chanrec::~chanrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual chanrec::~chanrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00161">161</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00161 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m14" doxytag="chanrec::bans"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> chanrec::bans
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The list of all bans set on the channel.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00146">146</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m13" doxytag="chanrec::c_private"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::c_private
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +p is set.
+<p>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#m12">chanrec::secret</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00142">142</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m3" doxytag="chanrec::created"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t chanrec::created
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creation time.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00098">98</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="chanrec::custom_modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::custom_modes[MAXMODES]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Custom modes for the channel.
+<p>
+Plugins may use this field in any way they see fit.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00091">91</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m10" doxytag="chanrec::inviteonly"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::inviteonly
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +i is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00128">128</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m7" doxytag="chanrec::key"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::key[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains the channel key.
+<p>
+If this value is an empty string, there is no channel key in place.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00116">116</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m6" doxytag="chanrec::limit"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long chanrec::limit
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains the channel user limit.
+<p>
+If this value is zero, there is no limit in place.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00111">111</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m11" doxytag="chanrec::moderated"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::moderated
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +m is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00132">132</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="chanrec::name"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::name[CHANMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The channels name.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00087">87</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m9" doxytag="chanrec::noexternal"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::noexternal
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +n is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00124">124</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m12" doxytag="chanrec::secret"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::secret
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +s is set.
+<p>
+This value cannot be set at the same time as <a class="el" href="classchanrec.html#m13">chanrec::c_private</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00137">137</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m5" doxytag="chanrec::setby"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::setby[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The last user to set the topic.
+<p>
+If this member is an empty string, no topic was ever set.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00106">106</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="chanrec::topic"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char chanrec::topic[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Channel topic.
+<p>
+If this is an empty string, no channel topic is set.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00095">95</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m8" doxytag="chanrec::topiclock"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> short int chanrec::topiclock
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Nonzero if the mode +t is set.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00120">120</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<a name="m4" doxytag="chanrec::topicset"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t chanrec::topicset
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Time topic was set.
+<p>
+If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#m3">chanrec::created</a>
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00102">102</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Alphabetical index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound Index</h1><table align=center width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classConfigReader.html">ConfigReader</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</td></tr></table>
+</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHostItem.html">HostItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModule.html">Module</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classucrec.html">ucrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classuserrec.html">userrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classBanItem.html">BanItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExemptItem.html">ExemptItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInvited.html">Invited</a>&nbsp;&nbsp;&nbsp;</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</td></tr></table>
+</td></tr><tr><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</td></tr></table>
+</td><td><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</td></tr></table>
+</td><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classVersion.html">Version</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classchanrec.html">chanrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classFileReader.html">FileReader</a>&nbsp;&nbsp;&nbsp;</td></tr></table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ucrec Member List</h1>This is the complete list of members for <a class="el" href="classucrec.html">ucrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#m1">channel</a></td><td><a class="el" href="classucrec.html">ucrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#m0">uc_modes</a></td><td><a class="el" href="classucrec.html">ucrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#a0">ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classucrec.html#a1">~ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>ucrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>ucrec Class Reference</h1>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.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
+<p>
+<a href="classucrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#a0">ucrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#a1">~ucrec</a> ()</td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#m0">uc_modes</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Contains a bitmask of the UCMODE_OP ...</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td><td valign=bottom><a class="el" href="classucrec.html#m1">channel</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Points to the channel record where the given modes apply.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+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.
+<p>
+The uc_modes member holds a bitmask of which privilages the user has on the channel, such as op, voice, etc.
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00178">178</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="ucrec::ucrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> ucrec::ucrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00191">191</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00191 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="ucrec::~ucrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual ucrec::~ucrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00192">192</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+<div class="fragment"><pre>00192 { <span class="comment">/* stub */</span> }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m1" doxytag="ucrec::channel"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classchanrec.html">chanrec</a>* ucrec::channel
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Points to the channel record where the given modes apply.
+<p>
+If the record is not in use, this value will be NULL.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00189">189</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec::userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="ucrec::uc_modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long ucrec::uc_modes
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Contains a bitmask of the UCMODE_OP ...
+<p>
+UCMODE_FOUNDER values. If this value is zero, the user has no privilages upon the channel.
+<p>
+Definition at line <a class="el" href="channels_8h-source.html#l00184">184</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="channels_8h-source.html">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>userrec Member List</h1>This is the complete list of members for <a class="el" href="classuserrec.html">userrec</a>, including all inherited members.<table>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m16">awaymsg</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m18">bytes_in</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m19">bytes_out</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m14">chans</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m20">cmds_in</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m21">cmds_out</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m4">dhost</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m6">fd</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m5">fullname</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a2">GetFullHost</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a3">GetFullRealHost</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m23">haspassed</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m3">host</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m2">ident</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m11">idle_lastmsg</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m8">inbuf</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#o0">invites</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [private]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a5">InviteTo</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m1">ip</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a4">IsInvited</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m9">lastping</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m7">modes</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m0">nick</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m12">nping</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m17">port</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m13">registered</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a6">RemoveInvite</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m22">result</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m15">server</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#m10">signon</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a0">userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+ <tr bgcolor="#f0f0f0"><td><a class="el" href="classuserrec.html#a1">~userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>userrec class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>userrec Class Reference</h1>Holds all information about a user This class stores all information about a user connected to the irc server.
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="users_8h-source.html">users.h</a>&gt;</code>
+<p>
+<a href="classuserrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
+<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a0">userrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a1">~userrec</a> ()</td></tr>
+<tr><td nowrap align=right valign=top>virtual char *&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a2">GetFullHost</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual char *&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a3">GetFullRealHost</a> ()</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a4">IsInvited</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a user is invited to a channel.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a5">InviteTo</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Adds a channel to a users invite list (invites them to a channel).</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#a6">RemoveInvite</a> (char *channel)</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Removes a channel from a users invite list.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m0">nick</a> [NICKMAX]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users nickname.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m1">ip</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users ip address in network order.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m2">ident</a> [64]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users ident reply.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m3">host</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users hostname, or ip address in string form.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m4">dhost</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The host displayed to non-opers (used for cloaking etc).</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m5">fullname</a> [128]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users full name.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m6">fd</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users file descriptor.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m7">modes</a> [32]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The user's mode string.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m8">inbuf</a> [MAXBUF]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users input buffer.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m9">lastping</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The last time the user was pinged by the core.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m10">signon</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The users signon time.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m11">idle_lastmsg</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The time the user last sent a message.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m12">nping</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>True if the user replied to their last ping.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m13">registered</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="classucrec.html">ucrec</a>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m14">chans</a> [MAXCHANS]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A list of the channels the user is currently on.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m15">server</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The server the user is connected to.</em> <a href="#m15"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m16">awaymsg</a> [512]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The user's away message.</em> <a href="#m16"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m17">port</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>The port that the user connected to.</em> <a href="#m17"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m18">bytes_in</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of incoming bytes from the connection.</em> <a href="#m18"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m19">bytes_out</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of outgoing bytes to the connection.</em> <a href="#m19"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m20">cmds_in</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of incoming commands from the connection.</em> <a href="#m20"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m21">cmds_out</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the number of outgoing commands to the connection.</em> <a href="#m21"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m22">result</a> [256]</td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Stores the result of the last GetFullHost or GetRealHost call.</em> <a href="#m22"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#m23">haspassed</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>True if a correct password has been given using PASS command.</em> <a href="#m23"></a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td nowrap align=right valign=top><a class="el" href="users_8h.html#a6">InvitedList</a>&nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html#o0">invites</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>A list of channels the user has a pending invite to.</em> <a href="#o0"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Holds all information about a user This class stores all information about a user connected to the irc server.
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00080">80</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a name="a0" doxytag="userrec::userrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> userrec::userrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00023">23</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00183">bytes_in</a>, <a class="el" href="users_8h-source.html#l00188">bytes_out</a>, <a class="el" href="channels_8h-source.html#l00189">ucrec::channel</a>, <a class="el" href="users_8h-source.html#l00165">chans</a>, <a class="el" href="users_8h-source.html#l00193">cmds_in</a>, <a class="el" href="users_8h-source.html#l00198">cmds_out</a>, <a class="el" href="users_8h-source.html#l00120">fd</a>, <a class="el" href="users_8h-source.html#l00209">haspassed</a>, <a class="el" href="users_8h-source.html#l00147">idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00086">invites</a>, <a class="el" href="users_8h-source.html#l00097">ip</a>, <a class="el" href="users_8h-source.html#l00138">lastping</a>, <a class="el" href="users_8h-source.html#l00153">nping</a>, <a class="el" href="users_8h-source.html#l00178">port</a>, <a class="el" href="users_8h-source.html#l00159">registered</a>, and <a class="el" href="users_8h-source.html#l00142">signon</a>.
+<p>
+<div class="fragment"><pre>00024 {
+00025 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+00026 strcpy(nick,<span class="stringliteral">""</span>);
+00027 <a class="code" href="classuserrec.html#m1">ip</a> = 0;
+00028 strcpy(ident,<span class="stringliteral">""</span>);
+00029 strcpy(host,<span class="stringliteral">""</span>);
+00030 strcpy(dhost,<span class="stringliteral">""</span>);
+00031 strcpy(fullname,<span class="stringliteral">""</span>);
+00032 strcpy(modes,<span class="stringliteral">""</span>);
+00033 strcpy(inbuf,<span class="stringliteral">""</span>);
+00034 strcpy(server,<span class="stringliteral">""</span>);
+00035 strcpy(awaymsg,<span class="stringliteral">""</span>);
+00036 <a class="code" href="classuserrec.html#m6">fd</a> = <a class="code" href="classuserrec.html#m9">lastping</a> = <a class="code" href="classuserrec.html#m10">signon</a> = <a class="code" href="classuserrec.html#m11">idle_lastmsg</a> = <a class="code" href="classuserrec.html#m12">nping</a> = <a class="code" href="classuserrec.html#m13">registered</a> = 0;
+00037 <a class="code" href="classuserrec.html#m17">port</a> = <a class="code" href="classuserrec.html#m18">bytes_in</a> = <a class="code" href="classuserrec.html#m19">bytes_out</a> = <a class="code" href="classuserrec.html#m20">cmds_in</a> = <a class="code" href="classuserrec.html#m21">cmds_out</a> = 0;
+00038 <a class="code" href="classuserrec.html#m23">haspassed</a> = <span class="keyword">false</span>;
+00039 strcpy(result,<span class="stringliteral">""</span>);
+00040 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+00041 {
+00042 <a class="code" href="classuserrec.html#m14">chans</a>[i].<a class="code" href="classucrec.html#m1">channel</a> = NULL;
+00043 }
+00044 <a class="code" href="classuserrec.html#o0">invites</a>.clear();
+00045 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a1" doxytag="userrec::~userrec"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual userrec::~userrec </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00213">213</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+<div class="fragment"><pre>00213 { }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a name="a2" doxytag="userrec::GetFullHost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char * userrec::GetFullHost </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00048">48</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00203">result</a>.
+<p>
+<div class="fragment"><pre>00049 {
+00050 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
+00051 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00052 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a3" doxytag="userrec::GetFullRealHost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char * userrec::GetFullRealHost </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00055">55</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00203">result</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
+00058 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00059 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a5" doxytag="userrec::InviteTo"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void userrec::InviteTo </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Adds a channel to a users invite list (invites them to a channel).
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00072">72</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00050">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00073 {
+00074 <a class="code" href="classInvited.html">Invited</a> i;
+00075 strcpy(i.<a class="code" href="classInvited.html#m0">channel</a>,channel);
+00076 <a class="code" href="classuserrec.html#o0">invites</a>.push_back(i);
+00077 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a4" doxytag="userrec::IsInvited"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool userrec::IsInvited </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if a user is invited to a channel.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00061">61</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00062 {
+00063 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00064 {
+00065 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00066 {
+00067 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00068 }
+00069 }
+00070 }
+</pre></div> </td>
+ </tr>
+</table>
+<a name="a6" doxytag="userrec::RemoveInvite"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void userrec::RemoveInvite </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">char *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap>&nbsp; <em>channel</em> </td>
+ <td class="md" valign="top">)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Removes a channel from a users invite list.
+<p>
+This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
+<p>
+Definition at line <a class="el" href="users_8cpp-source.html#l00079">79</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00086">invites</a>.
+<p>
+<div class="fragment"><pre>00080 {
+00081 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00082 {
+00083 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00084 {
+00085 <a class="code" href="classuserrec.html#o0">invites</a>.erase(i);
+00086 <span class="keywordflow">return</span>;
+00087 }
+00088 }
+00089 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a name="m16" doxytag="userrec::awaymsg"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::awaymsg[512]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The user's away message.
+<p>
+If this string is empty, the user is not marked as away.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00174">174</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m18" doxytag="userrec::bytes_in"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::bytes_in
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of incoming bytes from the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00183">183</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m19" doxytag="userrec::bytes_out"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::bytes_out
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of outgoing bytes to the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00188">188</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m14" doxytag="userrec::chans"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="classucrec.html">ucrec</a> userrec::chans[MAXCHANS]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+A list of the channels the user is currently on.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00165">165</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m20" doxytag="userrec::cmds_in"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::cmds_in
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of incoming commands from the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00193">193</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m21" doxytag="userrec::cmds_out"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> long userrec::cmds_out
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the number of outgoing commands to the connection.
+<p>
+Used by /STATS
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00198">198</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m4" doxytag="userrec::dhost"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::dhost[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The host displayed to non-opers (used for cloaking etc).
+<p>
+This usually matches the value of <a class="el" href="classuserrec.html#m3">userrec::host</a>.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00110">110</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m6" doxytag="userrec::fd"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::fd
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users file descriptor.
+<p>
+If this is zero, the socket has been closed and the core has not yet realised and removed the record from memory.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00120">120</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m5" doxytag="userrec::fullname"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::fullname[128]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users full name.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00114">114</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m23" doxytag="userrec::haspassed"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool userrec::haspassed
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if a correct password has been given using PASS command.
+<p>
+If the user is a member of a connection class that does not require a password, the value stored here is of no use.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00209">209</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m3" doxytag="userrec::host"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::host[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users hostname, or ip address in string form.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00105">105</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m2" doxytag="userrec::ident"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::ident[64]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users ident reply.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00101">101</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m11" doxytag="userrec::idle_lastmsg"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::idle_lastmsg
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The time the user last sent a message.
+<p>
+See also <a class="el" href="classuserrec.html#m9">userrec::lastping</a> and <a class="el" href="classuserrec.html#m10">userrec::signon</a>
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00147">147</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m8" doxytag="userrec::inbuf"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::inbuf[MAXBUF]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users input buffer.
+<p>
+Used by the C recv() function.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00131">131</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="o0" doxytag="userrec::invites"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="users_8h.html#a6">InvitedList</a> userrec::invites<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+A list of channels the user has a pending invite to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00086">86</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00072">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00061">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00079">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m1" doxytag="userrec::ip"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> unsigned long userrec::ip
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users ip address in network order.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00097">97</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m9" doxytag="userrec::lastping"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::lastping
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The last time the user was pinged by the core.
+<p>
+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.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00138">138</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m7" doxytag="userrec::modes"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::modes[32]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The user's mode string.
+<p>
+This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00126">126</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m0" doxytag="userrec::nick"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::nick[NICKMAX]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users nickname.
+<p>
+An invalid nickname indicates an unregistered connection prior to the NICK command.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00093">93</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m12" doxytag="userrec::nping"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::nping
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+True if the user replied to their last ping.
+<p>
+If this is true, the user can be sent another ping at the specified time, otherwise they will be discnnected. See also <a class="el" href="classuserrec.html#m9">userrec::lastping</a>
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00153">153</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m17" doxytag="userrec::port"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::port
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The port that the user connected to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00178">178</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m13" doxytag="userrec::registered"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> int userrec::registered
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Bit 1 is set if the user sent a NICK command, bit 2 is set if the user sent a USER command.
+<p>
+If both bits are set then the connection is awaiting MOTD. Sending of MOTD sets bit 3, and makes the value of <a class="el" href="classuserrec.html#m13">userrec::registered</a> == 7, showing a fully established client session.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00159">159</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<a name="m22" doxytag="userrec::result"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::result[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Stores the result of the last GetFullHost or GetRealHost call.
+<p>
+You may use this to increase the speed of use of this class.
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00203">203</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00048">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00055">GetFullRealHost()</a>. </td>
+ </tr>
+</table>
+<a name="m15" doxytag="userrec::server"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> char userrec::server[256]
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The server the user is connected to.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00169">169</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="m10" doxytag="userrec::signon"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> time_t userrec::signon
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The users signon time.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00142">142</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00023">userrec()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="users_8h-source.html">users.h</a><li><a class="el" href="users_8cpp-source.html">users.cpp</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:48 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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
--- /dev/null
+++ b/docs/module-doc/doxygen.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd File List</h1>Here is a list of all files with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="channels_8h.html">channels.h</a> <a href="channels_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="modules_8cpp.html">modules.cpp</a> <a href="modules_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="modules_8h.html">modules.h</a> <a href="modules_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="users_8cpp.html">users.cpp</a> <a href="users_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="users_8h.html">users.h</a> <a href="users_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/ftv2blank.png b/docs/module-doc/ftv2blank.png
new file mode 100644
index 000000000..3f626d64f
--- /dev/null
+++ b/docs/module-doc/ftv2blank.png
Binary files differ
diff --git a/docs/module-doc/ftv2doc.png b/docs/module-doc/ftv2doc.png
new file mode 100644
index 000000000..2d16532a6
--- /dev/null
+++ b/docs/module-doc/ftv2doc.png
Binary files differ
diff --git a/docs/module-doc/ftv2folderclosed.png b/docs/module-doc/ftv2folderclosed.png
new file mode 100644
index 000000000..fc9426819
--- /dev/null
+++ b/docs/module-doc/ftv2folderclosed.png
Binary files differ
diff --git a/docs/module-doc/ftv2folderopen.png b/docs/module-doc/ftv2folderopen.png
new file mode 100644
index 000000000..30e9a2c37
--- /dev/null
+++ b/docs/module-doc/ftv2folderopen.png
Binary files differ
diff --git a/docs/module-doc/ftv2lastnode.png b/docs/module-doc/ftv2lastnode.png
new file mode 100644
index 000000000..f1fc64e48
--- /dev/null
+++ b/docs/module-doc/ftv2lastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2link.png b/docs/module-doc/ftv2link.png
new file mode 100644
index 000000000..f2549516c
--- /dev/null
+++ b/docs/module-doc/ftv2link.png
Binary files differ
diff --git a/docs/module-doc/ftv2mlastnode.png b/docs/module-doc/ftv2mlastnode.png
new file mode 100644
index 000000000..0de7e451f
--- /dev/null
+++ b/docs/module-doc/ftv2mlastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2mnode.png b/docs/module-doc/ftv2mnode.png
new file mode 100644
index 000000000..72f185b0b
--- /dev/null
+++ b/docs/module-doc/ftv2mnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2node.png b/docs/module-doc/ftv2node.png
new file mode 100644
index 000000000..c23e9f943
--- /dev/null
+++ b/docs/module-doc/ftv2node.png
Binary files differ
diff --git a/docs/module-doc/ftv2plastnode.png b/docs/module-doc/ftv2plastnode.png
new file mode 100644
index 000000000..1bc6181ab
--- /dev/null
+++ b/docs/module-doc/ftv2plastnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2pnode.png b/docs/module-doc/ftv2pnode.png
new file mode 100644
index 000000000..2f6070ca2
--- /dev/null
+++ b/docs/module-doc/ftv2pnode.png
Binary files differ
diff --git a/docs/module-doc/ftv2vertline.png b/docs/module-doc/ftv2vertline.png
new file mode 100644
index 000000000..f5a03787b
--- /dev/null
+++ b/docs/module-doc/ftv2vertline.png
Binary files 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Compound Member Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Compound Members</h1><center>
+<a href="#index_a">a</a>&nbsp;|&nbsp;<a href="#index_b">b</a>&nbsp;|&nbsp;<a href="#index_c">c</a>&nbsp;|&nbsp;<a href="#index_d">d</a>&nbsp;|&nbsp;<a href="#index_e">e</a>&nbsp;|&nbsp;<a href="#index_f">f</a>&nbsp;|&nbsp;<a href="#index_g">g</a>&nbsp;|&nbsp;<a href="#index_h">h</a>&nbsp;|&nbsp;<a href="#index_i">i</a>&nbsp;|&nbsp;<a href="#index_k">k</a>&nbsp;|&nbsp;<a href="#index_l">l</a>&nbsp;|&nbsp;<a href="#index_m">m</a>&nbsp;|&nbsp;<a href="#index_n">n</a>&nbsp;|&nbsp;<a href="#index_o">o</a>&nbsp;|&nbsp;<a href="#index_p">p</a>&nbsp;|&nbsp;<a href="#index_r">r</a>&nbsp;|&nbsp;<a href="#index_s">s</a>&nbsp;|&nbsp;<a href="#index_t">t</a>&nbsp;|&nbsp;<a href="#index_u">u</a>&nbsp;|&nbsp;<a href="#index_v">v</a>&nbsp;|&nbsp;<a href="#index_~">~</a></center>
+
+<p>
+Here is a list of all class members with links to the classes they belong to:<h3><a name="index_a">- a -</a>
+</h3><ul>
+<li>Admin()
+: <a class="el" href="classAdmin.html#a0">Admin</a><li>awaymsg
+: <a class="el" href="classuserrec.html#m16">userrec</a></ul>
+<h3><a name="index_b">- b -</a>
+</h3><ul>
+<li>bans
+: <a class="el" href="classchanrec.html#m14">chanrec</a><li>Build
+: <a class="el" href="classVersion.html#m3">Version</a><li>bytes_in
+: <a class="el" href="classuserrec.html#m18">userrec</a><li>bytes_out
+: <a class="el" href="classuserrec.html#m19">userrec</a></ul>
+<h3><a name="index_c">- c -</a>
+</h3><ul>
+<li>c_private
+: <a class="el" href="classchanrec.html#m13">chanrec</a><li>ChanMode()
+: <a class="el" href="classServer.html#a15">Server</a><li>channel
+: <a class="el" href="classInvited.html#m0">Invited</a>, <a class="el" href="classucrec.html#m1">ucrec</a><li>chanrec()
+: <a class="el" href="classchanrec.html#a0">chanrec</a><li>chans
+: <a class="el" href="classuserrec.html#m14">userrec</a><li>cmds_in
+: <a class="el" href="classuserrec.html#m20">userrec</a><li>cmds_out
+: <a class="el" href="classuserrec.html#m21">userrec</a><li>CommonChannels()
+: <a class="el" href="classServer.html#a9">Server</a><li>ConfigReader()
+: <a class="el" href="classConfigReader.html#a1">ConfigReader</a><li>created
+: <a class="el" href="classchanrec.html#m3">chanrec</a><li>CreateModule()
+: <a class="el" href="classModuleFactory.html#a2">ModuleFactory</a><li>custom_modes
+: <a class="el" href="classchanrec.html#m1">chanrec</a></ul>
+<h3><a name="index_d">- d -</a>
+</h3><ul>
+<li>data
+: <a class="el" href="classHostItem.html#m2">HostItem</a><li>Debug()
+: <a class="el" href="classServer.html#a3">Server</a><li>dhost
+: <a class="el" href="classuserrec.html#m4">userrec</a></ul>
+<h3><a name="index_e">- e -</a>
+</h3><ul>
+<li>Email
+: <a class="el" href="classAdmin.html#m1">Admin</a><li>Enumerate()
+: <a class="el" href="classConfigReader.html#a4">ConfigReader</a></ul>
+<h3><a name="index_f">- f -</a>
+</h3><ul>
+<li>fc
+: <a class="el" href="classFileReader.html#o0">FileReader</a><li>fd
+: <a class="el" href="classuserrec.html#m6">userrec</a><li>FileReader()
+: <a class="el" href="classFileReader.html#a1">FileReader</a><li>FileSize()
+: <a class="el" href="classFileReader.html#a5">FileReader</a><li>FindChannel()
+: <a class="el" href="classServer.html#a14">Server</a><li>FindNick()
+: <a class="el" href="classServer.html#a13">Server</a><li>fname
+: <a class="el" href="classConfigReader.html#n0">ConfigReader</a><li>fullname
+: <a class="el" href="classuserrec.html#m5">userrec</a></ul>
+<h3><a name="index_g">- g -</a>
+</h3><ul>
+<li>GetAdmin()
+: <a class="el" href="classServer.html#a18">Server</a><li>GetFullHost()
+: <a class="el" href="classuserrec.html#a2">userrec</a><li>GetFullRealHost()
+: <a class="el" href="classuserrec.html#a3">userrec</a><li>GetLine()
+: <a class="el" href="classFileReader.html#a4">FileReader</a><li>GetNetworkName()
+: <a class="el" href="classServer.html#a17">Server</a><li>GetServerName()
+: <a class="el" href="classServer.html#a16">Server</a><li>GetVersion()
+: <a class="el" href="classModule.html#a2">Module</a></ul>
+<h3><a name="index_h">- h -</a>
+</h3><ul>
+<li>haspassed
+: <a class="el" href="classuserrec.html#m23">userrec</a><li>host
+: <a class="el" href="classuserrec.html#m3">userrec</a>, <a class="el" href="classConnectClass.html#m1">ConnectClass</a><li>HostItem()
+: <a class="el" href="classHostItem.html#a0">HostItem</a></ul>
+<h3><a name="index_i">- i -</a>
+</h3><ul>
+<li>ident
+: <a class="el" href="classuserrec.html#m2">userrec</a><li>idle_lastmsg
+: <a class="el" href="classuserrec.html#m11">userrec</a><li>inbuf
+: <a class="el" href="classuserrec.html#m8">userrec</a><li>inviteonly
+: <a class="el" href="classchanrec.html#m10">chanrec</a><li>invites
+: <a class="el" href="classuserrec.html#o0">userrec</a><li>InviteTo()
+: <a class="el" href="classuserrec.html#a5">userrec</a><li>ip
+: <a class="el" href="classuserrec.html#m1">userrec</a><li>IsInvited()
+: <a class="el" href="classuserrec.html#a4">userrec</a><li>IsNick()
+: <a class="el" href="classServer.html#a12">Server</a></ul>
+<h3><a name="index_k">- k -</a>
+</h3><ul>
+<li>key
+: <a class="el" href="classchanrec.html#m7">chanrec</a></ul>
+<h3><a name="index_l">- l -</a>
+</h3><ul>
+<li>lastping
+: <a class="el" href="classuserrec.html#m9">userrec</a><li>limit
+: <a class="el" href="classchanrec.html#m6">chanrec</a><li>LoadFile()
+: <a class="el" href="classFileReader.html#a3">FileReader</a></ul>
+<h3><a name="index_m">- m -</a>
+</h3><ul>
+<li>Major
+: <a class="el" href="classVersion.html#m0">Version</a><li>Minor
+: <a class="el" href="classVersion.html#m1">Version</a><li>moderated
+: <a class="el" href="classchanrec.html#m11">chanrec</a><li>modes
+: <a class="el" href="classuserrec.html#m7">userrec</a><li>Module()
+: <a class="el" href="classModule.html#a0">Module</a><li>ModuleFactory()
+: <a class="el" href="classModuleFactory.html#a0">ModuleFactory</a></ul>
+<h3><a name="index_n">- n -</a>
+</h3><ul>
+<li>name
+: <a class="el" href="classchanrec.html#m0">chanrec</a><li>Name
+: <a class="el" href="classAdmin.html#m0">Admin</a><li>nick
+: <a class="el" href="classuserrec.html#m0">userrec</a><li>Nick
+: <a class="el" href="classAdmin.html#m2">Admin</a><li>noexternal
+: <a class="el" href="classchanrec.html#m9">chanrec</a><li>nping
+: <a class="el" href="classuserrec.html#m12">userrec</a></ul>
+<h3><a name="index_o">- o -</a>
+</h3><ul>
+<li>OnUserConnect()
+: <a class="el" href="classModule.html#a3">Module</a><li>OnUserJoin()
+: <a class="el" href="classModule.html#a5">Module</a><li>OnUserPart()
+: <a class="el" href="classModule.html#a6">Module</a><li>OnUserQuit()
+: <a class="el" href="classModule.html#a4">Module</a></ul>
+<h3><a name="index_p">- p -</a>
+</h3><ul>
+<li>pass
+: <a class="el" href="classConnectClass.html#m2">ConnectClass</a><li>port
+: <a class="el" href="classuserrec.html#m17">userrec</a></ul>
+<h3><a name="index_r">- r -</a>
+</h3><ul>
+<li>ReadValue()
+: <a class="el" href="classConfigReader.html#a3">ConfigReader</a><li>registered
+: <a class="el" href="classuserrec.html#m13">userrec</a><li>RemoveInvite()
+: <a class="el" href="classuserrec.html#a6">userrec</a><li>result
+: <a class="el" href="classuserrec.html#m22">userrec</a><li>Revision
+: <a class="el" href="classVersion.html#m2">Version</a></ul>
+<h3><a name="index_s">- s -</a>
+</h3><ul>
+<li>secret
+: <a class="el" href="classchanrec.html#m12">chanrec</a><li>Send()
+: <a class="el" href="classServer.html#a4">Server</a><li>SendChannel()
+: <a class="el" href="classServer.html#a8">Server</a><li>SendCommon()
+: <a class="el" href="classServer.html#a10">Server</a><li>SendFrom()
+: <a class="el" href="classServer.html#a6">Server</a><li>SendOpers()
+: <a class="el" href="classServer.html#a2">Server</a><li>SendServ()
+: <a class="el" href="classServer.html#a5">Server</a><li>SendTo()
+: <a class="el" href="classServer.html#a7">Server</a><li>SendWallops()
+: <a class="el" href="classServer.html#a11">Server</a><li>Server()
+: <a class="el" href="classServer.html#a0">Server</a><li>server
+: <a class="el" href="classuserrec.html#m15">userrec</a><li>set_by
+: <a class="el" href="classHostItem.html#m1">HostItem</a><li>set_time
+: <a class="el" href="classHostItem.html#m0">HostItem</a><li>setby
+: <a class="el" href="classchanrec.html#m5">chanrec</a><li>signon
+: <a class="el" href="classuserrec.html#m10">userrec</a></ul>
+<h3><a name="index_t">- t -</a>
+</h3><ul>
+<li>topic
+: <a class="el" href="classchanrec.html#m2">chanrec</a><li>topiclock
+: <a class="el" href="classchanrec.html#m8">chanrec</a><li>topicset
+: <a class="el" href="classchanrec.html#m4">chanrec</a><li>type
+: <a class="el" href="classConnectClass.html#m0">ConnectClass</a></ul>
+<h3><a name="index_u">- u -</a>
+</h3><ul>
+<li>uc_modes
+: <a class="el" href="classucrec.html#m0">ucrec</a><li>ucrec()
+: <a class="el" href="classucrec.html#a0">ucrec</a><li>userrec()
+: <a class="el" href="classuserrec.html#a0">userrec</a></ul>
+<h3><a name="index_v">- v -</a>
+</h3><ul>
+<li>Verify()
+: <a class="el" href="classConfigReader.html#a5">ConfigReader</a><li>Version()
+: <a class="el" href="classVersion.html#a0">Version</a></ul>
+<h3><a name="index_~">- ~ -</a>
+</h3><ul>
+<li>~chanrec()
+: <a class="el" href="classchanrec.html#a1">chanrec</a><li>~ConfigReader()
+: <a class="el" href="classConfigReader.html#a2">ConfigReader</a><li>~FileReader()
+: <a class="el" href="classFileReader.html#a2">FileReader</a><li>~HostItem()
+: <a class="el" href="classHostItem.html#a1">HostItem</a><li>~Module()
+: <a class="el" href="classModule.html#a1">Module</a><li>~ModuleFactory()
+: <a class="el" href="classModuleFactory.html#a1">ModuleFactory</a><li>~Server()
+: <a class="el" href="classServer.html#a1">Server</a><li>~ucrec()
+: <a class="el" href="classucrec.html#a1">ucrec</a><li>~userrec()
+: <a class="el" href="classuserrec.html#a1">userrec</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>File Member Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd File Members</h1><center>
+<a href="#index_b">b</a>&nbsp;|&nbsp;<a href="#index_c">c</a>&nbsp;|&nbsp;<a href="#index_e">e</a>&nbsp;|&nbsp;<a href="#index_f">f</a>&nbsp;|&nbsp;<a href="#index_i">i</a>&nbsp;|&nbsp;<a href="#index_s">s</a>&nbsp;|&nbsp;<a href="#index_u">u</a></center>
+
+<p>
+Here is a list of all file members with links to the files they belong to:<h3><a name="index_b">- b -</a>
+</h3><ul>
+<li>BanList
+: <a class="el" href="channels_8h.html#a5">channels.h</a></ul>
+<h3><a name="index_c">- c -</a>
+</h3><ul>
+<li>CC_ALLOW
+: <a class="el" href="users_8h.html#a4">users.h</a><li>CC_DENY
+: <a class="el" href="users_8h.html#a5">users.h</a><li>ClassVector
+: <a class="el" href="users_8h.html#a7">users.h</a></ul>
+<h3><a name="index_e">- e -</a>
+</h3><ul>
+<li>ExemptList
+: <a class="el" href="channels_8h.html#a6">channels.h</a></ul>
+<h3><a name="index_f">- f -</a>
+</h3><ul>
+<li>file_cache
+: <a class="el" href="modules_8h.html#a1">modules.h</a><li>FOREACH_MOD
+: <a class="el" href="modules_8h.html#a0">modules.h</a></ul>
+<h3><a name="index_i">- i -</a>
+</h3><ul>
+<li>InvitedList
+: <a class="el" href="users_8h.html#a6">users.h</a><li>InviteList
+: <a class="el" href="channels_8h.html#a7">channels.h</a></ul>
+<h3><a name="index_s">- s -</a>
+</h3><ul>
+<li>STATUS_HOP
+: <a class="el" href="users_8h.html#a1">users.h</a><li>STATUS_NORMAL
+: <a class="el" href="users_8h.html#a3">users.h</a><li>STATUS_OP
+: <a class="el" href="users_8h.html#a0">users.h</a><li>STATUS_VOICE
+: <a class="el" href="users_8h.html#a2">users.h</a></ul>
+<h3><a name="index_u">- u -</a>
+</h3><ul>
+<li>UCMODE_FOUNDER
+: <a class="el" href="channels_8h.html#a4">channels.h</a><li>UCMODE_HOP
+: <a class="el" href="channels_8h.html#a2">channels.h</a><li>UCMODE_OP
+: <a class="el" href="channels_8h.html#a0">channels.h</a><li>UCMODE_PROTECT
+: <a class="el" href="channels_8h.html#a3">channels.h</a><li>UCMODE_VOICE
+: <a class="el" href="channels_8h.html#a1">channels.h</a></ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:49 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Hierarchical Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="classAdmin.html">Admin</a>
+<li><a class="el" href="classchanrec.html">chanrec</a>
+<li><a class="el" href="classConfigReader.html">ConfigReader</a>
+<li><a class="el" href="classConnectClass.html">ConnectClass</a>
+<li><a class="el" href="classFileReader.html">FileReader</a>
+<li><a class="el" href="classHostItem.html">HostItem</a>
+<ul>
+<li><a class="el" href="classBanItem.html">BanItem</a>
+<li><a class="el" href="classExemptItem.html">ExemptItem</a>
+<li><a class="el" href="classInviteItem.html">InviteItem</a>
+</ul>
+<li><a class="el" href="classInvited.html">Invited</a>
+<li><a class="el" href="classModule.html">Module</a>
+<li><a class="el" href="classModuleFactory.html">ModuleFactory</a>
+<li><a class="el" href="classServer.html">Server</a>
+<li><a class="el" href="classucrec.html">ucrec</a>
+<li><a class="el" href="classuserrec.html">userrec</a>
+<li><a class="el" href="classVersion.html">Version</a>
+</ul>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InspIRCd</title></head>
+<frameset cols="250,*">
+ <frame src="tree.html" name="treefrm">
+ <frame src="main.html" name="basefrm">
+</frameset>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>InspIRCd Documentation</h1>
+<p>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:46 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.cpp</h1><a href="modules_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.9 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.7 2003/01/22 20:49:16 brain</span>
+00005 <span class="comment">Added FileReader file-caching class</span>
+00006 <span class="comment">Changed m_randquote to use FileReader class</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.6 2003/01/21 20:31:24 brain</span>
+00009 <span class="comment">Modified to add documentation</span>
+00010 <span class="comment">Added ConfigReader class for modules</span>
+00011 <span class="comment"></span>
+00012 <span class="comment">Revision 1.5 2003/01/13 22:30:50 brain</span>
+00013 <span class="comment">Added Admin class (holds /admin info for modules)</span>
+00014 <span class="comment">Added methods to Server class</span>
+00015 <span class="comment"></span>
+00016 <span class="comment"></span>
+00017 <span class="comment">*/</span>
+00018
+00019
+00020
+00021 <span class="preprocessor">#include &lt;typeinfo&gt;</span>
+00022 <span class="preprocessor">#include &lt;iostream.h&gt;</span>
+00023 <span class="preprocessor">#include "globals.h"</span>
+00024 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+00025 <span class="preprocessor">#include "inspircd_io.h"</span>
+00026
+00027 <span class="comment">// version is a simple class for holding a modules version number</span>
+00028
+<a name="l00029"></a><a class="code" href="classVersion.html#a0">00029</a> <a class="code" href="classVersion.html#a0">Version::Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build) : Major(major), Minor(minor), Revision(revision), Build(build) { };
+00030
+00031 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
+00032
+<a name="l00033"></a><a class="code" href="classAdmin.html#a0">00033</a> <a class="code" href="classAdmin.html#a0">Admin::Admin</a>(string name, string email, string nick) : Name(name), Email(email), Nick(nick) { };
+00034
+00035 <span class="comment">//</span>
+00036 <span class="comment">// Announce to the world that the Module base</span>
+00037 <span class="comment">// class has been created or destroyed</span>
+00038 <span class="comment">//</span>
+00039
+<a name="l00040"></a><a class="code" href="classModule.html#a0">00040</a> <a class="code" href="classModule.html#a0">Module::Module</a>() { }
+<a name="l00041"></a><a class="code" href="classModule.html#a1">00041</a> <a class="code" href="classModule.html#a1">Module::~Module</a>() { }
+<a name="l00042"></a><a class="code" href="classModule.html#a3">00042</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00043"></a><a class="code" href="classModule.html#a4">00043</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00044"></a><a class="code" href="classModule.html#a5">00044</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00045"></a><a class="code" href="classModule.html#a6">00045</a> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00046"></a><a class="code" href="classModule.html#a2">00046</a> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0); }
+00047
+00048 <span class="comment">// server is a wrapper class that provides methods to all of the C-style</span>
+00049 <span class="comment">// exports in the core</span>
+00050 <span class="comment">//</span>
+00051
+<a name="l00052"></a><a class="code" href="classServer.html#a0">00052</a> <a class="code" href="classServer.html#a0">Server::Server</a>()
+00053 {
+00054 }
+00055
+<a name="l00056"></a><a class="code" href="classServer.html#a1">00056</a> <a class="code" href="classServer.html#a1">Server::~Server</a>()
+00057 {
+00058 }
+00059
+<a name="l00060"></a><a class="code" href="classServer.html#a2">00060</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">Server::SendOpers</a>(string s)
+00061 {
+00062 WriteOpers(<span class="stringliteral">"%s"</span>,s.c_str());
+00063 }
+00064
+<a name="l00065"></a><a class="code" href="classServer.html#a3">00065</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Server::Debug</a>(string s)
+00066 {
+00067 debug(<span class="stringliteral">"%s"</span>,s.c_str());
+00068 }
+00069
+<a name="l00070"></a><a class="code" href="classServer.html#a4">00070</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Server::Send</a>(<span class="keywordtype">int</span> Socket, string s)
+00071 {
+00072 Write(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00073 }
+00074
+<a name="l00075"></a><a class="code" href="classServer.html#a5">00075</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, string s)
+00076 {
+00077 WriteServ(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+00078 }
+00079
+<a name="l00080"></a><a class="code" href="classServer.html#a6">00080</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, string s)
+00081 {
+00082 WriteFrom(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00083 }
+00084
+<a name="l00085"></a><a class="code" href="classServer.html#a7">00085</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, string s)
+00086 {
+00087 WriteTo(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+00088 }
+00089
+<a name="l00090"></a><a class="code" href="classServer.html#a8">00090</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, string s,<span class="keywordtype">bool</span> IncludeSender)
+00091 {
+00092 <span class="keywordflow">if</span> (IncludeSender)
+00093 {
+00094 WriteChannel(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00095 }
+00096 <span class="keywordflow">else</span>
+00097 {
+00098 ChanExceptSender(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+00099 }
+00100 }
+00101
+<a name="l00102"></a><a class="code" href="classServer.html#a9">00102</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
+00103 {
+00104 <span class="keywordflow">return</span> (common_channels(u1,u2) != 0);
+00105 }
+00106
+<a name="l00107"></a><a class="code" href="classServer.html#a10">00107</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text,<span class="keywordtype">bool</span> IncludeSender)
+00108 {
+00109 <span class="keywordflow">if</span> (IncludeSender)
+00110 {
+00111 WriteCommon(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00112 }
+00113 <span class="keywordflow">else</span>
+00114 {
+00115 WriteCommonExcept(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00116 }
+00117 }
+00118
+<a name="l00119"></a><a class="code" href="classServer.html#a11">00119</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text)
+00120 {
+00121 WriteWallOps(User,<span class="stringliteral">"%s"</span>,text.c_str());
+00122 }
+00123
+<a name="l00124"></a><a class="code" href="classServer.html#a12">00124</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">Server::IsNick</a>(string nick)
+00125 {
+00126 <span class="keywordflow">return</span> (isnick(nick.c_str()) != 0);
+00127 }
+00128
+<a name="l00129"></a><a class="code" href="classServer.html#a13">00129</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a13">Server::FindNick</a>(string nick)
+00130 {
+00131 <span class="keywordflow">return</span> Find(nick);
+00132 }
+00133
+<a name="l00134"></a><a class="code" href="classServer.html#a14">00134</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a14">Server::FindChannel</a>(string channel)
+00135 {
+00136 <span class="keywordflow">return</span> FindChan(channel.c_str());
+00137 }
+00138
+<a name="l00139"></a><a class="code" href="classServer.html#a15">00139</a> string <a class="code" href="classServer.html#a15">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+00140 {
+00141 string mode = cmode(User,Chan);
+00142 <span class="keywordflow">return</span> mode;
+00143 }
+00144
+<a name="l00145"></a><a class="code" href="classServer.html#a16">00145</a> string <a class="code" href="classServer.html#a16">Server::GetServerName</a>()
+00146 {
+00147 <span class="keywordflow">return</span> getservername();
+00148 }
+00149
+<a name="l00150"></a><a class="code" href="classServer.html#a17">00150</a> string <a class="code" href="classServer.html#a17">Server::GetNetworkName</a>()
+00151 {
+00152 <span class="keywordflow">return</span> getnetworkname();
+00153 }
+00154
+<a name="l00155"></a><a class="code" href="classServer.html#a18">00155</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a18">Server::GetAdmin</a>()
+00156 {
+00157 <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(getadminname(),getadminemail(),getadminnick());
+00158 }
+00159
+00160
+<a name="l00161"></a><a class="code" href="classConfigReader.html#a0">00161</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>()
+00162 {
+00163 <a class="code" href="classConfigReader.html#n0">fname</a> = CONFIG_FILE;
+00164 }
+00165
+00166
+<a name="l00167"></a><a class="code" href="classConfigReader.html#a2">00167</a> <a class="code" href="classConfigReader.html#a2">ConfigReader::~ConfigReader</a>()
+00168 {
+00169 }
+00170
+00171
+<a name="l00172"></a><a class="code" href="classConfigReader.html#a1">00172</a> <a class="code" href="classConfigReader.html#a0">ConfigReader::ConfigReader</a>(string filename) : fname(filename) { };
+00173
+<a name="l00174"></a><a class="code" href="classConfigReader.html#a3">00174</a> string <a class="code" href="classConfigReader.html#a3">ConfigReader::ReadValue</a>(string tag, string name, <span class="keywordtype">int</span> index)
+00175 {
+00176 <span class="keywordtype">char</span> val[MAXBUF];
+00177 ReadConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str(),name.c_str(),index,val);
+00178 string s = val;
+00179 <span class="keywordflow">return</span> s;
+00180 }
+00181
+00182
+<a name="l00183"></a><a class="code" href="classConfigReader.html#a4">00183</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">ConfigReader::Enumerate</a>(string tag)
+00184 {
+00185 <span class="keywordflow">return</span> EnumConf(<a class="code" href="classConfigReader.html#n0">fname</a>.c_str(),tag.c_str());
+00186 }
+00187
+00188
+<a name="l00189"></a><a class="code" href="classConfigReader.html#a5">00189</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">ConfigReader::Verify</a>()
+00190 {
+00191 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00192 }
+00193
+00194
+<a name="l00195"></a><a class="code" href="classFileReader.html#a1">00195</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>(string filename)
+00196 {
+00197 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00198 readfile(c,filename.c_str());
+00199 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00200 }
+00201
+<a name="l00202"></a><a class="code" href="classFileReader.html#a0">00202</a> <a class="code" href="classFileReader.html#a0">FileReader::FileReader</a>()
+00203 {
+00204 }
+00205
+<a name="l00206"></a><a class="code" href="classFileReader.html#a3">00206</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">FileReader::LoadFile</a>(string filename)
+00207 {
+00208 <a class="code" href="modules_8h.html#a1">file_cache</a> c;
+00209 readfile(c,filename.c_str());
+00210 this-&gt;<a class="code" href="classFileReader.html#o0">fc</a> = c;
+00211 }
+00212
+<a name="l00213"></a><a class="code" href="classFileReader.html#a2">00213</a> <a class="code" href="classFileReader.html#a2">FileReader::~FileReader</a>()
+00214 {
+00215 }
+00216
+<a name="l00217"></a><a class="code" href="classFileReader.html#a4">00217</a> string <a class="code" href="classFileReader.html#a4">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+00218 {
+00219 <span class="keywordflow">if</span> ((x&lt;0) || (x&gt;<a class="code" href="classFileReader.html#o0">fc</a>.size()))
+00220 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+00221 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>[x];
+00222 }
+00223
+<a name="l00224"></a><a class="code" href="classFileReader.html#a5">00224</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a5">FileReader::FileSize</a>()
+00225 {
+00226 <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#o0">fc</a>.size();
+00227 }
+00228
+00229
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.cpp File Reference</h1><code>#include &lt;typeinfo&gt;</code><br>
+<code>#include &lt;iostream.h&gt;</code><br>
+<code>#include "globals.h"</code><br>
+<code>#include "<a class="el" href="modules_8h-source.html">modules.h</a>"</code><br>
+<code>#include "inspircd_io.h"</code><br>
+
+<p>
+<a href="modules_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.h</h1><a href="modules_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.9 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.11 2003/01/22 20:49:16 brain</span>
+00005 <span class="comment">Added FileReader file-caching class</span>
+00006 <span class="comment">Changed m_randquote to use FileReader class</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.10 2003/01/22 00:57:27 brain</span>
+00009 <span class="comment">Changes to documentation</span>
+00010 <span class="comment"></span>
+00011 <span class="comment">Revision 1.9 2003/01/22 00:44:26 brain</span>
+00012 <span class="comment">Added documentation comments</span>
+00013 <span class="comment"></span>
+00014 <span class="comment">Revision 1.8 2003/01/21 20:31:24 brain</span>
+00015 <span class="comment">Modified to add documentation</span>
+00016 <span class="comment">Added ConfigReader class for modules</span>
+00017 <span class="comment"></span>
+00018 <span class="comment">Revision 1.7 2003/01/15 22:47:44 brain</span>
+00019 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00020 <span class="comment"></span>
+00021 <span class="comment">Revision 1.6 2003/01/13 22:30:50 brain</span>
+00022 <span class="comment">Added Admin class (holds /admin info for modules)</span>
+00023 <span class="comment">Added methods to Server class</span>
+00024 <span class="comment"></span>
+00025 <span class="comment"></span>
+00026 <span class="comment">*/</span>
+00027
+00028
+00029 <span class="preprocessor">#ifndef __PLUGIN_H</span>
+00030 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span>
+00031 <span class="preprocessor"></span>
+00032 <span class="preprocessor">#include "dynamic.h"</span>
+00033 <span class="preprocessor">#include &lt;string&gt;</span>
+00034 <span class="preprocessor">#include &lt;deque&gt;</span>
+00035
+<a name="l00038"></a><a class="code" href="modules_8h.html#a1">00038</a> <span class="keyword">typedef</span> deque&lt;string&gt; <a class="code" href="modules_8h.html#a1">file_cache</a>;
+00039
+00040
+00041 <span class="comment">// This #define allows us to call a method in all</span>
+00042 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
+00043 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+00044
+<a name="l00045"></a><a class="code" href="modules_8h.html#a0">00045</a> <span class="preprocessor">#define FOREACH_MOD for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</span>
+00046 <span class="preprocessor"></span>
+00047 <span class="comment">// class Version holds the version information of a Module, returned</span>
+00048 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+00049
+<a name="l00054"></a><a class="code" href="classVersion.html">00054</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a>
+00055 {
+00056 <span class="keyword">public</span>:
+<a name="l00057"></a><a class="code" href="classVersion.html#m2">00057</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#m0">Major</a>, <a class="code" href="classVersion.html#m1">Minor</a>, <a class="code" href="classVersion.html#m2">Revision</a>, <a class="code" href="classVersion.html#m3">Build</a>;
+00058 <a class="code" href="classVersion.html#a0">Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build);
+00059 };
+00060
+00061
+<a name="l00067"></a><a class="code" href="classAdmin.html">00067</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a>
+00068 {
+00069 <span class="keyword">public</span>:
+<a name="l00070"></a><a class="code" href="classAdmin.html#m2">00070</a> <span class="keyword">const</span> string <a class="code" href="classAdmin.html#m0">Name</a>, <a class="code" href="classAdmin.html#m1">Email</a>, <a class="code" href="classAdmin.html#m2">Nick</a>;
+00071 <a class="code" href="classAdmin.html#a0">Admin</a>(string name,string email,string nick);
+00072 };
+00073
+<a name="l00079"></a><a class="code" href="classModule.html">00079</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>
+00080 {
+00081 <span class="keyword">public</span>:
+00085 <a class="code" href="classModule.html#a0">Module</a>();
+00089 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>();
+00094 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>();
+00098 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00102 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+00107 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00112 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+00113 };
+00114
+00115
+<a name="l00121"></a><a class="code" href="classServer.html">00121</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>
+00122 {
+00123 <span class="keyword">public</span>:
+00127 <a class="code" href="classServer.html#a0">Server</a>();
+00131 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>();
+00132
+00136 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(string s);
+00141 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Debug</a>(string s);
+00146 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, string s);
+00151 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, string s);
+00156 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, string s);
+00161 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, string s);
+00168 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, string s,<span class="keywordtype">bool</span> IncludeSender);
+00173 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a9">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
+00181 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a10">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text,<span class="keywordtype">bool</span> IncludeSender);
+00186 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, string text);
+00187
+00191 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a12">IsNick</a>(string nick);
+00195 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a13">FindNick</a>(string nick);
+00199 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a14">FindChannel</a>(string channel);
+00204 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a15">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+00207 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a16">GetServerName</a>();
+00210 <span class="keyword">virtual</span> string <a class="code" href="classServer.html#a17">GetNetworkName</a>();
+00216 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a18">GetAdmin</a>();
+00217
+00218 };
+00219
+<a name="l00226"></a><a class="code" href="classConfigReader.html">00226</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a>
+00227 {
+00228 <span class="keyword">protected</span>:
+<a name="l00231"></a><a class="code" href="classConfigReader.html#n0">00231</a> string <a class="code" href="classConfigReader.html#n0">fname</a>;
+00232 <span class="keyword">public</span>:
+00237 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
+00241 <span class="comment"></span> <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(string filename); <span class="comment">// read a module-specific config</span>
+00245 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>();
+00250 string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(string tag, string name, <span class="keywordtype">int</span> index);
+00257 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a4">Enumerate</a>(string tag);
+00261 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a5">Verify</a>();
+00262 };
+00263
+00264
+00265
+<a name="l00271"></a><a class="code" href="classFileReader.html">00271</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a>
+00272 {
+<a name="l00273"></a><a class="code" href="classFileReader.html#o0">00273</a> <a class="code" href="modules_8h.html#a1">file_cache</a> <a class="code" href="classFileReader.html#o0">fc</a>;
+00274 <span class="keyword">public</span>:
+00279 <a class="code" href="classFileReader.html#a0">FileReader</a>();
+00285 <a class="code" href="classFileReader.html#a0">FileReader</a>(string filename);
+00289 <a class="code" href="classFileReader.html#a2">~FileReader</a>();
+00295 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(string filename);
+00300 string <a class="code" href="classFileReader.html#a4">GetLine</a>(<span class="keywordtype">int</span> x);
+00306 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a5">FileSize</a>();
+00307 };
+00308
+00309
+<a name="l00316"></a><a class="code" href="classModuleFactory.html">00316</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a>
+00317 {
+00318 <span class="keyword">public</span>:
+<a name="l00319"></a><a class="code" href="classModuleFactory.html#a0">00319</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { }
+<a name="l00320"></a><a class="code" href="classModuleFactory.html#a1">00320</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { }
+00325 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0;
+00326 };
+00327
+00328 <span class="preprocessor">#endif</span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>modules.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>modules.h File Reference</h1><code>#include "dynamic.h"</code><br>
+<code>#include &lt;string&gt;</code><br>
+<code>#include &lt;deque&gt;</code><br>
+
+<p>
+<a href="modules_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classAdmin.html">Admin</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds /ADMIN data This class contains the admin details of the local server.</em> <a href="classAdmin.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classConfigReader.html">ConfigReader</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classConfigReader.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classFileReader.html">FileReader</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Caches a text file into memory and can be used to retrieve lines from it.</em> <a href="classFileReader.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classModule.html">Module</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Base class for all InspIRCd modules This class is the base class for InspIRCd modules.</em> <a href="classModule.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classModuleFactory.html">ModuleFactory</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Instantiates classes inherited from <a class="el" href="classModule.html">Module</a> This class creates a class inherited from type <a class="el" href="classModule.html">Module</a>, using new.</em> <a href="classModuleFactory.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classServer.html">Server</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>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.</em> <a href="classServer.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classVersion.html">Version</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a module's Version information The four members (set by the constructor only) indicate details as to the version number of a module.</em> <a href="classVersion.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a0">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef deque&lt; string &gt;&nbsp;</td><td valign=bottom><a class="el" href="modules_8h.html#a1">file_cache</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Low level definition of a <a class="el" href="classFileReader.html">FileReader</a> classes file cache area.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a0" doxytag="modules.h::FOREACH_MOD"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt;= MODCOUNT; i++) modules[i]-&gt;
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00045">45</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a1" doxytag="modules.h::file_cache"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef deque&lt;string&gt; file_cache
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Low level definition of a <a class="el" href="classFileReader.html">FileReader</a> classes file cache area.
+<p>
+
+<p>
+Definition at line <a class="el" href="modules_8h-source.html#l00038">38</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00195">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00206">FileReader::LoadFile()</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<html><head>
+<link rel="stylesheet" href="doxygen.css">
+<script src="treeview.js"></script>
+<script src="tree.js"></script>
+<script>
+initializeDocument()
+</script>
+</head>
+<body bgcolor="#ffffff">
+</body>
+</html>
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("<b>InspIRCd</b>", "", "")
+ 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<folder.nChildren; i++)
+ folder.children[i].display()
+ }
+ else
+ {
+ if (folder.nodeImg)
+ if (folder.isLastNode)
+ folder.nodeImg.src = "ftv2plastnode.png"
+ else
+ folder.nodeImg.src = "ftv2pnode.png"
+ folder.iconImg.src = "ftv2folderclosed.png"
+ for (i=0; i<folder.nChildren; i++)
+ folder.children[i].hide()
+ }
+}
+
+function hideFolder()
+{
+ 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"
+ }
+
+ this.setState(0)
+}
+
+function initializeFolder(level, lastNode, leftSide)
+{
+var j=0
+var i=0
+var numberOfFolders
+var numberOfDocs
+var nc
+
+ nc = this.nChildren
+
+ this.createIndex()
+
+ var auxEv = ""
+
+ if (browserVersion > 0)
+ auxEv = "<a href='javascript:clickOnNode("+this.id+")'>"
+ else
+ auxEv = "<a>"
+
+ if (level>0)
+ if (lastNode) //the last 'brother' in the children array
+ {
+ this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>")
+ leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
+ this.isLastNode = 1
+ }
+ else
+ {
+ this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>")
+ leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
+ 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("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
+ }
+ if (browserVersion == 3)
+ {
+ doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>")
+ }
+
+ doc.write("\n<table ")
+ if (browserVersion == 1)
+ doc.write(" id='folder" + this.id + "' style='position:block;' ")
+ doc.write(" border=0 cellspacing=0 cellpadding=0>")
+ doc.write("\n<tr><td>")
+ doc.write(leftSide)
+ this.outputLink()
+ doc.write("<img name='folderIcon" + this.id + "' ")
+ doc.write("src='" + this.iconSrc+"' border=0></a>")
+ doc.write("</td>\n<td valign=middle nowrap>")
+ if (USETEXTLINKS)
+ {
+ this.outputLink()
+ doc.write(this.desc + "</a>")
+ }
+ else
+ doc.write(this.desc)
+ if (this.tagName!="")
+ {
+ doc.write(" [external]")
+ }
+ doc.write("</td>")
+ doc.write("\n</table>\n")
+
+ if (browserVersion == 2) {
+ doc.write("</layer>")
+ }
+ if (browserVersion == 3) {
+ doc.write("</div>")
+ }
+
+ 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("<a ")
+ if (this.tagName)
+ {
+ doc.write("doxygen='" + this.tagName + "' ");
+ }
+ doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ")
+ if (browserVersion > 0)
+ doc.write("onClick='javascript:clickOnFolder("+this.id+")'")
+ doc.write(">")
+ }
+ else
+ doc.write("<a>")
+}
+
+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 + "<img src='ftv2lastnode.png' width=16 height=22>")
+ leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"
+ }
+ else
+ {
+ this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>")
+ leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>"
+ }
+ else
+ this.renderOb("")
+}
+
+function drawItem(leftSide)
+{
+ if (browserVersion == 2)
+ doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>")
+ if (browserVersion == 3)
+ doc.write("<div id='item" + this.id + "' style='display:block;'>")
+
+ doc.write("\n<table ")
+ if (browserVersion == 1)
+ doc.write(" id='item" + this.id + "' style='position:block;' ")
+ doc.write(" border=0 cellspacing=0 cellpadding=0>\n")
+ doc.write("<tr><td>")
+ doc.write(leftSide)
+ if (this.link!="")
+ {
+ doc.write("<a href=" + this.link + ">")
+ }
+ doc.write("<img id='itemIcon"+this.id+"' ")
+ doc.write("src='"+this.iconSrc+"' border=0>")
+ if (this.link!="")
+ {
+ doc.write("</a>")
+ }
+ doc.write("</td>\n<td valign=middle nowrap>")
+ if (USETEXTLINKS && this.link!="")
+ doc.write("<a href=" + this.link + ">" + this.desc + "</a>")
+ else
+ doc.write(this.desc)
+ if (this.tagName!="")
+ {
+ doc.write(" [external]");
+ }
+ doc.write("\n</table>\n")
+
+ if (browserVersion == 2)
+ doc.write("</layer>")
+ if (browserVersion == 3)
+ doc.write("</div>")
+
+ 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("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>")
+
+ // 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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.cpp</h1><a href="users_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.3 2003/01/17 13:21:38 brain</span>
+00005 <span class="comment">Added CONNECT ALLOW and CONNECT DENY config tags</span>
+00006 <span class="comment">Added PASS command</span>
+00007 <span class="comment"></span>
+00008 <span class="comment">Revision 1.2 2003/01/17 10:37:55 brain</span>
+00009 <span class="comment">Added /INVITE command and relevent structures</span>
+00010 <span class="comment"></span>
+00011 <span class="comment">Revision 1.1 2003/01/16 01:10:04 brain</span>
+00012 <span class="comment">forgot to add this</span>
+00013 <span class="comment"></span>
+00014 <span class="comment"></span>
+00015 <span class="comment">*/</span>
+00016
+00017 <span class="preprocessor">#include "inspircd_config.h"</span>
+00018 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
+00019 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+00020 <span class="preprocessor">#include "inspircd.h"</span>
+00021 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+00022
+<a name="l00023"></a><a class="code" href="classuserrec.html#a0">00023</a> <a class="code" href="classuserrec.html#a0">userrec::userrec</a>()
+00024 {
+00025 <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+00026 strcpy(nick,<span class="stringliteral">""</span>);
+00027 <a class="code" href="classuserrec.html#m1">ip</a> = 0;
+00028 strcpy(ident,<span class="stringliteral">""</span>);
+00029 strcpy(host,<span class="stringliteral">""</span>);
+00030 strcpy(dhost,<span class="stringliteral">""</span>);
+00031 strcpy(fullname,<span class="stringliteral">""</span>);
+00032 strcpy(modes,<span class="stringliteral">""</span>);
+00033 strcpy(inbuf,<span class="stringliteral">""</span>);
+00034 strcpy(server,<span class="stringliteral">""</span>);
+00035 strcpy(awaymsg,<span class="stringliteral">""</span>);
+00036 <a class="code" href="classuserrec.html#m6">fd</a> = <a class="code" href="classuserrec.html#m9">lastping</a> = <a class="code" href="classuserrec.html#m10">signon</a> = <a class="code" href="classuserrec.html#m11">idle_lastmsg</a> = <a class="code" href="classuserrec.html#m12">nping</a> = <a class="code" href="classuserrec.html#m13">registered</a> = 0;
+00037 <a class="code" href="classuserrec.html#m17">port</a> = <a class="code" href="classuserrec.html#m18">bytes_in</a> = <a class="code" href="classuserrec.html#m19">bytes_out</a> = <a class="code" href="classuserrec.html#m20">cmds_in</a> = <a class="code" href="classuserrec.html#m21">cmds_out</a> = 0;
+00038 <a class="code" href="classuserrec.html#m23">haspassed</a> = <span class="keyword">false</span>;
+00039 strcpy(result,<span class="stringliteral">""</span>);
+00040 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+00041 {
+00042 <a class="code" href="classuserrec.html#m14">chans</a>[i].<a class="code" href="classucrec.html#m1">channel</a> = NULL;
+00043 }
+00044 <a class="code" href="classuserrec.html#o0">invites</a>.clear();
+00045 }
+00046
+00047
+<a name="l00048"></a><a class="code" href="classuserrec.html#a2">00048</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">userrec::GetFullHost</a>()
+00049 {
+00050 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,dhost);
+00051 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00052 }
+00053
+00054
+<a name="l00055"></a><a class="code" href="classuserrec.html#a3">00055</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">userrec::GetFullRealHost</a>()
+00056 {
+00057 sprintf(result,<span class="stringliteral">"%s!%s@%s"</span>,nick,ident,host);
+00058 <span class="keywordflow">return</span> <a class="code" href="classuserrec.html#m22">result</a>;
+00059 }
+00060
+<a name="l00061"></a><a class="code" href="classuserrec.html#a4">00061</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">userrec::IsInvited</a>(<span class="keywordtype">char</span>* channel)
+00062 {
+00063 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00064 {
+00065 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00066 {
+00067 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00068 }
+00069 }
+00070 }
+00071
+<a name="l00072"></a><a class="code" href="classuserrec.html#a5">00072</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">userrec::InviteTo</a>(<span class="keywordtype">char</span>* channel)
+00073 {
+00074 <a class="code" href="classInvited.html">Invited</a> i;
+00075 strcpy(i.<a class="code" href="classInvited.html#m0">channel</a>,channel);
+00076 <a class="code" href="classuserrec.html#o0">invites</a>.push_back(i);
+00077 }
+00078
+<a name="l00079"></a><a class="code" href="classuserrec.html#a6">00079</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">userrec::RemoveInvite</a>(<span class="keywordtype">char</span>* channel)
+00080 {
+00081 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#o0">invites</a>.begin(); i != <a class="code" href="classuserrec.html#o0">invites</a>.end(); i++)
+00082 {
+00083 <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
+00084 {
+00085 <a class="code" href="classuserrec.html#o0">invites</a>.erase(i);
+00086 <span class="keywordflow">return</span>;
+00087 }
+00088 }
+00089 }
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.cpp File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.cpp File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include "<a class="el" href="channels_8h-source.html">channels.h</a>"</code><br>
+<code>#include "<a class="el" href="users_8h-source.html">users.h</a>"</code><br>
+<code>#include "inspircd.h"</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+
+<p>
+<a href="users_8cpp-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.h</h1><a href="users_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
+00002 <span class="comment"></span>
+00003 <span class="comment">$Log$
+00003 <span class="comment">Revision 1.1 2003/01/23 19:45:58 brain
+00003 <span class="comment">Initial revision
+00003 <span class="comment">
+00003 <span class="comment">Revision 1.6 2003/01/22 20:59:12 brain
+00003 <span class="comment">Added FileReader class documentation
+00003 <span class="comment"></span>
+00004 <span class="comment">Revision 1.9 2003/01/22 00:44:26 brain</span>
+00005 <span class="comment">Added documentation comments</span>
+00006 <span class="comment"></span>
+00007 <span class="comment">Revision 1.8 2003/01/21 21:11:17 brain</span>
+00008 <span class="comment">Added documentation</span>
+00009 <span class="comment"></span>
+00010 <span class="comment">Revision 1.7 2003/01/17 13:21:38 brain</span>
+00011 <span class="comment">Added CONNECT ALLOW and CONNECT DENY config tags</span>
+00012 <span class="comment">Added PASS command</span>
+00013 <span class="comment"></span>
+00014 <span class="comment">Revision 1.6 2003/01/17 10:37:55 brain</span>
+00015 <span class="comment">Added /INVITE command and relevent structures</span>
+00016 <span class="comment"></span>
+00017 <span class="comment">Revision 1.5 2003/01/16 20:11:56 brain</span>
+00018 <span class="comment">fixed some ugly pointer bugs (thanks dblack and a|KK|y!)</span>
+00019 <span class="comment"></span>
+00020 <span class="comment">Revision 1.4 2003/01/15 22:47:44 brain</span>
+00021 <span class="comment">Changed user and channel structs to classes (finally)</span>
+00022 <span class="comment"></span>
+00023 <span class="comment">Revision 1.3 2003/01/14 21:14:30 brain</span>
+00024 <span class="comment">added /ISON command (for mIRC etc basic notify)</span>
+00025 <span class="comment"></span>
+00026 <span class="comment"></span>
+00027 <span class="comment">*/</span>
+00028
+00029 <span class="preprocessor">#include "inspircd_config.h"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
+00031
+00032 <span class="preprocessor">#include &lt;string&gt;</span>
+00033
+00034 <span class="preprocessor">#ifndef __USERS_H__ </span>
+00035 <span class="preprocessor"></span><span class="preprocessor">#define __USERS_H__ </span>
+00036 <span class="preprocessor"></span>
+<a name="l00037"></a><a class="code" href="users_8h.html#a0">00037</a> <span class="preprocessor">#define STATUS_OP 4</span>
+<a name="l00038"></a><a class="code" href="users_8h.html#a1">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP 2</span>
+<a name="l00039"></a><a class="code" href="users_8h.html#a2">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE 1</span>
+<a name="l00040"></a><a class="code" href="users_8h.html#a3">00040</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL 0</span>
+00041 <span class="preprocessor"></span>
+<a name="l00042"></a><a class="code" href="users_8h.html#a4">00042</a> <span class="preprocessor">#define CC_ALLOW 0</span>
+<a name="l00043"></a><a class="code" href="users_8h.html#a5">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY 1</span>
+00044 <span class="preprocessor"></span>
+<a name="l00047"></a><a class="code" href="classInvited.html">00047</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a>
+00048 {
+00049 <span class="keyword">public</span>:
+<a name="l00050"></a><a class="code" href="classInvited.html#m0">00050</a> <span class="keywordtype">char</span> <a class="code" href="classInvited.html#m0">channel</a>[CHANMAX];
+00051 };
+00052
+00053
+<a name="l00056"></a><a class="code" href="classConnectClass.html">00056</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a>
+00057 {
+00058 <span class="keyword">public</span>:
+<a name="l00059"></a><a class="code" href="classConnectClass.html#m0">00059</a> <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#m0">type</a>;
+<a name="l00060"></a><a class="code" href="classConnectClass.html#m1">00060</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#m1">host</a>[MAXBUF];
+<a name="l00061"></a><a class="code" href="classConnectClass.html#m2">00061</a> <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#m2">pass</a>[MAXBUF];
+00062 };
+00063
+<a name="l00066"></a><a class="code" href="users_8h.html#a6">00066</a> <span class="keyword">typedef</span> vector&lt;Invited&gt; <a class="code" href="users_8h.html#a6">InvitedList</a>;
+00067
+00068
+00069
+<a name="l00072"></a><a class="code" href="users_8h.html#a7">00072</a> <span class="keyword">typedef</span> vector&lt;ConnectClass&gt; <a class="code" href="users_8h.html#a7">ClassVector</a>;
+00073
+<a name="l00080"></a><a class="code" href="classuserrec.html">00080</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a>
+00081 {
+00082 <span class="keyword">private</span>:
+00083
+<a name="l00086"></a><a class="code" href="classuserrec.html#o0">00086</a> <a class="code" href="users_8h.html#a6">InvitedList</a> <a class="code" href="classuserrec.html#o0">invites</a>;
+00087 <span class="keyword">public</span>:
+00088
+<a name="l00093"></a><a class="code" href="classuserrec.html#m0">00093</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m0">nick</a>[NICKMAX];
+00094
+<a name="l00097"></a><a class="code" href="classuserrec.html#m1">00097</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m1">ip</a>;
+00098
+<a name="l00101"></a><a class="code" href="classuserrec.html#m2">00101</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m2">ident</a>[64];
+00102
+<a name="l00105"></a><a class="code" href="classuserrec.html#m3">00105</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m3">host</a>[256];
+00106
+<a name="l00110"></a><a class="code" href="classuserrec.html#m4">00110</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m4">dhost</a>[256];
+00111
+<a name="l00114"></a><a class="code" href="classuserrec.html#m5">00114</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m5">fullname</a>[128];
+00115
+<a name="l00120"></a><a class="code" href="classuserrec.html#m6">00120</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m6">fd</a>;
+00121
+<a name="l00126"></a><a class="code" href="classuserrec.html#m7">00126</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m7">modes</a>[32];
+00127
+<a name="l00131"></a><a class="code" href="classuserrec.html#m8">00131</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m8">inbuf</a>[MAXBUF];
+00132
+<a name="l00138"></a><a class="code" href="classuserrec.html#m9">00138</a> time_t <a class="code" href="classuserrec.html#m9">lastping</a>;
+00139
+<a name="l00142"></a><a class="code" href="classuserrec.html#m10">00142</a> time_t <a class="code" href="classuserrec.html#m10">signon</a>;
+00143
+<a name="l00147"></a><a class="code" href="classuserrec.html#m11">00147</a> time_t <a class="code" href="classuserrec.html#m11">idle_lastmsg</a>;
+00148
+<a name="l00153"></a><a class="code" href="classuserrec.html#m12">00153</a> time_t <a class="code" href="classuserrec.html#m12">nping</a>;
+00154
+<a name="l00159"></a><a class="code" href="classuserrec.html#m13">00159</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m13">registered</a>;
+00160
+<a name="l00165"></a><a class="code" href="classuserrec.html#m14">00165</a> <a class="code" href="classucrec.html">ucrec</a> <a class="code" href="classuserrec.html#m14">chans</a>[MAXCHANS];
+00166
+<a name="l00169"></a><a class="code" href="classuserrec.html#m15">00169</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m15">server</a>[256];
+00170
+<a name="l00174"></a><a class="code" href="classuserrec.html#m16">00174</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m16">awaymsg</a>[512];
+00175
+<a name="l00178"></a><a class="code" href="classuserrec.html#m17">00178</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#m17">port</a>;
+00179
+<a name="l00183"></a><a class="code" href="classuserrec.html#m18">00183</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m18">bytes_in</a>;
+00184
+<a name="l00188"></a><a class="code" href="classuserrec.html#m19">00188</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m19">bytes_out</a>;
+00189
+<a name="l00193"></a><a class="code" href="classuserrec.html#m20">00193</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m20">cmds_in</a>;
+00194
+<a name="l00198"></a><a class="code" href="classuserrec.html#m21">00198</a> <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#m21">cmds_out</a>;
+00199
+<a name="l00203"></a><a class="code" href="classuserrec.html#m22">00203</a> <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#m22">result</a>[256];
+00204
+<a name="l00209"></a><a class="code" href="classuserrec.html#m23">00209</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#m23">haspassed</a>;
+00210
+00211 <a class="code" href="classuserrec.html#a0">userrec</a>();
+00212
+<a name="l00213"></a><a class="code" href="classuserrec.html#a1">00213</a> <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#a1">~userrec</a>() { }
+00214
+00219 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">GetFullHost</a>();
+00220
+00226 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">GetFullRealHost</a>();
+00227
+00230 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">IsInvited</a>(<span class="keywordtype">char</span>* channel);
+00231
+00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">InviteTo</a>(<span class="keywordtype">char</span>* channel);
+00235
+00240 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
+00241
+00242 };
+00243
+00244
+00245 <span class="preprocessor">#endif</span>
+</pre></div><hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>
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 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>users.h File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3-rc2 -->
+<center>
+<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
+<hr><h1>users.h File Reference</h1><code>#include "inspircd_config.h"</code><br>
+<code>#include "<a class="el" href="channels_8h-source.html">channels.h</a>"</code><br>
+<code>#include &lt;string&gt;</code><br>
+
+<p>
+<a href="users_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Compounds</h2></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classConnectClass.html">ConnectClass</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.</em> <a href="classConnectClass.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classInvited.html">Invited</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a channel name to which a user has been invited.</em> <a href="classInvited.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>class &nbsp;</td><td valign=bottom><a class="el" href="classuserrec.html">userrec</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds all information about a user This class stores all information about a user connected to the irc server.</em> <a href="classuserrec.html#_details">More...</a><em></em></font><br><br></td></tr>
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a0">STATUS_OP</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a1">STATUS_HOP</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a2">STATUS_VOICE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a3">STATUS_NORMAL</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a4">CC_ALLOW</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a5">CC_DENY</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classInvited.html">Invited</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a6">InvitedList</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete list of all channels to which a user has been invited and has not yet joined.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
+<tr><td nowrap align=right valign=top>typedef vector&lt; <a class="el" href="classConnectClass.html">ConnectClass</a> &gt;&nbsp;</td><td valign=bottom><a class="el" href="users_8h.html#a7">ClassVector</a></td></tr>
+<tr><td>&nbsp;</td><td><font size=-1><em>Holds a complete list of all allow and deny tags from the configuration file (connection classes).</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a name="a4" doxytag="users.h::CC_ALLOW"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define CC_ALLOW&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00042">42</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a5" doxytag="users.h::CC_DENY"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define CC_DENY&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00043">43</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a1" doxytag="users.h::STATUS_HOP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_HOP&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00038">38</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a3" doxytag="users.h::STATUS_NORMAL"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_NORMAL&nbsp;&nbsp;&nbsp;0
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00040">40</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a0" doxytag="users.h::STATUS_OP"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_OP&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00037">37</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a2" doxytag="users.h::STATUS_VOICE"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define STATUS_VOICE&nbsp;&nbsp;&nbsp;1
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00039">39</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a name="a7" doxytag="users.h::ClassVector"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classConnectClass.html">ConnectClass</a>&gt; ClassVector
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete list of all allow and deny tags from the configuration file (connection classes).
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00072">72</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<a name="a6" doxytag="users.h::InvitedList"></a><p>
+<table width="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr>
+ <td class="md">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef vector&lt;<a class="el" href="classInvited.html">Invited</a>&gt; InvitedList
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Holds a complete list of all channels to which a user has been invited and has not yet joined.
+<p>
+
+<p>
+Definition at line <a class="el" href="users_8h-source.html#l00066">66</a> of file <a class="el" href="users_8h-source.html">users.h</a>. </td>
+ </tr>
+</table>
+<hr><address style="align: right;"><small>Generated on Wed Jan 22 20:56:47 2003 for InspIRCd by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.3-rc2 </small></address>
+</body>
+</html>