]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2578 e03df62e-2008...
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 19 Dec 2005 18:04:22 +0000 (18:04 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Mon, 19 Dec 2005 18:04:22 +0000 (18:04 +0000)
452 files changed:
docs/man/man3/Admin.3
docs/man/man3/BanItem.3
docs/man/man3/BoolSet.3
docs/man/man3/ConfigReader.3
docs/man/man3/ConnectClass.3
docs/man/man3/CullItem.3
docs/man/man3/CullList.3
docs/man/man3/DNS.3
docs/man/man3/ELine.3
docs/man/man3/Event.3
docs/man/man3/ExemptItem.3
docs/man/man3/ExtMode.3
docs/man/man3/Extensible.3
docs/man/man3/FileReader.3
docs/man/man3/GLine.3
docs/man/man3/HostItem.3
docs/man/man3/InspIRCd.3
docs/man/man3/InspSocket.3
docs/man/man3/InviteItem.3
docs/man/man3/Invited.3
docs/man/man3/KLine.3
docs/man/man3/ModeParameter.3
docs/man/man3/Module.3
docs/man/man3/ModuleFactory.3
docs/man/man3/ModuleMessage.3
docs/man/man3/QLine.3
docs/man/man3/Request.3
docs/man/man3/Server.3
docs/man/man3/ServerConfig.3
docs/man/man3/SocketEngine.3
docs/man/man3/Version.3
docs/man/man3/WhoWasUser.3
docs/man/man3/XLine.3
docs/man/man3/ZLine.3
docs/man/man3/_home_.3
docs/man/man3/_home_brain_.3
docs/man/man3/_home_brain_inspircd-cvs_.3
docs/man/man3/_home_brain_inspircd-cvs_inspircd_.3
docs/man/man3/_home_brain_inspircd-cvs_inspircd_include_.3
docs/man/man3/_home_brain_inspircd-cvs_inspircd_src_.3
docs/man/man3/aes.h.3 [new file with mode: 0644]
docs/man/man3/base.h.3
docs/man/man3/channels.cpp.3
docs/man/man3/channels.h.3
docs/man/man3/chanrec.3
docs/man/man3/classbase.3
docs/man/man3/command_t.3
docs/man/man3/commands.h.3
docs/man/man3/connection.3
docs/man/man3/connection.h.3
docs/man/man3/ctables.h.3
docs/man/man3/cull_list.h.3
docs/man/man3/dns.h.3
docs/man/man3/dns_ip4list.3
docs/man/man3/globals.h.3
docs/man/man3/hashcomp.h.3
docs/man/man3/inspircd.h.3
docs/man/man3/inspircd_io.h.3
docs/man/man3/irc.3
docs/man/man3/irc_InAddr_HashComp.3
docs/man/man3/irc_StrHashComp.3
docs/man/man3/irc_irc_char_traits.3
docs/man/man3/message.h.3
docs/man/man3/mode.h.3
docs/man/man3/modules.cpp.3
docs/man/man3/modules.h.3
docs/man/man3/nspace.3
docs/man/man3/nspace_hash_ in_addr _.3
docs/man/man3/nspace_hash_ string _.3
docs/man/man3/serverstats.3
docs/man/man3/socket.cpp.3
docs/man/man3/socket.h.3
docs/man/man3/socketengine.cpp.3
docs/man/man3/socketengine.h.3
docs/man/man3/std.3
docs/man/man3/std_char_traits.3
docs/man/man3/typedefs.h.3
docs/man/man3/ucrec.3
docs/man/man3/userprocess.h.3
docs/man/man3/userrec.3
docs/man/man3/users.cpp.3
docs/man/man3/users.h.3
docs/man/man3/xline.h.3
docs/module-doc/aes_8h-source.html [new file with mode: 0644]
docs/module-doc/aes_8h.html [new file with mode: 0644]
docs/module-doc/aes_8h__incl.map [new file with mode: 0644]
docs/module-doc/aes_8h__incl.md5 [new file with mode: 0644]
docs/module-doc/annotated.html
docs/module-doc/base_8h-source.html
docs/module-doc/base_8h.html
docs/module-doc/base_8h__dep__incl.map
docs/module-doc/base_8h__dep__incl.md5
docs/module-doc/channels_8cpp-source.html
docs/module-doc/channels_8cpp.html
docs/module-doc/channels_8cpp__incl.map
docs/module-doc/channels_8cpp__incl.md5
docs/module-doc/channels_8h-source.html
docs/module-doc/channels_8h.html
docs/module-doc/channels_8h__dep__incl.map
docs/module-doc/channels_8h__dep__incl.md5
docs/module-doc/classAdmin-members.html
docs/module-doc/classAdmin.html
docs/module-doc/classBanItem-members.html
docs/module-doc/classBanItem.html
docs/module-doc/classBoolSet-members.html
docs/module-doc/classBoolSet.html
docs/module-doc/classConfigReader-members.html
docs/module-doc/classConfigReader.html
docs/module-doc/classConnectClass-members.html
docs/module-doc/classConnectClass.html
docs/module-doc/classCullItem-members.html
docs/module-doc/classCullItem.html
docs/module-doc/classCullList-members.html
docs/module-doc/classCullList.html
docs/module-doc/classDNS-members.html
docs/module-doc/classDNS.html
docs/module-doc/classELine-members.html
docs/module-doc/classELine.html
docs/module-doc/classEvent-members.html
docs/module-doc/classEvent.html
docs/module-doc/classExemptItem-members.html
docs/module-doc/classExemptItem.html
docs/module-doc/classExtMode-members.html
docs/module-doc/classExtMode.html
docs/module-doc/classExtensible-members.html
docs/module-doc/classExtensible.html
docs/module-doc/classExtensible__inherit__graph.map
docs/module-doc/classExtensible__inherit__graph.md5
docs/module-doc/classFileReader-members.html
docs/module-doc/classFileReader.html
docs/module-doc/classGLine-members.html
docs/module-doc/classGLine.html
docs/module-doc/classHostItem-members.html
docs/module-doc/classHostItem.html
docs/module-doc/classInspIRCd-members.html
docs/module-doc/classInspIRCd.html
docs/module-doc/classInspIRCd__coll__graph.map
docs/module-doc/classInspIRCd__coll__graph.md5
docs/module-doc/classInspSocket-members.html
docs/module-doc/classInspSocket.html
docs/module-doc/classInspSocket__coll__graph.md5
docs/module-doc/classInviteItem-members.html
docs/module-doc/classInviteItem.html
docs/module-doc/classInvited-members.html
docs/module-doc/classInvited.html
docs/module-doc/classInvited__coll__graph.md5
docs/module-doc/classKLine-members.html
docs/module-doc/classKLine.html
docs/module-doc/classModeParameter-members.html
docs/module-doc/classModeParameter.html
docs/module-doc/classModule-members.html
docs/module-doc/classModule.html
docs/module-doc/classModuleFactory-members.html
docs/module-doc/classModuleFactory.html
docs/module-doc/classModuleMessage-members.html
docs/module-doc/classModuleMessage.html
docs/module-doc/classQLine-members.html
docs/module-doc/classQLine.html
docs/module-doc/classRequest-members.html
docs/module-doc/classRequest.html
docs/module-doc/classServer-members.html
docs/module-doc/classServer.html
docs/module-doc/classServerConfig-members.html
docs/module-doc/classServerConfig.html
docs/module-doc/classServerConfig__coll__graph.map
docs/module-doc/classServerConfig__coll__graph.md5
docs/module-doc/classSocketEngine-members.html
docs/module-doc/classSocketEngine.html
docs/module-doc/classVersion-members.html
docs/module-doc/classVersion.html
docs/module-doc/classWhoWasUser-members.html
docs/module-doc/classWhoWasUser.html
docs/module-doc/classXLine-members.html
docs/module-doc/classXLine.html
docs/module-doc/classZLine-members.html
docs/module-doc/classZLine.html
docs/module-doc/classchanrec-members.html
docs/module-doc/classchanrec.html
docs/module-doc/classclassbase-members.html
docs/module-doc/classclassbase.html
docs/module-doc/classclassbase__inherit__graph.md5
docs/module-doc/classcommand__t-members.html
docs/module-doc/classcommand__t.html
docs/module-doc/classcommand__t__coll__graph.map
docs/module-doc/classcommand__t__coll__graph.md5
docs/module-doc/classcommand__t__inherit__graph.map
docs/module-doc/classcommand__t__inherit__graph.md5
docs/module-doc/classconnection-members.html
docs/module-doc/classconnection.html
docs/module-doc/classes.html
docs/module-doc/classserverstats-members.html
docs/module-doc/classserverstats.html
docs/module-doc/classserverstats__coll__graph.md5
docs/module-doc/classstd_1_1char__traits.html
docs/module-doc/classucrec-members.html
docs/module-doc/classucrec.html
docs/module-doc/classuserrec-members.html
docs/module-doc/classuserrec.html
docs/module-doc/commands_8h-source.html
docs/module-doc/commands_8h.html
docs/module-doc/commands_8h__incl.map
docs/module-doc/commands_8h__incl.md5
docs/module-doc/connection_8h-source.html
docs/module-doc/connection_8h.html
docs/module-doc/connection_8h__dep__incl.md5
docs/module-doc/ctables_8h-source.html
docs/module-doc/ctables_8h.html
docs/module-doc/ctables_8h__dep__incl.map
docs/module-doc/ctables_8h__dep__incl.md5
docs/module-doc/ctables_8h__incl.map
docs/module-doc/ctables_8h__incl.md5
docs/module-doc/cull__list_8h-source.html
docs/module-doc/cull__list_8h.html
docs/module-doc/cull__list_8h__incl.map
docs/module-doc/cull__list_8h__incl.md5
docs/module-doc/dir_000000.html
docs/module-doc/dir_000000_dep.gif
docs/module-doc/dir_000001.html
docs/module-doc/dir_000001_dep.gif
docs/module-doc/dir_000002.html
docs/module-doc/dir_000002_dep.gif
docs/module-doc/dir_000003.html
docs/module-doc/dir_000003_dep.gif
docs/module-doc/dir_000004.html
docs/module-doc/dir_000004_dep.gif
docs/module-doc/dir_000005.html
docs/module-doc/dir_000005_000004.html
docs/module-doc/dir_000005_dep.gif
docs/module-doc/dirs.html
docs/module-doc/dns_8h-source.html
docs/module-doc/dns_8h.html
docs/module-doc/files.html
docs/module-doc/functions.html
docs/module-doc/functions_0x62.html
docs/module-doc/functions_0x63.html
docs/module-doc/functions_0x64.html
docs/module-doc/functions_0x65.html
docs/module-doc/functions_0x66.html
docs/module-doc/functions_0x67.html
docs/module-doc/functions_0x68.html
docs/module-doc/functions_0x69.html
docs/module-doc/functions_0x6a.html
docs/module-doc/functions_0x6b.html
docs/module-doc/functions_0x6c.html
docs/module-doc/functions_0x6d.html
docs/module-doc/functions_0x6e.html
docs/module-doc/functions_0x6f.html
docs/module-doc/functions_0x70.html
docs/module-doc/functions_0x71.html
docs/module-doc/functions_0x72.html
docs/module-doc/functions_0x73.html
docs/module-doc/functions_0x74.html
docs/module-doc/functions_0x75.html
docs/module-doc/functions_0x76.html
docs/module-doc/functions_0x77.html
docs/module-doc/functions_0x7e.html
docs/module-doc/functions_func.html
docs/module-doc/functions_func_0x62.html
docs/module-doc/functions_func_0x63.html
docs/module-doc/functions_func_0x64.html
docs/module-doc/functions_func_0x65.html
docs/module-doc/functions_func_0x66.html
docs/module-doc/functions_func_0x67.html
docs/module-doc/functions_func_0x68.html
docs/module-doc/functions_func_0x69.html
docs/module-doc/functions_func_0x6a.html
docs/module-doc/functions_func_0x6c.html
docs/module-doc/functions_func_0x6d.html
docs/module-doc/functions_func_0x6e.html
docs/module-doc/functions_func_0x6f.html
docs/module-doc/functions_func_0x70.html
docs/module-doc/functions_func_0x71.html
docs/module-doc/functions_func_0x72.html
docs/module-doc/functions_func_0x73.html
docs/module-doc/functions_func_0x74.html
docs/module-doc/functions_func_0x75.html
docs/module-doc/functions_func_0x76.html
docs/module-doc/functions_func_0x77.html
docs/module-doc/functions_func_0x7e.html
docs/module-doc/functions_vars.html
docs/module-doc/globals.html
docs/module-doc/globals_0x62.html
docs/module-doc/globals_0x63.html
docs/module-doc/globals_0x64.html
docs/module-doc/globals_0x65.html
docs/module-doc/globals_0x66.html
docs/module-doc/globals_0x67.html
docs/module-doc/globals_0x68.html
docs/module-doc/globals_0x69.html
docs/module-doc/globals_0x6b.html
docs/module-doc/globals_0x6c.html
docs/module-doc/globals_0x6d.html
docs/module-doc/globals_0x6e.html
docs/module-doc/globals_0x6f.html
docs/module-doc/globals_0x70.html
docs/module-doc/globals_0x71.html
docs/module-doc/globals_0x72.html
docs/module-doc/globals_0x73.html
docs/module-doc/globals_0x74.html
docs/module-doc/globals_0x75.html
docs/module-doc/globals_0x76.html
docs/module-doc/globals_0x77.html
docs/module-doc/globals_0x78.html
docs/module-doc/globals_0x7a.html
docs/module-doc/globals_8h-source.html
docs/module-doc/globals_8h.html
docs/module-doc/globals_8h__dep__incl.md5
docs/module-doc/globals_8h__incl.map
docs/module-doc/globals_8h__incl.md5
docs/module-doc/globals_defs.html
docs/module-doc/globals_enum.html
docs/module-doc/globals_eval.html
docs/module-doc/globals_func.html
docs/module-doc/globals_type.html
docs/module-doc/globals_vars.html
docs/module-doc/graph_legend.gif
docs/module-doc/graph_legend.html
docs/module-doc/hashcomp_8h-source.html
docs/module-doc/hashcomp_8h.html
docs/module-doc/hashcomp_8h__dep__incl.map
docs/module-doc/hashcomp_8h__dep__incl.md5
docs/module-doc/hierarchy.html
docs/module-doc/inherit__graph__0.map
docs/module-doc/inherit__graph__0.md5
docs/module-doc/inherit__graph__1.map
docs/module-doc/inherit__graph__1.md5
docs/module-doc/inherit__graph__10.map
docs/module-doc/inherit__graph__10.md5
docs/module-doc/inherit__graph__11.map
docs/module-doc/inherit__graph__11.md5
docs/module-doc/inherit__graph__12.map
docs/module-doc/inherit__graph__12.md5
docs/module-doc/inherit__graph__13.map
docs/module-doc/inherit__graph__13.md5
docs/module-doc/inherit__graph__14.map
docs/module-doc/inherit__graph__14.md5
docs/module-doc/inherit__graph__15.map
docs/module-doc/inherit__graph__15.md5
docs/module-doc/inherit__graph__2.map
docs/module-doc/inherit__graph__2.md5
docs/module-doc/inherit__graph__3.map
docs/module-doc/inherit__graph__3.md5
docs/module-doc/inherit__graph__4.map
docs/module-doc/inherit__graph__4.md5
docs/module-doc/inherit__graph__5.map
docs/module-doc/inherit__graph__5.md5
docs/module-doc/inherit__graph__6.map
docs/module-doc/inherit__graph__6.md5
docs/module-doc/inherit__graph__7.map
docs/module-doc/inherit__graph__7.md5
docs/module-doc/inherit__graph__8.map
docs/module-doc/inherit__graph__8.md5
docs/module-doc/inherit__graph__9.map
docs/module-doc/inherit__graph__9.md5
docs/module-doc/inherits.html
docs/module-doc/inspircd_8h-source.html
docs/module-doc/inspircd_8h.html
docs/module-doc/inspircd_8h__dep__incl.map
docs/module-doc/inspircd_8h__dep__incl.md5
docs/module-doc/inspircd_8h__incl.map
docs/module-doc/inspircd_8h__incl.md5
docs/module-doc/inspircd__io_8h-source.html
docs/module-doc/inspircd__io_8h.html
docs/module-doc/inspircd__io_8h__dep__incl.map
docs/module-doc/inspircd__io_8h__dep__incl.md5
docs/module-doc/inspircd__io_8h__incl.map
docs/module-doc/inspircd__io_8h__incl.md5
docs/module-doc/main.html
docs/module-doc/message_8h-source.html
docs/module-doc/message_8h.html
docs/module-doc/message_8h__dep__incl.map
docs/module-doc/message_8h__dep__incl.md5
docs/module-doc/message_8h__incl.map
docs/module-doc/message_8h__incl.md5
docs/module-doc/mode_8h-source.html
docs/module-doc/mode_8h.html
docs/module-doc/mode_8h__dep__incl.map
docs/module-doc/mode_8h__dep__incl.md5
docs/module-doc/mode_8h__incl.map
docs/module-doc/mode_8h__incl.md5
docs/module-doc/modules_8cpp-source.html
docs/module-doc/modules_8cpp.html
docs/module-doc/modules_8cpp__incl.map
docs/module-doc/modules_8cpp__incl.md5
docs/module-doc/modules_8h-source.html
docs/module-doc/modules_8h.html
docs/module-doc/modules_8h__dep__incl.map
docs/module-doc/modules_8h__dep__incl.md5
docs/module-doc/modules_8h__incl.map
docs/module-doc/modules_8h__incl.md5
docs/module-doc/namespaceirc.html
docs/module-doc/namespacemembers.html
docs/module-doc/namespacemembers_type.html
docs/module-doc/namespacenspace.html
docs/module-doc/namespaces.html
docs/module-doc/namespacestd.html
docs/module-doc/socket_8cpp-source.html
docs/module-doc/socket_8cpp.html
docs/module-doc/socket_8cpp__incl.map
docs/module-doc/socket_8cpp__incl.md5
docs/module-doc/socket_8h-source.html
docs/module-doc/socket_8h.html
docs/module-doc/socket_8h__dep__incl.map
docs/module-doc/socket_8h__dep__incl.md5
docs/module-doc/socketengine_8cpp-source.html
docs/module-doc/socketengine_8cpp.html
docs/module-doc/socketengine_8cpp__incl.map
docs/module-doc/socketengine_8cpp__incl.md5
docs/module-doc/socketengine_8h-source.html
docs/module-doc/socketengine_8h.html
docs/module-doc/socketengine_8h__dep__incl.map
docs/module-doc/socketengine_8h__dep__incl.md5
docs/module-doc/socketengine_8h__incl.md5
docs/module-doc/structdns__ip4list-members.html
docs/module-doc/structdns__ip4list.html
docs/module-doc/structirc_1_1InAddr__HashComp-members.html
docs/module-doc/structirc_1_1InAddr__HashComp.html
docs/module-doc/structirc_1_1StrHashComp-members.html
docs/module-doc/structirc_1_1StrHashComp.html
docs/module-doc/structirc_1_1irc__char__traits-members.html
docs/module-doc/structirc_1_1irc__char__traits.html
docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html
docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html
docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html
docs/module-doc/structnspace_1_1hash_3_01string_01_4.html
docs/module-doc/tree.html
docs/module-doc/typedefs_8h-source.html
docs/module-doc/typedefs_8h.html
docs/module-doc/typedefs_8h__dep__incl.map
docs/module-doc/typedefs_8h__dep__incl.md5
docs/module-doc/typedefs_8h__incl.map
docs/module-doc/typedefs_8h__incl.md5
docs/module-doc/userprocess_8h-source.html
docs/module-doc/userprocess_8h.html
docs/module-doc/userprocess_8h__incl.map
docs/module-doc/userprocess_8h__incl.md5
docs/module-doc/users_8cpp-source.html
docs/module-doc/users_8cpp.html
docs/module-doc/users_8cpp__incl.map
docs/module-doc/users_8cpp__incl.md5
docs/module-doc/users_8h-source.html
docs/module-doc/users_8h.html
docs/module-doc/users_8h__dep__incl.map
docs/module-doc/users_8h__dep__incl.md5
docs/module-doc/users_8h__incl.map
docs/module-doc/users_8h__incl.md5
docs/module-doc/xline_8h-source.html
docs/module-doc/xline_8h.html
docs/module-doc/xline_8h__dep__incl.map
docs/module-doc/xline_8h__dep__incl.md5
docs/module-doc/xline_8h__incl.map
docs/module-doc/xline_8h__incl.md5

index 96c0513ca94e5bcf30a1412cca2d155ddb73fb48..b4593f0a1162c7b49f84fb706ac23cb8f3b082d0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Admin" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Admin" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -38,28 +38,28 @@ Holds /ADMIN data This class contains the admin details of the local server.
 
 It is constructed by class \fBServer\fP, and has three read-only values, Name, Email and Nick that contain the specified values for the server where the module is running.
 .PP
-Definition at line 125 of file modules.h.
+Definition at line 143 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Admin::Admin (\fBstd::string\fP name, \fBstd::string\fP email, \fBstd::string\fP nick)"
 .PP
-Definition at line 163 of file modules.cpp.
+Definition at line 162 of file modules.cpp.
 .PP
 .nf
-163 : Name(name), Email(email), Nick(nick) { };
+162 : Name(name), Email(email), Nick(nick) { };
 .fi
 .PP
 .SH "Member Data Documentation"
 .PP 
 .SS "const \fBstd::string\fP \fBAdmin::Email\fP"
 .PP
-Definition at line 128 of file modules.h.
+Definition at line 146 of file modules.h.
 .SS "const \fBstd::string\fP \fBAdmin::Name\fP"
 .PP
-Definition at line 128 of file modules.h.
+Definition at line 146 of file modules.h.
 .SS "const \fBstd::string\fP \fBAdmin::Nick\fP"
 .PP
-Definition at line 128 of file modules.h.
+Definition at line 146 of file modules.h.
 
 .SH "Author"
 .PP 
index 4893370c02a341d865059786537f07458b6a6386..4d8bcce3e465a3588370faa8179a6f5785b33cd4 100644 (file)
@@ -1,4 +1,4 @@
-.TH "BanItem" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "BanItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index c45571390c79e302a0ff49cdc92b5562d3a4cc38..dbfb454dd18b5313ce85c6afd5c6068481e534f3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "BoolSet" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "BoolSet" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 4b3f48a71b6c7c9164b8fc22decd7dd4a0d555f9..f3b765d893781162d57b5958cae8f946829a0e85 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ConfigReader" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ConfigReader" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -84,7 +84,7 @@ Allows reading of values from configuration files This class allows a module to
 
 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.
 .PP
-Definition at line 1532 of file modules.h.
+Definition at line 1550 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ConfigReader::ConfigReader ()"
@@ -93,19 +93,19 @@ Default constructor.
 .PP
 This constructor initialises the ConfigReader class to read the inspircd.conf file as specified when running ./configure.
 .PP
-Definition at line 736 of file modules.cpp.
+Definition at line 735 of file modules.cpp.
 .PP
 References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
 .PP
 .nf
-737 {
-738         Config->ClearStack();
-739         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-740         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-741         this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
-742         if (!this->readerror)
-743                 this->error = CONF_FILE_NOT_FOUND;
-744 }
+736 {
+737         Config->ClearStack();
+738         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+739         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+740         this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
+741         if (!this->readerror)
+742                 this->error = CONF_FILE_NOT_FOUND;
+743 }
 .fi
 .PP
 .SS "ConfigReader::ConfigReader (\fBstd::string\fP filename)"
@@ -114,19 +114,19 @@ Overloaded constructor.
 .PP
 This constructor initialises the ConfigReader class to read a user-specified config file
 .PP
-Definition at line 756 of file modules.cpp.
+Definition at line 755 of file modules.cpp.
 .PP
 References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
 .PP
 .nf
-757 {
-758         Config->ClearStack();
-759         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-760         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-761         this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
-762         if (!this->readerror)
-763                 this->error = CONF_FILE_NOT_FOUND;
-764 };
+756 {
+757         Config->ClearStack();
+758         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+759         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+760         this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
+761         if (!this->readerror)
+762                 this->error = CONF_FILE_NOT_FOUND;
+763 };
 .fi
 .PP
 .SS "ConfigReader::~ConfigReader ()"
@@ -135,17 +135,17 @@ Default destructor.
 .PP
 This method destroys the ConfigReader class.
 .PP
-Definition at line 747 of file modules.cpp.
+Definition at line 746 of file modules.cpp.
 .PP
 References cache, and errorlog.
 .PP
 .nf
-748 {
-749         if (this->cache)
-750                 delete this->cache;
-751         if (this->errorlog)
-752                 delete this->errorlog;
-753 }
+747 {
+748         if (this->cache)
+749                 delete this->cache;
+750         if (this->errorlog)
+751                 delete this->errorlog;
+752 }
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -156,41 +156,41 @@ Dumps the list of errors in a config file to an output location.
 .PP
 If bail is true, then the program will abort. If bail is false and user points to a valid user record, the error report will be spooled to the given user by means of NOTICE. if bool is false AND user is false, the error report will be spooled to all opers by means of a NOTICE to all opers.
 .PP
-Definition at line 835 of file modules.cpp.
+Definition at line 834 of file modules.cpp.
 .PP
 References errorlog, connection::fd, userrec::nick, WriteOpers(), and WriteServ().
 .PP
 .nf
-836 {
-837         if (bail)
-838         {
-839                 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
-840                 exit(0);
-841         }
-842         else
-843         {
-844                 char dataline[1024];
-845                 if (user)
-846                 {
-847                         WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
-848                         while (!errorlog->eof())
-849                         {
-850                                 errorlog->getline(dataline,1024);
-851                                 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
-852                         }
-853                 }
-854                 else
-855                 {
-856                         WriteOpers('There were errors in the configuration file:',user->nick);
-857                         while (!errorlog->eof())
-858                         {
-859                                 errorlog->getline(dataline,1024);
-860                                 WriteOpers(dataline);
-861                         }
-862                 }
-863                 return;
-864         }
-865 }
+835 {
+836         if (bail)
+837         {
+838                 printf('There were errors in your configuration:\n%s',errorlog->str().c_str());
+839                 exit(0);
+840         }
+841         else
+842         {
+843                 char dataline[1024];
+844                 if (user)
+845                 {
+846                         WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick);
+847                         while (!errorlog->eof())
+848                         {
+849                                 errorlog->getline(dataline,1024);
+850                                 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline);
+851                         }
+852                 }
+853                 else
+854                 {
+855                         WriteOpers('There were errors in the configuration file:',user->nick);
+856                         while (!errorlog->eof())
+857                         {
+858                                 errorlog->getline(dataline,1024);
+859                                 WriteOpers(dataline);
+860                         }
+861                 }
+862                 return;
+863         }
+864 }
 .fi
 .PP
 .SS "int ConfigReader::Enumerate (\fBstd::string\fP tag)"
@@ -199,14 +199,14 @@ Counts the number of times a given tag appears in the config file.
 .PP
 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 \fBConfigReader::ReadValue\fP to loop through all copies of a multiple instance tag.
 .PP
-Definition at line 868 of file modules.cpp.
+Definition at line 867 of file modules.cpp.
 .PP
 References cache, and ServerConfig::EnumConf().
 .PP
 .nf
-869 {
-870         return Config->EnumConf(cache,tag.c_str());
-871 }
+868 {
+869         return Config->EnumConf(cache,tag.c_str());
+870 }
 .fi
 .PP
 .SS "int ConfigReader::EnumerateValues (\fBstd::string\fP tag, int index)"
@@ -215,14 +215,14 @@ Returns the number of items within a tag.
 .PP
 For example if the tag was <test tag='blah' data='foo'> then this function would return 2. Spaces and newlines both qualify as valid seperators between values.
 .PP
-Definition at line 873 of file modules.cpp.
+Definition at line 872 of file modules.cpp.
 .PP
 References cache, and ServerConfig::EnumValues().
 .PP
 .nf
-874 {
-875         return Config->EnumValues(cache, tag.c_str(), index);
-876 }
+873 {
+874         return Config->EnumValues(cache, tag.c_str(), index);
+875 }
 .fi
 .PP
 .SS "long ConfigReader::GetError ()"
@@ -231,16 +231,16 @@ Returns the last error to occur.
 .PP
 Valid errors can be found by looking in \fBmodules.h\fP. Any nonzero value indicates an error condition. A call to \fBGetError()\fP resets the error flag back to 0.
 .PP
-Definition at line 828 of file modules.cpp.
+Definition at line 827 of file modules.cpp.
 .PP
 References error.
 .PP
 .nf
-829 {
-830         long olderr = this->error;
-831         this->error = 0;
-832         return olderr;
-833 }
+828 {
+829         long olderr = this->error;
+830         this->error = 0;
+831         return olderr;
+832 }
 .fi
 .PP
 .SS "bool ConfigReader::ReadFlag (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
@@ -249,26 +249,26 @@ Retrieves a boolean value from the config file.
 .PP
 This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values '1', 'yes' and 'true' in the config file count as true to ReadFlag, and any other value counts as false.
 .PP
-Definition at line 782 of file modules.cpp.
+Definition at line 781 of file modules.cpp.
 .PP
 References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
 .PP
 .nf
-783 {
-784         char val[MAXBUF];
-785         char t[MAXBUF];
-786         char n[MAXBUF];
-787         strlcpy(t,tag.c_str(),MAXBUF);
-788         strlcpy(n,name.c_str(),MAXBUF);
-789         int res = Config->ReadConf(cache,t,n,index,val);
-790         if (!res)
-791         {
-792                 this->error = CONF_VALUE_NOT_FOUND;
-793                 return false;
-794         }
-795         std::string s = val;
-796         return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
-797 }
+782 {
+783         char val[MAXBUF];
+784         char t[MAXBUF];
+785         char n[MAXBUF];
+786         strlcpy(t,tag.c_str(),MAXBUF);
+787         strlcpy(n,name.c_str(),MAXBUF);
+788         int res = Config->ReadConf(cache,t,n,index,val);
+789         if (!res)
+790         {
+791                 this->error = CONF_VALUE_NOT_FOUND;
+792                 return false;
+793         }
+794         std::string s = val;
+795         return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1'));
+796 }
 .fi
 .PP
 .SS "long ConfigReader::ReadInteger (\fBstd::string\fP tag, \fBstd::string\fP name, int index, bool needs_unsigned)"
@@ -277,38 +277,38 @@ Retrieves an integer value from the config file.
 .PP
 This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to \fBGetError()\fP will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and \fBGetError()\fP will return CONF_NOT_UNSIGNED
 .PP
-Definition at line 799 of file modules.cpp.
+Definition at line 798 of file modules.cpp.
 .PP
 References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
 .PP
 .nf
-800 {
-801         char val[MAXBUF];
-802         char t[MAXBUF];
-803         char n[MAXBUF];
-804         strlcpy(t,tag.c_str(),MAXBUF);
-805         strlcpy(n,name.c_str(),MAXBUF);
-806         int res = Config->ReadConf(cache,t,n,index,val);
-807         if (!res)
-808         {
-809                 this->error = CONF_VALUE_NOT_FOUND;
-810                 return 0;
-811         }
-812         for (unsigned int i = 0; i < strlen(val); i++)
-813         {
-814                 if (!isdigit(val[i]))
-815                 {
-816                         this->error = CONF_NOT_A_NUMBER;
-817                         return 0;
-818                 }
-819         }
-820         if ((needs_unsigned) && (atoi(val)<0))
-821         {
-822                 this->error = CONF_NOT_UNSIGNED;
-823                 return 0;
-824         }
-825         return atoi(val);
-826 }
+799 {
+800         char val[MAXBUF];
+801         char t[MAXBUF];
+802         char n[MAXBUF];
+803         strlcpy(t,tag.c_str(),MAXBUF);
+804         strlcpy(n,name.c_str(),MAXBUF);
+805         int res = Config->ReadConf(cache,t,n,index,val);
+806         if (!res)
+807         {
+808                 this->error = CONF_VALUE_NOT_FOUND;
+809                 return 0;
+810         }
+811         for (unsigned int i = 0; i < strlen(val); i++)
+812         {
+813                 if (!isdigit(val[i]))
+814                 {
+815                         this->error = CONF_NOT_A_NUMBER;
+816                         return 0;
+817                 }
+818         }
+819         if ((needs_unsigned) && (atoi(val)<0))
+820         {
+821                 this->error = CONF_NOT_UNSIGNED;
+822                 return 0;
+823         }
+824         return atoi(val);
+825 }
 .fi
 .PP
 .SS "\fBstd::string\fP ConfigReader::ReadValue (\fBstd::string\fP tag, \fBstd::string\fP name, int index)"
@@ -317,25 +317,25 @@ Retrieves a value from the config file.
 .PP
 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.
 .PP
-Definition at line 766 of file modules.cpp.
+Definition at line 765 of file modules.cpp.
 .PP
 References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().
 .PP
 .nf
-767 {
-768         char val[MAXBUF];
-769         char t[MAXBUF];
-770         char n[MAXBUF];
-771         strlcpy(t,tag.c_str(),MAXBUF);
-772         strlcpy(n,name.c_str(),MAXBUF);
-773         int res = Config->ReadConf(cache,t,n,index,val);
-774         if (!res)
-775         {
-776                 this->error = CONF_VALUE_NOT_FOUND;
-777                 return '';
-778         }
-779         return val;
-780 }
+766 {
+767         char val[MAXBUF];
+768         char t[MAXBUF];
+769         char n[MAXBUF];
+770         strlcpy(t,tag.c_str(),MAXBUF);
+771         strlcpy(n,name.c_str(),MAXBUF);
+772         int res = Config->ReadConf(cache,t,n,index,val);
+773         if (!res)
+774         {
+775                 this->error = CONF_VALUE_NOT_FOUND;
+776                 return '';
+777         }
+778         return val;
+779 }
 .fi
 .PP
 .SS "bool ConfigReader::Verify ()"
@@ -344,14 +344,14 @@ Returns true if a config file is valid.
 .PP
 This method is partially implemented and will only return false if the config file does not exist or could not be opened.
 .PP
-Definition at line 878 of file modules.cpp.
+Definition at line 877 of file modules.cpp.
 .PP
 References readerror.
 .PP
 .nf
-879 {
-880         return this->readerror;
-881 }
+878 {
+879         return this->readerror;
+880 }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -362,24 +362,24 @@ The contents of the configuration file This protected member should never be acc
 .PP
 It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
 .PP
-Definition at line 1540 of file modules.h.
+Definition at line 1558 of file modules.h.
 .PP
 Referenced by ConfigReader(), Enumerate(), EnumerateValues(), ReadFlag(), ReadInteger(), ReadValue(), and ~ConfigReader().
 .SS "long \fBConfigReader::error\fP\fC [protected]\fP"
 .PP
-Definition at line 1545 of file modules.h.
+Definition at line 1563 of file modules.h.
 .PP
 Referenced by ConfigReader(), GetError(), ReadFlag(), ReadInteger(), and ReadValue().
 .SS "std::stringstream* \fBConfigReader::errorlog\fP\fC [protected]\fP"
 .PP
-Definition at line 1541 of file modules.h.
+Definition at line 1559 of file modules.h.
 .PP
 Referenced by ConfigReader(), DumpErrors(), and ~ConfigReader().
 .SS "bool \fBConfigReader::readerror\fP\fC [protected]\fP"
 .PP
 Used to store errors. 
 .PP
-Definition at line 1544 of file modules.h.
+Definition at line 1562 of file modules.h.
 .PP
 Referenced by ConfigReader(), and Verify().
 
index 25d4629259526845ec5de6a0e8ab7fbba962ce7c..fc712877883cd736b5987425ed7fd00eca87e293 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ConnectClass" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ConnectClass" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -63,26 +63,26 @@ Inherits \fBclassbase\fP.
 .PP 
 Holds information relevent to <connect allow> and <connect deny> tags in the config file. 
 .PP
-Definition at line 48 of file users.h.
+Definition at line 52 of file users.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ConnectClass::ConnectClass ()\fC [inline]\fP"
 .PP
-Definition at line 82 of file users.h.
+Definition at line 86 of file users.h.
 .PP
 References flood, host, pass, pingtime, recvqmax, registration_timeout, sendqmax, and threshold.
 .PP
 .nf
-83         {
-84                 registration_timeout = 0;
-85                 flood = 0;
-86                 pingtime = 0;
-87                 threshold = 0;
-88                 sendqmax = 0;
-89                 recvqmax = 0;
-90                 strlcpy(host,'',MAXBUF);
-91                 strlcpy(pass,'',MAXBUF);
-92         }
+87         {
+88                 registration_timeout = 0;
+89                 flood = 0;
+90                 pingtime = 0;
+91                 threshold = 0;
+92                 sendqmax = 0;
+93                 recvqmax = 0;
+94                 strlcpy(host,'',MAXBUF);
+95                 strlcpy(pass,'',MAXBUF);
+96         }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -91,63 +91,63 @@ References flood, host, pass, pingtime, recvqmax, registration_timeout, sendqmax
 .PP
 Number of lines in buffer before excess flood is triggered. 
 .PP
-Definition at line 59 of file users.h.
+Definition at line 63 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "char \fBConnectClass::host\fP[MAXBUF]"
 .PP
 Host mask for this line. 
 .PP
-Definition at line 62 of file users.h.
+Definition at line 66 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "char \fBConnectClass::pass\fP[MAXBUF]"
 .PP
 (Optional) Password for this line 
 .PP
-Definition at line 68 of file users.h.
+Definition at line 72 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "int \fBConnectClass::pingtime\fP"
 .PP
 Number of seconds between pings for this line. 
 .PP
-Definition at line 65 of file users.h.
+Definition at line 69 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "long \fBConnectClass::recvqmax\fP"
 .PP
 Maximum size of recvq for users in this class (bytes). 
 .PP
-Definition at line 80 of file users.h.
+Definition at line 84 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "int \fBConnectClass::registration_timeout\fP"
 .PP
 Max time to register the connection in seconds. 
 .PP
-Definition at line 56 of file users.h.
+Definition at line 60 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "long \fBConnectClass::sendqmax\fP"
 .PP
 Maximum size of sendq for users in this class (bytes). 
 .PP
-Definition at line 76 of file users.h.
+Definition at line 80 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "int \fBConnectClass::threshold\fP"
 .PP
 Threshold value for flood disconnect. 
 .PP
-Definition at line 72 of file users.h.
+Definition at line 76 of file users.h.
 .PP
 Referenced by ConnectClass().
 .SS "char \fBConnectClass::type\fP"
 .PP
 Type of line, either CC_ALLOW or CC_DENY. 
 .PP
-Definition at line 53 of file users.h.
+Definition at line 57 of file users.h.
 
 .SH "Author"
 .PP 
index 5a226c4c94cff108ea376edd0d3b735596cf1b29..8877d91ac6cb0dd16a08d8a7863dcf49afe603aa 100644 (file)
@@ -1,4 +1,4 @@
-.TH "CullItem" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "CullItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 0d8444d536787cbb8405578dcc9a1aceec2f5332..88bba01ab27b647d35a27d2c702c35c22a7da698 100644 (file)
@@ -1,4 +1,4 @@
-.TH "CullList" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "CullList" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index cd8856bc2b2234d9d3b552be76b4e32244e58988..2b5c3617e74e844c729ba8eef6ba9f508ee04787 100644 (file)
@@ -1,4 +1,4 @@
-.TH "DNS" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "DNS" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index f16fee5ec26169fc30be69827709523ffb8c35b0..0453224ceafd2425bdd6cb54918e66cb9e6a105c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ELine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ELine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 42c9851dae2a7430a21f38f2782d5aaa5a385aca..7ce4188e53a1e411ca05496be2aa7757f7202de2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Event" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Event" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -58,17 +58,17 @@ The Event class is a unicast message directed at all modules.
 
 When the class is properly instantiated it may be sent to all modules using the \fBSend()\fP method, which will trigger the OnEvent method in all modules passing the object as its parameter.
 .PP
-Definition at line 197 of file modules.h.
+Definition at line 215 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Event::Event (char * anydata, \fBModule\fP * src, \fBstd::string\fP eventid)"
 .PP
 Create a new Event. 
 .PP
-Definition at line 194 of file modules.cpp.
+Definition at line 193 of file modules.cpp.
 .PP
 .nf
-194 : data(anydata), source(src), id(eventid) { };
+193 : data(anydata), source(src), id(eventid) { };
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -77,14 +77,14 @@ Definition at line 194 of file modules.cpp.
 .PP
 Get the Event data. 
 .PP
-Definition at line 196 of file modules.cpp.
+Definition at line 195 of file modules.cpp.
 .PP
 References data.
 .PP
 .nf
-197 {
-198         return this->data;
-199 }
+196 {
+197         return this->data;
+198 }
 .fi
 .PP
 .SS "\fBstd::string\fP Event::GetEventID ()"
@@ -93,28 +93,28 @@ Get the event ID.
 .PP
 Use this to determine the event type for safe casting of the data
 .PP
-Definition at line 212 of file modules.cpp.
+Definition at line 211 of file modules.cpp.
 .PP
 References id.
 .PP
 .nf
-213 {
-214         return this->id;
-215 }
+212 {
+213         return this->id;
+214 }
 .fi
 .PP
 .SS "\fBModule\fP * Event::GetSource ()"
 .PP
 Get the event Source. 
 .PP
-Definition at line 201 of file modules.cpp.
+Definition at line 200 of file modules.cpp.
 .PP
 References source.
 .PP
 .nf
-202 {
-203         return this->source;
-204 }
+201 {
+202         return this->source;
+203 }
 .fi
 .PP
 .SS "char * Event::Send ()\fC [virtual]\fP"
@@ -125,15 +125,15 @@ The return result of an \fBEvent::Send()\fP will always be NULL as no replies ar
 .PP
 Implements \fBModuleMessage\fP.
 .PP
-Definition at line 206 of file modules.cpp.
+Definition at line 205 of file modules.cpp.
 .PP
 References FOREACH_MOD.
 .PP
 .nf
-207 {
-208         FOREACH_MOD OnEvent(this);
-209         return NULL;
-210 }
+206 {
+207         FOREACH_MOD OnEvent(this);
+208         return NULL;
+209 }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -142,7 +142,7 @@ References FOREACH_MOD.
 .PP
 This member holds a pointer to arbitary data set by the emitter of the message. 
 .PP
-Definition at line 202 of file modules.h.
+Definition at line 220 of file modules.h.
 .PP
 Referenced by GetData().
 .SS "\fBstd::string\fP \fBEvent::id\fP\fC [protected]\fP"
@@ -151,14 +151,14 @@ The event identifier.
 .PP
 This is arbitary text which should be used to distinguish one type of event from another.
 .PP
-Definition at line 211 of file modules.h.
+Definition at line 229 of file modules.h.
 .PP
 Referenced by GetEventID().
 .SS "\fBModule\fP* \fBEvent::source\fP\fC [protected]\fP"
 .PP
 This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. 
 .PP
-Definition at line 206 of file modules.h.
+Definition at line 224 of file modules.h.
 .PP
 Referenced by GetSource().
 
index edf2a56e12c57c8b4ab6d0f8ccd52fd3f2230c1a..861deec67822257ddc5ad96d4d8ca34987bff55e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ExemptItem" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ExemptItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 688fdef6d5255d5b5a297583b6a3731ca50ab54f..8d172b5da4b518e332e7e31d624eeb691d4d34dd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ExtMode" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ExtMode" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -47,37 +47,37 @@ Holds an extended mode's details.
 
 Used internally by \fBmodules.cpp\fP
 .PP
-Definition at line 236 of file modules.h.
+Definition at line 254 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ExtMode::ExtMode (char mc, int ty, bool oper, int p_on, int p_off)\fC [inline]\fP"
 .PP
-Definition at line 245 of file modules.h.
+Definition at line 263 of file modules.h.
 .PP
 .nf
-245 : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { };
+263 : modechar(mc), type(ty), needsoper(oper), params_when_on(p_on), params_when_off(p_off) { };
 .fi
 .PP
 .SH "Member Data Documentation"
 .PP 
 .SS "bool \fBExtMode::list\fP"
 .PP
-Definition at line 244 of file modules.h.
+Definition at line 262 of file modules.h.
 .SS "char \fBExtMode::modechar\fP"
 .PP
-Definition at line 239 of file modules.h.
+Definition at line 257 of file modules.h.
 .SS "bool \fBExtMode::needsoper\fP"
 .PP
-Definition at line 241 of file modules.h.
+Definition at line 259 of file modules.h.
 .SS "int \fBExtMode::params_when_off\fP"
 .PP
-Definition at line 243 of file modules.h.
+Definition at line 261 of file modules.h.
 .SS "int \fBExtMode::params_when_on\fP"
 .PP
-Definition at line 242 of file modules.h.
+Definition at line 260 of file modules.h.
 .SS "int \fBExtMode::type\fP"
 .PP
-Definition at line 240 of file modules.h.
+Definition at line 258 of file modules.h.
 
 .SH "Author"
 .PP 
index ea99cdf6a8b7d273bdfe9cf887a183a6976598a0..25be94035f72e394d1f9e5550357b73f2effa660 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Extensible" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Extensible" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -12,7 +12,7 @@ Extensible \- class Extensible is the parent class of many classes such as userr
 .PP
 Inherits \fBclassbase\fP.
 .PP
-Inherited by \fBchanrec\fP, \fBcommand_t\fP, and \fBconnection\fP.
+Inherited by \fBchanrec\fP, and \fBconnection\fP.
 .PP
 .SS "Public Member Functions"
 
index 99afbea95a8bcfdb2d1224c68c8fea5b9bae694c..e161908a03ccbbd617614da9bfc3a1a70328e4fa 100644 (file)
@@ -1,4 +1,4 @@
-.TH "FileReader" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "FileReader" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -57,7 +57,7 @@ Caches a text file into memory and can be used to retrieve lines from it.
 
 This class contains methods for read-only manipulation of a text file in memory. Either use the constructor type with one parameter to load a file into memory at construction, or use the LoadFile method to load a file.
 .PP
-Definition at line 1621 of file modules.h.
+Definition at line 1639 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "FileReader::FileReader ()"
@@ -66,11 +66,11 @@ Default constructor.
 .PP
 This method does not load any file into memory, you must use the LoadFile method after constructing the class this way.
 .PP
-Definition at line 891 of file modules.cpp.
+Definition at line 890 of file modules.cpp.
 .PP
 .nf
-892 {
-893 }
+891 {
+892 }
 .fi
 .PP
 .SS "FileReader::FileReader (\fBstd::string\fP filename)"
@@ -79,16 +79,16 @@ Secondary constructor.
 .PP
 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, \fBFileReader::FileSize\fP returns 0.
 .PP
-Definition at line 884 of file modules.cpp.
+Definition at line 883 of file modules.cpp.
 .PP
 References fc, and readfile().
 .PP
 .nf
-885 {
-886         file_cache c;
-887         readfile(c,filename.c_str());
-888         this->fc = c;
-889 }
+884 {
+885         file_cache c;
+886         readfile(c,filename.c_str());
+887         this->fc = c;
+888 }
 .fi
 .PP
 .SS "FileReader::~FileReader ()"
@@ -97,11 +97,11 @@ Default destructor.
 .PP
 This deletes the memory allocated to the file.
 .PP
-Definition at line 903 of file modules.cpp.
+Definition at line 902 of file modules.cpp.
 .PP
 .nf
-904 {
-905 }
+903 {
+904 }
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -110,21 +110,21 @@ Definition at line 903 of file modules.cpp.
 .PP
 Returns true if the file exists This function will return false if the file could not be opened. 
 .PP
-Definition at line 907 of file modules.cpp.
+Definition at line 906 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-908 {
-909         if (fc.size() == 0)
-910         {
-911                 return(false);
-912         }
-913         else
-914         {
-915                 return(true);
-916         }
-917 }
+907 {
+908         if (fc.size() == 0)
+909         {
+910                 return(false);
+911         }
+912         else
+913         {
+914                 return(true);
+915         }
+916 }
 .fi
 .PP
 .SS "int FileReader::FileSize ()"
@@ -133,14 +133,14 @@ Returns the size of the file in lines.
 .PP
 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.
 .PP
-Definition at line 926 of file modules.cpp.
+Definition at line 925 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-927 {
-928         return fc.size();
-929 }
+926 {
+927         return fc.size();
+928 }
 .fi
 .PP
 .SS "\fBstd::string\fP FileReader::GetLine (int x)"
@@ -149,16 +149,16 @@ Retrieve one line from the file.
 .PP
 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.
 .PP
-Definition at line 919 of file modules.cpp.
+Definition at line 918 of file modules.cpp.
 .PP
 References fc.
 .PP
 .nf
-920 {
-921         if ((x<0) || ((unsigned)x>fc.size()))
-922                 return '';
-923         return fc[x];
-924 }
+919 {
+920         if ((x<0) || ((unsigned)x>fc.size()))
+921                 return '';
+922         return fc[x];
+923 }
 .fi
 .PP
 .SS "void FileReader::LoadFile (\fBstd::string\fP filename)"
@@ -167,23 +167,23 @@ Used to load a file.
 .PP
 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, \fBFileReader::FileSize\fP returns 0.
 .PP
-Definition at line 895 of file modules.cpp.
+Definition at line 894 of file modules.cpp.
 .PP
 References fc, and readfile().
 .PP
 .nf
-896 {
-897         file_cache c;
-898         readfile(c,filename.c_str());
-899         this->fc = c;
-900 }
+895 {
+896         file_cache c;
+897         readfile(c,filename.c_str());
+898         this->fc = c;
+899 }
 .fi
 .PP
 .SH "Member Data Documentation"
 .PP 
 .SS "\fBfile_cache\fP \fBFileReader::fc\fP\fC [private]\fP"
 .PP
-Definition at line 1623 of file modules.h.
+Definition at line 1641 of file modules.h.
 .PP
 Referenced by Exists(), FileReader(), FileSize(), GetLine(), and LoadFile().
 
index 6ef1c742ee77fd54c2799c585f719f5e729aa6ef..83c54ae8a2600e85e27e1719c07eb495bad7014b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "GLine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "GLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 79c256f86a7e589b86b4ea78dbb45e052220c5d6..48d8f6d1501fd9408ed9028401d4dd76a06e6895 100644 (file)
@@ -1,4 +1,4 @@
-.TH "HostItem" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "HostItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 219e539b4a18916c091a0e43c84596f39765e053..be447b95d0526ed956c8e7c188d95f107e4fe2c7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "InspIRCd" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "InspIRCd" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -12,6 +12,9 @@ InspIRCd \-
 
 .in +1c
 .ti -1c
+.RI "void \fBMakeLowerMap\fP ()"
+.br
+.ti -1c
 .RI "\fBstd::string\fP \fBGetRevision\fP ()"
 .br
 .ti -1c
@@ -39,6 +42,18 @@ InspIRCd \-
 .ti -1c
 .RI "time_t \fBstartup_time\fP"
 .br
+.ti -1c
+.RI "\fBModeParser\fP * \fBModeGrok\fP"
+.br
+.ti -1c
+.RI "CommandParser * \fBParser\fP"
+.br
+.ti -1c
+.RI "\fBSocketEngine\fP * \fBSE\fP"
+.br
+.ti -1c
+.RI "\fBserverstats\fP * \fBstats\fP"
+.br
 .in -1c
 .SS "Private Member Functions"
 
@@ -59,7 +74,7 @@ InspIRCd \-
 .in -1c
 .SH "Detailed Description"
 .PP 
-Definition at line 95 of file inspircd.h.
+Definition at line 99 of file inspircd.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "InspIRCd::InspIRCd (int argc, char ** argv)"
@@ -77,6 +92,8 @@ Definition at line 95 of file inspircd.h.
 Referenced by Server::GetVersion().
 .SS "bool InspIRCd::LoadModule (const char * filename)"
 .PP
+.SS "void InspIRCd::MakeLowerMap ()"
+.PP
 .SS "char* InspIRCd::ModuleError ()"
 .PP
 .SS "int InspIRCd::Run ()"
@@ -85,12 +102,32 @@ Referenced by Server::GetVersion().
 .PP
 .SH "Member Data Documentation"
 .PP 
+.SS "\fBModeParser\fP* \fBInspIRCd::ModeGrok\fP"
+.PP
+Definition at line 109 of file inspircd.h.
+.PP
+Referenced by Server::SendMode().
 .SS "char \fBInspIRCd::MODERR\fP[MAXBUF]\fC [private]\fP"
 .PP
-Definition at line 99 of file inspircd.h.
+Definition at line 103 of file inspircd.h.
+.SS "CommandParser* \fBInspIRCd::Parser\fP"
+.PP
+Definition at line 110 of file inspircd.h.
+.PP
+Referenced by Server::AddCommand(), Server::CallCommandHandler(), force_nickchange(), and Server::IsValidModuleCommand().
+.SS "\fBSocketEngine\fP* \fBInspIRCd::SE\fP"
+.PP
+Definition at line 111 of file inspircd.h.
+.PP
+Referenced by AddClient(), InspSocket::InspSocket(), kill_link(), kill_link_silent(), InspSocket::Poll(), and Server::UserToPseudo().
 .SS "time_t \fBInspIRCd::startup_time\fP"
 .PP
-Definition at line 104 of file inspircd.h.
+Definition at line 108 of file inspircd.h.
+.SS "\fBserverstats\fP* \fBInspIRCd::stats\fP"
+.PP
+Definition at line 112 of file inspircd.h.
+.PP
+Referenced by force_nickchange(), and FullConnectUser().
 
 .SH "Author"
 .PP 
index d2e99e555a5a3fe8abad1d0aeb3d2040fd0c3c8d..9ba5cbdfdd5cd95f758265bc6306d781c977ed4d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "InspSocket" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "InspSocket" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -94,6 +94,14 @@ InspSocket \- InspSocket is an extendable socket class which modules can use for
 .br
 .RI "\fIThe destructor may implicitly call \fBOnClose()\fP, and will close() and shutdown() the file descriptor used for this socket. \fP"
 .in -1c
+.SS "Private Member Functions"
+
+.in +1c
+.ti -1c
+.RI "void \fBFlushWriteBuffer\fP ()"
+.br
+.RI "\fIFlushes the write buffer. \fP"
+.in -1c
 .SS "Private Attributes"
 
 .in +1c
@@ -130,10 +138,14 @@ InspSocket \- InspSocket is an extendable socket class which modules can use for
 .br
 .RI "\fIThis value is true if the socket has timed out. \fP"
 .ti -1c
-.RI "char \fBibuf\fP [16384]"
+.RI "char \fBibuf\fP [65535]"
 .br
 .RI "\fISocket input buffer, used by read(). \fP"
 .ti -1c
+.RI "\fBstd::string\fP \fBBuffer\fP"
+.br
+.RI "\fIThe output buffer for this socket. \fP"
+.ti -1c
 .RI "\fBstd::string\fP \fBIP\fP"
 .br
 .RI "\fIThe IP address being connected to stored in string form for easy retrieval by accessors. \fP"
@@ -163,14 +175,14 @@ Definition at line 47 of file socket.h.
 .PP
 The default constructor does nothing and should not be used. 
 .PP
-Definition at line 48 of file socket.cpp.
+Definition at line 45 of file socket.cpp.
 .PP
 References I_DISCONNECTED, and state.
 .PP
 .nf
-49 {
-50         this->state = I_DISCONNECTED;
-51 }
+46 {
+47         this->state = I_DISCONNECTED;
+48 }
 .fi
 .PP
 .SS "InspSocket::InspSocket (int newfd, char * ip)"
@@ -179,18 +191,18 @@ This constructor is used to associate an existing connecting with an InspSocket
 .PP
 The given file descriptor must be valid, and when initialized, the InspSocket will be set with the given IP address and placed in CONNECTED state.
 .PP
-Definition at line 53 of file socket.cpp.
+Definition at line 50 of file socket.cpp.
 .PP
-References SocketEngine::AddFd(), fd, I_CONNECTED, IP, state, and X_ESTAB_MODULE.
+References SocketEngine::AddFd(), fd, I_CONNECTED, IP, InspIRCd::SE, state, and X_ESTAB_MODULE.
 .PP
 .nf
-54 {
-55         this->fd = newfd;
-56         this->state = I_CONNECTED;
-57         this->IP = ip;
-58         SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-59         socket_ref[this->fd] = this;
-60 }
+51 {
+52         this->fd = newfd;
+53         this->state = I_CONNECTED;
+54         this->IP = ip;
+55         ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
+56         socket_ref[this->fd] = this;
+57 }
 .fi
 .PP
 .SS "InspSocket::InspSocket (\fBstd::string\fP host, int port, bool listening, unsigned long maxtime)"
@@ -210,102 +222,102 @@ This constructor is used to create a new socket, either listening for connection
 .PP
 
 .PP
-Definition at line 62 of file socket.cpp.
+Definition at line 59 of file socket.cpp.
 .PP
-References SocketEngine::AddFd(), addr, addy, BindSocket(), Close(), DEBUG, ERROR, fd, I_CONNECTING, I_ERR_BIND, I_ERR_CONNECT, I_ERR_SOCKET, I_ERROR, I_LISTENING, IP, log(), OnError(), OpenTCPSocket(), state, timeout, timeout_end, and X_ESTAB_MODULE.
+References SocketEngine::AddFd(), addr, addy, BindSocket(), Close(), DEBUG, ERROR, fd, I_CONNECTING, I_ERR_BIND, I_ERR_CONNECT, I_ERR_SOCKET, I_ERROR, I_LISTENING, IP, log(), OnError(), OpenTCPSocket(), InspIRCd::SE, state, timeout, timeout_end, and X_ESTAB_MODULE.
 .PP
 .nf
-63 {
-64         if (listening) {
-65                 if ((this->fd = OpenTCPSocket()) == ERROR)
-66                 {
-67                         this->fd = -1;
-68                         this->state = I_ERROR;
-69                         this->OnError(I_ERR_SOCKET);
-70                         log(DEBUG,'OpenTCPSocket() error');
-71                         return;
-72                 }
-73                 else
-74                 {
-75                         if (BindSocket(this->fd,this->client,this->server,port,(char*)host.c_str()) == ERROR)
-76                         {
-77                                 this->Close();
-78                                 this->fd = -1;
-79                                 this->state = I_ERROR;
-80                                 this->OnError(I_ERR_BIND);
-81                                 log(DEBUG,'BindSocket() error %s',strerror(errno));
-82                                 return;
-83                         }
-84                         else
-85                         {
-86                                 this->state = I_LISTENING;
-87                                 SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-88                                 socket_ref[this->fd] = this;
-89                                 log(DEBUG,'New socket now in I_LISTENING state');
-90                                 return;
-91                         }
-92                 }                       
-93         } else {
-94                 char* ip;
-95                 this->host = host;
-96                 hostent* hoste = gethostbyname(host.c_str());
-97                 if (!hoste) {
-98                         ip = (char*)host.c_str();
-99                 } else {
-100                         struct in_addr* ia = (in_addr*)hoste->h_addr;
-101                         ip = inet_ntoa(*ia);
-102                 }
-103 
-104                 this->IP = ip;
-105 
-106                 timeout_end = time(NULL)+maxtime;
-107                 timeout = false;
-108                 if ((this->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-109                 {
-110                         this->state = I_ERROR;
-111                         this->OnError(I_ERR_SOCKET);
-112                         return;
-113                 }
-114                 this->port = port;
-115                 inet_aton(ip,&addy);
-116                 addr.sin_family = AF_INET;
-117                 addr.sin_addr = addy;
-118                 addr.sin_port = htons(this->port);
-119 
-120                 int flags;
-121                 flags = fcntl(this->fd, F_GETFL, 0);
-122                 fcntl(this->fd, F_SETFL, flags | O_NONBLOCK);
-123 
-124                 if(connect(this->fd, (sockaddr*)&this->addr,sizeof(this->addr)) == -1)
-125                 {
-126                         if (errno != EINPROGRESS)
-127                         {
-128                                 this->Close();
-129                                 this->OnError(I_ERR_CONNECT);
-130                                 this->state = I_ERROR;
-131                                 return;
-132                         }
-133                 }
-134                 this->state = I_CONNECTING;
-135                 SE->AddFd(this->fd,false,X_ESTAB_MODULE);
-136                 socket_ref[this->fd] = this;
-137                 return;
-138         }
-139 }
+60 {
+61         if (listening) {
+62                 if ((this->fd = OpenTCPSocket()) == ERROR)
+63                 {
+64                         this->fd = -1;
+65                         this->state = I_ERROR;
+66                         this->OnError(I_ERR_SOCKET);
+67                         log(DEBUG,'OpenTCPSocket() error');
+68                         return;
+69                 }
+70                 else
+71                 {
+72                         if (BindSocket(this->fd,this->client,this->server,port,(char*)host.c_str()) == ERROR)
+73                         {
+74                                 this->Close();
+75                                 this->fd = -1;
+76                                 this->state = I_ERROR;
+77                                 this->OnError(I_ERR_BIND);
+78                                 log(DEBUG,'BindSocket() error %s',strerror(errno));
+79                                 return;
+80                         }
+81                         else
+82                         {
+83                                 this->state = I_LISTENING;
+84                                 ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
+85                                 socket_ref[this->fd] = this;
+86                                 log(DEBUG,'New socket now in I_LISTENING state');
+87                                 return;
+88                         }
+89                 }                       
+90         } else {
+91                 char* ip;
+92                 this->host = host;
+93                 hostent* hoste = gethostbyname(host.c_str());
+94                 if (!hoste) {
+95                         ip = (char*)host.c_str();
+96                 } else {
+97                         struct in_addr* ia = (in_addr*)hoste->h_addr;
+98                         ip = inet_ntoa(*ia);
+99                 }
+100 
+101                 this->IP = ip;
+102 
+103                 timeout_end = time(NULL)+maxtime;
+104                 timeout = false;
+105                 if ((this->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
+106                 {
+107                         this->state = I_ERROR;
+108                         this->OnError(I_ERR_SOCKET);
+109                         return;
+110                 }
+111                 this->port = port;
+112                 inet_aton(ip,&addy);
+113                 addr.sin_family = AF_INET;
+114                 addr.sin_addr = addy;
+115                 addr.sin_port = htons(this->port);
+116 
+117                 int flags;
+118                 flags = fcntl(this->fd, F_GETFL, 0);
+119                 fcntl(this->fd, F_SETFL, flags | O_NONBLOCK);
+120 
+121                 if(connect(this->fd, (sockaddr*)&this->addr,sizeof(this->addr)) == -1)
+122                 {
+123                         if (errno != EINPROGRESS)
+124                         {
+125                                 this->Close();
+126                                 this->OnError(I_ERR_CONNECT);
+127                                 this->state = I_ERROR;
+128                                 return;
+129                         }
+130                 }
+131                 this->state = I_CONNECTING;
+132                 ServerInstance->SE->AddFd(this->fd,false,X_ESTAB_MODULE);
+133                 socket_ref[this->fd] = this;
+134                 return;
+135         }
+136 }
 .fi
 .PP
 .SS "InspSocket::~InspSocket ()\fC [virtual]\fP"
 .PP
 The destructor may implicitly call \fBOnClose()\fP, and will close() and shutdown() the file descriptor used for this socket. 
 .PP
-Definition at line 272 of file socket.cpp.
+Definition at line 271 of file socket.cpp.
 .PP
 References Close().
 .PP
 .nf
-273 {
-274         this->Close();
-275 }
+272 {
+273         this->Close();
+274 }
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -314,65 +326,92 @@ References Close().
 .PP
 This method causes the socket to close, and may also be triggered by other methods such as OnTimeout and OnError. 
 .PP
-Definition at line 141 of file socket.cpp.
+Definition at line 138 of file socket.cpp.
 .PP
 References fd, and OnClose().
 .PP
 Referenced by InspSocket(), and ~InspSocket().
 .PP
 .nf
-142 {
-143         if (this->fd != -1)
-144         {
-145                 this->OnClose();
-146                 shutdown(this->fd,2);
-147                 close(this->fd);
-148                 socket_ref[this->fd] = NULL;
-149                 this->fd = -1;
-150         }
-151 }
+139 {
+140         if (this->fd != -1)
+141         {
+142                 this->OnClose();
+143                 shutdown(this->fd,2);
+144                 close(this->fd);
+145                 socket_ref[this->fd] = NULL;
+146                 this->fd = -1;
+147         }
+148 }
+.fi
+.PP
+.SS "void InspSocket::FlushWriteBuffer ()\fC [private]\fP"
+.PP
+Flushes the write buffer. 
+.PP
+Definition at line 181 of file socket.cpp.
+.PP
+References Buffer.
+.PP
+Referenced by Timeout(), and Write().
+.PP
+.nf
+182 {
+183         int result = 0;
+184         if (this->Buffer.length())
+185         {
+186                 result = send(this->fd,this->Buffer.c_str(),this->Buffer.length(),0);
+187                 if (result > 0)
+188                 {
+189                         /* If we wrote some, advance the buffer forwards */
+190                         char* n = (char*)this->Buffer.c_str();
+191                         n += result;
+192                         this->Buffer = n;
+193                 }
+194         }
+195 }
 .fi
 .PP
 .SS "int InspSocket::GetFd ()"
 .PP
 This method returns the socket's file descriptor as assigned by the operating system, or -1 if no descriptor has been assigned. 
 .PP
-Definition at line 259 of file socket.cpp.
+Definition at line 258 of file socket.cpp.
 .PP
 References fd.
 .PP
 .nf
-260 {
-261         return this->fd;
-262 }
+259 {
+260         return this->fd;
+261 }
 .fi
 .PP
 .SS "\fBstd::string\fP InspSocket::GetIP ()"
 .PP
 Returns the IP address associated with this connection, or an empty string if no IP address exists. 
 .PP
-Definition at line 153 of file socket.cpp.
+Definition at line 150 of file socket.cpp.
 .PP
 References IP.
 .PP
 .nf
-154 {
-155         return this->IP;
-156 }
+151 {
+152         return this->IP;
+153 }
 .fi
 .PP
 .SS "\fBInspSocketState\fP InspSocket::GetState ()"
 .PP
 Returns the current socket state. 
 .PP
-Definition at line 254 of file socket.cpp.
+Definition at line 253 of file socket.cpp.
 .PP
 References state.
 .PP
 .nf
-255 {
-256         return this->state;
-257 }
+254 {
+255         return this->state;
+256 }
 .fi
 .PP
 .SS "void InspSocket::OnClose ()\fC [virtual]\fP"
@@ -381,12 +420,12 @@ Whenever close() is called, \fBOnClose()\fP will be called first.
 .PP
 Please note that this means OnClose will be called alongside \fBOnError()\fP, \fBOnTimeout()\fP, and \fBClose()\fP, and also when cancelling a listening socket by calling the destructor indirectly.
 .PP
-Definition at line 270 of file socket.cpp.
+Definition at line 269 of file socket.cpp.
 .PP
 Referenced by Close().
 .PP
 .nf
-270 { return; }
+269 { return; }
 .fi
 .PP
 .SS "bool InspSocket::OnConnected ()\fC [virtual]\fP"
@@ -400,12 +439,12 @@ false to abort the connection, true to continue
 .PP
 
 .PP
-Definition at line 264 of file socket.cpp.
+Definition at line 263 of file socket.cpp.
 .PP
 Referenced by Poll().
 .PP
 .nf
-264 { return true; }
+263 { return true; }
 .fi
 .PP
 .SS "bool InspSocket::OnDataReady ()\fC [virtual]\fP"
@@ -421,22 +460,22 @@ false to close the socket
 .PP
 
 .PP
-Definition at line 268 of file socket.cpp.
+Definition at line 267 of file socket.cpp.
 .PP
 Referenced by Poll().
 .PP
 .nf
-268 { return true; }
+267 { return true; }
 .fi
 .PP
 .SS "int InspSocket::OnDisconnect ()\fC [virtual]\fP"
 .PP
 When an established connection is terminated, the OnDisconnect method is triggered. 
 .PP
-Definition at line 266 of file socket.cpp.
+Definition at line 265 of file socket.cpp.
 .PP
 .nf
-266 { return 0; }
+265 { return 0; }
 .fi
 .PP
 .SS "void InspSocket::OnError (\fBInspSocketError\fP e)\fC [virtual]\fP"
@@ -452,12 +491,12 @@ A closed socket in itself is not an error, however errors also generate close ev
 .PP
 
 .PP
-Definition at line 265 of file socket.cpp.
+Definition at line 264 of file socket.cpp.
 .PP
 Referenced by InspSocket(), and Timeout().
 .PP
 .nf
-265 { return; }
+264 { return; }
 .fi
 .PP
 .SS "int InspSocket::OnIncomingConnection (int newfd, char * ip)\fC [virtual]\fP"
@@ -470,12 +509,12 @@ MySocket* newsocket = new MySocket(newfd,ip);
 .PP
 Once you have done this, you can then associate the new socket with the core using \fBServer::AddSocket()\fP.
 .PP
-Definition at line 267 of file socket.cpp.
+Definition at line 266 of file socket.cpp.
 .PP
 Referenced by Poll().
 .PP
 .nf
-267 { return 0; }
+266 { return 0; }
 .fi
 .PP
 .SS "void InspSocket::OnTimeout ()\fC [virtual]\fP"
@@ -484,12 +523,12 @@ When an outbound connection fails, and the attempt times out, you will receive t
 .PP
 The mthod will trigger once maxtime secons are reached (as given in the constructor) just before the socket's descriptor is closed.
 .PP
-Definition at line 269 of file socket.cpp.
+Definition at line 268 of file socket.cpp.
 .PP
 Referenced by Timeout().
 .PP
 .nf
-269 { return; }
+268 { return; }
 .fi
 .PP
 .SS "bool InspSocket::Poll ()"
@@ -498,64 +537,64 @@ Only the core should call this function.
 .PP
 When called, it is assumed the socket is ready to read data, and the method call routes the event to the various methods of InspSocket for you to handle. This can also cause the socket's state to change.
 .PP
-Definition at line 217 of file socket.cpp.
+Definition at line 216 of file socket.cpp.
 .PP
-References SocketEngine::AddFd(), client, SocketEngine::DelFd(), I_CONNECTED, I_CONNECTING, I_LISTENING, length, OnConnected(), OnDataReady(), OnIncomingConnection(), SetState(), and X_ESTAB_MODULE.
+References SocketEngine::AddFd(), client, SocketEngine::DelFd(), I_CONNECTED, I_CONNECTING, I_LISTENING, length, OnConnected(), OnDataReady(), OnIncomingConnection(), InspIRCd::SE, SetState(), and X_ESTAB_MODULE.
 .PP
 .nf
-218 {
-219         int incoming = -1;
-220         
-221         switch (this->state)
-222         {
-223                 case I_CONNECTING:
-224                         this->SetState(I_CONNECTED);
-225                         /* Our socket was in write-state, so delete it and re-add it
-226                          * in read-state.
-227                          */
-228                         SE->DelFd(this->fd);
-229                         SE->AddFd(this->fd,true,X_ESTAB_MODULE);
-230                         return this->OnConnected();
-231                 break;
-232                 case I_LISTENING:
-233                         length = sizeof (client);
-234                         incoming = accept (this->fd, (sockaddr*)&client,&length);
-235                         this->OnIncomingConnection(incoming,inet_ntoa(client.sin_addr));
-236                         return true;
-237                 break;
-238                 case I_CONNECTED:
-239                         return this->OnDataReady();
-240                 break;
-241                 default:
-242                 break;
-243         }
-244 
-245         return true;
-246 }
+217 {
+218         int incoming = -1;
+219         
+220         switch (this->state)
+221         {
+222                 case I_CONNECTING:
+223                         this->SetState(I_CONNECTED);
+224                         /* Our socket was in write-state, so delete it and re-add it
+225                          * in read-state.
+226                          */
+227                         ServerInstance->SE->DelFd(this->fd);
+228                         ServerInstance->SE->AddFd(this->fd,true,X_ESTAB_MODULE);
+229                         return this->OnConnected();
+230                 break;
+231                 case I_LISTENING:
+232                         length = sizeof (client);
+233                         incoming = accept (this->fd, (sockaddr*)&client,&length);
+234                         this->OnIncomingConnection(incoming,inet_ntoa(client.sin_addr));
+235                         return true;
+236                 break;
+237                 case I_CONNECTED:
+238                         return this->OnDataReady();
+239                 break;
+240                 default:
+241                 break;
+242         }
+243 
+244         return true;
+245 }
 .fi
 .PP
 .SS "char * InspSocket::Read ()\fC [virtual]\fP"
 .PP
 Reads all pending bytes from the socket into a char* array which can be up to 16 kilobytes in length. 
 .PP
-Definition at line 158 of file socket.cpp.
+Definition at line 155 of file socket.cpp.
 .PP
 References DEBUG, ibuf, and log().
 .PP
 .nf
-159 {
-160         int n = recv(this->fd,this->ibuf,sizeof(this->ibuf),0);
-161         if (n > 0)
-162         {
-163                 ibuf[n] = 0;
-164                 return ibuf;
-165         }
-166         else
-167         {
-168                 log(DEBUG,'EOF or error on socket');
-169                 return NULL;
-170         }
-171 }
+156 {
+157         int n = recv(this->fd,this->ibuf,sizeof(this->ibuf),0);
+158         if (n > 0)
+159         {
+160                 ibuf[n] = 0;
+161                 return ibuf;
+162         }
+163         else
+164         {
+165                 log(DEBUG,'EOF or error on socket');
+166                 return NULL;
+167         }
+168 }
 .fi
 .PP
 .SS "void InspSocket::SetState (\fBInspSocketState\fP s)"
@@ -564,17 +603,17 @@ Changes the socket's state.
 .PP
 The core uses this to change socket states, and you should not call it directly.
 .PP
-Definition at line 248 of file socket.cpp.
+Definition at line 247 of file socket.cpp.
 .PP
 References DEBUG, log(), and state.
 .PP
 Referenced by Poll().
 .PP
 .nf
-249 {
-250         log(DEBUG,'Socket state change');
-251         this->state = s;
-252 }
+248 {
+249         log(DEBUG,'Socket state change');
+250         this->state = s;
+251 }
 .fi
 .PP
 .SS "bool InspSocket::Timeout (time_t current)"
@@ -588,26 +627,28 @@ true if timed out, false if not timed out
 .PP
 
 .PP
-Definition at line 200 of file socket.cpp.
+Definition at line 197 of file socket.cpp.
 .PP
-References I_CONNECTING, I_ERR_TIMEOUT, I_ERROR, OnError(), OnTimeout(), state, timeout, and timeout_end.
+References FlushWriteBuffer(), I_CONNECTING, I_ERR_TIMEOUT, I_ERROR, OnError(), OnTimeout(), state, timeout, and timeout_end.
 .PP
 .nf
-201 {
-202         if ((this->state == I_CONNECTING) && (current > timeout_end))
-203         {
-204                 // for non-listening sockets, the timeout can occur
-205                 // which causes termination of the connection after
-206                 // the given number of seconds without a successful
-207                 // connection.
-208                 this->OnTimeout();
-209                 this->OnError(I_ERR_TIMEOUT);
-210                 timeout = true;
-211                 this->state = I_ERROR;
-212                 return true;
-213         }
-214         return false;
-215 }
+198 {
+199         if ((this->state == I_CONNECTING) && (current > timeout_end))
+200         {
+201                 // for non-listening sockets, the timeout can occur
+202                 // which causes termination of the connection after
+203                 // the given number of seconds without a successful
+204                 // connection.
+205                 this->OnTimeout();
+206                 this->OnError(I_ERR_TIMEOUT);
+207                 timeout = true;
+208                 this->state = I_ERROR;
+209                 return true;
+210         }
+211         if (this->Buffer.length())
+212                 this->FlushWriteBuffer();
+213         return false;
+214 }
 .fi
 .PP
 .SS "int InspSocket::Write (\fBstd::string\fP data)\fC [virtual]\fP"
@@ -623,30 +664,16 @@ No carriage returns or linefeeds are appended to the string.
 .PP
 
 .PP
-Definition at line 177 of file socket.cpp.
+Definition at line 174 of file socket.cpp.
+.PP
+References Buffer, and FlushWriteBuffer().
 .PP
 .nf
-178 {
-179         char* d = (char*)data.c_str();
-180         unsigned int written = 0;
-181         int n = 0;
-182         int s = data.length();
-183         while ((written < data.length()) && (n >= 0))
-184         {
-185                 n = send(this->fd,d,s,0);
-186                 if (n > 0)
-187                 {
-188                         // If we didnt write everything, advance
-189                         // the pointers so that when we retry
-190                         // the next time around the loop, we try
-191                         // to write what we failed to write before.
-192                         written += n;
-193                         s -= n;
-194                         d += n;
-195                 }
-196         }
-197         return written;
-198 }
+175 {
+176         this->Buffer = this->Buffer + data;
+177         this->FlushWriteBuffer();
+178         return data.length();
+179 }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -665,11 +692,18 @@ The host being connected to, in in_addr form.
 Definition at line 84 of file socket.h.
 .PP
 Referenced by InspSocket().
+.SS "\fBstd::string\fP \fBInspSocket::Buffer\fP\fC [private]\fP"
+.PP
+The output buffer for this socket. 
+.PP
+Definition at line 111 of file socket.h.
+.PP
+Referenced by FlushWriteBuffer(), and Write().
 .SS "sockaddr_in \fBInspSocket::client\fP\fC [private]\fP"
 .PP
 Client sockaddr structure used by accept(). 
 .PP
-Definition at line 119 of file socket.h.
+Definition at line 124 of file socket.h.
 .PP
 Referenced by Poll().
 .SS "int \fBInspSocket::fd\fP\fC [private]\fP"
@@ -684,11 +718,11 @@ Referenced by Close(), GetFd(), and InspSocket().
 The hostname connected to. 
 .PP
 Definition at line 59 of file socket.h.
-.SS "char \fBInspSocket::ibuf\fP[16384]\fC [private]\fP"
+.SS "char \fBInspSocket::ibuf\fP[65535]\fC [private]\fP"
 .PP
 Socket input buffer, used by read(). 
 .PP
-The class which extends InspSocket is expected to implement an extendable buffer which can grow much larger than 16k, this buffer is just designed to be temporary storage. space.
+The class which extends InspSocket is expected to implement an extendable buffer which can grow much larger than 64k, this buffer is just designed to be temporary storage. space.
 .PP
 Definition at line 106 of file socket.h.
 .PP
@@ -697,14 +731,14 @@ Referenced by Read().
 .PP
 The IP address being connected to stored in string form for easy retrieval by accessors. 
 .PP
-Definition at line 113 of file socket.h.
+Definition at line 118 of file socket.h.
 .PP
 Referenced by GetIP(), and InspSocket().
 .SS "socklen_t \fBInspSocket::length\fP\fC [private]\fP"
 .PP
 Used by accept() to indicate the sizes of the sockaddr_in structures. 
 .PP
-Definition at line 131 of file socket.h.
+Definition at line 136 of file socket.h.
 .PP
 Referenced by Poll().
 .SS "int \fBInspSocket::port\fP\fC [private]\fP"
@@ -716,7 +750,7 @@ Definition at line 65 of file socket.h.
 .PP
 \fBServer\fP sockaddr structure used by accept(). 
 .PP
-Definition at line 125 of file socket.h.
+Definition at line 130 of file socket.h.
 .SS "\fBInspSocketState\fP \fBInspSocket::state\fP\fC [private]\fP"
 .PP
 The state for this socket, either listening, connecting, connected or error. 
index 213477029d7529db6a41bb1343afd896b29fdf0b..f3b13356607e308d75f30c6a87a85462f8f79456 100644 (file)
@@ -1,4 +1,4 @@
-.TH "InviteItem" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "InviteItem" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 07e201794934bb042ba1f50ed173c2b01cff0b2e..dc4b773fd76655c74a72f0fdeb0791f6f1f6fff1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Invited" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Invited" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -16,19 +16,19 @@ Inherits \fBclassbase\fP.
 
 .in +1c
 .ti -1c
-.RI "char \fBchannel\fP [CHANMAX]"
+.RI "\fBirc::string\fP \fBchannel\fP"
 .br
 .in -1c
 .SH "Detailed Description"
 .PP 
 Holds a channel name to which a user has been invited. 
 .PP
-Definition at line 39 of file users.h.
+Definition at line 43 of file users.h.
 .SH "Member Data Documentation"
 .PP 
-.SS "char \fBInvited::channel\fP[CHANMAX]"
+.SS "\fBirc::string\fP \fBInvited::channel\fP"
 .PP
-Definition at line 42 of file users.h.
+Definition at line 46 of file users.h.
 .PP
 Referenced by userrec::InviteTo().
 
index 195d3a860c69b4384b2a13a1fda1b931e88b1a5c..213ee19d48663ee4aa86fe6ce2218e720aff44ca 100644 (file)
@@ -1,4 +1,4 @@
-.TH "KLine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "KLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 93b0f4381c117a8b56514c20d3ebcf2f3b6d436b..a1082ec7d179714cdcce7cc734bfb57299f7a5ba 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModeParameter" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ModeParameter" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 3800b017250a05401a74e6f9747848e1227e0b8b..6c9e4de9b2afe1fb69b5c250c9de6b83ffc25c24 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Module" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Module" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -340,7 +340,7 @@ Base class for all \fBInspIRCd\fP modules This class is the base class for \fBIn
 
 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 \fBModuleFactory\fP class (see relevent section) for the plugin to be initialised.
 .PP
-Definition at line 254 of file modules.h.
+Definition at line 272 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Module::Module (\fBServer\fP * Me)"
@@ -354,20 +354,20 @@ Default constructor Creates a module class.
 .PP
 
 .PP
-Definition at line 220 of file modules.cpp.
+Definition at line 219 of file modules.cpp.
 .PP
 .nf
-220 { }
+219 { }
 .fi
 .PP
 .SS "Module::~Module ()\fC [virtual]\fP"
 .PP
 Default destructor destroys a module class. 
 .PP
-Definition at line 221 of file modules.cpp.
+Definition at line 220 of file modules.cpp.
 .PP
 .nf
-221 { }
+220 { }
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -378,12 +378,12 @@ Returns the version number of a Module.
 .PP
 The method should return a \fBVersion\fP object with its version information assigned via \fBVersion::Version\fP
 .PP
-Definition at line 232 of file modules.cpp.
+Definition at line 231 of file modules.cpp.
 .PP
 References VF_VENDOR.
 .PP
 .nf
-232 { return Version(1,0,0,0,VF_VENDOR); }
+231 { return Version(1,0,0,0,VF_VENDOR); }
 .fi
 .PP
 .SS "void Module::On005Numeric (\fBstd::string\fP & output)\fC [virtual]\fP"
@@ -399,10 +399,10 @@ The module should modify the 005 numeric if needed to indicate its features.
 .PP
 
 .PP
-Definition at line 242 of file modules.cpp.
+Definition at line 241 of file modules.cpp.
 .PP
 .nf
-242 { };
+241 { };
 .fi
 .PP
 .SS "int Module::OnAccessCheck (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel, int access_type)\fC [virtual]\fP"
@@ -446,12 +446,12 @@ This function is called before many functions which check a users status on a ch
 .PP
 
 .PP
-Definition at line 241 of file modules.cpp.
+Definition at line 240 of file modules.cpp.
 .PP
 References ACR_DEFAULT.
 .PP
 .nf
-241 { return ACR_DEFAULT; };
+240 { return ACR_DEFAULT; };
 .fi
 .PP
 .SS "int Module::OnAddBan (\fBuserrec\fP * source, \fBchanrec\fP * channel, \fBstd::string\fP banmask)\fC [virtual]\fP"
@@ -476,10 +476,10 @@ Return a non-zero value to 'eat' the mode change and prevent the ban from being
 .PP
 
 .PP
-Definition at line 267 of file modules.cpp.
+Definition at line 266 of file modules.cpp.
 .PP
 .nf
-267 { return 0; };
+266 { return 0; };
 .fi
 .PP
 .SS "void Module::OnAddELine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -501,10 +501,10 @@ This method is triggered after the line is added.
 .PP
 
 .PP
-Definition at line 293 of file modules.cpp.
+Definition at line 292 of file modules.cpp.
 .PP
 .nf
-293 { };
+292 { };
 .fi
 .PP
 .SS "void Module::OnAddGLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -526,10 +526,10 @@ This method is triggered after the line is added.
 .PP
 
 .PP
-Definition at line 289 of file modules.cpp.
+Definition at line 288 of file modules.cpp.
 .PP
 .nf
-289 { };
+288 { };
 .fi
 .PP
 .SS "void Module::OnAddKLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -551,10 +551,10 @@ This method is triggered after the line is added.
 .PP
 
 .PP
-Definition at line 291 of file modules.cpp.
+Definition at line 290 of file modules.cpp.
 .PP
 .nf
-291 { };
+290 { };
 .fi
 .PP
 .SS "void Module::OnAddQLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP nickmask)\fC [virtual]\fP"
@@ -576,10 +576,10 @@ This method is triggered after the line is added.
 .PP
 
 .PP
-Definition at line 292 of file modules.cpp.
+Definition at line 291 of file modules.cpp.
 .PP
 .nf
-292 { };
+291 { };
 .fi
 .PP
 .SS "void Module::OnAddZLine (long duration, \fBuserrec\fP * source, \fBstd::string\fP reason, \fBstd::string\fP ipmask)\fC [virtual]\fP"
@@ -601,10 +601,10 @@ This method is triggered after the line is added.
 .PP
 
 .PP
-Definition at line 290 of file modules.cpp.
+Definition at line 289 of file modules.cpp.
 .PP
 .nf
-290 { };
+289 { };
 .fi
 .PP
 .SS "void Module::OnBackgroundTimer (time_t curtime)\fC [virtual]\fP"
@@ -620,10 +620,10 @@ This timer can be used to control timed features. Its period is not accurate eno
 .PP
 
 .PP
-Definition at line 246 of file modules.cpp.
+Definition at line 245 of file modules.cpp.
 .PP
 .nf
-246 { };
+245 { };
 .fi
 .PP
 .SS "void Module::OnChangeHost (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
@@ -641,10 +641,10 @@ This event triggers after the host has been set.
 .PP
 
 .PP
-Definition at line 287 of file modules.cpp.
+Definition at line 286 of file modules.cpp.
 .PP
 .nf
-287 { };
+286 { };
 .fi
 .PP
 .SS "int Module::OnChangeLocalUserGECOS (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
@@ -667,10 +667,10 @@ return 1 to deny the name change, or 0 to allow it.
 .PP
 
 .PP
-Definition at line 260 of file modules.cpp.
+Definition at line 259 of file modules.cpp.
 .PP
 .nf
-260 { return 0; };
+259 { return 0; };
 .fi
 .PP
 .SS "int Module::OnChangeLocalUserHost (\fBuserrec\fP * user, \fBstd::string\fP newhost)\fC [virtual]\fP"
@@ -693,10 +693,10 @@ Return 1 to deny the host change, or 0 to allow it.
 .PP
 
 .PP
-Definition at line 259 of file modules.cpp.
+Definition at line 258 of file modules.cpp.
 .PP
 .nf
-259 { return 0; };
+258 { return 0; };
 .fi
 .PP
 .SS "void Module::OnChangeName (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP"
@@ -714,10 +714,10 @@ This event triggers after the name has been set.
 .PP
 
 .PP
-Definition at line 288 of file modules.cpp.
+Definition at line 287 of file modules.cpp.
 .PP
 .nf
-288 { };
+287 { };
 .fi
 .PP
 .SS "int Module::OnCheckBan (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
@@ -740,10 +740,10 @@ This method will always be called for each join, wether or not the user actually
 .PP
 
 .PP
-Definition at line 257 of file modules.cpp.
+Definition at line 256 of file modules.cpp.
 .PP
 .nf
-257 { return 0; };
+256 { return 0; };
 .fi
 .PP
 .SS "int Module::OnCheckInvite (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
@@ -766,10 +766,10 @@ This method will always be called for each join, wether or not the channel is ac
 .PP
 
 .PP
-Definition at line 254 of file modules.cpp.
+Definition at line 253 of file modules.cpp.
 .PP
 .nf
-254 { return 0; };
+253 { return 0; };
 .fi
 .PP
 .SS "int Module::OnCheckKey (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP keygiven)\fC [virtual]\fP"
@@ -792,10 +792,10 @@ This method will always be called for each join, wether or not the channel is ac
 .PP
 
 .PP
-Definition at line 255 of file modules.cpp.
+Definition at line 254 of file modules.cpp.
 .PP
 .nf
-255 { return 0; };
+254 { return 0; };
 .fi
 .PP
 .SS "int Module::OnCheckLimit (\fBuserrec\fP * user, \fBchanrec\fP * chan)\fC [virtual]\fP"
@@ -818,10 +818,10 @@ This method will always be called for each join, wether or not the channel is ac
 .PP
 
 .PP
-Definition at line 256 of file modules.cpp.
+Definition at line 255 of file modules.cpp.
 .PP
 .nf
-256 { return 0; };
+255 { return 0; };
 .fi
 .PP
 .SS "bool Module::OnCheckReady (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -842,10 +842,10 @@ true to indicate readiness, false if otherwise
 .PP
 
 .PP
-Definition at line 249 of file modules.cpp.
+Definition at line 248 of file modules.cpp.
 .PP
 .nf
-249 { return true; };
+248 { return true; };
 .fi
 .PP
 .SS "void Module::OnCleanup (int target_type, void * item)\fC [virtual]\fP"
@@ -863,10 +863,10 @@ This method is called once for every user and channel on the network, so that wh
 .PP
 
 .PP
-Definition at line 299 of file modules.cpp.
+Definition at line 298 of file modules.cpp.
 .PP
 .nf
-299 { };
+298 { };
 .fi
 .PP
 .SS "void Module::OnDecodeMetaData (int target_type, void * target, \fBstd::string\fP extname, \fBstd::string\fP extdata)\fC [virtual]\fP"
@@ -888,10 +888,10 @@ Please see src/modules/m_swhois.cpp for a working example of how to use this met
 .PP
 
 .PP
-Definition at line 284 of file modules.cpp.
+Definition at line 283 of file modules.cpp.
 .PP
 .nf
-284 { };
+283 { };
 .fi
 .PP
 .SS "int Module::OnDelBan (\fBuserrec\fP * source, \fBchanrec\fP * channel, \fBstd::string\fP banmask)\fC [virtual]\fP"
@@ -916,10 +916,10 @@ Return a non-zero value to 'eat' the mode change and prevent the ban from being
 .PP
 
 .PP
-Definition at line 268 of file modules.cpp.
+Definition at line 267 of file modules.cpp.
 .PP
 .nf
-268 { return 0; };
+267 { return 0; };
 .fi
 .PP
 .SS "void Module::OnDelELine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -937,10 +937,10 @@ This method is triggered after the line is deleted.
 .PP
 
 .PP
-Definition at line 298 of file modules.cpp.
+Definition at line 297 of file modules.cpp.
 .PP
 .nf
-298 { };
+297 { };
 .fi
 .PP
 .SS "void Module::OnDelGLine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -958,10 +958,10 @@ This method is triggered after the line is deleted.
 .PP
 
 .PP
-Definition at line 294 of file modules.cpp.
+Definition at line 293 of file modules.cpp.
 .PP
 .nf
-294 { };
+293 { };
 .fi
 .PP
 .SS "void Module::OnDelKLine (\fBuserrec\fP * source, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -979,10 +979,10 @@ This method is triggered after the line is deleted.
 .PP
 
 .PP
-Definition at line 296 of file modules.cpp.
+Definition at line 295 of file modules.cpp.
 .PP
 .nf
-296 { };
+295 { };
 .fi
 .PP
 .SS "void Module::OnDelQLine (\fBuserrec\fP * source, \fBstd::string\fP nickmask)\fC [virtual]\fP"
@@ -1000,10 +1000,10 @@ This method is triggered after the line is deleted.
 .PP
 
 .PP
-Definition at line 297 of file modules.cpp.
+Definition at line 296 of file modules.cpp.
 .PP
 .nf
-297 { };
+296 { };
 .fi
 .PP
 .SS "void Module::OnDelZLine (\fBuserrec\fP * source, \fBstd::string\fP ipmask)\fC [virtual]\fP"
@@ -1021,10 +1021,10 @@ This method is triggered after the line is deleted.
 .PP
 
 .PP
-Definition at line 295 of file modules.cpp.
+Definition at line 294 of file modules.cpp.
 .PP
 .nf
-295 { };
+294 { };
 .fi
 .PP
 .SS "void Module::OnEvent (\fBEvent\fP * event)\fC [virtual]\fP"
@@ -1040,10 +1040,10 @@ Please see the documentation of \fBEvent::Send()\fP for further information. The
 .PP
 
 .PP
-Definition at line 262 of file modules.cpp.
+Definition at line 261 of file modules.cpp.
 .PP
 .nf
-262 { return; };
+261 { return; };
 .fi
 .PP
 .SS "int Module::OnExtendedMode (\fBuserrec\fP * user, void * target, char modechar, int type, bool mode_on, \fBstring_list\fP & params)\fC [virtual]\fP"
@@ -1069,10 +1069,10 @@ The type parameter is MT_SERVER, MT_CLIENT or MT_CHANNEL, dependent on where the
 .PP
 
 .PP
-Definition at line 230 of file modules.cpp.
+Definition at line 229 of file modules.cpp.
 .PP
 .nf
-230 { return false; }
+229 { return false; }
 .fi
 .PP
 .SS "void Module::OnGetServerDescription (\fBstd::string\fP servername, \fBstd::string\fP & description)\fC [virtual]\fP"
@@ -1090,10 +1090,10 @@ You may change or define the description given in \fBstd::string\fP &description
 .PP
 
 .PP
-Definition at line 278 of file modules.cpp.
+Definition at line 277 of file modules.cpp.
 .PP
 .nf
-278 { };
+277 { };
 .fi
 .PP
 .SS "void Module::OnGlobalConnect (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1109,10 +1109,10 @@ This event is informational only. You should not change any user information in
 .PP
 
 .PP
-Definition at line 266 of file modules.cpp.
+Definition at line 265 of file modules.cpp.
 .PP
 .nf
-266 { };
+265 { };
 .fi
 .PP
 .SS "void Module::OnGlobalOper (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1128,10 +1128,10 @@ You cannot override this and prevent it from happening as it is already happened
 .PP
 
 .PP
-Definition at line 265 of file modules.cpp.
+Definition at line 264 of file modules.cpp.
 .PP
 .nf
-265 { };
+264 { };
 .fi
 .PP
 .SS "void Module::OnInfo (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1149,10 +1149,10 @@ The userrec will contain the information of the user who typed the command. Modu
 .PP
 
 .PP
-Definition at line 234 of file modules.cpp.
+Definition at line 233 of file modules.cpp.
 .PP
 .nf
-234 { };
+233 { };
 .fi
 .PP
 .SS "int Module::OnKill (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1177,10 +1177,10 @@ If a client is killed by a server, e.g. a nickname collision or protocol error,
 .PP
 
 .PP
-Definition at line 243 of file modules.cpp.
+Definition at line 242 of file modules.cpp.
 .PP
 .nf
-243 { return 0; };
+242 { return 0; };
 .fi
 .PP
 .SS "void Module::OnLoadModule (\fBModule\fP * mod, \fBstd::string\fP name)\fC [virtual]\fP"
@@ -1198,10 +1198,10 @@ mod will contain a pointer to the module, and string will contain its name, for
 .PP
 
 .PP
-Definition at line 244 of file modules.cpp.
+Definition at line 243 of file modules.cpp.
 .PP
 .nf
-244 { };
+243 { };
 .fi
 .PP
 .SS "int Module::OnLocalTopicChange (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP topic)\fC [virtual]\fP"
@@ -1223,10 +1223,10 @@ Return 1 to deny the topic change, or 0 to allow it.
 .PP
 
 .PP
-Definition at line 261 of file modules.cpp.
+Definition at line 260 of file modules.cpp.
 .PP
 .nf
-261 { return 0; };
+260 { return 0; };
 .fi
 .PP
 .SS "void Module::OnMode (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1248,10 +1248,10 @@ The text variable contains the remainder of the mode string after the target, e.
 .PP
 
 .PP
-Definition at line 231 of file modules.cpp.
+Definition at line 230 of file modules.cpp.
 .PP
 .nf
-231 { };
+230 { };
 .fi
 .PP
 .SS "void Module::OnOper (\fBuserrec\fP * user, \fBstd::string\fP opertype)\fC [virtual]\fP"
@@ -1269,10 +1269,10 @@ The userrec will contain the oper mode 'o' as this function is called after any
 .PP
 
 .PP
-Definition at line 233 of file modules.cpp.
+Definition at line 232 of file modules.cpp.
 .PP
 .nf
-233 { };
+232 { };
 .fi
 .PP
 .SS "int Module::OnOperCompare (\fBstd::string\fP password, \fBstd::string\fP input)\fC [virtual]\fP"
@@ -1295,10 +1295,10 @@ The password field (from the config file) is in 'password' and is to be compared
 .PP
 
 .PP
-Definition at line 264 of file modules.cpp.
+Definition at line 263 of file modules.cpp.
 .PP
 .nf
-264 { return 0; };
+263 { return 0; };
 .fi
 .PP
 .SS "void Module::OnPostLocalTopicChange (\fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP topic)\fC [virtual]\fP"
@@ -1318,10 +1318,10 @@ To block topic changes you must use OnLocalTopicChange instead.
 .PP
 
 .PP
-Definition at line 277 of file modules.cpp.
+Definition at line 276 of file modules.cpp.
 .PP
 .nf
-277 { };
+276 { };
 .fi
 .PP
 .SS "int Module::OnPreCommand (\fBstd::string\fP command, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1348,10 +1348,10 @@ This event occurs for all registered commands, wether they are registered in the
 .PP
 
 .PP
-Definition at line 248 of file modules.cpp.
+Definition at line 247 of file modules.cpp.
 .PP
 .nf
-248 { return 0; };
+247 { return 0; };
 .fi
 .PP
 .SS "int Module::OnRawMode (\fBuserrec\fP * user, \fBchanrec\fP * chan, char mode, \fBstd::string\fP param, bool adding, int pcnt)\fC [virtual]\fP"
@@ -1382,10 +1382,10 @@ Return 1 from this function to block the mode character from being processed ent
 .PP
 
 .PP
-Definition at line 253 of file modules.cpp.
+Definition at line 252 of file modules.cpp.
 .PP
 .nf
-253 { return 0; };
+252 { return 0; };
 .fi
 .PP
 .SS "void Module::OnRawSocketAccept (int fd, \fBstd::string\fP ip, int localport)\fC [virtual]\fP"
@@ -1405,10 +1405,10 @@ This is intended for raw socket processing (e.g. modules which wrap the tcp conn
 .PP
 
 .PP
-Definition at line 269 of file modules.cpp.
+Definition at line 268 of file modules.cpp.
 .PP
 .nf
-269 { };
+268 { };
 .fi
 .PP
 .SS "void Module::OnRawSocketClose (int fd)\fC [virtual]\fP"
@@ -1424,10 +1424,12 @@ When this event is called, shutdown() has not yet been called on the socket.
 .PP
 
 .PP
-Definition at line 271 of file modules.cpp.
+Definition at line 270 of file modules.cpp.
+.PP
+Referenced by kill_link(), and kill_link_silent().
 .PP
 .nf
-271 { };
+270 { };
 .fi
 .PP
 .SS "int Module::OnRawSocketRead (int fd, char * buffer, unsigned int count, int & readresult)\fC [virtual]\fP"
@@ -1454,10 +1456,10 @@ nonzero if the event was handled, in which case readresult must be valid on exit
 .PP
 
 .PP
-Definition at line 272 of file modules.cpp.
+Definition at line 271 of file modules.cpp.
 .PP
 .nf
-272 { return 0; };
+271 { return 0; };
 .fi
 .PP
 .SS "int Module::OnRawSocketWrite (int fd, char * buffer, int count)\fC [virtual]\fP"
@@ -1482,10 +1484,10 @@ Number of characters actually written or 0 if you didn't handle the operation
 .PP
 
 .PP
-Definition at line 270 of file modules.cpp.
+Definition at line 269 of file modules.cpp.
 .PP
 .nf
-270 { return 0; };
+269 { return 0; };
 .fi
 .PP
 .SS "void Module::OnRehash (\fBstd::string\fP parameter)\fC [virtual]\fP"
@@ -1501,10 +1503,10 @@ This method is called prior to a /REHASH or when a SIGHUP is received from the o
 .PP
 
 .PP
-Definition at line 227 of file modules.cpp.
+Definition at line 226 of file modules.cpp.
 .PP
 .nf
-227 { }
+226 { }
 .fi
 .PP
 .SS "void Module::OnRemoteKill (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1522,10 +1524,10 @@ Called when an oper wants to disconnect a remote user via KILL.
 .PP
 
 .PP
-Definition at line 275 of file modules.cpp.
+Definition at line 274 of file modules.cpp.
 .PP
 .nf
-275 { };
+274 { };
 .fi
 .PP
 .SS "char * Module::OnRequest (\fBRequest\fP * request)\fC [virtual]\fP"
@@ -1541,12 +1543,12 @@ Please see the documentation of \fBRequest::Send()\fP for further information. T
 .PP
 
 .PP
-Definition at line 263 of file modules.cpp.
+Definition at line 262 of file modules.cpp.
 .PP
 Referenced by Request::Send().
 .PP
 .nf
-263 { return NULL; };
+262 { return NULL; };
 .fi
 .PP
 .SS "void Module::OnSendList (\fBuserrec\fP * user, \fBchanrec\fP * channel, char mode)\fC [virtual]\fP"
@@ -1566,10 +1568,10 @@ For example, when a /MODE channel +b (without any other parameters) is called, i
 .PP
 
 .PP
-Definition at line 247 of file modules.cpp.
+Definition at line 246 of file modules.cpp.
 .PP
 .nf
-247 { };
+246 { };
 .fi
 .PP
 .SS "void Module::OnServerRaw (\fBstd::string\fP & raw, bool inbound, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1589,10 +1591,10 @@ This method is the lowest level of handler available to a module. It will be cal
 .PP
 
 .PP
-Definition at line 228 of file modules.cpp.
+Definition at line 227 of file modules.cpp.
 .PP
 .nf
-228 { }
+227 { }
 .fi
 .PP
 .SS "void Module::OnStats (char symbol)\fC [virtual]\fP"
@@ -1606,10 +1608,10 @@ Called on all /STATS commands This method is triggered for all /STATS use, inclu
 .PP
 
 .PP
-Definition at line 258 of file modules.cpp.
+Definition at line 257 of file modules.cpp.
 .PP
 .nf
-258 { };
+257 { };
 .fi
 .PP
 .SS "void Module::OnSyncChannel (\fBchanrec\fP * chan, \fBModule\fP * proto, void * opaque)\fC [virtual]\fP"
@@ -1631,18 +1633,18 @@ For a good example of how to use this function, please see src/modules/m_chanpro
 .PP
 
 .PP
-Definition at line 280 of file modules.cpp.
+Definition at line 279 of file modules.cpp.
 .PP
 .nf
-280 { };
+279 { };
 .fi
 .PP
 .SS "void Module::OnSyncChannelMetaData (\fBchanrec\fP * chan, \fBModule\fP * proto, void * opaque, \fBstd::string\fP extname)\fC [virtual]\fP"
 .PP
-Definition at line 282 of file modules.cpp.
+Definition at line 281 of file modules.cpp.
 .PP
 .nf
-282 { };
+281 { };
 .fi
 .PP
 .SS "void Module::OnSyncUser (\fBuserrec\fP * user, \fBModule\fP * proto, void * opaque)\fC [virtual]\fP"
@@ -1662,18 +1664,18 @@ When this function is called, it will be called from the module which implements
 .PP
 
 .PP
-Definition at line 279 of file modules.cpp.
+Definition at line 278 of file modules.cpp.
 .PP
 .nf
-279 { };
+278 { };
 .fi
 .PP
 .SS "void Module::OnSyncUserMetaData (\fBuserrec\fP * user, \fBModule\fP * proto, void * opaque, \fBstd::string\fP extname)\fC [virtual]\fP"
 .PP
-Definition at line 283 of file modules.cpp.
+Definition at line 282 of file modules.cpp.
 .PP
 .nf
-283 { };
+282 { };
 .fi
 .PP
 .SS "void Module::OnUnloadModule (\fBModule\fP * mod, \fBstd::string\fP name)\fC [virtual]\fP"
@@ -1691,10 +1693,10 @@ mod will contain a pointer to the module, and string will contain its name, for
 .PP
 
 .PP
-Definition at line 245 of file modules.cpp.
+Definition at line 244 of file modules.cpp.
 .PP
 .nf
-245 { };
+244 { };
 .fi
 .PP
 .SS "void Module::OnUserConnect (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1710,10 +1712,10 @@ The details of the connecting user are available to you in the parameter userrec
 .PP
 
 .PP
-Definition at line 222 of file modules.cpp.
+Definition at line 221 of file modules.cpp.
 .PP
 .nf
-222 { }
+221 { }
 .fi
 .PP
 .SS "void Module::OnUserDisconnect (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1729,10 +1731,10 @@ The details of the exiting user are available to you in the parameter userrec *u
 .PP
 
 .PP
-Definition at line 224 of file modules.cpp.
+Definition at line 223 of file modules.cpp.
 .PP
 .nf
-224 { }
+223 { }
 .fi
 .PP
 .SS "void Module::OnUserInvite (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel)\fC [virtual]\fP"
@@ -1752,10 +1754,10 @@ You cannot prevent the invite from occuring using this function, to do that, use
 .PP
 
 .PP
-Definition at line 276 of file modules.cpp.
+Definition at line 275 of file modules.cpp.
 .PP
 .nf
-276 { };
+275 { };
 .fi
 .PP
 .SS "void Module::OnUserJoin (\fBuserrec\fP * user, \fBchanrec\fP * channel)\fC [virtual]\fP"
@@ -1773,10 +1775,10 @@ The details of the joining user are available to you in the parameter userrec *u
 .PP
 
 .PP
-Definition at line 225 of file modules.cpp.
+Definition at line 224 of file modules.cpp.
 .PP
 .nf
-225 { }
+224 { }
 .fi
 .PP
 .SS "void Module::OnUserKick (\fBuserrec\fP * source, \fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1798,10 +1800,10 @@ If this method is called, the kick is already underway and cannot be prevented,
 .PP
 
 .PP
-Definition at line 252 of file modules.cpp.
+Definition at line 251 of file modules.cpp.
 .PP
 .nf
-252 { };
+251 { };
 .fi
 .PP
 .SS "void Module::OnUserMessage (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1823,10 +1825,10 @@ The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
 .PP
 
 .PP
-Definition at line 273 of file modules.cpp.
+Definition at line 272 of file modules.cpp.
 .PP
 .nf
-273 { };
+272 { };
 .fi
 .PP
 .SS "void Module::OnUserNotice (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1848,10 +1850,10 @@ The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
 .PP
 
 .PP
-Definition at line 274 of file modules.cpp.
+Definition at line 273 of file modules.cpp.
 .PP
 .nf
-274 { };
+273 { };
 .fi
 .PP
 .SS "void Module::OnUserPart (\fBuserrec\fP * user, \fBchanrec\fP * channel)\fC [virtual]\fP"
@@ -1869,10 +1871,10 @@ The details of the leaving user are available to you in the parameter userrec *u
 .PP
 
 .PP
-Definition at line 226 of file modules.cpp.
+Definition at line 225 of file modules.cpp.
 .PP
 .nf
-226 { }
+225 { }
 .fi
 .PP
 .SS "void Module::OnUserPostNick (\fBuserrec\fP * user, \fBstd::string\fP oldnick)\fC [virtual]\fP"
@@ -1890,10 +1892,10 @@ This can be used to track users after nickchanges have been applied. Please note
 .PP
 
 .PP
-Definition at line 240 of file modules.cpp.
+Definition at line 239 of file modules.cpp.
 .PP
 .nf
-240 { };
+239 { };
 .fi
 .PP
 .SS "int Module::OnUserPreInvite (\fBuserrec\fP * source, \fBuserrec\fP * dest, \fBchanrec\fP * channel)\fC [virtual]\fP"
@@ -1918,10 +1920,10 @@ Returning 1 from this function stops the process immediately, causing no output
 .PP
 
 .PP
-Definition at line 236 of file modules.cpp.
+Definition at line 235 of file modules.cpp.
 .PP
 .nf
-236 { return 0; };
+235 { return 0; };
 .fi
 .PP
 .SS "int Module::OnUserPreJoin (\fBuserrec\fP * user, \fBchanrec\fP * chan, const char * cname)\fC [virtual]\fP"
@@ -1948,10 +1950,10 @@ If the user joins a NEW channel which does not exist yet, OnUserPreJoin will be
 .PP
 
 .PP
-Definition at line 229 of file modules.cpp.
+Definition at line 228 of file modules.cpp.
 .PP
 .nf
-229 { return 0; }
+228 { return 0; }
 .fi
 .PP
 .SS "int Module::OnUserPreKick (\fBuserrec\fP * source, \fBuserrec\fP * user, \fBchanrec\fP * chan, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1978,10 +1980,10 @@ Returning a value of 1 from this function stops the process immediately, causing
 .PP
 
 .PP
-Definition at line 251 of file modules.cpp.
+Definition at line 250 of file modules.cpp.
 .PP
 .nf
-251 { return 0; };
+250 { return 0; };
 .fi
 .PP
 .SS "int Module::OnUserPreMessage (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP & text)\fC [virtual]\fP"
@@ -2008,10 +2010,10 @@ Returning any nonzero value from this function stops the process immediately, ca
 .PP
 
 .PP
-Definition at line 237 of file modules.cpp.
+Definition at line 236 of file modules.cpp.
 .PP
 .nf
-237 { return 0; };
+236 { return 0; };
 .fi
 .PP
 .SS "int Module::OnUserPreNick (\fBuserrec\fP * user, \fBstd::string\fP newnick)\fC [virtual]\fP"
@@ -2034,10 +2036,10 @@ This can be used to implement Q-lines etc. Please note that although you can see
 .PP
 
 .PP
-Definition at line 239 of file modules.cpp.
+Definition at line 238 of file modules.cpp.
 .PP
 .nf
-239 { return 0; };
+238 { return 0; };
 .fi
 .PP
 .SS "int Module::OnUserPreNotice (\fBuserrec\fP * user, void * dest, int target_type, \fBstd::string\fP & text)\fC [virtual]\fP"
@@ -2064,10 +2066,10 @@ Returning any nonzero value from this function stops the process immediately, ca
 .PP
 
 .PP
-Definition at line 238 of file modules.cpp.
+Definition at line 237 of file modules.cpp.
 .PP
 .nf
-238 { return 0; };
+237 { return 0; };
 .fi
 .PP
 .SS "void Module::OnUserQuit (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP"
@@ -2085,10 +2087,10 @@ The details of the exiting user are available to you in the parameter userrec *u
 .PP
 
 .PP
-Definition at line 223 of file modules.cpp.
+Definition at line 222 of file modules.cpp.
 .PP
 .nf
-223 { }
+222 { }
 .fi
 .PP
 .SS "void Module::OnUserRegister (\fBuserrec\fP * user)\fC [virtual]\fP"
@@ -2104,10 +2106,10 @@ before the user is sent the MOTD etc). Modules can use this method if they are p
 .PP
 
 .PP
-Definition at line 250 of file modules.cpp.
+Definition at line 249 of file modules.cpp.
 .PP
 .nf
-250 { };
+249 { };
 .fi
 .PP
 .SS "void Module::OnWallops (\fBuserrec\fP * user, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -2123,10 +2125,10 @@ Called after every WALLOPS command.
 .PP
 
 .PP
-Definition at line 286 of file modules.cpp.
+Definition at line 285 of file modules.cpp.
 .PP
 .nf
-286 { };
+285 { };
 .fi
 .PP
 .SS "void Module::OnWhois (\fBuserrec\fP * source, \fBuserrec\fP * dest)\fC [virtual]\fP"
@@ -2144,10 +2146,10 @@ The source parameter contains the details of the user who issued the WHOIS comma
 .PP
 
 .PP
-Definition at line 235 of file modules.cpp.
+Definition at line 234 of file modules.cpp.
 .PP
 .nf
-235 { };
+234 { };
 .fi
 .PP
 .SS "void Module::ProtoSendMetaData (void * opaque, int target_type, void * target, \fBstd::string\fP extname, \fBstd::string\fP extdata)\fC [virtual]\fP"
@@ -2173,10 +2175,10 @@ More documentation to follow soon. Please see src/modules/m_swhois.cpp for examp
 .PP
 
 .PP
-Definition at line 285 of file modules.cpp.
+Definition at line 284 of file modules.cpp.
 .PP
 .nf
-285 { };
+284 { };
 .fi
 .PP
 .SS "void Module::ProtoSendMode (void * opaque, int target_type, void * target, \fBstd::string\fP modeline)\fC [virtual]\fP"
@@ -2200,10 +2202,10 @@ More documentation to follow soon. Please see src/modules/m_chanprotect.cpp for
 .PP
 
 .PP
-Definition at line 281 of file modules.cpp.
+Definition at line 280 of file modules.cpp.
 .PP
 .nf
-281 { };
+280 { };
 .fi
 .PP
 
index 290073277d8f695034be840c7b713491b263302a..5ace1c19323ba5a538d611427e28c35587c65c77 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModuleFactory" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ModuleFactory" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,23 +32,23 @@ Instantiates classes inherited from \fBModule\fP This class creates a class inhe
 
 This is to allow for modules to create many different variants of \fBModule\fP, dependent on architecture, configuration, etc. In most cases, the simple class shown in the example module m_foobar.so will suffice for most modules.
 .PP
-Definition at line 1676 of file modules.h.
+Definition at line 1694 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ModuleFactory::ModuleFactory ()\fC [inline]\fP"
 .PP
-Definition at line 1679 of file modules.h.
+Definition at line 1697 of file modules.h.
 .PP
 .nf
-1679 { }
+1697 { }
 .fi
 .PP
 .SS "virtual ModuleFactory::~ModuleFactory ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 1680 of file modules.h.
+Definition at line 1698 of file modules.h.
 .PP
 .nf
-1680 { }
+1698 { }
 .fi
 .PP
 .SH "Member Function Documentation"
index ceb20c96d133690be15f6cfd9fac7c3bf41b2c1f..9f0eeecfdd47a1a66279f1e431ebff0a2261c758 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ModuleMessage" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ModuleMessage" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -29,15 +29,15 @@ Inherited by \fBEvent\fP, and \fBRequest\fP.
 .PP 
 The ModuleMessage class is the base class of \fBRequest\fP and \fBEvent\fP This class is used to represent a basic data structure which is passed between modules for safe inter-module communications. 
 .PP
-Definition at line 143 of file modules.h.
+Definition at line 161 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "virtual ModuleMessage::~ModuleMessage ()\fC [inline, virtual]\fP"
 .PP
-Definition at line 149 of file modules.h.
+Definition at line 167 of file modules.h.
 .PP
 .nf
-149 {};
+167 {};
 .fi
 .PP
 .SH "Member Function Documentation"
index a5fad88b96c02fc21ca6aae97e89c8479e7665cb..61bd947aee16dd2f0683ed5dc115d7fcd2b8ee0c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "QLine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "QLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index d910f5ab35bad7c4d646c53f62b29fe24ffcd5c2..b504563a7bda8e3dc7b6c2077ab8748d005d83c1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Request" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Request" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -58,17 +58,17 @@ The Request class is a unicast message directed at a given module.
 
 When this class is properly instantiated it may be sent to a module using the \fBSend()\fP method, which will call the given module's OnRequest method with this class as its parameter.
 .PP
-Definition at line 157 of file modules.h.
+Definition at line 175 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Request::Request (char * anydata, \fBModule\fP * src, \fBModule\fP * dst)"
 .PP
 Create a new Request. 
 .PP
-Definition at line 165 of file modules.cpp.
+Definition at line 164 of file modules.cpp.
 .PP
 .nf
-165 : data(anydata), source(src), dest(dst) { };
+164 : data(anydata), source(src), dest(dst) { };
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -77,42 +77,42 @@ Definition at line 165 of file modules.cpp.
 .PP
 Fetch the Request data. 
 .PP
-Definition at line 167 of file modules.cpp.
+Definition at line 166 of file modules.cpp.
 .PP
 References data.
 .PP
 .nf
-168 {
-169         return this->data;
-170 }
+167 {
+168         return this->data;
+169 }
 .fi
 .PP
 .SS "\fBModule\fP * Request::GetDest ()"
 .PP
 Fetch the request destination (should be 'this' in the receiving module). 
 .PP
-Definition at line 177 of file modules.cpp.
+Definition at line 176 of file modules.cpp.
 .PP
 References dest.
 .PP
 .nf
-178 {
-179         return this->dest;
-180 }
+177 {
+178         return this->dest;
+179 }
 .fi
 .PP
 .SS "\fBModule\fP * Request::GetSource ()"
 .PP
 Fetch the request source. 
 .PP
-Definition at line 172 of file modules.cpp.
+Definition at line 171 of file modules.cpp.
 .PP
 References source.
 .PP
 .nf
-173 {
-174         return this->source;
-175 }
+172 {
+173         return this->source;
+174 }
 .fi
 .PP
 .SS "char * Request::Send ()\fC [virtual]\fP"
@@ -123,21 +123,21 @@ Upon returning the result will be arbitary data returned by the module you sent
 .PP
 Implements \fBModuleMessage\fP.
 .PP
-Definition at line 182 of file modules.cpp.
+Definition at line 181 of file modules.cpp.
 .PP
 References dest, and Module::OnRequest().
 .PP
 .nf
-183 {
-184         if (this->dest)
-185         {
-186                 return dest->OnRequest(this);
-187         }
-188         else
-189         {
-190                 return NULL;
-191         }
-192 }
+182 {
+183         if (this->dest)
+184         {
+185                 return dest->OnRequest(this);
+186         }
+187         else
+188         {
+189                 return NULL;
+190         }
+191 }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -146,21 +146,21 @@ References dest, and Module::OnRequest().
 .PP
 This member holds a pointer to arbitary data set by the emitter of the message. 
 .PP
-Definition at line 162 of file modules.h.
+Definition at line 180 of file modules.h.
 .PP
 Referenced by GetData().
 .SS "\fBModule\fP* \fBRequest::dest\fP\fC [protected]\fP"
 .PP
 The single destination of the Request. 
 .PP
-Definition at line 169 of file modules.h.
+Definition at line 187 of file modules.h.
 .PP
 Referenced by GetDest(), and Send().
 .SS "\fBModule\fP* \fBRequest::source\fP\fC [protected]\fP"
 .PP
 This is a pointer to the sender of the message, which can be used to directly trigger events, or to create a reply. 
 .PP
-Definition at line 166 of file modules.h.
+Definition at line 184 of file modules.h.
 .PP
 Referenced by GetSource().
 
index 95aa8cd87ccb841a6a6e32103124281d8718b4e6..bc6962cac3091214840912979cf9ad53cc9d1bda 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Server" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Server" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -128,7 +128,7 @@ Inherits \fBclassbase\fP.
 .br
 .RI "\fIAdds an extended mode letter which is parsed by a module and handled in a list fashion. \fP"
 .ti -1c
-.RI "virtual void \fBAddCommand\fP (char *cmd, \fBhandlerfunc\fP f, char flags, int minparams, char *source)"
+.RI "virtual void \fBAddCommand\fP (\fBcommand_t\fP *f)"
 .br
 .RI "\fIAdds a command to the command table. \fP"
 .ti -1c
@@ -260,7 +260,7 @@ Allows server output and query functions This class contains methods which allow
 
 All modules should instantiate at least one copy of this class, and use its member functions to perform their tasks.
 .PP
-Definition at line 1096 of file modules.h.
+Definition at line 1114 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Server::Server ()"
@@ -269,11 +269,11 @@ Default constructor.
 .PP
 Creates a Server object.
 .PP
-Definition at line 305 of file modules.cpp.
+Definition at line 304 of file modules.cpp.
 .PP
 .nf
-306 {
-307 }
+305 {
+306 }
 .fi
 .PP
 .SS "Server::~Server ()\fC [virtual]\fP"
@@ -282,33 +282,33 @@ Default destructor.
 .PP
 Destroys a Server object.
 .PP
-Definition at line 309 of file modules.cpp.
+Definition at line 308 of file modules.cpp.
 .PP
 .nf
-310 {
-311 }
+309 {
+310 }
 .fi
 .PP
 .SH "Member Function Documentation"
 .PP 
-.SS "void Server::AddCommand (char * cmd, \fBhandlerfunc\fP f, char flags, int minparams, char * source)\fC [virtual]\fP"
+.SS "void Server::AddCommand (\fBcommand_t\fP * f)\fC [virtual]\fP"
 .PP
 Adds a command to the command table. 
 .PP
 This allows modules to add extra commands into the command table. You must place a function within your module which is is of type handlerfunc:
 .PP
-typedef void (handlerfunc) (char**, int, userrec*); ... void \fBhandle_kill(char **parameters, int pcnt, userrec *user)\fP
+typedef void (handlerfunc) (char**, int, userrec*); ... void handle_kill(char **parameters, int pcnt, userrec *user)
 .PP
 When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'. The source parameter is used for resource tracking, and should contain the name of your module (with file extension) e.g. 'm_blarp.so'. If you place the wrong identifier here, you can cause crashes if your module is unloaded.
 .PP
-Definition at line 416 of file modules.cpp.
+Definition at line 415 of file modules.cpp.
 .PP
-References createcommand().
+References InspIRCd::Parser.
 .PP
 .nf
-417 {
-418         createcommand(cmd,f,flags,minparams,source);
-419 }
+416 {
+417         ServerInstance->Parser->CreateCommand(f);
+418 }
 .fi
 .PP
 .SS "void Server::AddELine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -317,14 +317,14 @@ Adds a E-line The E-line is enforced as soon as it is added.
 .PP
 The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 .PP
-Definition at line 660 of file modules.cpp.
+Definition at line 659 of file modules.cpp.
 .PP
 References add_eline().
 .PP
 .nf
-661 {
-662         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-663 }
+660 {
+661         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+662 }
 .fi
 .PP
 .SS "bool Server::AddExtendedListMode (char modechar)\fC [virtual]\fP"
@@ -343,17 +343,17 @@ This call is used to implement modes like +q and +a. The characteristics of thes
 .PP
 It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use \fBServer::Find\fP to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.
 .PP
-Definition at line 584 of file modules.cpp.
+Definition at line 583 of file modules.cpp.
 .PP
 References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.
 .PP
 .nf
-585 {
-586         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
-587         if (res)
-588                 ModeMakeList(modechar);
-589         return res;
-590 }
+584 {
+585         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
+586         if (res)
+587                 ModeMakeList(modechar);
+588         return res;
+589 }
 .fi
 .PP
 .SS "bool Server::AddExtendedMode (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)\fC [virtual]\fP"
@@ -362,37 +362,37 @@ Adds an extended mode letter which is parsed by a module.
 .PP
 This allows modules to add extra mode letters, e.g. +x for hostcloak. the 'type' parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.
 .PP
-Definition at line 556 of file modules.cpp.
+Definition at line 555 of file modules.cpp.
 .PP
 References DEBUG, DoAddExtendedMode(), log(), MT_CLIENT, and MT_SERVER.
 .PP
 .nf
-557 {
-558         if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
-559         {
-560                 if (type == MT_SERVER)
-561                 {
-562                         log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
-563                         return false;
-564                 }
-565                 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
-566                 {
-567                         log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
-568                         return false;
-569                 }
-570                 if ((params_when_on>1) || (params_when_off>1))
-571                 {
-572                         log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
-573                         return false;
-574                 }
-575                 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
-576         }
-577         else
-578         {
-579                 log(DEBUG,'*** API ERROR *** Muppet modechar detected.');
-580         }
-581         return false;
-582 }
+556 {
+557         if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
+558         {
+559                 if (type == MT_SERVER)
+560                 {
+561                         log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion');
+562                         return false;
+563                 }
+564                 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
+565                 {
+566                         log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported');
+567                         return false;
+568                 }
+569                 if ((params_when_on>1) || (params_when_off>1))
+570                 {
+571                         log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported');
+572                         return false;
+573                 }
+574                 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
+575         }
+576         else
+577         {
+578                 log(DEBUG,'*** API ERROR *** Muppet modechar detected.');
+579         }
+580         return false;
+581 }
 .fi
 .PP
 .SS "void Server::AddGLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -401,14 +401,14 @@ Adds a G-line The G-line is propogated to all of the servers in the mesh and enf
 .PP
 The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 .PP
-Definition at line 640 of file modules.cpp.
+Definition at line 639 of file modules.cpp.
 .PP
 References add_gline().
 .PP
 .nf
-641 {
-642         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-643 }
+640 {
+641         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+642 }
 .fi
 .PP
 .SS "void Server::AddKLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP"
@@ -417,14 +417,14 @@ Adds a K-line The K-line is enforced as soon as it is added.
 .PP
 The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 .PP
-Definition at line 655 of file modules.cpp.
+Definition at line 654 of file modules.cpp.
 .PP
 References add_kline().
 .PP
 .nf
-656 {
-657         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-658 }
+655 {
+656         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+657 }
 .fi
 .PP
 .SS "void Server::AddQLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP nickname)\fC [virtual]\fP"
@@ -433,28 +433,28 @@ Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enf
 .PP
 The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 .PP
-Definition at line 645 of file modules.cpp.
+Definition at line 644 of file modules.cpp.
 .PP
 References add_qline().
 .PP
 .nf
-646 {
-647         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
-648 }
+645 {
+646         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
+647 }
 .fi
 .PP
 .SS "void Server::AddSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP"
 .PP
 Adds a class derived from \fBInspSocket\fP to the server's socket engine. 
 .PP
-Definition at line 313 of file modules.cpp.
+Definition at line 312 of file modules.cpp.
 .PP
 References module_sockets.
 .PP
 .nf
-314 {
-315         module_sockets.push_back(sock);
-316 }
+313 {
+314         module_sockets.push_back(sock);
+315 }
 .fi
 .PP
 .SS "void Server::AddZLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP ipaddr)\fC [virtual]\fP"
@@ -463,14 +463,14 @@ Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enf
 .PP
 The duration must be in seconds, however you can use the \fBServer::CalcDuration\fP method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 .PP
-Definition at line 650 of file modules.cpp.
+Definition at line 649 of file modules.cpp.
 .PP
 References add_zline().
 .PP
 .nf
-651 {
-652         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-653 }
+650 {
+651         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+652 }
 .fi
 .PP
 .SS "long Server::CalcDuration (\fBstd::string\fP duration)\fC [virtual]\fP"
@@ -479,14 +479,14 @@ Calculates a duration This method will take a string containing a formatted dura
 .PP
 '1w2d') and return its value as a total number of seconds. This is the same function used internally by /GLINE etc to set the ban times.
 .PP
-Definition at line 690 of file modules.cpp.
+Definition at line 689 of file modules.cpp.
 .PP
 References duration().
 .PP
 .nf
-691 {
-692         return duration(delta.c_str());
-693 }
+690 {
+691         return duration(delta.c_str());
+692 }
 .fi
 .PP
 .SS "void Server::CallCommandHandler (\fBstd::string\fP commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -497,14 +497,14 @@ You can use this function to trigger other commands in the ircd, such as PRIVMSG
 .br
 ) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih \fBAddCommand()\fP. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
 .PP
-Definition at line 401 of file modules.cpp.
+Definition at line 400 of file modules.cpp.
 .PP
-References call_handler().
+References InspIRCd::Parser.
 .PP
 .nf
-402 {
-403         call_handler(commandname.c_str(),parameters,pcnt,user);
-404 }
+401 {
+402         ServerInstance->Parser->CallHandler(commandname,parameters,pcnt,user);
+403 }
 .fi
 .PP
 .SS "void Server::ChangeGECOS (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP"
@@ -513,14 +513,14 @@ Change GECOS (fullname) of a user.
 .PP
 You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.
 .PP
-Definition at line 499 of file modules.cpp.
+Definition at line 498 of file modules.cpp.
 .PP
 References ChangeName().
 .PP
 .nf
-500 {
-501         ChangeName(user,gecos.c_str());
-502 }
+499 {
+500         ChangeName(user,gecos.c_str());
+501 }
 .fi
 .PP
 .SS "void Server::ChangeHost (\fBuserrec\fP * user, \fBstd::string\fP host)\fC [virtual]\fP"
@@ -529,14 +529,14 @@ Change displayed hostname of a user.
 .PP
 You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.
 .PP
-Definition at line 494 of file modules.cpp.
+Definition at line 493 of file modules.cpp.
 .PP
 References ChangeDisplayedHost().
 .PP
 .nf
-495 {
-496         ChangeDisplayedHost(user,host.c_str());
-497 }
+494 {
+495         ChangeDisplayedHost(user,host.c_str());
+496 }
 .fi
 .PP
 .SS "void Server::ChangeUserNick (\fBuserrec\fP * user, \fBstd::string\fP nickname)\fC [virtual]\fP"
@@ -545,14 +545,14 @@ Forces a user nickchange.
 .PP
 This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.
 .PP
-Definition at line 386 of file modules.cpp.
+Definition at line 385 of file modules.cpp.
 .PP
 References force_nickchange().
 .PP
 .nf
-387 {
-388         force_nickchange(user,nickname.c_str());
-389 }
+386 {
+387         force_nickchange(user,nickname.c_str());
+388 }
 .fi
 .PP
 .SS "\fBstd::string\fP Server::ChanMode (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
@@ -561,14 +561,14 @@ Attempts to look up a user's privilages on a channel.
 .PP
 This function will return a string containing either @, %, +, or an empty string, representing the user's privilages upon the channel you specify.
 .PP
-Definition at line 524 of file modules.cpp.
+Definition at line 523 of file modules.cpp.
 .PP
 References cmode().
 .PP
 .nf
-525 {
-526         return cmode(User,Chan);
-527 }
+524 {
+525         return cmode(User,Chan);
+526 }
 .fi
 .PP
 .SS "bool Server::CommonChannels (\fBuserrec\fP * u1, \fBuserrec\fP * u2)\fC [virtual]\fP"
@@ -577,14 +577,14 @@ Returns true if two users share a common channel.
 .PP
 This method is used internally by the NICK and QUIT commands, and the \fBServer::SendCommon\fP method.
 .PP
-Definition at line 472 of file modules.cpp.
+Definition at line 471 of file modules.cpp.
 .PP
 References common_channels().
 .PP
 .nf
-473 {
-474         return (common_channels(u1,u2) != 0);
-475 }
+472 {
+473         return (common_channels(u1,u2) != 0);
+474 }
 .fi
 .PP
 .SS "int Server::CountUsers (\fBchanrec\fP * c)\fC [virtual]\fP"
@@ -593,103 +593,103 @@ Returns a count of the number of users on a channel.
 .PP
 This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.
 .PP
-Definition at line 592 of file modules.cpp.
+Definition at line 591 of file modules.cpp.
 .PP
 .nf
-593 {
-594         return usercount(c);
-595 }
+592 {
+593         return usercount(c);
+594 }
 .fi
 .PP
 .SS "bool Server::DelELine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
 .PP
 Deletes a local E-Line. 
 .PP
-Definition at line 685 of file modules.cpp.
+Definition at line 684 of file modules.cpp.
 .PP
 References del_eline().
 .PP
 .nf
-686 {
-687         return del_eline(hostmask.c_str());
-688 }
+685 {
+686         return del_eline(hostmask.c_str());
+687 }
 .fi
 .PP
 .SS "bool Server::DelGLine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
 .PP
 Deletes a G-Line from all servers on the mesh. 
 .PP
-Definition at line 665 of file modules.cpp.
+Definition at line 664 of file modules.cpp.
 .PP
 References del_gline().
 .PP
 .nf
-666 {
-667         return del_gline(hostmask.c_str());
-668 }
+665 {
+666         return del_gline(hostmask.c_str());
+667 }
 .fi
 .PP
 .SS "bool Server::DelKLine (\fBstd::string\fP hostmask)\fC [virtual]\fP"
 .PP
 Deletes a local K-Line. 
 .PP
-Definition at line 680 of file modules.cpp.
+Definition at line 679 of file modules.cpp.
 .PP
 References del_kline().
 .PP
 .nf
-681 {
-682         return del_kline(hostmask.c_str());
-683 }
+680 {
+681         return del_kline(hostmask.c_str());
+682 }
 .fi
 .PP
 .SS "bool Server::DelQLine (\fBstd::string\fP nickname)\fC [virtual]\fP"
 .PP
 Deletes a Q-Line from all servers on the mesh. 
 .PP
-Definition at line 670 of file modules.cpp.
+Definition at line 669 of file modules.cpp.
 .PP
 References del_qline().
 .PP
 .nf
-671 {
-672         return del_qline(nickname.c_str());
-673 }
+670 {
+671         return del_qline(nickname.c_str());
+672 }
 .fi
 .PP
 .SS "void Server::DelSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP"
 .PP
 Deletes a class derived from \fBInspSocket\fP from the server's socket engine. 
 .PP
-Definition at line 334 of file modules.cpp.
+Definition at line 333 of file modules.cpp.
 .PP
 References module_sockets.
 .PP
 .nf
-335 {
-336         for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
-337         {
-338                 if (*a == sock)
-339                 {
-340                         module_sockets.erase(a);
-341                         return;
-342                 }
-343         }
-344 }
+334 {
+335         for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
+336         {
+337                 if (*a == sock)
+338                 {
+339                         module_sockets.erase(a);
+340                         return;
+341                 }
+342         }
+343 }
 .fi
 .PP
 .SS "bool Server::DelZLine (\fBstd::string\fP ipaddr)\fC [virtual]\fP"
 .PP
 Deletes a Z-Line from all servers on the mesh. 
 .PP
-Definition at line 675 of file modules.cpp.
+Definition at line 674 of file modules.cpp.
 .PP
 References del_zline().
 .PP
 .nf
-676 {
-677         return del_zline(ipaddr.c_str());
-678 }
+675 {
+676         return del_zline(ipaddr.c_str());
+677 }
 .fi
 .PP
 .SS "\fBchanrec\fP * Server::FindChannel (\fBstd::string\fP channel)\fC [virtual]\fP"
@@ -698,14 +698,14 @@ Attempts to look up a channel and return a pointer to it.
 .PP
 This function will return NULL if the channel does not exist.
 .PP
-Definition at line 519 of file modules.cpp.
+Definition at line 518 of file modules.cpp.
 .PP
 References FindChan().
 .PP
 .nf
-520 {
-521         return FindChan(channel.c_str());
-522 }
+519 {
+520         return FindChan(channel.c_str());
+521 }
 .fi
 .PP
 .SS "\fBuserrec\fP * Server::FindDescriptor (int socket)\fC [virtual]\fP"
@@ -714,12 +714,12 @@ Attempts to look up a nick using the file descriptor associated with that nick.
 .PP
 This function will return NULL if the file descriptor is not associated with a valid user.
 .PP
-Definition at line 514 of file modules.cpp.
+Definition at line 513 of file modules.cpp.
 .PP
 .nf
-515 {
-516         return (socket < 65536 ? fd_ref_table[socket] : NULL);
-517 }
+514 {
+515         return (socket < 65536 ? fd_ref_table[socket] : NULL);
+516 }
 .fi
 .PP
 .SS "\fBModule\fP * Server::FindModule (\fBstd::string\fP name)\fC [virtual]\fP"
@@ -728,21 +728,21 @@ This function finds a module by name.
 .PP
 You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.
 .PP
-Definition at line 724 of file modules.cpp.
+Definition at line 723 of file modules.cpp.
 .PP
 References MODCOUNT, ServerConfig::module_names, and modules.
 .PP
 .nf
-725 {
-726         for (int i = 0; i <= MODCOUNT; i++)
-727         {
-728                 if (Config->module_names[i] == name)
-729                 {
-730                         return modules[i];
-731                 }
-732         }
-733         return NULL;
-734 }
+724 {
+725         for (int i = 0; i <= MODCOUNT; i++)
+726         {
+727                 if (Config->module_names[i] == name)
+728                 {
+729                         return modules[i];
+730                 }
+731         }
+732         return NULL;
+733 }
 .fi
 .PP
 .SS "\fBuserrec\fP * Server::FindNick (\fBstd::string\fP nick)\fC [virtual]\fP"
@@ -751,14 +751,14 @@ Attempts to look up a nick and return a pointer to it.
 .PP
 This function will return NULL if the nick does not exist.
 .PP
-Definition at line 509 of file modules.cpp.
+Definition at line 508 of file modules.cpp.
 .PP
 References Find().
 .PP
 .nf
-510 {
-511         return Find(nick);
-512 }
+509 {
+510         return Find(nick);
+511 }
 .fi
 .PP
 .SS "\fBAdmin\fP Server::GetAdmin ()\fC [virtual]\fP"
@@ -767,14 +767,14 @@ Returns the information of the server as returned by the /ADMIN command.
 .PP
 See the \fBAdmin\fP class for further information of the return value. The members \fBAdmin::Nick\fP, \fBAdmin::Email\fP and \fBAdmin::Name\fP contain the information for the server where the module is loaded.
 .PP
-Definition at line 549 of file modules.cpp.
+Definition at line 548 of file modules.cpp.
 .PP
 References ServerConfig::AdminEmail, ServerConfig::AdminName, and ServerConfig::AdminNick.
 .PP
 .nf
-550 {
-551         return Admin(Config->AdminName,Config->AdminEmail,Config->AdminNick);
-552 }
+549 {
+550         return Admin(Config->AdminName,Config->AdminEmail,Config->AdminNick);
+551 }
 .fi
 .PP
 .SS "\fBServerConfig\fP * Server::GetConfig ()"
@@ -783,54 +783,54 @@ Obtains a pointer to the server's \fBServerConfig\fP object.
 .PP
 The \fBServerConfig\fP object contains most of the configuration data of the IRC server, as read from the config file by the core.
 .PP
-Definition at line 324 of file modules.cpp.
+Definition at line 323 of file modules.cpp.
 .PP
 .nf
-325 {
-326         return Config;
-327 }
+324 {
+325         return Config;
+326 }
 .fi
 .PP
 .SS "\fBstd::string\fP Server::GetNetworkName ()\fC [virtual]\fP"
 .PP
 Returns the network name, global to all linked servers. 
 .PP
-Definition at line 539 of file modules.cpp.
+Definition at line 538 of file modules.cpp.
 .PP
 References ServerConfig::Network.
 .PP
 .nf
-540 {
-541         return Config->Network;
-542 }
+539 {
+540         return Config->Network;
+541 }
 .fi
 .PP
 .SS "\fBstd::string\fP Server::GetServerDescription ()\fC [virtual]\fP"
 .PP
 Returns the server description string of the local server. 
 .PP
-Definition at line 544 of file modules.cpp.
+Definition at line 543 of file modules.cpp.
 .PP
 References ServerConfig::ServerDesc.
 .PP
 .nf
-545 {
-546         return Config->ServerDesc;
-547 }
+544 {
+545         return Config->ServerDesc;
+546 }
 .fi
 .PP
 .SS "\fBstd::string\fP Server::GetServerName ()\fC [virtual]\fP"
 .PP
 Returns the server name of the server where the module is loaded. 
 .PP
-Definition at line 534 of file modules.cpp.
+Definition at line 533 of file modules.cpp.
 .PP
 References ServerConfig::ServerName.
 .PP
 .nf
-535 {
-536         return Config->ServerName;
-537 }
+534 {
+535         return Config->ServerName;
+536 }
 .fi
 .PP
 .SS "\fBchanuserlist\fP Server::GetUsers (\fBchanrec\fP * chan)\fC [virtual]\fP"
@@ -839,36 +839,36 @@ Fetches the userlist of a channel.
 .PP
 This function must be here and not a member of userrec or chanrec due to include constraints.
 .PP
-Definition at line 374 of file modules.cpp.
+Definition at line 373 of file modules.cpp.
 .PP
 References chanrec::GetUsers().
 .PP
 .nf
-375 {
-376         chanuserlist userl;
-377         userl.clear();
-378         std::vector<char*> *list = chan->GetUsers();
-379         for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
-380         {
-381                 char* o = *i;
-382                 userl.push_back((userrec*)o);
-383         }
-384         return userl;
-385 }
+374 {
+375         chanuserlist userl;
+376         userl.clear();
+377         std::vector<char*> *list = chan->GetUsers();
+378         for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
+379         {
+380                 char* o = *i;
+381                 userl.push_back((userrec*)o);
+382         }
+383         return userl;
+384 }
 .fi
 .PP
 .SS "\fBstd::string\fP Server::GetVersion ()"
 .PP
 Returns the version string of this server. 
 .PP
-Definition at line 329 of file modules.cpp.
+Definition at line 328 of file modules.cpp.
 .PP
 References InspIRCd::GetVersionString().
 .PP
 .nf
-330 {
-331         return ServerInstance->GetVersionString();
-332 }
+329 {
+330         return ServerInstance->GetVersionString();
+331 }
 .fi
 .PP
 .SS "bool Server::IsNick (\fBstd::string\fP nick)\fC [virtual]\fP"
@@ -877,14 +877,14 @@ Returns true if a nick is valid.
 .PP
 Nicks for unregistered connections will return false.
 .PP
-Definition at line 504 of file modules.cpp.
+Definition at line 503 of file modules.cpp.
 .PP
 References isnick().
 .PP
 .nf
-505 {
-506         return (isnick(nick.c_str()) != 0);
-507 }
+504 {
+505         return (isnick(nick.c_str()) != 0);
+506 }
 .fi
 .PP
 .SS "bool Server::IsOnChannel (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP"
@@ -893,14 +893,14 @@ Checks if a user is on a channel.
 .PP
 This function will return true or false to indicate if user 'User' is on channel 'Chan'.
 .PP
-Definition at line 529 of file modules.cpp.
+Definition at line 528 of file modules.cpp.
 .PP
 References has_channel().
 .PP
 .nf
-530 {
-531         return has_channel(User,Chan);
-532 }
+529 {
+530         return has_channel(User,Chan);
+531 }
 .fi
 .PP
 .SS "bool Server::IsUlined (\fBstd::string\fP server)\fC [virtual]\fP"
@@ -909,62 +909,62 @@ Returns true if the servername you give is ulined.
 .PP
 ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.
 .PP
-Definition at line 396 of file modules.cpp.
+Definition at line 395 of file modules.cpp.
 .PP
 References is_uline().
 .PP
 .nf
-397 {
-398         return is_uline(server.c_str());
-399 }
+396 {
+397         return is_uline(server.c_str());
+398 }
 .fi
 .PP
 .SS "bool Server::IsValidMask (\fBstd::string\fP mask)\fC [virtual]\fP"
 .PP
 Returns true if a nick!ident string is correctly formatted, false if otherwise. 
 .PP
-Definition at line 695 of file modules.cpp.
+Definition at line 694 of file modules.cpp.
 .PP
 .nf
-696 {
-697         const char* dest = mask.c_str();
-698         if (strchr(dest,'!')==0)
-699                 return false;
-700         if (strchr(dest,'@')==0)
-701                 return false;
-702         for (unsigned int i = 0; i < strlen(dest); i++)
-703                 if (dest[i] < 32)
-704                         return false;
-705         for (unsigned int i = 0; i < strlen(dest); i++)
-706                 if (dest[i] > 126)
-707                         return false;
-708         unsigned int c = 0;
-709         for (unsigned int i = 0; i < strlen(dest); i++)
-710                 if (dest[i] == '!')
-711                         c++;
-712         if (c>1)
-713                 return false;
-714         c = 0;
-715         for (unsigned int i = 0; i < strlen(dest); i++)
-716                 if (dest[i] == '@')
-717                         c++;
-718         if (c>1)
-719                 return false;
-720 
-721         return true;
-722 }
+695 {
+696         const char* dest = mask.c_str();
+697         if (strchr(dest,'!')==0)
+698                 return false;
+699         if (strchr(dest,'@')==0)
+700                 return false;
+701         for (unsigned int i = 0; i < strlen(dest); i++)
+702                 if (dest[i] < 32)
+703                         return false;
+704         for (unsigned int i = 0; i < strlen(dest); i++)
+705                 if (dest[i] > 126)
+706                         return false;
+707         unsigned int c = 0;
+708         for (unsigned int i = 0; i < strlen(dest); i++)
+709                 if (dest[i] == '!')
+710                         c++;
+711         if (c>1)
+712                 return false;
+713         c = 0;
+714         for (unsigned int i = 0; i < strlen(dest); i++)
+715                 if (dest[i] == '@')
+716                         c++;
+717         if (c>1)
+718                 return false;
+719 
+720         return true;
+721 }
 .fi
 .PP
 .SS "bool Server::IsValidModuleCommand (\fBstd::string\fP commandname, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
 .PP
-Definition at line 406 of file modules.cpp.
+Definition at line 405 of file modules.cpp.
 .PP
-References is_valid_cmd().
+References InspIRCd::Parser.
 .PP
 .nf
-407 {
-408         return is_valid_cmd(commandname.c_str(), pcnt, user);
-409 }
+406 {
+407         return ServerInstance->Parser->IsValidCommand(commandname, pcnt, user);
+408 }
 .fi
 .PP
 .SS "\fBchanrec\fP * Server::JoinUserToChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP key)\fC [virtual]\fP"
@@ -973,14 +973,14 @@ Forces a user to join a channel.
 .PP
 This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.
 .PP
-Definition at line 364 of file modules.cpp.
+Definition at line 363 of file modules.cpp.
 .PP
 References add_channel().
 .PP
 .nf
-365 {
-366         return add_channel(user,cname.c_str(),key.c_str(),false);
-367 }
+364 {
+365         return add_channel(user,cname.c_str(),key.c_str(),false);
+366 }
 .fi
 .PP
 .SS "void Server::Log (int level, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -989,14 +989,14 @@ Writes a log string.
 .PP
 This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.
 .PP
-Definition at line 411 of file modules.cpp.
+Definition at line 410 of file modules.cpp.
 .PP
 References log().
 .PP
 .nf
-412 {
-413         log(level,'%s',s.c_str());
-414 }
+411 {
+412         log(level,'%s',s.c_str());
+413 }
 .fi
 .PP
 .SS "bool Server::MatchText (\fBstd::string\fP sliteral, \fBstd::string\fP spattern)\fC [virtual]\fP"
@@ -1005,15 +1005,15 @@ Matches text against a glob pattern.
 .PP
 Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.
 .PP
-Definition at line 351 of file modules.cpp.
+Definition at line 350 of file modules.cpp.
 .PP
 .nf
-352 {
-353         char literal[MAXBUF],pattern[MAXBUF];
-354         strlcpy(literal,sliteral.c_str(),MAXBUF);
-355         strlcpy(pattern,spattern.c_str(),MAXBUF);
-356         return match(literal,pattern);
-357 }
+351 {
+352         char literal[MAXBUF],pattern[MAXBUF];
+353         strlcpy(literal,sliteral.c_str(),MAXBUF);
+354         strlcpy(pattern,spattern.c_str(),MAXBUF);
+355         return match(literal,pattern);
+356 }
 .fi
 .PP
 .SS "\fBchanrec\fP * Server::PartUserFromChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1022,14 +1022,14 @@ Forces a user to part a channel.
 .PP
 This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.
 .PP
-Definition at line 369 of file modules.cpp.
+Definition at line 368 of file modules.cpp.
 .PP
 References del_channel().
 .PP
 .nf
-370 {
-371         return del_channel(user,cname.c_str(),reason.c_str(),false);
-372 }
+369 {
+370         return del_channel(user,cname.c_str(),reason.c_str(),false);
+371 }
 .fi
 .PP
 .SS "bool Server::PseudoToUser (\fBuserrec\fP * alive, \fBuserrec\fP * zombie, \fBstd::string\fP message)\fC [virtual]\fP"
@@ -1038,39 +1038,39 @@ This user takes one user, and switches their file descriptor with another user,
 .PP
 The user in 'alive' is booted off the server with the given message. The user referred to by 'zombie' should have previously been locked with Server::ZombifyUser, otherwise stale sockets and file descriptor leaks can occur. After this call, the pointer to alive will be invalid, and the pointer to zombie will be equivalent in effect to the old pointer to alive.
 .PP
-Definition at line 610 of file modules.cpp.
+Definition at line 609 of file modules.cpp.
 .PP
 References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, kill_link(), chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, chanrec::topicset, Write(), WriteFrom(), and WriteServ().
 .PP
 .nf
-611 {
-612         zombie->fd = alive->fd;
-613         alive->fd = FD_MAGIC_NUMBER;
-614         alive->ClearBuffer();
-615         Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
-616         kill_link(alive,message.c_str());
-617         fd_ref_table[zombie->fd] = zombie;
-618         for (unsigned int i = 0; i < zombie->chans.size(); i++)
-619         {
-620                 if (zombie->chans[i].channel != NULL)
-621                 {
-622                         if (zombie->chans[i].channel->name)
-623                         {
-624                                 chanrec* Ptr = zombie->chans[i].channel;
-625                                 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
-626                                 if (Ptr->topicset)
-627                                 {
-628                                         WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
-629                                         WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
-630                                 }
-631                                 userlist(zombie,Ptr);
-632                                 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
-633 
-634                         }
-635                 }
-636         }
-637         return true;
-638 }
+610 {
+611         zombie->fd = alive->fd;
+612         alive->fd = FD_MAGIC_NUMBER;
+613         alive->ClearBuffer();
+614         Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick);
+615         kill_link(alive,message.c_str());
+616         fd_ref_table[zombie->fd] = zombie;
+617         for (unsigned int i = 0; i < zombie->chans.size(); i++)
+618         {
+619                 if (zombie->chans[i].channel != NULL)
+620                 {
+621                         if (zombie->chans[i].channel->name)
+622                         {
+623                                 chanrec* Ptr = zombie->chans[i].channel;
+624                                 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name);
+625                                 if (Ptr->topicset)
+626                                 {
+627                                         WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic);
+628                                         WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
+629                                 }
+630                                 userlist(zombie,Ptr);
+631                                 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name);
+632 
+633                         }
+634                 }
+635         }
+636         return true;
+637 }
 .fi
 .PP
 .SS "void Server::QuitUser (\fBuserrec\fP * user, \fBstd::string\fP reason)\fC [virtual]\fP"
@@ -1083,27 +1083,27 @@ WARNING!
 .PP
 Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.
 .PP
-Definition at line 391 of file modules.cpp.
+Definition at line 390 of file modules.cpp.
 .PP
 References kill_link().
 .PP
 .nf
-392 {
-393         kill_link(user,reason.c_str());
-394 }
+391 {
+392         kill_link(user,reason.c_str());
+393 }
 .fi
 .PP
 .SS "void Server::RehashServer ()\fC [virtual]\fP"
 .PP
-Definition at line 318 of file modules.cpp.
+Definition at line 317 of file modules.cpp.
 .PP
 References ServerConfig::Read(), and WriteOpers().
 .PP
 .nf
-319 {
-320         WriteOpers('*** Rehashing config file');
-321         Config->Read(false,NULL);
-322 }
+318 {
+319         WriteOpers('*** Rehashing config file');
+320         Config->Read(false,NULL);
+321 }
 .fi
 .PP
 .SS "void Server::Send (int Socket, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1112,14 +1112,14 @@ Sends a line of text down a TCP/IP socket.
 .PP
 This method writes a line of text to an established socket, cutting it to 510 characters plus a carriage return and linefeed if required.
 .PP
-Definition at line 426 of file modules.cpp.
+Definition at line 425 of file modules.cpp.
 .PP
 References Write().
 .PP
 .nf
-427 {
-428         Write(Socket,'%s',s.c_str());
-429 }
+426 {
+427         Write(Socket,'%s',s.c_str());
+428 }
 .fi
 .PP
 .SS "void Server::SendChannel (\fBuserrec\fP * User, \fBchanrec\fP * Channel, \fBstd::string\fP s, bool IncludeSender)\fC [virtual]\fP"
@@ -1128,21 +1128,21 @@ Sends text from a user to a channel (mulicast).
 .PP
 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).
 .PP
-Definition at line 460 of file modules.cpp.
+Definition at line 459 of file modules.cpp.
 .PP
 References ChanExceptSender(), and WriteChannel().
 .PP
 .nf
-461 {
-462         if (IncludeSender)
-463         {
-464                 WriteChannel(Channel,User,'%s',s.c_str());
-465         }
-466         else
-467         {
-468                 ChanExceptSender(Channel,User,'%s',s.c_str());
-469         }
-470 }
+460 {
+461         if (IncludeSender)
+462         {
+463                 WriteChannel(Channel,User,'%s',s.c_str());
+464         }
+465         else
+466         {
+467                 ChanExceptSender(Channel,User,'%s',s.c_str());
+468         }
+469 }
 .fi
 .PP
 .SS "void Server::SendChannelServerNotice (\fBstd::string\fP ServName, \fBchanrec\fP * Channel, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1151,12 +1151,12 @@ Writes text to a channel, but from a server, including all.
 .PP
 This can be used to send server notices to a group of users.
 .PP
-Definition at line 455 of file modules.cpp.
+Definition at line 454 of file modules.cpp.
 .PP
 .nf
-456 {
-457         WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str());
-458 }
+455 {
+456         WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str());
+457 }
 .fi
 .PP
 .SS "void Server::SendCommon (\fBuserrec\fP * User, \fBstd::string\fP text, bool IncludeSender)\fC [virtual]\fP"
@@ -1165,21 +1165,21 @@ Sends text from a user to one or more channels (mulicast).
 .PP
 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.
 .PP
-Definition at line 477 of file modules.cpp.
+Definition at line 476 of file modules.cpp.
 .PP
 References WriteCommon(), and WriteCommonExcept().
 .PP
 .nf
-478 {
-479         if (IncludeSender)
-480         {
-481                 WriteCommon(User,'%s',text.c_str());
-482         }
-483         else
-484         {
-485                 WriteCommonExcept(User,'%s',text.c_str());
-486         }
-487 }
+477 {
+478         if (IncludeSender)
+479         {
+480                 WriteCommon(User,'%s',text.c_str());
+481         }
+482         else
+483         {
+484                 WriteCommonExcept(User,'%s',text.c_str());
+485         }
+486 }
 .fi
 .PP
 .SS "void Server::SendFrom (int Socket, \fBuserrec\fP * User, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1188,14 +1188,14 @@ Sends text from a user to a socket.
 .PP
 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)
 .PP
-Definition at line 436 of file modules.cpp.
+Definition at line 435 of file modules.cpp.
 .PP
 References WriteFrom().
 .PP
 .nf
-437 {
-438         WriteFrom(Socket,User,'%s',s.c_str());
-439 }
+436 {
+437         WriteFrom(Socket,User,'%s',s.c_str());
+438 }
 .fi
 .PP
 .SS "void Server::SendMode (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP"
@@ -1218,14 +1218,14 @@ Srv->SendMode(modes,3,user);
 .PP
 The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!
 .PP
-Definition at line 421 of file modules.cpp.
+Definition at line 420 of file modules.cpp.
 .PP
-References server_mode().
+References InspIRCd::ModeGrok, and ModeParser::ServerMode().
 .PP
 .nf
-422 {
-423         server_mode(parameters,pcnt,user);
-424 }
+421 {
+422         ServerInstance->ModeGrok->ServerMode(parameters,pcnt,user);
+423 }
 .fi
 .PP
 .SS "void Server::SendOpers (\fBstd::string\fP s)\fC [virtual]\fP"
@@ -1234,14 +1234,14 @@ Sends text to all opers.
 .PP
 This method sends a server notice to all opers with the usermode +s.
 .PP
-Definition at line 346 of file modules.cpp.
+Definition at line 345 of file modules.cpp.
 .PP
 References WriteOpers().
 .PP
 .nf
-347 {
-348         WriteOpers('%s',s.c_str());
-349 }
+346 {
+347         WriteOpers('%s',s.c_str());
+348 }
 .fi
 .PP
 .SS "void Server::SendServ (int Socket, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1250,14 +1250,14 @@ Sends text from the server to a socket.
 .PP
 This method writes a line of text to an established socket, with the servername prepended as used by numerics (see RFC 1459)
 .PP
-Definition at line 431 of file modules.cpp.
+Definition at line 430 of file modules.cpp.
 .PP
 References WriteServ().
 .PP
 .nf
-432 {
-433         WriteServ(Socket,'%s',s.c_str());
-434 }
+431 {
+432         WriteServ(Socket,'%s',s.c_str());
+433 }
 .fi
 .PP
 .SS "void Server::SendTo (\fBuserrec\fP * Source, \fBuserrec\fP * Dest, \fBstd::string\fP s)\fC [virtual]\fP"
@@ -1274,23 +1274,23 @@ The format will become:
 .PP
 Which is useful for numerics and server notices to single users, etc.
 .PP
-Definition at line 441 of file modules.cpp.
+Definition at line 440 of file modules.cpp.
 .PP
 References connection::fd, Write(), and WriteTo().
 .PP
 .nf
-442 {
-443         if (!Source)
-444         {
-445                 // if source is NULL, then the message originates from the local server
-446                 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
-447         }
-448         else
-449         {
-450                 // otherwise it comes from the user specified
-451                 WriteTo(Source,Dest,'%s',s.c_str());
-452         }
-453 }
+441 {
+442         if (!Source)
+443         {
+444                 // if source is NULL, then the message originates from the local server
+445                 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str());
+446         }
+447         else
+448         {
+449                 // otherwise it comes from the user specified
+450                 WriteTo(Source,Dest,'%s',s.c_str());
+451         }
+452 }
 .fi
 .PP
 .SS "void Server::SendToModeMask (\fBstd::string\fP modes, int flags, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1303,12 +1303,12 @@ Serv->SendToModeMask('xi', WM_OR, 'm00');
 .PP
 Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.
 .PP
-Definition at line 359 of file modules.cpp.
+Definition at line 358 of file modules.cpp.
 .PP
 .nf
-360 {
-361         WriteMode(modes.c_str(),flags,'%s',text.c_str());
-362 }
+359 {
+360         WriteMode(modes.c_str(),flags,'%s',text.c_str());
+361 }
 .fi
 .PP
 .SS "void Server::SendWallops (\fBuserrec\fP * User, \fBstd::string\fP text)\fC [virtual]\fP"
@@ -1317,14 +1317,14 @@ Sends a WALLOPS message.
 .PP
 This method writes a WALLOPS message to all users with the +w flag, originating from the specified user.
 .PP
-Definition at line 489 of file modules.cpp.
+Definition at line 488 of file modules.cpp.
 .PP
 References WriteWallOps().
 .PP
 .nf
-490 {
-491         WriteWallOps(User,false,'%s',text.c_str());
-492 }
+489 {
+490         WriteWallOps(User,false,'%s',text.c_str());
+491 }
 .fi
 .PP
 .SS "bool Server::UserToPseudo (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP"
@@ -1333,21 +1333,21 @@ Remove a user's connection to the irc server, but leave their client in existenc
 .PP
 When you call this function, the user's file descriptor will be replaced with the value of FD_MAGIC_NUMBER and their old file descriptor will be closed. This idle client will remain until it is restored with a valid file descriptor, or is removed from IRC by an operator After this call, the pointer to user will be invalid.
 .PP
-Definition at line 598 of file modules.cpp.
+Definition at line 597 of file modules.cpp.
 .PP
-References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, and Write().
+References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, InspIRCd::SE, and Write().
 .PP
 .nf
-599 {
-600         unsigned int old_fd = user->fd;
-601         user->fd = FD_MAGIC_NUMBER;
-602         user->ClearBuffer();
-603         Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
-604         SE->DelFd(old_fd);
-605         shutdown(old_fd,2);
-606         close(old_fd);
-607         return true;
-608 }
+598 {
+599         unsigned int old_fd = user->fd;
+600         user->fd = FD_MAGIC_NUMBER;
+601         user->ClearBuffer();
+602         Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str());
+603         ServerInstance->SE->DelFd(old_fd);
+604         shutdown(old_fd,2);
+605         close(old_fd);
+606         return true;
+607 }
 .fi
 .PP
 
index 445d8b09726efe94afca2299fdcced28dbfec218..e35314eae866367be3c96b23855ac89b62da32a2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ServerConfig" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ServerConfig" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -44,6 +44,15 @@ Inherits \fBclassbase\fP.
 .ti -1c
 .RI "int \fBEnumValues\fP (std::stringstream *config, const char *tag, int index)"
 .br
+.ti -1c
+.RI "\fBModule\fP * \fBGetIOHook\fP (int port)"
+.br
+.ti -1c
+.RI "bool \fBAddIOHook\fP (int port, \fBModule\fP *iomod)"
+.br
+.ti -1c
+.RI "bool \fBDelIOHook\fP (int port)"
+.br
 .in -1c
 .SS "Public Attributes"
 
@@ -191,6 +200,10 @@ Inherits \fBclassbase\fP.
 .RI "int \fBports\fP [255]"
 .br
 .RI "\fIA list of ports which the server is listening on. \fP"
+.ti -1c
+.RI "std::map< int, \fBModule\fP * > \fBIOHookModule\fP"
+.br
+.RI "\fIA list of ports claimed by IO Modules. \fP"
 .in -1c
 .SS "Private Member Functions"
 
@@ -218,13 +231,15 @@ This class holds the bulk of the runtime configuration for the ircd.
 
 It allows for reading new config values, accessing configuration files, and storage of the configuration data needed to run the ircd, such as the servername, connect classes, /ADMIN data, MOTDs and filenames etc.
 .PP
-Definition at line 39 of file inspircd_io.h.
+Definition at line 40 of file inspircd_io.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "ServerConfig::ServerConfig ()"
 .PP
 .SH "Member Function Documentation"
 .PP 
+.SS "bool ServerConfig::AddIOHook (int port, \fBModule\fP * iomod)"
+.PP
 .SS "void ServerConfig::ClearStack ()"
 .PP
 Clears the include stack in preperation for a \fBRead()\fP call. 
@@ -239,6 +254,8 @@ This private method processes one line of configutation, appending errors to err
 Referenced by userrec::HasPermission().
 .SS "int ServerConfig::ConfValueEnum (char * tag, std::stringstream * config)"
 .PP
+.SS "bool ServerConfig::DelIOHook (int port)"
+.PP
 .SS "int ServerConfig::EnumConf (std::stringstream * config_f, const char * tag)"
 .PP
 Referenced by ConfigReader::Enumerate().
@@ -250,6 +267,9 @@ Referenced by ConfigReader::EnumerateValues().
 Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g. 
 .PP
 it can read both windows and UNIX style linefeeds transparently.
+.SS "\fBModule\fP* ServerConfig::GetIOHook (int port)"
+.PP
+Referenced by kill_link(), and kill_link_silent().
 .SS "bool ServerConfig::LoadConf (const char * filename, std::stringstream * target, std::stringstream * errorstream)"
 .PP
 Referenced by ConfigReader::ConfigReader().
@@ -269,213 +289,224 @@ Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigR
 .PP
 A list of IP addresses the server is listening on. 
 .PP
-Definition at line 216 of file inspircd_io.h.
+Definition at line 217 of file inspircd_io.h.
 .SS "char \fBServerConfig::AdminEmail\fP[MAXBUF]"
 .PP
 Holds the email address of the admin, for output in the /ADMIN command. 
 .PP
-Definition at line 89 of file inspircd_io.h.
+Definition at line 90 of file inspircd_io.h.
 .PP
 Referenced by Server::GetAdmin().
 .SS "char \fBServerConfig::AdminName\fP[MAXBUF]"
 .PP
 Holds the admin's name, for output in the /ADMIN command. 
 .PP
-Definition at line 84 of file inspircd_io.h.
+Definition at line 85 of file inspircd_io.h.
 .PP
 Referenced by Server::GetAdmin().
 .SS "char \fBServerConfig::AdminNick\fP[MAXBUF]"
 .PP
 Holds the admin's nickname, for output in the /ADMIN command. 
 .PP
-Definition at line 94 of file inspircd_io.h.
+Definition at line 95 of file inspircd_io.h.
 .PP
 Referenced by Server::GetAdmin().
 .SS "bool \fBServerConfig::AllowHalfop\fP"
 .PP
 If this value is true, halfops have been enabled in the configuration file. 
 .PP
-Definition at line 171 of file inspircd_io.h.
+Definition at line 172 of file inspircd_io.h.
 .SS "\fBClassVector\fP \fBServerConfig::Classes\fP"
 .PP
 The connect classes in use by the IRC server. 
 .PP
-Definition at line 242 of file inspircd_io.h.
+Definition at line 243 of file inspircd_io.h.
+.PP
+Referenced by AddClient().
 .SS "std::stringstream \fBServerConfig::config_f\fP"
 .PP
 The parsed configuration file as a stringstream. 
 .PP
 You should pass this to any configuration methods of this class, and not access it directly. It is recommended that modules use \fBConfigReader\fP instead which provides a simpler abstraction of configuration files.
 .PP
-Definition at line 238 of file inspircd_io.h.
+Definition at line 239 of file inspircd_io.h.
 .PP
 Referenced by userrec::HasPermission().
 .SS "int \fBServerConfig::debugging\fP"
 .PP
 True if the DEBUG loglevel is selected. 
 .PP
-Definition at line 202 of file inspircd_io.h.
+Definition at line 203 of file inspircd_io.h.
 .SS "int \fBServerConfig::DieDelay\fP"
 .PP
 How many seconds to wait before exiting the program when /DIE is correctly issued. 
 .PP
-Definition at line 211 of file inspircd_io.h.
+Definition at line 212 of file inspircd_io.h.
 .SS "char \fBServerConfig::diepass\fP[MAXBUF]"
 .PP
 The admin-configured /DIE password. 
 .PP
-Definition at line 98 of file inspircd_io.h.
+Definition at line 99 of file inspircd_io.h.
 .SS "char \fBServerConfig::DieValue\fP[MAXBUF]"
 .PP
 The last string found within a <die> tag, or an empty string. 
 .PP
-Definition at line 121 of file inspircd_io.h.
+Definition at line 122 of file inspircd_io.h.
 .SS "char \fBServerConfig::DisabledCommands\fP[MAXBUF]"
 .PP
 This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers. 
 .PP
-Definition at line 131 of file inspircd_io.h.
+Definition at line 132 of file inspircd_io.h.
 .SS "int \fBServerConfig::dns_timeout\fP"
 .PP
 The number of seconds the \fBDNS\fP subsystem will wait before timing out any request. 
 .PP
-Definition at line 176 of file inspircd_io.h.
+Definition at line 177 of file inspircd_io.h.
+.PP
+Referenced by AddClient().
 .SS "char \fBServerConfig::DNSServer\fP[MAXBUF]"
 .PP
 The \fBDNS\fP server to use for \fBDNS\fP queries. 
 .PP
-Definition at line 125 of file inspircd_io.h.
+Definition at line 126 of file inspircd_io.h.
 .SS "std::vector<\fBstd::string\fP> \fBServerConfig::include_stack\fP\fC [private]\fP"
 .PP
 This variable holds the names of all files included from the main one. 
 .PP
 This is used to make sure that no files are recursively included.
 .PP
-Definition at line 47 of file inspircd_io.h.
+Definition at line 48 of file inspircd_io.h.
+.SS "std::map<int,\fBModule\fP*> \fBServerConfig::IOHookModule\fP"
+.PP
+A list of ports claimed by IO Modules. 
+.PP
+Definition at line 256 of file inspircd_io.h.
 .SS "FILE* \fBServerConfig::log_file\fP"
 .PP
 The file handle of the logfile. 
 .PP
 If this value is NULL, the log file is not open, probably due to a permissions error on startup (this should not happen in normal operation!).
 .PP
-Definition at line 151 of file inspircd_io.h.
+Definition at line 152 of file inspircd_io.h.
 .SS "int \fBServerConfig::LogLevel\fP"
 .PP
 The loglevel in use by the IRC server. 
 .PP
-Definition at line 206 of file inspircd_io.h.
+Definition at line 207 of file inspircd_io.h.
 .SS "int \fBServerConfig::MaxConn\fP"
 .PP
 The value to be used for listen() backlogs as default. 
 .PP
-Definition at line 187 of file inspircd_io.h.
+Definition at line 188 of file inspircd_io.h.
 .SS "int \fBServerConfig::MaxWhoResults\fP"
 .PP
 The maximum number of /WHO results allowed in any single /WHO command. 
 .PP
-Definition at line 198 of file inspircd_io.h.
+Definition at line 199 of file inspircd_io.h.
 .SS "char \fBServerConfig::ModPath\fP[1024]"
 .PP
 The full path to the modules directory. 
 .PP
 This is either set at compile time, or overridden in the configuration file via the <options> tag.
 .PP
-Definition at line 138 of file inspircd_io.h.
+Definition at line 139 of file inspircd_io.h.
 .SS "std::vector<\fBstd::string\fP> \fBServerConfig::module_names\fP"
 .PP
 A list of module names (names only, no paths) which are currently loaded by the server. 
 .PP
-Definition at line 247 of file inspircd_io.h.
+Definition at line 248 of file inspircd_io.h.
 .PP
 Referenced by Server::FindModule().
 .SS "\fBfile_cache\fP \fBServerConfig::MOTD\fP"
 .PP
 The MOTD file, cached in a file_cache type. 
 .PP
-Definition at line 220 of file inspircd_io.h.
+Definition at line 221 of file inspircd_io.h.
 .SS "char \fBServerConfig::motd\fP[MAXBUF]"
 .PP
 The pathname and filename of the message of the day file, as defined by the administrator. 
 .PP
-Definition at line 107 of file inspircd_io.h.
+Definition at line 108 of file inspircd_io.h.
 .SS "char \fBServerConfig::MyExecutable\fP[1024]"
 .PP
 The full pathname to the executable, as given in argv[0] when the program starts. 
 .PP
-Definition at line 143 of file inspircd_io.h.
+Definition at line 144 of file inspircd_io.h.
 .SS "int \fBServerConfig::NetBufferSize\fP"
 .PP
 The size of the read() buffer in the user handling code, used to read data into a user's recvQ. 
 .PP
-Definition at line 182 of file inspircd_io.h.
+Definition at line 183 of file inspircd_io.h.
 .SS "char \fBServerConfig::Network\fP[MAXBUF]"
 .PP
-Definition at line 74 of file inspircd_io.h.
+Definition at line 75 of file inspircd_io.h.
 .PP
-Referenced by Server::GetNetworkName().
+Referenced by FullConnectUser(), and Server::GetNetworkName().
 .SS "bool \fBServerConfig::nofork\fP"
 .PP
 If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground. 
 .PP
-Definition at line 158 of file inspircd_io.h.
+Definition at line 159 of file inspircd_io.h.
 .SS "char \fBServerConfig::PID\fP[1024]"
 .PP
 The full pathname and filename of the PID file as defined in the configuration. 
 .PP
-Definition at line 229 of file inspircd_io.h.
+Definition at line 230 of file inspircd_io.h.
 .SS "int \fBServerConfig::ports\fP[255]"
 .PP
 A list of ports which the server is listening on. 
 .PP
-Definition at line 251 of file inspircd_io.h.
+Definition at line 252 of file inspircd_io.h.
 .SS "char \fBServerConfig::PrefixQuit\fP[MAXBUF]"
 .PP
 The quit prefix in use, or an empty string. 
 .PP
-Definition at line 116 of file inspircd_io.h.
+Definition at line 117 of file inspircd_io.h.
 .SS "char \fBServerConfig::restartpass\fP[MAXBUF]"
 .PP
 The admin-configured /RESTART password. 
 .PP
-Definition at line 102 of file inspircd_io.h.
+Definition at line 103 of file inspircd_io.h.
 .SS "\fBfile_cache\fP \fBServerConfig::RULES\fP"
 .PP
 The RULES file, cached in a file_cache type. 
 .PP
-Definition at line 224 of file inspircd_io.h.
+Definition at line 225 of file inspircd_io.h.
 .SS "char \fBServerConfig::rules\fP[MAXBUF]"
 .PP
 The pathname and filename of the rules file, as defined by the administrator. 
 .PP
-Definition at line 112 of file inspircd_io.h.
+Definition at line 113 of file inspircd_io.h.
 .SS "char \fBServerConfig::ServerDesc\fP[MAXBUF]"
 .PP
 Holds the description of the local server as defined by the administrator. 
 .PP
-Definition at line 79 of file inspircd_io.h.
+Definition at line 80 of file inspircd_io.h.
 .PP
 Referenced by Server::GetServerDescription().
 .SS "char \fBServerConfig::ServerName\fP[MAXBUF]"
 .PP
 Holds the server name of the local server as defined by the administrator. 
 .PP
-Definition at line 68 of file inspircd_io.h.
+Definition at line 69 of file inspircd_io.h.
 .PP
-Referenced by Server::GetServerName(), and userrec::userrec().
+Referenced by AddClient(), FullConnectUser(), Server::GetServerName(), and userrec::userrec().
 .SS "unsigned int \fBServerConfig::SoftLimit\fP"
 .PP
 The soft limit value assigned to the irc server. 
 .PP
 The IRC server will not allow more than this number of local users.
 .PP
-Definition at line 193 of file inspircd_io.h.
+Definition at line 194 of file inspircd_io.h.
+.PP
+Referenced by AddClient().
 .SS "bool \fBServerConfig::unlimitcore\fP"
 .PP
 If this value is true, the owner of the server has chosen to unlimit the coredump size to as large a value as his account settings will allow. 
 .PP
 This is often used when debugging.
 .PP
-Definition at line 166 of file inspircd_io.h.
+Definition at line 167 of file inspircd_io.h.
 
 .SH "Author"
 .PP 
index e61149335edba4a6c59511177bfab90a22f3d97d..46b4f51ff468e77c474f5cd40141866ec6b22884 100644 (file)
@@ -1,4 +1,4 @@
-.TH "SocketEngine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "SocketEngine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -121,7 +121,7 @@ Definition at line 65 of file socketengine.cpp.
 .PP
 References DEBUG, EngineHandle, fds, log(), ref, and X_READBIT.
 .PP
-Referenced by InspSocket::InspSocket(), and InspSocket::Poll().
+Referenced by AddClient(), InspSocket::InspSocket(), and InspSocket::Poll().
 .PP
 .nf
 66 {
@@ -170,7 +170,7 @@ Definition at line 103 of file socketengine.cpp.
 .PP
 References DEBUG, EngineHandle, fds, log(), ref, and X_READBIT.
 .PP
-Referenced by InspSocket::Poll(), and Server::UserToPseudo().
+Referenced by kill_link(), kill_link_silent(), InspSocket::Poll(), and Server::UserToPseudo().
 .PP
 .nf
 104 {
index 003e3723cb0cded80624c645197fa325f227004e..a20d493b0e8a48d35fb8238e8641583acf32fc8c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "Version" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "Version" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -44,34 +44,34 @@ Holds a module's Version information The four members (set by the constructor on
 
 A class of type Version is returned by the GetVersion method of the \fBModule\fP class.
 .PP
-Definition at line 113 of file modules.h.
+Definition at line 131 of file modules.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "Version::Version (int major, int minor, int revision, int build, int flags)"
 .PP
-Definition at line 159 of file modules.cpp.
+Definition at line 158 of file modules.cpp.
 .PP
 .nf
-159 : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { };
+158 : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { };
 .fi
 .PP
 .SH "Member Data Documentation"
 .PP 
 .SS "const int \fBVersion::Build\fP"
 .PP
-Definition at line 116 of file modules.h.
+Definition at line 134 of file modules.h.
 .SS "const int \fBVersion::Flags\fP"
 .PP
-Definition at line 116 of file modules.h.
+Definition at line 134 of file modules.h.
 .SS "const int \fBVersion::Major\fP"
 .PP
-Definition at line 116 of file modules.h.
+Definition at line 134 of file modules.h.
 .SS "const int \fBVersion::Minor\fP"
 .PP
-Definition at line 116 of file modules.h.
+Definition at line 134 of file modules.h.
 .SS "const int \fBVersion::Revision\fP"
 .PP
-Definition at line 116 of file modules.h.
+Definition at line 134 of file modules.h.
 
 .SH "Author"
 .PP 
index 094ed41aef3d04ef3716f305594ac58a306b0229..fb447c6ebf6ab06850a5835eb7dd0b8c3a142d2d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "WhoWasUser" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "WhoWasUser" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -39,30 +39,44 @@ WhoWasUser \- A lightweight userrec used by WHOWAS.
 .PP 
 A lightweight userrec used by WHOWAS. 
 .PP
-Definition at line 332 of file users.h.
+Definition at line 336 of file users.h.
 .SH "Member Data Documentation"
 .PP 
 .SS "char \fBWhoWasUser::dhost\fP[160]"
 .PP
-Definition at line 337 of file users.h.
+Definition at line 341 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "char \fBWhoWasUser::fullname\fP[MAXGECOS+1]"
 .PP
-Definition at line 339 of file users.h.
+Definition at line 343 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "char \fBWhoWasUser::host\fP[160]"
 .PP
-Definition at line 338 of file users.h.
+Definition at line 342 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "char \fBWhoWasUser::ident\fP[IDENTMAX+1]"
 .PP
-Definition at line 336 of file users.h.
+Definition at line 340 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "char \fBWhoWasUser::nick\fP[NICKMAX]"
 .PP
-Definition at line 335 of file users.h.
+Definition at line 339 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "char \fBWhoWasUser::server\fP[256]"
 .PP
-Definition at line 340 of file users.h.
+Definition at line 344 of file users.h.
+.PP
+Referenced by AddWhoWas().
 .SS "time_t \fBWhoWasUser::signon\fP"
 .PP
-Definition at line 341 of file users.h.
+Definition at line 345 of file users.h.
+.PP
+Referenced by AddWhoWas().
 
 .SH "Author"
 .PP 
index 2165760906bd80cfcefe75bb7da67c387e9bbf02..9141d13fddc8080f2048fb77c1f9aabfeaadd98f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "XLine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "XLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 06d8663f6388ebc01c78c0c6d27daec37d30cd68..a8435b5d70523994eea514172171ea89e3e5288d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ZLine" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ZLine" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 49efbaddf6c5cd91cf610ce50e95c96ed0fcdbb1..4fc80ad811995f2924955d6dd6bf6a763fb361d5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index babca30f7bc2f51a768bf5eeb2f0951ffe8c1c10..29118884a2210eceac3f12696552613b3fc7c12e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/brain/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/brain/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 1479abc84f5a39640020adba97f5b31369c94fe3..1ee75654fc326045e61b96761e3bbb58dcf815fd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/brain/inspircd-cvs/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/brain/inspircd-cvs/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 0284e0651522372119886f2540e2c6c84be92fc6..43c5f667686d43338b3f959f73866cafcc7a43c6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/brain/inspircd-cvs/inspircd/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/brain/inspircd-cvs/inspircd/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index e10e04e57bd54c74dccc11dd348da104e6200997..b9dcc0d8079d52f4538e26aef8ea5125273c1d0c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/brain/inspircd-cvs/inspircd/include/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/brain/inspircd-cvs/inspircd/include/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -7,6 +7,9 @@
 
 .in +1c
 .ti -1c
+.RI "file \fBaes.h\fP"
+.br
+.ti -1c
 .RI "file \fBbase.h\fP"
 .br
 .ti -1c
index 9071df9e97d8244f3b467ce0b3a9be2aeebc4304..d3d18d775a13cfbfe980497ef98cc0476595524e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "/home/brain/inspircd-cvs/inspircd/src/ Directory Reference" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "/home/brain/inspircd-cvs/inspircd/src/ Directory Reference" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/docs/man/man3/aes.h.3 b/docs/man/man3/aes.h.3
new file mode 100644 (file)
index 0000000..9d0352f
--- /dev/null
@@ -0,0 +1,60 @@
+.TH "aes.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+aes.h \- 
+.SH SYNOPSIS
+.br
+.PP
+\fC#include <cstring>\fP
+.br
+
+.SS "Classes"
+
+.in +1c
+.ti -1c
+.RI "class \fBAES\fP"
+.br
+.RI "\fIThe AES class is a utility class for use in modules and the core for encryption of data. \fP"
+.in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "void \fBto64frombits\fP (unsigned char *out, const unsigned char *in, int inlen)"
+.br
+.RI "\fIConvert from binary to base64. \fP"
+.ti -1c
+.RI "int \fBfrom64tobits\fP (char *out, const char *in, int maxlen)"
+.br
+.RI "\fIConvert from base64 to binary  Output  Input  Size of output buffer. \fP"
+.in -1c
+.SH "Function Documentation"
+.PP 
+.SS "int from64tobits (char * out, const char * in, int maxlen)"
+.PP
+Convert from base64 to binary  Output  Input  Size of output buffer. 
+.PP
+\fBReturns:\fP
+.RS 4
+Number of bytes actually converted
+.RE
+.PP
+
+.SS "void to64frombits (unsigned char * out, const unsigned char * in, int inlen)"
+.PP
+Convert from binary to base64. 
+.PP
+\fBParameters:\fP
+.RS 4
+\fIout\fP Output 
+.br
+\fIin\fP Input 
+.br
+\fIinlen\fP Number of bytes in input buffer
+.RE
+.PP
+
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for InspIRCd from the source code.
index 31b4deb848ad919b7e4171f1ba4e3db873fdb3a8..e8445793c260bc5ac7e182ab8b1cf2683faff753 100644 (file)
@@ -1,4 +1,4 @@
-.TH "base.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "base.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 443276105da8045dba13ba6bec1a25d72f063b3a..d9d19e355eb15d97e15380a7d88a30f07d5432ad 100644 (file)
@@ -1,4 +1,4 @@
-.TH "channels.cpp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "channels.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -12,8 +12,6 @@ channels.cpp \-
 .br
 \fC#include 'inspircd_io.h'\fP
 .br
-\fC#include 'inspircd_util.h'\fP
-.br
 \fC#include <unistd.h>\fP
 .br
 \fC#include <sys/errno.h>\fP
@@ -128,107 +126,108 @@ channels.cpp \-
 .PP 
 .SS "#define nspace   std"
 .PP
-Definition at line 55 of file channels.cpp.
+Definition at line 54 of file channels.cpp.
 .SH "Function Documentation"
 .PP 
 .SS "\fBchanrec\fP* add_channel (\fBuserrec\fP * user, const char * cn, const char * key, bool override)"
 .PP
-Definition at line 195 of file channels.cpp.
+Definition at line 194 of file channels.cpp.
 .PP
 References chanrec::bans, chanrec::binarymodes, chanlist, userrec::chans, CM_INVITEONLY, CM_NOEXTERNAL, CM_TOPICLOCK, DEBUG, DEFAULT, connection::fd, FindChan(), ForceChan(), FOREACH_RESULT, userrec::GetFullHost(), has_channel(), userrec::IsInvited(), chanrec::key, chanrec::limit, log(), userrec::modes, chanrec::name, userrec::nick, userrec::RemoveInvite(), TIME, and WriteServ().
 .PP
 Referenced by Server::JoinUserToChannel().
 .PP
 .nf
-196 {
-197         if ((!user) || (!cn))
-198         {
-199                 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
-200                 return 0;
-201         }
-202 
-203         int created = 0;
-204         char cname[MAXBUF];
-205         int MOD_RESULT = 0;
-206         strncpy(cname,cn,CHANMAX);
-207 
-208         log(DEBUG,'add_channel: %s %s',user->nick,cname);
-209 
-210         chanrec* Ptr = FindChan(cname);
-211 
-212         if (!Ptr)
-213         {
-214                 if (user->fd > -1)
-215                 {
-216                         MOD_RESULT = 0;
-217                         FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
-218                         if (MOD_RESULT == 1)
-219                                 return NULL;
-220                 }
-221                 /* create a new one */
-222                 chanlist[cname] = new chanrec();
-223                 strlcpy(chanlist[cname]->name, cname,CHANMAX);
-224                 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
-225                 chanlist[cname]->created = TIME;
-226                 strcpy(chanlist[cname]->topic, '');
-227                 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
-228                 chanlist[cname]->topicset = 0;
-229                 Ptr = chanlist[cname];
-230                 log(DEBUG,'add_channel: created: %s',cname);
-231                 /* set created to 2 to indicate user
-232                  * is the first in the channel
-233                  * and should be given ops */
-234                 created = 2;
-235         }
-236         else
-237         {
-238                 /* Already on the channel */
-239                 if (has_channel(user,Ptr))
-240                         return NULL;
-241 
-242                 // remote users are allowed us to bypass channel modes
-243                 // and bans (used by servers)
-244                 if (user->fd > -1)
-245                 {
-246                         MOD_RESULT = 0;
-247                         FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
-248                         if (MOD_RESULT == 1)
-249                         {
-250                                 return NULL;
-251                         }
-252                         else
-253                         {
-254                                 if (*Ptr->key)
-255                                 {
-256                                         MOD_RESULT = 0;
-257                                         FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
-258                                         if (!MOD_RESULT)
-259                                         {
-260                                                 if (!key)
-261                                                 {
-262                                                         log(DEBUG,'add_channel: no key given in JOIN');
-263                                                         WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
-264                                                         return NULL;
-265                                                 }
-266                                                 else
-267                                                 {
-268                                                         if (strcasecmp(key,Ptr->key))
-269                                                         {
-270                                                                 log(DEBUG,'add_channel: bad key given in JOIN');
-271                                                                 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
-272                                                                 return NULL;
-273                                                         }
-274                                                 }
-275                                         }
-276                                 }
-277                                 if (Ptr->binarymodes & CM_INVITEONLY)
-278                                 {
-279                                         MOD_RESULT = 0;
+195 {
+196         if ((!user) || (!cn))
+197         {
+198                 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
+199                 return 0;
+200         }
+201 
+202         int created = 0;
+203         char cname[MAXBUF];
+204         int MOD_RESULT = 0;
+205         strncpy(cname,cn,CHANMAX);
+206 
+207         log(DEBUG,'add_channel: %s %s',user->nick,cname);
+208 
+209         chanrec* Ptr = FindChan(cname);
+210 
+211         if (!Ptr)
+212         {
+213                 if (user->fd > -1)
+214                 {
+215                         MOD_RESULT = 0;
+216                         FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
+217                         if (MOD_RESULT == 1)
+218                                 return NULL;
+219                 }
+220                 /* create a new one */
+221                 chanlist[cname] = new chanrec();
+222                 strlcpy(chanlist[cname]->name, cname,CHANMAX);
+223                 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
+224                 chanlist[cname]->created = TIME;
+225                 strcpy(chanlist[cname]->topic, '');
+226                 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
+227                 chanlist[cname]->topicset = 0;
+228                 Ptr = chanlist[cname];
+229                 log(DEBUG,'add_channel: created: %s',cname);
+230                 /* set created to 2 to indicate user
+231                  * is the first in the channel
+232                  * and should be given ops */
+233                 created = 2;
+234         }
+235         else
+236         {
+237                 /* Already on the channel */
+238                 if (has_channel(user,Ptr))
+239                         return NULL;
+240 
+241                 // remote users are allowed us to bypass channel modes
+242                 // and bans (used by servers)
+243                 if (user->fd > -1)
+244                 {
+245                         MOD_RESULT = 0;
+246                         FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
+247                         if (MOD_RESULT == 1)
+248                         {
+249                                 return NULL;
+250                         }
+251                         else
+252                         {
+253                                 if (*Ptr->key)
+254                                 {
+255                                         MOD_RESULT = 0;
+256                                         FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
+257                                         if (!MOD_RESULT)
+258                                         {
+259                                                 if (!key)
+260                                                 {
+261                                                         log(DEBUG,'add_channel: no key given in JOIN');
+262                                                         WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
+263                                                         return NULL;
+264                                                 }
+265                                                 else
+266                                                 {
+267                                                         if (strcasecmp(key,Ptr->key))
+268                                                         {
+269                                                                 log(DEBUG,'add_channel: bad key given in JOIN');
+270                                                                 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
+271                                                                 return NULL;
+272                                                         }
+273                                                 }
+274                                         }
+275                                 }
+276                                 if (Ptr->binarymodes & CM_INVITEONLY)
+277                                 {
+278                                         MOD_RESULT = 0;
+279                                         irc::string xname(Ptr->name);
 280                                         FOREACH_RESULT(OnCheckInvite(user, Ptr));
 281                                         if (!MOD_RESULT)
 282                                         {
 283                                                 log(DEBUG,'add_channel: channel is +i');
-284                                                 if (user->IsInvited(Ptr->name))
+284                                                 if (user->IsInvited(xname))
 285                                                 {
 286                                                         /* user was invited to channel */
 287                                                         /* there may be an optional channel NOTICE here */
@@ -239,7 +238,7 @@ Referenced by Server::JoinUserToChannel().
 292                                                         return NULL;
 293                                                 }
 294                                         }
-295                                         user->RemoveInvite(Ptr->name);
+295                                         user->RemoveInvite(xname);
 296                                 }
 297                                 if (Ptr->limit)
 298                                 {
@@ -520,14 +519,14 @@ Referenced by add_channel(), del_channel(), and kick_channel().
 .PP
 .SS "std::vector<\fBModeParameter\fP> \fBcustom_mode_params\fP"
 .PP
-Definition at line 70 of file channels.cpp.
+Definition at line 69 of file channels.cpp.
 .PP
 Referenced by chanrec::GetModeParameter(), and chanrec::SetCustomModeParam().
 .SS "std::vector<\fBircd_module\fP*> factory"
 .PP
 .SS "int \fBMODCOUNT\fP = -1"
 .PP
-Definition at line 935 of file modules.cpp.
+Definition at line 934 of file modules.cpp.
 .PP
 Referenced by Server::FindModule().
 .SS "std::vector<\fBModule\fP*> modules"
@@ -535,11 +534,13 @@ Referenced by Server::FindModule().
 Referenced by Server::FindModule().
 .SS "time_t \fBTIME\fP"
 .PP
-Referenced by add_channel(), and userrec::userrec().
+Referenced by add_channel(), AddClient(), AddWhoWas(), FullConnectUser(), and userrec::userrec().
 .SS "int \fBWHOWAS_MAX\fP"
 .PP
+Referenced by AddWhoWas().
 .SS "int \fBWHOWAS_STALE\fP"
 .PP
+Referenced by AddWhoWas().
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index f8f81e7054353a01a39d0be702aea069c935532e..1686d1a895128fb252c14db0fc314fb295cab55b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "channels.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "channels.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -179,102 +179,103 @@ Definition at line 97 of file channels.h.
 .PP 
 .SS "\fBchanrec\fP* add_channel (\fBuserrec\fP * user, const char * cn, const char * key, bool override)"
 .PP
-Definition at line 195 of file channels.cpp.
+Definition at line 194 of file channels.cpp.
 .PP
 References chanrec::bans, chanrec::binarymodes, chanlist, userrec::chans, CM_INVITEONLY, CM_NOEXTERNAL, CM_TOPICLOCK, DEBUG, DEFAULT, connection::fd, FindChan(), ForceChan(), FOREACH_RESULT, userrec::GetFullHost(), has_channel(), userrec::IsInvited(), chanrec::key, chanrec::limit, log(), userrec::modes, chanrec::name, userrec::nick, userrec::RemoveInvite(), TIME, and WriteServ().
 .PP
 Referenced by Server::JoinUserToChannel().
 .PP
 .nf
-196 {
-197         if ((!user) || (!cn))
-198         {
-199                 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
-200                 return 0;
-201         }
-202 
-203         int created = 0;
-204         char cname[MAXBUF];
-205         int MOD_RESULT = 0;
-206         strncpy(cname,cn,CHANMAX);
-207 
-208         log(DEBUG,'add_channel: %s %s',user->nick,cname);
-209 
-210         chanrec* Ptr = FindChan(cname);
-211 
-212         if (!Ptr)
-213         {
-214                 if (user->fd > -1)
-215                 {
-216                         MOD_RESULT = 0;
-217                         FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
-218                         if (MOD_RESULT == 1)
-219                                 return NULL;
-220                 }
-221                 /* create a new one */
-222                 chanlist[cname] = new chanrec();
-223                 strlcpy(chanlist[cname]->name, cname,CHANMAX);
-224                 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
-225                 chanlist[cname]->created = TIME;
-226                 strcpy(chanlist[cname]->topic, '');
-227                 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
-228                 chanlist[cname]->topicset = 0;
-229                 Ptr = chanlist[cname];
-230                 log(DEBUG,'add_channel: created: %s',cname);
-231                 /* set created to 2 to indicate user
-232                  * is the first in the channel
-233                  * and should be given ops */
-234                 created = 2;
-235         }
-236         else
-237         {
-238                 /* Already on the channel */
-239                 if (has_channel(user,Ptr))
-240                         return NULL;
-241 
-242                 // remote users are allowed us to bypass channel modes
-243                 // and bans (used by servers)
-244                 if (user->fd > -1)
-245                 {
-246                         MOD_RESULT = 0;
-247                         FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
-248                         if (MOD_RESULT == 1)
-249                         {
-250                                 return NULL;
-251                         }
-252                         else
-253                         {
-254                                 if (*Ptr->key)
-255                                 {
-256                                         MOD_RESULT = 0;
-257                                         FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
-258                                         if (!MOD_RESULT)
-259                                         {
-260                                                 if (!key)
-261                                                 {
-262                                                         log(DEBUG,'add_channel: no key given in JOIN');
-263                                                         WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
-264                                                         return NULL;
-265                                                 }
-266                                                 else
-267                                                 {
-268                                                         if (strcasecmp(key,Ptr->key))
-269                                                         {
-270                                                                 log(DEBUG,'add_channel: bad key given in JOIN');
-271                                                                 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
-272                                                                 return NULL;
-273                                                         }
-274                                                 }
-275                                         }
-276                                 }
-277                                 if (Ptr->binarymodes & CM_INVITEONLY)
-278                                 {
-279                                         MOD_RESULT = 0;
+195 {
+196         if ((!user) || (!cn))
+197         {
+198                 log(DEFAULT,'*** BUG *** add_channel was given an invalid parameter');
+199                 return 0;
+200         }
+201 
+202         int created = 0;
+203         char cname[MAXBUF];
+204         int MOD_RESULT = 0;
+205         strncpy(cname,cn,CHANMAX);
+206 
+207         log(DEBUG,'add_channel: %s %s',user->nick,cname);
+208 
+209         chanrec* Ptr = FindChan(cname);
+210 
+211         if (!Ptr)
+212         {
+213                 if (user->fd > -1)
+214                 {
+215                         MOD_RESULT = 0;
+216                         FOREACH_RESULT(OnUserPreJoin(user,NULL,cname));
+217                         if (MOD_RESULT == 1)
+218                                 return NULL;
+219                 }
+220                 /* create a new one */
+221                 chanlist[cname] = new chanrec();
+222                 strlcpy(chanlist[cname]->name, cname,CHANMAX);
+223                 chanlist[cname]->binarymodes = CM_TOPICLOCK | CM_NOEXTERNAL;
+224                 chanlist[cname]->created = TIME;
+225                 strcpy(chanlist[cname]->topic, '');
+226                 strncpy(chanlist[cname]->setby, user->nick,NICKMAX);
+227                 chanlist[cname]->topicset = 0;
+228                 Ptr = chanlist[cname];
+229                 log(DEBUG,'add_channel: created: %s',cname);
+230                 /* set created to 2 to indicate user
+231                  * is the first in the channel
+232                  * and should be given ops */
+233                 created = 2;
+234         }
+235         else
+236         {
+237                 /* Already on the channel */
+238                 if (has_channel(user,Ptr))
+239                         return NULL;
+240 
+241                 // remote users are allowed us to bypass channel modes
+242                 // and bans (used by servers)
+243                 if (user->fd > -1)
+244                 {
+245                         MOD_RESULT = 0;
+246                         FOREACH_RESULT(OnUserPreJoin(user,Ptr,cname));
+247                         if (MOD_RESULT == 1)
+248                         {
+249                                 return NULL;
+250                         }
+251                         else
+252                         {
+253                                 if (*Ptr->key)
+254                                 {
+255                                         MOD_RESULT = 0;
+256                                         FOREACH_RESULT(OnCheckKey(user, Ptr, key ? key : ''));
+257                                         if (!MOD_RESULT)
+258                                         {
+259                                                 if (!key)
+260                                                 {
+261                                                         log(DEBUG,'add_channel: no key given in JOIN');
+262                                                         WriteServ(user->fd,'475 %s %s :Cannot join channel (Requires key)',user->nick, Ptr->name);
+263                                                         return NULL;
+264                                                 }
+265                                                 else
+266                                                 {
+267                                                         if (strcasecmp(key,Ptr->key))
+268                                                         {
+269                                                                 log(DEBUG,'add_channel: bad key given in JOIN');
+270                                                                 WriteServ(user->fd,'475 %s %s :Cannot join channel (Incorrect key)',user->nick, Ptr->name);
+271                                                                 return NULL;
+272                                                         }
+273                                                 }
+274                                         }
+275                                 }
+276                                 if (Ptr->binarymodes & CM_INVITEONLY)
+277                                 {
+278                                         MOD_RESULT = 0;
+279                                         irc::string xname(Ptr->name);
 280                                         FOREACH_RESULT(OnCheckInvite(user, Ptr));
 281                                         if (!MOD_RESULT)
 282                                         {
 283                                                 log(DEBUG,'add_channel: channel is +i');
-284                                                 if (user->IsInvited(Ptr->name))
+284                                                 if (user->IsInvited(xname))
 285                                                 {
 286                                                         /* user was invited to channel */
 287                                                         /* there may be an optional channel NOTICE here */
@@ -285,7 +286,7 @@ Referenced by Server::JoinUserToChannel().
 292                                                         return NULL;
 293                                                 }
 294                                         }
-295                                         user->RemoveInvite(Ptr->name);
+295                                         user->RemoveInvite(xname);
 296                                 }
 297                                 if (Ptr->limit)
 298                                 {
index fbd6260ecbe0eae328cbeb476635298d7789c95f..83c154d238bc71eaae47cf131795d9bbbf6d2955 100644 (file)
@@ -1,4 +1,4 @@
-.TH "chanrec" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "chanrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -116,21 +116,21 @@ Definition at line 103 of file channels.h.
 .PP
 Creates a channel record and initialises it with default values. 
 .PP
-Definition at line 74 of file channels.cpp.
+Definition at line 73 of file channels.cpp.
 .PP
 References binarymodes, created, custom_modes, internal_userlist, key, limit, name, setby, topic, and topicset.
 .PP
 .nf
-75 {
-76         strcpy(name,'');
-77         strcpy(custom_modes,'');
-78         strcpy(topic,'');
-79         strcpy(setby,'');
-80         strcpy(key,'');
-81         created = topicset = limit = 0;
-82         binarymodes = 0;
-83         internal_userlist.clear();
-84 }
+74 {
+75         strcpy(name,'');
+76         strcpy(custom_modes,'');
+77         strcpy(topic,'');
+78         strcpy(setby,'');
+79         strcpy(key,'');
+80         created = topicset = limit = 0;
+81         binarymodes = 0;
+82         internal_userlist.clear();
+83 }
 .fi
 .PP
 .SS "virtual chanrec::~chanrec ()\fC [inline, virtual]\fP"
@@ -154,17 +154,17 @@ Add a user pointer to the internal reference list.
 .PP
 The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
 .PP
-Definition at line 167 of file channels.cpp.
+Definition at line 166 of file channels.cpp.
 .PP
 References DEBUG, internal_userlist, and log().
 .PP
 Referenced by ForceChan().
 .PP
 .nf
-168 {
-169         internal_userlist.push_back(castuser);
-170         log(DEBUG,'Added casted user to channel's internal list');
-171 }
+167 {
+168         internal_userlist.push_back(castuser);
+169         log(DEBUG,'Added casted user to channel's internal list');
+170 }
 .fi
 .PP
 .SS "void chanrec::DelUser (char * castuser)"
@@ -178,25 +178,25 @@ Delete a user pointer to the internal reference list.
 .PP
 The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
 .PP
-Definition at line 173 of file channels.cpp.
+Definition at line 172 of file channels.cpp.
 .PP
 References DEBUG, internal_userlist, log(), and name.
 .PP
 Referenced by del_channel(), and kick_channel().
 .PP
 .nf
-174 {
-175         for (std::vector<char*>::iterator a = internal_userlist.begin(); a < internal_userlist.end(); a++)
-176         {
-177                 if (*a == castuser)
-178                 {
-179                         log(DEBUG,'Removed casted user from channel's internal list');
-180                         internal_userlist.erase(a);
-181                         return;
-182                 }
-183         }
-184         log(DEBUG,'BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!',name);
-185 }
+173 {
+174         for (std::vector<char*>::iterator a = internal_userlist.begin(); a < internal_userlist.end(); a++)
+175         {
+176                 if (*a == castuser)
+177                 {
+178                         log(DEBUG,'Removed casted user from channel's internal list');
+179                         internal_userlist.erase(a);
+180                         return;
+181                 }
+182         }
+183         log(DEBUG,'BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!',name);
+184 }
 .fi
 .PP
 .SS "\fBstd::string\fP chanrec::GetModeParameter (char mode)"
@@ -217,24 +217,24 @@ The parameter for this mode is returned, or an empty string
 .PP
 
 .PP
-Definition at line 147 of file channels.cpp.
+Definition at line 146 of file channels.cpp.
 .PP
 References custom_mode_params.
 .PP
 .nf
-148 {
-149         if (custom_mode_params.size())
-150         {
-151                 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-152                 {
-153                         if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-154                         {
-155                                 return i->parameter;
-156                         }
-157                 }
-158         }
-159         return '';
-160 }
+147 {
+148         if (custom_mode_params.size())
+149         {
+150                 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+151                 {
+152                         if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+153                         {
+154                                 return i->parameter;
+155                         }
+156                 }
+157         }
+158         return '';
+159 }
 .fi
 .PP
 .SS "long chanrec::GetUserCounter ()"
@@ -248,12 +248,12 @@ The number of users on this channel
 .PP
 
 .PP
-Definition at line 162 of file channels.cpp.
+Definition at line 161 of file channels.cpp.
 .PP
 .nf
-163 {
-164         return (this->internal_userlist.size());
-165 }
+162 {
+163         return (this->internal_userlist.size());
+164 }
 .fi
 .PP
 .SS "std::vector< char * > * chanrec::GetUsers ()"
@@ -269,16 +269,16 @@ This function returns a vector of userrec pointers, each of which has been caste
 .PP
 
 .PP
-Definition at line 187 of file channels.cpp.
+Definition at line 186 of file channels.cpp.
 .PP
 References internal_userlist.
 .PP
 Referenced by Server::GetUsers().
 .PP
 .nf
-188 {
-189         return &internal_userlist;
-190 }
+187 {
+188         return &internal_userlist;
+189 }
 .fi
 .PP
 .SS "bool chanrec::IsCustomModeSet (char mode)"
@@ -297,12 +297,12 @@ True if the custom mode is set, false if otherwise
 .PP
 
 .PP
-Definition at line 142 of file channels.cpp.
+Definition at line 141 of file channels.cpp.
 .PP
 .nf
-143 {
-144         return (strchr(this->custom_modes,mode));
-145 }
+142 {
+143         return (strchr(this->custom_modes,mode));
+144 }
 .fi
 .PP
 .SS "void chanrec::SetCustomMode (char mode, bool mode_on)"
@@ -318,33 +318,33 @@ Sets or unsets a custom mode in the channels info.
 .PP
 
 .PP
-Definition at line 86 of file channels.cpp.
+Definition at line 85 of file channels.cpp.
 .PP
 References custom_modes, DEBUG, log(), and SetCustomModeParam().
 .PP
 .nf
-87 {
-88         if (mode_on) {
-89                 static char m[3];
-90                 m[0] = mode;
-91                 m[1] = '\0';
-92                 if (!strchr(this->custom_modes,mode))
-93                 {
-94                         strlcat(custom_modes,m,MAXMODES);
-95                 }
-96                 log(DEBUG,'Custom mode %c set',mode);
-97         }
-98         else {
-99 
-100                 std::string a = this->custom_modes;
-101                 int pos = a.find(mode);
-102                 a.erase(pos,1);
-103                 strncpy(this->custom_modes,a.c_str(),MAXMODES);
-104 
-105                 log(DEBUG,'Custom mode %c removed: modelist='%s'',mode,this->custom_modes);
-106                 this->SetCustomModeParam(mode,'',false);
-107         }
-108 }
+86 {
+87         if (mode_on) {
+88                 static char m[3];
+89                 m[0] = mode;
+90                 m[1] = '\0';
+91                 if (!strchr(this->custom_modes,mode))
+92                 {
+93                         strlcat(custom_modes,m,MAXMODES);
+94                 }
+95                 log(DEBUG,'Custom mode %c set',mode);
+96         }
+97         else {
+98 
+99                 std::string a = this->custom_modes;
+100                 int pos = a.find(mode);
+101                 a.erase(pos,1);
+102                 strncpy(this->custom_modes,a.c_str(),MAXMODES);
+103 
+104                 log(DEBUG,'Custom mode %c removed: modelist='%s'',mode,this->custom_modes);
+105                 this->SetCustomModeParam(mode,'',false);
+106         }
+107 }
 .fi
 .PP
 .SS "void chanrec::SetCustomModeParam (char mode, char * parameter, bool mode_on)"
@@ -362,42 +362,42 @@ Sets or unsets the parameters for a custom mode in a channels info.
 .PP
 
 .PP
-Definition at line 111 of file channels.cpp.
+Definition at line 110 of file channels.cpp.
 .PP
 References ModeParameter::channel, custom_mode_params, DEBUG, log(), ModeParameter::mode, and ModeParameter::parameter.
 .PP
 Referenced by SetCustomMode().
 .PP
 .nf
-112 {
-113 
-114         log(DEBUG,'SetCustomModeParam called');
-115         ModeParameter M;
-116         M.mode = mode;
-117         strlcpy(M.channel,this->name,CHANMAX);
-118         strlcpy(M.parameter,parameter,MAXBUF);
-119         if (mode_on)
-120         {
-121                 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
-122                 custom_mode_params.push_back(M);
-123         }
-124         else
-125         {
-126                 if (custom_mode_params.size())
-127                 {
-128                         for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
-129                         {
-130                                 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
-131                                 {
-132                                         log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
-133                                         custom_mode_params.erase(i);
-134                                         return;
-135                                 }
-136                         }
-137                 }
-138                 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
-139         }
-140 }
+111 {
+112 
+113         log(DEBUG,'SetCustomModeParam called');
+114         ModeParameter M;
+115         M.mode = mode;
+116         strlcpy(M.channel,this->name,CHANMAX);
+117         strlcpy(M.parameter,parameter,MAXBUF);
+118         if (mode_on)
+119         {
+120                 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
+121                 custom_mode_params.push_back(M);
+122         }
+123         else
+124         {
+125                 if (custom_mode_params.size())
+126                 {
+127                         for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+128                         {
+129                                 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+130                                 {
+131                                         log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
+132                                         custom_mode_params.erase(i);
+133                                         return;
+134                                 }
+135                         }
+136                 }
+137                 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
+138         }
+139 }
 .fi
 .PP
 .SH "Member Data Documentation"
index de085033f59721f2a57e5310f3cb583d8b55cbd8..53f4bb176985b7d40471a37e36eea925d219cb88 100644 (file)
@@ -1,4 +1,4 @@
-.TH "classbase" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "classbase" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 1e49a2996c3daea36cbec962e003f5fc8084e6a9..0e69a9a09a9bfd83adc1a1c3fa70d7ab4f4f42d5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "command_t" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "command_t" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -10,19 +10,28 @@ command_t \- A structure that defines a command.
 .PP
 \fC#include <ctables.h>\fP
 .PP
-Inherits \fBExtensible\fP.
+Inherited by \fBcmd_mode\fP.
 .PP
-.SS "Public Attributes"
+.SS "Public Member Functions"
 
 .in +1c
 .ti -1c
-.RI "char \fBcommand\fP [MAXBUF]"
+.RI "\fBcommand_t\fP (\fBstd::string\fP cmd, char flags, int minpara)"
 .br
-.RI "\fICommand name. \fP"
 .ti -1c
-.RI "\fBhandlerfunc\fP * \fBhandler_function\fP"
+.RI "virtual void \fBHandle\fP (char **parameters, int pcnt, \fBuserrec\fP *user)=0"
+.br
+.ti -1c
+.RI "virtual \fB~command_t\fP ()"
+.br
+.in -1c
+.SS "Public Attributes"
+
+.in +1c
+.ti -1c
+.RI "\fBstd::string\fP \fBcommand\fP"
 .br
-.RI "\fIHandler function as in typedef. \fP"
+.RI "\fICommand name. \fP"
 .ti -1c
 .RI "char \fBflags_needed\fP"
 .br
@@ -40,7 +49,7 @@ Inherits \fBExtensible\fP.
 .br
 .RI "\fIused by /stats m \fP"
 .ti -1c
-.RI "char \fBsource\fP [MAXBUF]"
+.RI "\fBstd::string\fP \fBsource\fP"
 .br
 .RI "\fIused for resource tracking between modules \fP"
 .in -1c
@@ -48,44 +57,74 @@ Inherits \fBExtensible\fP.
 .PP 
 A structure that defines a command. 
 .PP
-Definition at line 26 of file ctables.h.
+Definition at line 29 of file ctables.h.
+.SH "Constructor & Destructor Documentation"
+.PP 
+.SS "command_t::command_t (\fBstd::string\fP cmd, char flags, int minpara)\fC [inline]\fP"
+.PP
+Definition at line 51 of file ctables.h.
+.PP
+References source, total_bytes, and use_count.
+.PP
+.nf
+51                                                           : command(cmd), flags_needed(flags), min_params(minpara)
+52         {
+53                 use_count = total_bytes = 0;
+54                 source = '<core>';
+55         }
+.fi
+.PP
+.SS "virtual command_t::~command_t ()\fC [inline, virtual]\fP"
+.PP
+Definition at line 59 of file ctables.h.
+.PP
+.nf
+59 {}
+.fi
+.PP
+.SH "Member Function Documentation"
+.PP 
+.SS "virtual void command_t::Handle (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [pure virtual]\fP"
+.PP
+Implemented in \fBcmd_mode\fP.
 .SH "Member Data Documentation"
 .PP 
-.SS "char \fBcommand_t::command\fP[MAXBUF]"
+.SS "\fBstd::string\fP \fBcommand_t::command\fP"
 .PP
 Command name. 
 .PP
-Definition at line 31 of file ctables.h.
+Definition at line 34 of file ctables.h.
 .SS "char \fBcommand_t::flags_needed\fP"
 .PP
 User flags needed to execute the command or 0. 
 .PP
 Definition at line 37 of file ctables.h.
-.SS "\fBhandlerfunc\fP* \fBcommand_t::handler_function\fP"
-.PP
-Handler function as in typedef. 
-.PP
-Definition at line 34 of file ctables.h.
 .SS "int \fBcommand_t::min_params\fP"
 .PP
 Minimum number of parameters command takes. 
 .PP
 Definition at line 40 of file ctables.h.
-.SS "char \fBcommand_t::source\fP[MAXBUF]"
+.SS "\fBstd::string\fP \fBcommand_t::source\fP"
 .PP
 used for resource tracking between modules 
 .PP
 Definition at line 49 of file ctables.h.
+.PP
+Referenced by command_t().
 .SS "long \fBcommand_t::total_bytes\fP"
 .PP
 used by /stats m 
 .PP
 Definition at line 46 of file ctables.h.
+.PP
+Referenced by command_t().
 .SS "long \fBcommand_t::use_count\fP"
 .PP
 used by /stats m 
 .PP
 Definition at line 43 of file ctables.h.
+.PP
+Referenced by command_t().
 
 .SH "Author"
 .PP 
index 4d4920f538dfadae87e34a7f6bb1646068b01485..de75f72c1dc46de9974fe295db50eaed11079e45 100644 (file)
@@ -1,4 +1,4 @@
-.TH "commands.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "commands.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -22,294 +22,159 @@ commands.h \-
 .br
 \fC#include 'channels.h'\fP
 .br
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBhandle_join\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_admin.h'\fP
 .br
-.RI "\fIThese are the handlers for user commands. \fP"
-.ti -1c
-.RI "void \fBhandle_part\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_away.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_kick\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_commands.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_die\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_connect.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_restart\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_die.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_kill\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_eline.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_summon\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_gline.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_users\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_info.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_pass\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_invite.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_invite\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_ison.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_topic\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_join.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_names\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_kick.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_privmsg\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_kill.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_notice\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_kline.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_info\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_links.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_time\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_list.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_whois\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_loadmodule.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_quit\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_lusers.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_who\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_map.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_wallops\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_modules.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_list\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_motd.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_rehash\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_names.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_lusers\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_nick.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_admin\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_notice.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_ping\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_oper.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_pong\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_part.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_motd\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_pass.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_rules\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_ping.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_user\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_pong.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_userhost\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_privmsg.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_ison\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_qline.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_away\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_quit.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_whowas\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_rehash.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_trace\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_restart.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_modules\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_rules.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_stats\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_server.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_connect\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_squit.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_squit\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_stats.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_links\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_summon.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_map\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_time.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_oper\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_topic.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_nick\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_trace.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_kline\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_unloadmodule.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_gline\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_user.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_zline\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_userhost.h'\fP
 .br
-.ti -1c
-.RI "void \fBhandle_qline\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+\fC#include 'cmd_users.h'\fP
+.br
+\fC#include 'cmd_version.h'\fP
+.br
+\fC#include 'cmd_wallops.h'\fP
+.br
+\fC#include 'cmd_who.h'\fP
+.br
+\fC#include 'cmd_whois.h'\fP
 .br
+\fC#include 'cmd_whowas.h'\fP
+.br
+\fC#include 'cmd_zline.h'\fP
+.br
+
+.SS "Functions"
+
+.in +1c
 .ti -1c
-.RI "void \fBhandle_eline\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "char * \fBCleanFilename\fP (char *name)"
 .br
 .ti -1c
-.RI "void \fBhandle_server\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "bool \fBis_uline\fP (const char *server)"
 .br
 .ti -1c
-.RI "void \fBhandle_loadmodule\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "long \fBduration\fP (const char *str)"
 .br
 .ti -1c
-.RI "void \fBhandle_unloadmodule\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "void \fBdo_whois\fP (\fBuserrec\fP *user, \fBuserrec\fP *dest, unsigned long signon, unsigned long idle, char *nick)"
 .br
 .ti -1c
-.RI "void \fBhandle_commands\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "bool \fBhost_matches_everyone\fP (\fBstd::string\fP mask, \fBuserrec\fP *user)"
 .br
 .ti -1c
-.RI "bool \fBis_uline\fP (const char *server)"
+.RI "bool \fBip_matches_everyone\fP (\fBstd::string\fP ip, \fBuserrec\fP *user)"
 .br
-.RI "\fIFunctions for u:lined servers. \fP"
 .ti -1c
-.RI "long \fBduration\fP (const char *str)"
+.RI "bool \fBnick_matches_everyone\fP (\fBstd::string\fP nick, \fBuserrec\fP *user)"
 .br
-.RI "\fIOther useful functions. \fP"
 .ti -1c
-.RI "void \fBdo_whois\fP (\fBuserrec\fP *user, \fBuserrec\fP *dest, unsigned long signon, unsigned long idle, char *nick)"
+.RI "int \fBoperstrcmp\fP (char *data, char *input)"
 .br
 .in -1c
 .SH "Function Documentation"
 .PP 
+.SS "char* CleanFilename (char * name)"
+.PP
 .SS "void do_whois (\fBuserrec\fP * user, \fBuserrec\fP * dest, unsigned long signon, unsigned long idle, char * nick)"
 .PP
 .SS "long duration (const char * str)"
 .PP
-Other useful functions. 
-.PP
 Referenced by Server::CalcDuration().
-.SS "void handle_admin (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_away (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_commands (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_connect (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_die (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_eline (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_gline (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_info (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_invite (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_ison (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_join (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-These are the handlers for user commands. 
-.PP
-.SS "void handle_kick (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_kill (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_kline (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_links (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_list (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_loadmodule (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_lusers (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_map (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_modules (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_motd (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_names (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_nick (char ** parameters, int pcnt, \fBuserrec\fP * user)"
+.SS "bool host_matches_everyone (\fBstd::string\fP mask, \fBuserrec\fP * user)"
 .PP
-.SS "void handle_notice (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_oper (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_part (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_pass (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_ping (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_pong (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_privmsg (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_qline (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_quit (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_rehash (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_restart (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_rules (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_server (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_squit (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_stats (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_summon (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_time (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_topic (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_trace (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_unloadmodule (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_user (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_userhost (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_users (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_wallops (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_who (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_whois (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_whowas (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void handle_zline (char ** parameters, int pcnt, \fBuserrec\fP * user)"
+.SS "bool ip_matches_everyone (\fBstd::string\fP ip, \fBuserrec\fP * user)"
 .PP
 .SS "bool is_uline (const char * server)"
 .PP
-Functions for u:lined servers. 
-.PP
 Referenced by userrec::HasPermission(), Server::IsUlined(), and kick_channel().
+.SS "bool nick_matches_everyone (\fBstd::string\fP nick, \fBuserrec\fP * user)"
+.PP
+.SS "int operstrcmp (char * data, char * input)"
+.PP
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 841c792f1c377cb0a6e113ab90e1e1693e73c099..a133ab84608dec67115be1505c48fcf6a0b1ad83 100644 (file)
@@ -1,4 +1,4 @@
-.TH "connection" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "connection" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -139,14 +139,14 @@ File descriptor of the connection.
 .PP
 Definition at line 42 of file connection.h.
 .PP
-Referenced by add_channel(), connection(), ConfigReader::DumpErrors(), kick_channel(), Server::PseudoToUser(), Server::SendTo(), userrec::userrec(), and Server::UserToPseudo().
+Referenced by add_channel(), connection(), ConfigReader::DumpErrors(), FullConnectUser(), kick_channel(), kill_link(), kill_link_silent(), Server::PseudoToUser(), Server::SendTo(), userrec::userrec(), and Server::UserToPseudo().
 .SS "bool \fBconnection::haspassed\fP"
 .PP
 True if server/user has authenticated, false if otherwise. 
 .PP
 Definition at line 70 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by FullConnectUser(), and userrec::userrec().
 .SS "char \fBconnection::host\fP[160]"
 .PP
 Hostname of connection. 
@@ -155,21 +155,21 @@ Not used if this is a serverrec
 .PP
 Definition at line 46 of file connection.h.
 .PP
-Referenced by userrec::GetFullRealHost(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo().
+Referenced by AddWhoWas(), FullConnectUser(), userrec::GetFullRealHost(), kill_link(), kill_link_silent(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo().
 .SS "time_t \fBconnection::idle_lastmsg\fP"
 .PP
 Time that the connection last sent data, used to calculate idle time. 
 .PP
 Definition at line 92 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by FullConnectUser(), and userrec::userrec().
 .SS "char \fBconnection::ip\fP[16]"
 .PP
 IP of connection. 
 .PP
 Definition at line 50 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by FullConnectUser(), and userrec::userrec().
 .SS "time_t \fBconnection::lastping\fP"
 .PP
 Time the connection was last pinged. 
@@ -192,21 +192,21 @@ For a serverrec this is the current listening port of the serverrec object.
 .PP
 Definition at line 76 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by FullConnectUser(), kill_link(), kill_link_silent(), and userrec::userrec().
 .SS "char \fBconnection::registered\fP"
 .PP
 Used by userrec to indicate the registration status of the connection. 
 .PP
 Definition at line 80 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by ConnectUser(), force_nickchange(), FullConnectUser(), kill_link(), kill_link_silent(), and userrec::userrec().
 .SS "time_t \fBconnection::signon\fP"
 .PP
 Time the connection was created, set in the constructor. 
 .PP
 Definition at line 88 of file connection.h.
 .PP
-Referenced by userrec::userrec().
+Referenced by AddWhoWas(), and userrec::userrec().
 
 .SH "Author"
 .PP 
index 7e78e8aabde6e2f58cf1f04f94798d1e7012ddc8..cbbe6fa278dbf3d39051fbbe7a6bcae546b427d3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "connection.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "connection.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 72fbad97b0784aa59c5512697eb462ed0923dd19..740c740c03eaef7f1603d0171f903232d01439e9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ctables.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ctables.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -8,9 +8,7 @@ ctables.h \-
 .PP
 \fC#include 'inspircd_config.h'\fP
 .br
-\fC#include 'inspircd.h'\fP
-.br
-\fC#include 'base.h'\fP
+\fC#include <deque>\fP
 .br
 
 .SS "Classes"
@@ -21,6 +19,18 @@ ctables.h \-
 .br
 .RI "\fIA structure that defines a command. \fP"
 .in -1c
+.SS "Typedefs"
+
+.in +1c
+.ti -1c
+.RI "typedef std::deque< \fBcommand_t\fP * > \fBcommand_table\fP"
+.br
+.in -1c
+.SH "Typedef Documentation"
+.PP 
+.SS "typedef std::deque<\fBcommand_t\fP*> \fBcommand_table\fP"
+.PP
+Definition at line 62 of file ctables.h.
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index b6ded78a385e211b5fc6eea40ddaa427bd186430..78b9f49a92450b4dce8b2b3a28f31278a147a558 100644 (file)
@@ -1,4 +1,4 @@
-.TH "cull_list.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "cull_list.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 03f36a822c989d0f22f2cf72a8b44499c6bc3225..df94d7ad29884a6483abbe95923bc84b292a45f2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dns.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "dns.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -26,6 +26,21 @@ dns.h \-
 .br
 .RI "\fIThe DNS class allows fast nonblocking resolution of hostnames and ip addresses. \fP"
 .in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "void * \fBdns_task\fP (void *arg)"
+.br
+.RI "\fIThis is the handler function for multi-threaded \fBDNS\fP. \fP"
+.in -1c
+.SH "Function Documentation"
+.PP 
+.SS "void* dns_task (void * arg)"
+.PP
+This is the handler function for multi-threaded \fBDNS\fP. 
+.PP
+It cannot be a class member as pthread will not let us create a thread whos handler function is a member of a class (ugh).
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 9a31009aaaa2872ac87fc6e8434e8777044d835a..ddd834dd4e10ed409f42470ffba86d933edeec7a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dns_ip4list" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "dns_ip4list" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index f60a9448d2d170f3427027500051219b98e5d8ee..6625e0c1af3976d1402c217d345bc8af2bfb4ba7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "globals.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "globals.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -136,7 +136,7 @@ Referenced by add_channel(), del_channel(), and Server::FindChannel().
 Referenced by Server::IsNick().
 .SS "void log (int level, char * text,  ...)"
 .PP
-Referenced by add_channel(), Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), del_channel(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), InspSocket::InspSocket(), kick_channel(), Server::Log(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
+Referenced by add_channel(), AddClient(), Server::AddExtendedMode(), SocketEngine::AddFd(), AddOper(), chanrec::AddUser(), AddWhoWas(), del_channel(), DeleteOper(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), FullConnectUser(), InspSocket::InspSocket(), kick_channel(), kill_link(), kill_link_silent(), Server::Log(), InspSocket::Read(), ReHashNick(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
 .SS "int ModeDefiend (char c, int i)"
 .PP
 .SS "void readfile (\fBfile_cache\fP & F, const char * fname)"
@@ -144,7 +144,7 @@ Referenced by add_channel(), Server::AddExtendedMode(), SocketEngine::AddFd(), c
 Referenced by FileReader::FileReader(), and FileReader::LoadFile().
 .SS "void Write (int sock, char * text,  ...)"
 .PP
-Referenced by Server::PseudoToUser(), Server::Send(), Server::SendTo(), and Server::UserToPseudo().
+Referenced by kill_link(), kill_link_silent(), Server::PseudoToUser(), Server::Send(), Server::SendTo(), and Server::UserToPseudo().
 .SS "void WriteChannel (\fBchanrec\fP * Ptr, \fBuserrec\fP * user, char * text,  ...)"
 .PP
 Referenced by del_channel(), ForceChan(), kick_channel(), and Server::SendChannel().
@@ -153,16 +153,16 @@ Referenced by del_channel(), ForceChan(), kick_channel(), and Server::SendChanne
 Referenced by Server::SendCommon().
 .SS "void WriteCommonExcept (\fBuserrec\fP * u, char * text,  ...)"
 .PP
-Referenced by Server::SendCommon().
+Referenced by kill_link(), kill_link_silent(), and Server::SendCommon().
 .SS "void WriteFrom (int sock, \fBuserrec\fP * user, char * text,  ...)"
 .PP
 Referenced by Server::PseudoToUser(), and Server::SendFrom().
 .SS "void WriteOpers (char * text,  ...)"
 .PP
-Referenced by userrec::AddBuffer(), userrec::AddWriteBuf(), ConfigReader::DumpErrors(), Server::RehashServer(), and Server::SendOpers().
+Referenced by userrec::AddBuffer(), userrec::AddWriteBuf(), ConfigReader::DumpErrors(), FullConnectUser(), kill_link(), Server::RehashServer(), and Server::SendOpers().
 .SS "void WriteServ (int sock, char * text,  ...)"
 .PP
-Referenced by add_channel(), ConfigReader::DumpErrors(), ForceChan(), kick_channel(), Server::PseudoToUser(), and Server::SendServ().
+Referenced by add_channel(), ConfigReader::DumpErrors(), ForceChan(), FullConnectUser(), kick_channel(), Server::PseudoToUser(), and Server::SendServ().
 .SS "void WriteTo (\fBuserrec\fP * source, \fBuserrec\fP * dest, char * data,  ...)"
 .PP
 Referenced by Server::SendTo().
index 21ba405600350e52bd1edfd55b3cd4ba78744d21..cd2cfe35ed899ee8ddd1a0566ef53f9d9e085348 100644 (file)
@@ -1,4 +1,4 @@
-.TH "hashcomp.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "hashcomp.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 32e2fdb016afe652e899b1ab7b52960f1e834d98..545c22f414b2be169b4b6ae8c96da3747e611a1c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "inspircd.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "inspircd.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -38,14 +38,18 @@ inspircd.h \-
 .br
 \fC#include 'inspircd_io.h'\fP
 .br
-\fC#include 'inspircd_util.h'\fP
-.br
 \fC#include 'users.h'\fP
 .br
 \fC#include 'channels.h'\fP
 .br
 \fC#include 'socket.h'\fP
 .br
+\fC#include 'mode.h'\fP
+.br
+\fC#include 'socketengine.h'\fP
+.br
+\fC#include 'command_parse.h'\fP
+.br
 
 .SS "Classes"
 
@@ -75,182 +79,43 @@ inspircd.h \-
 .ti -1c
 .RI "#define \fBMAXCOMMAND\fP   32"
 .br
-.ti -1c
-.RI "#define \fBWM_AND\fP   1"
-.br
-.ti -1c
-.RI "#define \fBWM_OR\fP   2"
-.br
-.ti -1c
-.RI "#define \fBTYPE_USER\fP   1"
-.br
-.ti -1c
-.RI "#define \fBTYPE_CHANNEL\fP   2"
-.br
-.ti -1c
-.RI "#define \fBTYPE_SERVER\fP   3"
-.br
-.ti -1c
-.RI "#define \fBIS_LOCAL\fP(x)   (x->fd > -1)"
-.br
-.ti -1c
-.RI "#define \fBIS_REMOTE\fP(x)   (x->fd < 0)"
-.br
-.ti -1c
-.RI "#define \fBIS_MODULE_CREATED\fP(x)   (x->fd == FD_MAGIC_NUMBER)"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef void( \fBhandlerfunc\fP )(char **, int, \fBuserrec\fP *)"
-.br
 .in -1c
 .SS "Functions"
 
 .in +1c
 .ti -1c
-.RI "void \fBforce_nickchange\fP (\fBuserrec\fP *user, const char *newnick)"
-.br
-.ti -1c
-.RI "void \fBkill_link\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBkill_link_silent\fP (\fBuserrec\fP *user, const char *r)"
-.br
-.ti -1c
-.RI "void \fBcall_handler\fP (const char *commandname, char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "bool \fBis_valid_cmd\fP (const char *commandname, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "int \fBloop_call\fP (\fBhandlerfunc\fP fn, char **parameters, int pcnt, \fBuserrec\fP *u, int start, int end, int joins)"
-.br
-.ti -1c
-.RI "void \fBAddWhoWas\fP (\fBuserrec\fP *u)"
-.br
-.ti -1c
-.RI "void \fBConnectUser\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "\fBuserrec\fP * \fBReHashNick\fP (char *Old, char *New)"
-.br
-.ti -1c
-.RI "void \fBAddOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBDeleteOper\fP (\fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBhandle_version\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
 .RI "void \fBAddServerName\fP (\fBstd::string\fP servername)"
 .br
 .ti -1c
 .RI "const char * \fBFindServerNamePtr\fP (\fBstd::string\fP servername)"
 .br
-.ti -1c
-.RI "void * \fBdns_task\fP (void *arg)"
-.br
-.ti -1c
-.RI "void \fBprocess_buffer\fP (const char *cmdbuf, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBFullConnectUser\fP (\fBuserrec\fP *user)"
-.br
 .in -1c
 .SH "Define Documentation"
 .PP 
 .SS "#define ERROR   -1"
 .PP
-Definition at line 49 of file inspircd.h.
+Definition at line 51 of file inspircd.h.
 .PP
 Referenced by InspSocket::InspSocket().
 .SS "#define FALSE   0"
 .PP
-Definition at line 51 of file inspircd.h.
-.SS "#define IS_LOCAL(x)   (x->fd > -1)"
-.PP
-Definition at line 66 of file inspircd.h.
-.SS "#define IS_MODULE_CREATED(x)   (x->fd == FD_MAGIC_NUMBER)"
-.PP
-Definition at line 68 of file inspircd.h.
-.SS "#define IS_REMOTE(x)   (x->fd < 0)"
-.PP
-Definition at line 67 of file inspircd.h.
+Definition at line 53 of file inspircd.h.
 .SS "#define MAXCOMMAND   32"
 .PP
-Definition at line 53 of file inspircd.h.
+Definition at line 55 of file inspircd.h.
 .SS "#define MAXSOCKS   64"
 .PP
-Definition at line 52 of file inspircd.h.
+Definition at line 54 of file inspircd.h.
 .SS "#define TRUE   1"
 .PP
-Definition at line 50 of file inspircd.h.
-.SS "#define TYPE_CHANNEL   2"
-.PP
-Definition at line 63 of file inspircd.h.
-.SS "#define TYPE_SERVER   3"
-.PP
-Definition at line 64 of file inspircd.h.
-.SS "#define TYPE_USER   1"
-.PP
-Definition at line 62 of file inspircd.h.
-.SS "#define WM_AND   1"
-.PP
-Definition at line 57 of file inspircd.h.
-.SS "#define WM_OR   2"
-.PP
-Definition at line 58 of file inspircd.h.
-.SH "Typedef Documentation"
-.PP 
-.SS "typedef void( \fBhandlerfunc\fP)(char **, int, \fBuserrec\fP *)"
-.PP
-Definition at line 70 of file inspircd.h.
+Definition at line 52 of file inspircd.h.
 .SH "Function Documentation"
 .PP 
-.SS "void AddOper (\fBuserrec\fP * user)"
-.PP
 .SS "void AddServerName (\fBstd::string\fP servername)"
 .PP
-.SS "void AddWhoWas (\fBuserrec\fP * u)"
-.PP
-.SS "void call_handler (const char * commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-Referenced by Server::CallCommandHandler().
-.SS "void ConnectUser (\fBuserrec\fP * user)"
-.PP
-.SS "void DeleteOper (\fBuserrec\fP * user)"
-.PP
-.SS "void* dns_task (void * arg)"
-.PP
 .SS "const char* FindServerNamePtr (\fBstd::string\fP servername)"
 .PP
-Referenced by userrec::userrec().
-.SS "void force_nickchange (\fBuserrec\fP * user, const char * newnick)"
-.PP
-Referenced by Server::ChangeUserNick().
-.SS "void FullConnectUser (\fBuserrec\fP * user)"
-.PP
-.SS "void handle_version (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "bool is_valid_cmd (const char * commandname, int pcnt, \fBuserrec\fP * user)"
-.PP
-Referenced by Server::IsValidModuleCommand().
-.SS "void kill_link (\fBuserrec\fP * user, const char * r)"
-.PP
-Referenced by Server::PseudoToUser(), and Server::QuitUser().
-.SS "void kill_link_silent (\fBuserrec\fP * user, const char * r)"
-.PP
-.SS "int loop_call (\fBhandlerfunc\fP fn, char ** parameters, int pcnt, \fBuserrec\fP * u, int start, int end, int joins)"
-.PP
-.SS "void process_buffer (const char * cmdbuf, \fBuserrec\fP * user)"
-.PP
-.SS "\fBuserrec\fP* ReHashNick (char * Old, char * New)"
-.PP
+Referenced by AddClient(), and userrec::userrec().
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 9ed14e7beaef944a1d00d4ae5640773fa9e0d566..006d467e096b0dbb546d83cbb5850598ba13bd70 100644 (file)
@@ -1,4 +1,4 @@
-.TH "inspircd_io.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "inspircd_io.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -16,6 +16,8 @@ inspircd_io.h \-
 .br
 \fC#include 'globals.h'\fP
 .br
+\fC#include 'modules.h'\fP
+.br
 
 .SS "Classes"
 
@@ -79,23 +81,23 @@ inspircd_io.h \-
 .PP
 Flags for use with \fBlog()\fP. 
 .PP
-Definition at line 28 of file inspircd_io.h.
+Definition at line 29 of file inspircd_io.h.
 .PP
-Referenced by add_channel(), Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), del_channel(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), InspSocket::InspSocket(), kick_channel(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
+Referenced by add_channel(), AddClient(), Server::AddExtendedMode(), SocketEngine::AddFd(), AddOper(), chanrec::AddUser(), AddWhoWas(), del_channel(), DeleteOper(), SocketEngine::DelFd(), chanrec::DelUser(), ForceChan(), FullConnectUser(), InspSocket::InspSocket(), kick_channel(), kill_link(), kill_link_silent(), InspSocket::Read(), ReHashNick(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().
 .SS "#define DEFAULT   30"
 .PP
-Definition at line 30 of file inspircd_io.h.
+Definition at line 31 of file inspircd_io.h.
 .PP
 Referenced by add_channel(), del_channel(), and kick_channel().
 .SS "#define NONE   50"
 .PP
-Definition at line 32 of file inspircd_io.h.
+Definition at line 33 of file inspircd_io.h.
 .SS "#define SPARSE   40"
 .PP
-Definition at line 31 of file inspircd_io.h.
+Definition at line 32 of file inspircd_io.h.
 .SS "#define VERBOSE   20"
 .PP
-Definition at line 29 of file inspircd_io.h.
+Definition at line 30 of file inspircd_io.h.
 .SH "Function Documentation"
 .PP 
 .SS "int BindPorts ()"
index 357498a3b80da252f2482cbe877744536363faa9..b7f85d31a66579d0025db03bfcacd1e1f918335c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "irc" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "irc" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 2530f430d80b75df90471061bde041b7f1fa5416..ce9006fe9fe88a8ad1f7766cc5b08c4f9f30d917 100644 (file)
@@ -1,4 +1,4 @@
-.TH "irc::InAddr_HashComp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "irc::InAddr_HashComp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index c27aab162ed1058de1ef4fe9d5805ed85f890deb..765c1fd5262ebb226dd8e97242939bb84ad51b56 100644 (file)
@@ -1,4 +1,4 @@
-.TH "irc::StrHashComp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "irc::StrHashComp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 4b94560db3dc64b27561b69c7b6d13cf958d0d3d..bb9f4f6fd5b8fc4020bf9d223b1506f8bdb9fc52 100644 (file)
@@ -1,4 +1,4 @@
-.TH "irc::irc_char_traits" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "irc::irc_char_traits" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index ab4a63db8f5aff353f8a41b21a59112973623cee..a6f935c185d38f885b230f192a0d3eb804db76b0 100644 (file)
@@ -1,4 +1,4 @@
-.TH "message.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "message.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index c00c3947e5f57dfb34dd98ed698592d78deee9c9..e42b845a3e340028d922c3a62a946c9e87801fcd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "mode.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "mode.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -22,89 +22,19 @@ mode.h \-
 .br
 \fC#include 'channels.h'\fP
 .br
+\fC#include 'ctables.h'\fP
+.br
 
-.SS "Functions"
+.SS "Classes"
 
 .in +1c
 .ti -1c
-.RI "char * \fBgive_ops\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBgive_hops\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBgive_voice\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBtake_ops\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBtake_hops\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBtake_voice\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
+.RI "class \fBModeParser\fP"
 .br
 .ti -1c
-.RI "char * \fBadd_ban\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "char * \fBtake_ban\fP (\fBuserrec\fP *user, char *dest, \fBchanrec\fP *chan, int status)"
-.br
-.ti -1c
-.RI "void \fBprocess_modes\fP (char **parameters, \fBuserrec\fP *user, \fBchanrec\fP *chan, int status, int pcnt, bool servermode, bool silent, bool local)"
-.br
-.ti -1c
-.RI "bool \fBallowed_umode\fP (char umode, char *sourcemodes, bool adding)"
-.br
-.ti -1c
-.RI "bool \fBprocess_module_umode\fP (char umode, \fBuserrec\fP *source, void *dest, bool adding)"
-.br
-.ti -1c
-.RI "void \fBhandle_mode\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBserver_mode\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
-.RI "void \fBmerge_mode\fP (char **parameters, int pcnt)"
-.br
-.ti -1c
-.RI "void \fBmerge_mode2\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
+.RI "class \fBcmd_mode\fP"
 .br
 .in -1c
-.SH "Function Documentation"
-.PP 
-.SS "char* add_ban (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "bool allowed_umode (char umode, char * sourcemodes, bool adding)"
-.PP
-.SS "char* give_hops (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "char* give_ops (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "char* give_voice (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "void handle_mode (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void merge_mode (char ** parameters, int pcnt)"
-.PP
-.SS "void merge_mode2 (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-.SS "void process_modes (char ** parameters, \fBuserrec\fP * user, \fBchanrec\fP * chan, int status, int pcnt, bool servermode, bool silent, bool local)"
-.PP
-.SS "bool process_module_umode (char umode, \fBuserrec\fP * source, void * dest, bool adding)"
-.PP
-.SS "void server_mode (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
-Referenced by Server::SendMode().
-.SS "char* take_ban (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "char* take_hops (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "char* take_ops (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
-.SS "char* take_voice (\fBuserrec\fP * user, char * dest, \fBchanrec\fP * chan, int status)"
-.PP
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 6a58ebacdde225e5ee2393769a2e718876383b28..8ec07b6cd245c5d7cbb1a20c618508617163b926 100644 (file)
@@ -1,4 +1,4 @@
-.TH "modules.cpp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "modules.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -12,8 +12,6 @@ modules.cpp \-
 .br
 \fC#include 'inspircd_io.h'\fP
 .br
-\fC#include 'inspircd_util.h'\fP
-.br
 \fC#include <unistd.h>\fP
 .br
 \fC#include <sys/errno.h>\fP
@@ -64,6 +62,8 @@ modules.cpp \-
 .br
 \fC#include 'typedefs.h'\fP
 .br
+\fC#include 'command_parse.h'\fP
+.br
 
 .SS "Functions"
 
@@ -100,9 +100,6 @@ modules.cpp \-
 
 .in +1c
 .ti -1c
-.RI "\fBSocketEngine\fP * \fBSE\fP"
-.br
-.ti -1c
 .RI "\fBServerConfig\fP * \fBConfig\fP"
 .br
 .ti -1c
@@ -143,141 +140,141 @@ modules.cpp \-
 .PP 
 .SS "bool DoAddExtendedMode (char modechar, int type, bool requires_oper, int params_on, int params_off)"
 .PP
-Definition at line 134 of file modules.cpp.
+Definition at line 133 of file modules.cpp.
 .PP
 References EMode, and ModeDefined().
 .PP
 Referenced by Server::AddExtendedListMode(), and Server::AddExtendedMode().
 .PP
 .nf
-135 {
-136         if (ModeDefined(modechar,type)) {
-137                 return false;
-138         }
-139         EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off));
-140         return true;
-141 }
+134 {
+135         if (ModeDefined(modechar,type)) {
+136                 return false;
+137         }
+138         EMode.push_back(ExtMode(modechar,type,requires_oper,params_on,params_off));
+139         return true;
+140 }
 .fi
 .PP
 .SS "std::vector<\fBircd_module\fP*> factory (255)"
 .PP
 .SS "bool ModeDefined (char modechar, int type)"
 .PP
-Definition at line 71 of file modules.cpp.
+Definition at line 70 of file modules.cpp.
 .PP
 References EMode.
 .PP
 Referenced by DoAddExtendedMode().
 .PP
 .nf
-72 {
-73         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-74         {
-75                 if ((i->modechar == modechar) && (i->type == type))
-76                 {
-77                         return true;
-78                 }
-79         }
-80         return false;
-81 }
+71 {
+72         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+73         {
+74                 if ((i->modechar == modechar) && (i->type == type))
+75                 {
+76                         return true;
+77                 }
+78         }
+79         return false;
+80 }
 .fi
 .PP
 .SS "int ModeDefinedOff (char modechar, int type)"
 .PP
-Definition at line 121 of file modules.cpp.
+Definition at line 120 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-122 {
-123         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-124         {
-125                 if ((i->modechar == modechar) && (i->type == type))
-126                 {
-127                         return i->params_when_off;
-128                 }
-129         }
-130         return 0;
-131 }
+121 {
+122         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+123         {
+124                 if ((i->modechar == modechar) && (i->type == type))
+125                 {
+126                         return i->params_when_off;
+127                 }
+128         }
+129         return 0;
+130 }
 .fi
 .PP
 .SS "int ModeDefinedOn (char modechar, int type)"
 .PP
-Definition at line 108 of file modules.cpp.
+Definition at line 107 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-109 {
-110         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-111         {
-112                 if ((i->modechar == modechar) && (i->type == type))
-113                 {
-114                         return i->params_when_on;
-115                 }
-116         }
-117         return 0;
-118 }
+108 {
+109         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+110         {
+111                 if ((i->modechar == modechar) && (i->type == type))
+112                 {
+113                         return i->params_when_on;
+114                 }
+115         }
+116         return 0;
+117 }
 .fi
 .PP
 .SS "bool ModeDefinedOper (char modechar, int type)"
 .PP
-Definition at line 95 of file modules.cpp.
+Definition at line 94 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-96 {
-97         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-98         {
-99                 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
-100                 {
-101                         return true;
-102                 }
-103         }
-104         return false;
-105 }
+95 {
+96         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+97         {
+98                 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
+99                 {
+100                         return true;
+101                 }
+102         }
+103         return false;
+104 }
 .fi
 .PP
 .SS "bool ModeIsListMode (char modechar, int type)"
 .PP
-Definition at line 83 of file modules.cpp.
+Definition at line 82 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-84 {
-85         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-86         {
-87                 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
-88                 {
-89                         return true;
-90                 }
-91         }
-92         return false;
-93 }
+83 {
+84         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+85         {
+86                 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
+87                 {
+88                         return true;
+89                 }
+90         }
+91         return false;
+92 }
 .fi
 .PP
 .SS "void ModeMakeList (char modechar)"
 .PP
-Definition at line 144 of file modules.cpp.
+Definition at line 143 of file modules.cpp.
 .PP
 References EMode, and MT_CHANNEL.
 .PP
 Referenced by Server::AddExtendedListMode().
 .PP
 .nf
-145 {
-146         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-147         {
-148                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
-149                 {
-150                         i->list = true;
-151                         return;
-152                 }
-153         }
-154         return;
-155 }
+144 {
+145         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+146         {
+147                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
+148                 {
+149                         i->list = true;
+150                         return;
+151                 }
+152         }
+153         return;
+154 }
 .fi
 .PP
 .SS "std::vector<\fBModule\fP*> modules (255)"
@@ -288,13 +285,14 @@ Referenced by Server::AddExtendedListMode().
 .PP
 .SS "\fBuser_hash\fP \fBclientlist\fP"
 .PP
+Referenced by AddClient(), kill_link(), kill_link_silent(), and ReHashNick().
 .SS "\fBcommand_table\fP \fBcmdlist\fP"
 .PP
 .SS "\fBServerConfig\fP* \fBConfig\fP"
 .PP
 .SS "\fBExtModeList\fP \fBEMode\fP"
 .PP
-Definition at line 68 of file modules.cpp.
+Definition at line 67 of file modules.cpp.
 .PP
 Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedOn(), ModeDefinedOper(), ModeIsListMode(), and ModeMakeList().
 .SS "std::vector<\fBircd_module\fP*> factory"
@@ -303,14 +301,12 @@ Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedO
 .PP
 .SS "int \fBMODCOUNT\fP = -1"
 .PP
-Definition at line 935 of file modules.cpp.
+Definition at line 934 of file modules.cpp.
 .SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP"
 .PP
 Referenced by Server::AddSocket(), and Server::DelSocket().
 .SS "std::vector<\fBModule\fP*> modules"
 .PP
-.SS "\fBSocketEngine\fP* \fBSE\fP"
-.PP
 .SS "\fBInspIRCd\fP* \fBServerInstance\fP"
 .PP
 .SS "time_t \fBTIME\fP"
index 481aeaa5796160b03d1c5eefeba55afa3056a1d9..e326f26c4d8369e35d0e8a39d45fb2fe4daf9fdc 100644 (file)
@@ -1,4 +1,4 @@
-.TH "modules.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "modules.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -158,6 +158,30 @@ modules.h \-
 .RI "#define \fBFD_MAGIC_NUMBER\fP   -42"
 .br
 .ti -1c
+.RI "#define \fBIS_LOCAL\fP(x)   (x->fd > -1)"
+.br
+.ti -1c
+.RI "#define \fBIS_REMOTE\fP(x)   (x->fd < 0)"
+.br
+.ti -1c
+.RI "#define \fBIS_MODULE_CREATED\fP(x)   (x->fd == FD_MAGIC_NUMBER)"
+.br
+.ti -1c
+.RI "#define \fBWM_AND\fP   1"
+.br
+.ti -1c
+.RI "#define \fBWM_OR\fP   2"
+.br
+.ti -1c
+.RI "#define \fBTYPE_USER\fP   1"
+.br
+.ti -1c
+.RI "#define \fBTYPE_CHANNEL\fP   2"
+.br
+.ti -1c
+.RI "#define \fBTYPE_SERVER\fP   3"
+.br
+.ti -1c
 .RI "#define \fBCONF_NOT_A_NUMBER\fP   0x000010"
 .br
 .ti -1c
@@ -192,12 +216,6 @@ modules.h \-
 
 .in +1c
 .ti -1c
-.RI "void \fBcreatecommand\fP (char *cmd, \fBhandlerfunc\fP f, char flags, int minparams, char *source)"
-.br
-.ti -1c
-.RI "void \fBserver_mode\fP (char **parameters, int pcnt, \fBuserrec\fP *user)"
-.br
-.ti -1c
 .RI "bool \fBModeDefined\fP (char c, int i)"
 .br
 .ti -1c
@@ -264,22 +282,22 @@ Definition at line 38 of file modules.h.
 Referenced by kick_channel().
 .SS "#define CONF_FILE_NOT_FOUND   0x000200"
 .PP
-Definition at line 1523 of file modules.h.
+Definition at line 1541 of file modules.h.
 .PP
 Referenced by ConfigReader::ConfigReader().
 .SS "#define CONF_NOT_A_NUMBER   0x000010"
 .PP
-Definition at line 1520 of file modules.h.
+Definition at line 1538 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadInteger().
 .SS "#define CONF_NOT_UNSIGNED   0x000080"
 .PP
-Definition at line 1521 of file modules.h.
+Definition at line 1539 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadInteger().
 .SS "#define CONF_VALUE_NOT_FOUND   0x000100"
 .PP
-Definition at line 1522 of file modules.h.
+Definition at line 1540 of file modules.h.
 .PP
 Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().
 .SS "#define DEBUG   10"
@@ -292,14 +310,14 @@ Definition at line 23 of file modules.h.
 Definition at line 25 of file modules.h.
 .SS "#define FD_MAGIC_NUMBER   -42"
 .PP
-Definition at line 101 of file modules.h.
+Definition at line 102 of file modules.h.
 .PP
 Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
 .SS "#define FOREACH_MOD   for (int _i = 0; _i <= \fBMODCOUNT\fP; _i++) modules[_i]->"
 .PP
-Definition at line 81 of file modules.h.
+Definition at line 82 of file modules.h.
 .PP
-Referenced by del_channel(), ForceChan(), kick_channel(), and Event::Send().
+Referenced by del_channel(), ForceChan(), FullConnectUser(), kick_channel(), kill_link(), kill_link_silent(), and Event::Send().
 .SS "#define FOREACH_RESULT(x)"
 .PP
 \fBValue:\fP
@@ -316,9 +334,18 @@ Referenced by del_channel(), ForceChan(), kick_channel(), and Event::Send().
         }
 .fi
 .PP
-Definition at line 89 of file modules.h.
+Definition at line 90 of file modules.h.
+.PP
+Referenced by add_channel(), force_nickchange(), and kick_channel().
+.SS "#define IS_LOCAL(x)   (x->fd > -1)"
+.PP
+Definition at line 106 of file modules.h.
+.SS "#define IS_MODULE_CREATED(x)   (x->fd == FD_MAGIC_NUMBER)"
+.PP
+Definition at line 108 of file modules.h.
+.SS "#define IS_REMOTE(x)   (x->fd < 0)"
 .PP
-Referenced by add_channel(), and kick_channel().
+Definition at line 107 of file modules.h.
 .SS "#define MT_CHANNEL   1"
 .PP
 Used with OnExtendedMode() method of modules. 
@@ -342,6 +369,15 @@ Definition at line 27 of file modules.h.
 .SS "#define SPARSE   40"
 .PP
 Definition at line 26 of file modules.h.
+.SS "#define TYPE_CHANNEL   2"
+.PP
+Definition at line 118 of file modules.h.
+.SS "#define TYPE_SERVER   3"
+.PP
+Definition at line 119 of file modules.h.
+.SS "#define TYPE_USER   1"
+.PP
+Definition at line 117 of file modules.h.
 .SS "#define VERBOSE   20"
 .PP
 Definition at line 24 of file modules.h.
@@ -361,150 +397,151 @@ Definition at line 52 of file modules.h.
 Definition at line 53 of file modules.h.
 .PP
 Referenced by Module::GetVersion().
+.SS "#define WM_AND   1"
+.PP
+Definition at line 112 of file modules.h.
+.SS "#define WM_OR   2"
+.PP
+Definition at line 113 of file modules.h.
 .SH "Typedef Documentation"
 .PP 
 .SS "typedef std::deque<\fBuserrec\fP*> \fBchanuserlist\fP"
 .PP
 Holds a list of users in a channel. 
 .PP
-Definition at line 74 of file modules.h.
+Definition at line 75 of file modules.h.
 .SS "typedef std::deque<\fBstd::string\fP> \fBfile_cache\fP"
 .PP
 Low level definition of a \fBFileReader\fP classes file cache area. 
 .PP
-Definition at line 65 of file modules.h.
+Definition at line 66 of file modules.h.
 .SS "typedef DLLFactory<\fBModuleFactory\fP> \fBircd_module\fP"
 .PP
-Definition at line 1689 of file modules.h.
+Definition at line 1707 of file modules.h.
 .SS "typedef \fBfile_cache\fP \fBstring_list\fP"
 .PP
-Definition at line 70 of file modules.h.
+Definition at line 71 of file modules.h.
 .SH "Function Documentation"
 .PP 
-.SS "void createcommand (char * cmd, \fBhandlerfunc\fP f, char flags, int minparams, char * source)"
-.PP
-Referenced by Server::AddCommand().
 .SS "bool ModeDefined (char c, int i)"
 .PP
-Definition at line 71 of file modules.cpp.
+Definition at line 70 of file modules.cpp.
 .PP
 References EMode.
 .PP
 Referenced by DoAddExtendedMode().
 .PP
 .nf
-72 {
-73         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-74         {
-75                 if ((i->modechar == modechar) && (i->type == type))
-76                 {
-77                         return true;
-78                 }
-79         }
-80         return false;
-81 }
+71 {
+72         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+73         {
+74                 if ((i->modechar == modechar) && (i->type == type))
+75                 {
+76                         return true;
+77                 }
+78         }
+79         return false;
+80 }
 .fi
 .PP
 .SS "int ModeDefinedOff (char c, int i)"
 .PP
-Definition at line 121 of file modules.cpp.
+Definition at line 120 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-122 {
-123         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-124         {
-125                 if ((i->modechar == modechar) && (i->type == type))
-126                 {
-127                         return i->params_when_off;
-128                 }
-129         }
-130         return 0;
-131 }
+121 {
+122         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+123         {
+124                 if ((i->modechar == modechar) && (i->type == type))
+125                 {
+126                         return i->params_when_off;
+127                 }
+128         }
+129         return 0;
+130 }
 .fi
 .PP
 .SS "int ModeDefinedOn (char c, int i)"
 .PP
-Definition at line 108 of file modules.cpp.
+Definition at line 107 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-109 {
-110         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-111         {
-112                 if ((i->modechar == modechar) && (i->type == type))
-113                 {
-114                         return i->params_when_on;
-115                 }
-116         }
-117         return 0;
-118 }
+108 {
+109         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+110         {
+111                 if ((i->modechar == modechar) && (i->type == type))
+112                 {
+113                         return i->params_when_on;
+114                 }
+115         }
+116         return 0;
+117 }
 .fi
 .PP
 .SS "bool ModeDefinedOper (char c, int i)"
 .PP
-Definition at line 95 of file modules.cpp.
+Definition at line 94 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-96 {
-97         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-98         {
-99                 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
-100                 {
-101                         return true;
-102                 }
-103         }
-104         return false;
-105 }
+95 {
+96         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+97         {
+98                 if ((i->modechar == modechar) && (i->type == type) && (i->needsoper == true))
+99                 {
+100                         return true;
+101                 }
+102         }
+103         return false;
+104 }
 .fi
 .PP
 .SS "bool ModeIsListMode (char modechar, int type)"
 .PP
-Definition at line 83 of file modules.cpp.
+Definition at line 82 of file modules.cpp.
 .PP
 References EMode.
 .PP
 .nf
-84 {
-85         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-86         {
-87                 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
-88                 {
-89                         return true;
-90                 }
-91         }
-92         return false;
-93 }
+83 {
+84         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+85         {
+86                 if ((i->modechar == modechar) && (i->type == type) && (i->list == true))
+87                 {
+88                         return true;
+89                 }
+90         }
+91         return false;
+92 }
 .fi
 .PP
 .SS "void ModeMakeList (char modechar)"
 .PP
-Definition at line 144 of file modules.cpp.
+Definition at line 143 of file modules.cpp.
 .PP
 References EMode, and MT_CHANNEL.
 .PP
 Referenced by Server::AddExtendedListMode().
 .PP
 .nf
-145 {
-146         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
-147         {
-148                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
-149                 {
-150                         i->list = true;
-151                         return;
-152                 }
-153         }
-154         return;
-155 }
+144 {
+145         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
+146         {
+147                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
+148                 {
+149                         i->list = true;
+150                         return;
+151                 }
+152         }
+153         return;
+154 }
 .fi
 .PP
-.SS "void server_mode (char ** parameters, int pcnt, \fBuserrec\fP * user)"
-.PP
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 710faf6e362e7a3d8d10a4ffa9d2ab76491fa155..6f94db0221274262d505764cd8d3a5c9413b6c6d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "nspace" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 1957a8802e618c7077ec4b344c065952755f7059..71b1b92a8efbdb218e3b9fd4cb150483133cdadd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace::hash< in_addr >" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "nspace::hash< in_addr >" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index aba6882afe32c9d8b23c6ce5f600dbaa58e46f54..ea101e76bfb63730111406315e9cddb6a9020fa6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "nspace::hash< string >" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "nspace::hash< string >" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index c3448337f09e405c7e5da2aae756a92e67f65123..9a3d5480c81f19826f7b1dd650df72ba41d44151 100644 (file)
@@ -1,4 +1,4 @@
-.TH "serverstats" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "serverstats" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -48,76 +48,85 @@ serverstats \-
 .ti -1c
 .RI "int \fBstatsRecv\fP"
 .br
+.ti -1c
+.RI "int \fBBoundPortCount\fP"
+.br
 .in -1c
 .SH "Detailed Description"
 .PP 
-Definition at line 72 of file inspircd.h.
+Definition at line 74 of file inspircd.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "serverstats::serverstats ()\fC [inline]\fP"
 .PP
-Definition at line 86 of file inspircd.h.
+Definition at line 89 of file inspircd.h.
 .PP
-References statsAccept, statsCollisions, statsConnects, statsDns, statsDnsBad, statsDnsGood, statsRecv, statsRefused, statsSent, and statsUnknown.
+References BoundPortCount, statsAccept, statsCollisions, statsConnects, statsDns, statsDnsBad, statsDnsGood, statsRecv, statsRefused, statsSent, and statsUnknown.
 .PP
 .nf
-87         {
-88                 statsAccept = statsRefused = statsUnknown = 0;
-89                 statsCollisions = statsDns = statsDnsGood = 0;
-90                 statsDnsBad = statsConnects = statsSent = statsRecv = 0;
-91         }
+90         {
+91                 statsAccept = statsRefused = statsUnknown = 0;
+92                 statsCollisions = statsDns = statsDnsGood = 0;
+93                 statsDnsBad = statsConnects = statsSent = statsRecv = 0;
+94                 BoundPortCount = 0;
+95         }
 .fi
 .PP
 .SH "Member Data Documentation"
 .PP 
+.SS "int \fBserverstats::BoundPortCount\fP"
+.PP
+Definition at line 87 of file inspircd.h.
+.PP
+Referenced by serverstats().
 .SS "int \fBserverstats::statsAccept\fP"
 .PP
-Definition at line 75 of file inspircd.h.
+Definition at line 77 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsCollisions\fP"
 .PP
-Definition at line 78 of file inspircd.h.
+Definition at line 80 of file inspircd.h.
 .PP
-Referenced by serverstats().
+Referenced by force_nickchange(), and serverstats().
 .SS "int \fBserverstats::statsConnects\fP"
 .PP
-Definition at line 82 of file inspircd.h.
+Definition at line 84 of file inspircd.h.
 .PP
-Referenced by serverstats().
+Referenced by FullConnectUser(), and serverstats().
 .SS "int \fBserverstats::statsDns\fP"
 .PP
-Definition at line 79 of file inspircd.h.
+Definition at line 81 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsDnsBad\fP"
 .PP
-Definition at line 81 of file inspircd.h.
+Definition at line 83 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsDnsGood\fP"
 .PP
-Definition at line 80 of file inspircd.h.
+Definition at line 82 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsRecv\fP"
 .PP
-Definition at line 84 of file inspircd.h.
+Definition at line 86 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsRefused\fP"
 .PP
-Definition at line 76 of file inspircd.h.
+Definition at line 78 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsSent\fP"
 .PP
-Definition at line 83 of file inspircd.h.
+Definition at line 85 of file inspircd.h.
 .PP
 Referenced by serverstats().
 .SS "int \fBserverstats::statsUnknown\fP"
 .PP
-Definition at line 77 of file inspircd.h.
+Definition at line 79 of file inspircd.h.
 .PP
 Referenced by serverstats().
 
index 4960cafd7f72e7dc13e187d03b297afe20c72f9d..9a9ca61d2c49e5cdcd98b9acaf1033e57a8ab5ff 100644 (file)
@@ -1,4 +1,4 @@
-.TH "socket.cpp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "socket.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -38,8 +38,6 @@ socket.cpp \-
 .br
 \fC#include 'inspircd_io.h'\fP
 .br
-\fC#include 'inspircd_util.h'\fP
-.br
 \fC#include 'inspstring.h'\fP
 .br
 \fC#include 'helperfuncs.h'\fP
@@ -51,13 +49,7 @@ socket.cpp \-
 
 .in +1c
 .ti -1c
-.RI "\fBSocketEngine\fP * \fBSE\fP"
-.br
-.ti -1c
-.RI "int \fBboundPortCount\fP"
-.br
-.ti -1c
-.RI "int \fBopenSockfd\fP [MAXSOCKS]"
+.RI "\fBInspIRCd\fP * \fBServerInstance\fP"
 .br
 .ti -1c
 .RI "time_t \fBTIME\fP"
@@ -68,15 +60,11 @@ socket.cpp \-
 .in -1c
 .SH "Variable Documentation"
 .PP 
-.SS "int \fBboundPortCount\fP"
-.PP
-.SS "int \fBopenSockfd\fP[MAXSOCKS]"
-.PP
-.SS "\fBSocketEngine\fP* \fBSE\fP"
+.SS "\fBInspIRCd\fP* \fBServerInstance\fP"
 .PP
 .SS "\fBInspSocket\fP* \fBsocket_ref\fP[65535]"
 .PP
-Definition at line 46 of file socket.cpp.
+Definition at line 43 of file socket.cpp.
 .SS "time_t \fBTIME\fP"
 .PP
 .SH "Author"
index 788e52df6e5ffcc8eb8ff4c84b33945e9b761d29..9e9c0dbf7d2483925ab6d129f9169fbc39cdc1f3 100644 (file)
@@ -1,4 +1,4 @@
-.TH "socket.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "socket.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 9be3815030faf6be416de74a5cdc5868b8dbcb37..38cc4d5ea9e8027eb415e55d467b8369677bb7ba 100644 (file)
@@ -1,4 +1,4 @@
-.TH "socketengine.cpp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "socketengine.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 35bf728c1d2cfffb6e08743c6d679e0356a7da69..835dcc8f3810947673d974d2631dc7d934165abe 100644 (file)
@@ -1,4 +1,4 @@
-.TH "socketengine.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "socketengine.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -67,6 +67,8 @@ Referenced by SocketEngine::GetType().
 .SS "const char \fBX_ESTAB_CLIENT\fP = 2"
 .PP
 Definition at line 43 of file socketengine.h.
+.PP
+Referenced by AddClient().
 .SS "const char \fBX_ESTAB_DNS\fP = 4"
 .PP
 Definition at line 45 of file socketengine.h.
index a420bba502d9ebb3c1efbc9de9746103cd337f0f..55b862598068965c12845a238de05efaade626fb 100644 (file)
@@ -1,4 +1,4 @@
-.TH "std" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "std" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index 599987085271170b0fca68c82ee7697f31b2b93e..42e5033177063eb85894cfd009f1478b4a564e17 100644 (file)
@@ -1,4 +1,4 @@
-.TH "std::char_traits" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "std::char_traits" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
index f2a9a31eaceb718b325ce97eb66e43d969fd35d0..859161214fa252af7b725b6befc796bbcd7c8ea9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "typedefs.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "typedefs.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -45,9 +45,6 @@ typedefs.h \-
 .RI "typedef nspace::hash_map< \fBstd::string\fP, \fBWhoWasUser\fP *, nspace::hash< \fBstring\fP >, \fBirc::StrHashComp\fP > \fBwhowas_hash\fP"
 .br
 .ti -1c
-.RI "typedef std::deque< \fBcommand_t\fP > \fBcommand_table\fP"
-.br
-.ti -1c
 .RI "typedef std::vector< \fBstd::string\fP > \fBservernamelist\fP"
 .br
 .ti -1c
@@ -68,21 +65,18 @@ Definition at line 22 of file typedefs.h.
 .SS "typedef nspace::hash_map<\fBstd::string\fP, \fBchanrec\fP*, nspace::hash<\fBstring\fP>, \fBirc::StrHashComp\fP> \fBchan_hash\fP"
 .PP
 Definition at line 21 of file typedefs.h.
-.SS "typedef std::deque<\fBcommand_t\fP> \fBcommand_table\fP"
-.PP
-Definition at line 24 of file typedefs.h.
 .SS "typedef std::vector<\fBExtMode\fP> \fBExtModeList\fP"
 .PP
-Definition at line 26 of file typedefs.h.
+Definition at line 25 of file typedefs.h.
 .SS "typedef ExtModeList::iterator \fBExtModeListIter\fP"
 .PP
-Definition at line 27 of file typedefs.h.
+Definition at line 26 of file typedefs.h.
 .SS "typedef std::deque<\fBstd::string\fP> \fBfile_cache\fP"
 .PP
-Definition at line 28 of file typedefs.h.
+Definition at line 27 of file typedefs.h.
 .SS "typedef std::vector<\fBstd::string\fP> \fBservernamelist\fP"
 .PP
-Definition at line 25 of file typedefs.h.
+Definition at line 24 of file typedefs.h.
 .SS "typedef nspace::hash_map<\fBstd::string\fP, \fBuserrec\fP*, nspace::hash<\fBstring\fP>, \fBirc::StrHashComp\fP> \fBuser_hash\fP"
 .PP
 Definition at line 20 of file typedefs.h.
index ba427060b28cfdb4f2cbded5b79bd91407c4ad51..3f0226786baf8fd9eeca1b3a79d0f0f55f676624 100644 (file)
@@ -1,4 +1,4 @@
-.TH "ucrec" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "ucrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -69,7 +69,7 @@ If the record is not in use, this value will be NULL.
 .PP
 Definition at line 254 of file channels.h.
 .PP
-Referenced by ForceChan().
+Referenced by AddClient(), and ForceChan().
 .SS "char \fBucrec::uc_modes\fP"
 .PP
 Contains a bitmask of the UCMODE_OP . 
@@ -78,7 +78,7 @@ Contains a bitmask of the UCMODE_OP .
 .PP
 Definition at line 249 of file channels.h.
 .PP
-Referenced by ForceChan().
+Referenced by AddClient(), and ForceChan().
 
 .SH "Author"
 .PP 
index 70e681727ab50be47ec57c3a12832ffccb596935..8a1b46b913d2ca9a94b7beead0e1656cfcfd70c1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "userprocess.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "userprocess.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -8,6 +8,8 @@ userprocess.h \-
 .PP
 \fC#include 'users.h'\fP
 .br
+\fC#include 'inspircd.h'\fP
+.br
 
 .SS "Functions"
 
@@ -16,7 +18,7 @@ userprocess.h \-
 .RI "void \fBCheckDie\fP ()"
 .br
 .ti -1c
-.RI "void \fBLoadAllModules\fP ()"
+.RI "void \fBLoadAllModules\fP (\fBInspIRCd\fP *\fBServerInstance\fP)"
 .br
 .ti -1c
 .RI "void \fBCheckRoot\fP ()"
@@ -39,7 +41,7 @@ userprocess.h \-
 .PP
 .SS "bool DoBackgroundUserStuff (time_t TIME)"
 .PP
-.SS "void LoadAllModules ()"
+.SS "void LoadAllModules (\fBInspIRCd\fP * ServerInstance)"
 .PP
 .SS "void OpenLog (char ** argv, int argc)"
 .PP
index 9c34db7007981215cb61f68a06a806ed9a568715..e0c938e5e35335043bc50025599dd3bb335d0554 100644 (file)
@@ -1,4 +1,4 @@
-.TH "userrec" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "userrec" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -27,19 +27,19 @@ Inherits \fBconnection\fP.
 .br
 .RI "\fIReturns 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. \fP"
 .ti -1c
-.RI "virtual bool \fBIsInvited\fP (char *channel)"
+.RI "virtual bool \fBIsInvited\fP (\fBirc::string\fP &channel)"
 .br
 .RI "\fIReturns true if a user is invited to a channel. \fP"
 .ti -1c
-.RI "virtual void \fBInviteTo\fP (char *channel)"
+.RI "virtual void \fBInviteTo\fP (\fBirc::string\fP &channel)"
 .br
 .RI "\fIAdds a channel to a users invite list (invites them to a channel). \fP"
 .ti -1c
-.RI "virtual void \fBRemoveInvite\fP (char *channel)"
+.RI "virtual void \fBRemoveInvite\fP (\fBirc::string\fP &channel)"
 .br
 .RI "\fIRemoves a channel from a users invite list. \fP"
 .ti -1c
-.RI "bool \fBHasPermission\fP (char *command)"
+.RI "bool \fBHasPermission\fP (\fBstd::string\fP &command)"
 .br
 .RI "\fIReturns true or false for if a user can execute a privilaged oper command. \fP"
 .ti -1c
@@ -192,49 +192,49 @@ Holds all information about a user This class stores all information about a use
 
 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.
 .PP
-Definition at line 111 of file users.h.
+Definition at line 115 of file users.h.
 .SH "Constructor & Destructor Documentation"
 .PP 
 .SS "userrec::userrec ()"
 .PP
-Definition at line 36 of file users.cpp.
+Definition at line 63 of file users.cpp.
 .PP
 References awaymsg, connection::bytes_in, connection::bytes_out, chans, connection::cmds_in, connection::cmds_out, dhost, dns_done, connection::fd, FindServerNamePtr(), flood, fullname, connection::haspassed, connection::host, ident, connection::idle_lastmsg, invites, connection::ip, connection::lastping, lines_in, modes, nick, connection::nping, oper, connection::port, recvq, connection::registered, reset_due, sendq, server, ServerConfig::ServerName, connection::signon, TIME, and timeout.
 .PP
 .nf
-37 {
-38         // the PROPER way to do it, AVOID bzero at *ALL* costs
-39         strcpy(nick,'');
-40         strcpy(ip,'127.0.0.1');
-41         timeout = 0;
-42         strcpy(ident,'');
-43         strcpy(host,'');
-44         strcpy(dhost,'');
-45         strcpy(fullname,'');
-46         strcpy(modes,'');
-47         server = (char*)FindServerNamePtr(Config->ServerName);
-48         strcpy(awaymsg,'');
-49         strcpy(oper,'');
-50         reset_due = TIME;
-51         lines_in = 0;
-52         fd = lastping = signon = idle_lastmsg = nping = registered = 0;
-53         flood = port = bytes_in = bytes_out = cmds_in = cmds_out = 0;
-54         haspassed = false;
-55         dns_done = false;
-56         recvq = '';
-57         sendq = '';
-58         chans.clear();
-59         invites.clear();
-60 }
+64 {
+65         // the PROPER way to do it, AVOID bzero at *ALL* costs
+66         strcpy(nick,'');
+67         strcpy(ip,'127.0.0.1');
+68         timeout = 0;
+69         strcpy(ident,'');
+70         strcpy(host,'');
+71         strcpy(dhost,'');
+72         strcpy(fullname,'');
+73         strcpy(modes,'');
+74         server = (char*)FindServerNamePtr(Config->ServerName);
+75         strcpy(awaymsg,'');
+76         strcpy(oper,'');
+77         reset_due = TIME;
+78         lines_in = 0;
+79         fd = lastping = signon = idle_lastmsg = nping = registered = 0;
+80         flood = port = bytes_in = bytes_out = cmds_in = cmds_out = 0;
+81         haspassed = false;
+82         dns_done = false;
+83         recvq = '';
+84         sendq = '';
+85         chans.clear();
+86         invites.clear();
+87 }
 .fi
 .PP
 .SS "userrec::~userrec ()\fC [virtual]\fP"
 .PP
-Definition at line 62 of file users.cpp.
+Definition at line 89 of file users.cpp.
 .PP
 .nf
-63 {
-64 }
+90 {
+91 }
 .fi
 .PP
 .SH "Member Function Documentation"
@@ -245,35 +245,35 @@ This method adds data to the buffer of the user.
 .PP
 The buffer can grow to any size within limits of the available memory, managed by the size of a \fBstd::string\fP, however if any individual line in the buffer grows over 600 bytes in length (which is 88 chars over the RFC-specified limit per line) then the method will return false and the text will not be inserted.
 .PP
-Definition at line 198 of file users.cpp.
+Definition at line 219 of file users.cpp.
 .PP
 References recvq, recvqmax, SetWriteError(), and WriteOpers().
 .PP
 .nf
-199 {
-200         std::string b = '';
-201         for (unsigned int i = 0; i < a.length(); i++)
-202                 if ((a[i] != '\r') && (a[i] != '\0') && (a[i] != 7))
-203                         b = b + a[i];
-204         std::stringstream stream(recvq);
-205         stream << b;
-206         recvq = stream.str();
-207         unsigned int i = 0;
-208         // count the size of the first line in the buffer.
-209         while (i < recvq.length())
-210         {
-211                 if (recvq[i++] == '\n')
-212                         break;
-213         }
-214         if (recvq.length() > (unsigned)this->recvqmax)
-215         {
-216                 this->SetWriteError('RecvQ exceeded');
-217                 WriteOpers('*** User %s RecvQ of %d exceeds connect class maximum of %d',this->nick,recvq.length(),this->recvqmax);
-218         }
-219         // return false if we've had more than 600 characters WITHOUT
-220         // a carriage return (this is BAD, drop the socket)
-221         return (i < 600);
-222 }
+220 {
+221         std::string b = '';
+222         for (unsigned int i = 0; i < a.length(); i++)
+223                 if ((a[i] != '\r') && (a[i] != '\0') && (a[i] != 7))
+224                         b = b + a[i];
+225         std::stringstream stream(recvq);
+226         stream << b;
+227         recvq = stream.str();
+228         unsigned int i = 0;
+229         // count the size of the first line in the buffer.
+230         while (i < recvq.length())
+231         {
+232                 if (recvq[i++] == '\n')
+233                         break;
+234         }
+235         if (recvq.length() > (unsigned)this->recvqmax)
+236         {
+237                 this->SetWriteError('RecvQ exceeded');
+238                 WriteOpers('*** User %s RecvQ of %d exceeds connect class maximum of %d',this->nick,recvq.length(),this->recvqmax);
+239         }
+240         // return false if we've had more than 600 characters WITHOUT
+241         // a carriage return (this is BAD, drop the socket)
+242         return (i < 600);
+243 }
 .fi
 .PP
 .SS "void userrec::AddWriteBuf (\fBstd::string\fP data)"
@@ -282,24 +282,28 @@ Adds to the user's write buffer.
 .PP
 You may add any amount of text up to this users sendq value, if you exceed the sendq value, \fBSetWriteError()\fP will be called to set the users error string to 'SendQ exceeded', and further buffer adds will be dropped.
 .PP
-Definition at line 254 of file users.cpp.
+Definition at line 275 of file users.cpp.
 .PP
 References sendq, sendqmax, SetWriteError(), and WriteOpers().
 .PP
 .nf
-255 {
-256         if (this->GetWriteError() != '')
-257                 return;
-258         if (sendq.length() + data.length() > (unsigned)this->sendqmax)
-259         {
-260                 WriteOpers('*** User %s SendQ of %d exceeds connect class maximum of %d',this->nick,sendq.length() + data.length(),this->sendqmax);
-261                 this->SetWriteError('SendQ exceeded');
-262                 return;
-263         }
-264         std::stringstream stream;
-265         stream << sendq << data;
-266         sendq = stream.str();
-267 }
+276 {
+277         if (this->GetWriteError() != '')
+278                 return;
+279         if (sendq.length() + data.length() > (unsigned)this->sendqmax)
+280         {
+281                 /* Fix by brain - Set the error text BEFORE calling writeopers, because
+282                  * if we dont it'll recursively  call here over and over again trying
+283                  * to repeatedly add the text to the sendq!
+284                  */
+285                 this->SetWriteError('SendQ exceeded');
+286                 WriteOpers('*** User %s SendQ of %d exceeds connect class maximum of %d',this->nick,sendq.length() + data.length(),this->sendqmax);
+287                 return;
+288         }
+289         std::stringstream stream;
+290         stream << sendq << data;
+291         sendq = stream.str();
+292 }
 .fi
 .PP
 .SS "bool userrec::BufferIsReady ()"
@@ -308,46 +312,48 @@ This method returns true if the buffer contains at least one carriage return cha
 .PP
 one complete line may be read)
 .PP
-Definition at line 224 of file users.cpp.
+Definition at line 245 of file users.cpp.
 .PP
 References recvq.
 .PP
 .nf
-225 {
-226         for (unsigned int i = 0; i < recvq.length(); i++)
-227                 if (recvq[i] == '\n')
-228                         return true;
-229         return false;
-230 }
+246 {
+247         for (unsigned int i = 0; i < recvq.length(); i++)
+248                 if (recvq[i] == '\n')
+249                         return true;
+250         return false;
+251 }
 .fi
 .PP
 .SS "void userrec::ClearBuffer ()"
 .PP
 This function clears the entire buffer by setting it to an empty string. 
 .PP
-Definition at line 232 of file users.cpp.
+Definition at line 253 of file users.cpp.
 .PP
 References recvq.
 .PP
 Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
 .PP
 .nf
-233 {
-234         recvq = '';
-235 }
+254 {
+255         recvq = '';
+256 }
 .fi
 .PP
 .SS "void userrec::CloseSocket ()"
 .PP
 Shuts down and closes the user's socket. 
 .PP
-Definition at line 66 of file users.cpp.
+Definition at line 93 of file users.cpp.
+.PP
+Referenced by kill_link(), and kill_link_silent().
 .PP
 .nf
-67 {
-68         shutdown(this->fd,2);
-69         close(this->fd);
-70 }
+94 {
+95         shutdown(this->fd,2);
+96         close(this->fd);
+97 }
 .fi
 .PP
 .SS "void userrec::FlushWriteBuf ()"
@@ -356,31 +362,33 @@ Flushes as much of the user's buffer to the file descriptor as possible.
 .PP
 This function may not always flush the entire buffer, rather instead as much of it as it possibly can. If the send() call fails to send the entire buffer, the buffer position is advanced forwards and the rest of the data sent at the next call to this method.
 .PP
-Definition at line 270 of file users.cpp.
+Definition at line 295 of file users.cpp.
 .PP
 References connection::bytes_out, connection::cmds_out, sendq, and SetWriteError().
 .PP
+Referenced by kill_link(), and kill_link_silent().
+.PP
 .nf
-271 {
-272         if (sendq.length())
-273         {
-274                 char* tb = (char*)this->sendq.c_str();
-275                 int n_sent = write(this->fd,tb,this->sendq.length());
-276                 if (n_sent == -1)
-277                 {
-278                         this->SetWriteError(strerror(errno));
-279                 }
-280                 else
-281                 {
-282                         // advance the queue
-283                         tb += n_sent;
-284                         this->sendq = tb;
-285                         // update the user's stats counters
-286                         this->bytes_out += n_sent;
-287                         this->cmds_out++;
-288                 }
-289         }
-290 }
+296 {
+297         if (sendq.length())
+298         {
+299                 char* tb = (char*)this->sendq.c_str();
+300                 int n_sent = write(this->fd,tb,this->sendq.length());
+301                 if (n_sent == -1)
+302                 {
+303                         this->SetWriteError(strerror(errno));
+304                 }
+305                 else
+306                 {
+307                         // advance the queue
+308                         tb += n_sent;
+309                         this->sendq = tb;
+310                         // update the user's stats counters
+311                         this->bytes_out += n_sent;
+312                         this->cmds_out++;
+313                 }
+314         }
+315 }
 .fi
 .PP
 .SS "\fBstd::string\fP userrec::GetBuffer ()"
@@ -389,44 +397,44 @@ This method returns the first available string at the tail end of the buffer and
 .PP
 This means it is a one way operation in a similar way to strtok(), and multiple calls return multiple lines if they are available. The results of this function if there are no lines to be read are unknown, always use \fBBufferIsReady()\fP to check if it is ok to read the buffer before calling \fBGetBuffer()\fP.
 .PP
-Definition at line 237 of file users.cpp.
+Definition at line 258 of file users.cpp.
 .PP
 References recvq.
 .PP
 .nf
-238 {
-239         if (recvq == '')
-240                 return '';
-241         char* line = (char*)recvq.c_str();
-242         std::string ret = '';
-243         while ((*line != '\n') && (strlen(line)))
-244         {
-245                 ret = ret + *line;
-246                 line++;
-247         }
-248         if ((*line == '\n') || (*line == '\r'))
-249                 line++;
-250         recvq = line;
-251         return ret;
-252 }
+259 {
+260         if (recvq == '')
+261                 return '';
+262         char* line = (char*)recvq.c_str();
+263         std::string ret = '';
+264         while ((*line != '\n') && (strlen(line)))
+265         {
+266                 ret = ret + *line;
+267                 line++;
+268         }
+269         if ((*line == '\n') || (*line == '\r'))
+270                 line++;
+271         recvq = line;
+272         return ret;
+273 }
 .fi
 .PP
 .SS "char * userrec::GetFullHost ()\fC [virtual]\fP"
 .PP
 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. 
 .PP
-Definition at line 72 of file users.cpp.
+Definition at line 99 of file users.cpp.
 .PP
 References dhost, ident, and nick.
 .PP
 Referenced by add_channel().
 .PP
 .nf
-73 {
-74         static char result[MAXBUF];
-75         snprintf(result,MAXBUF,'%s!%s@%s',nick,ident,dhost);
-76         return result;
-77 }
+100 {
+101         static char result[MAXBUF];
+102         snprintf(result,MAXBUF,'%s!%s@%s',nick,ident,dhost);
+103         return result;
+104 }
 .fi
 .PP
 .SS "char * userrec::GetFullRealHost ()\fC [virtual]\fP"
@@ -435,200 +443,194 @@ Returns the full real host of the user This member function returns the hostname
 .PP
 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.
 .PP
-Definition at line 89 of file users.cpp.
+Definition at line 116 of file users.cpp.
 .PP
 References connection::host, ident, and nick.
 .PP
 .nf
-90 {
-91         static char fresult[MAXBUF];
-92         snprintf(fresult,MAXBUF,'%s!%s@%s',nick,ident,host);
-93         return fresult;
-94 }
+117 {
+118         static char fresult[MAXBUF];
+119         snprintf(fresult,MAXBUF,'%s!%s@%s',nick,ident,host);
+120         return fresult;
+121 }
 .fi
 .PP
 .SS "\fBInvitedList\fP * userrec::GetInviteList ()"
 .PP
 Returns the list of channels this user has been invited to but has not yet joined. 
 .PP
-Definition at line 110 of file users.cpp.
+Definition at line 136 of file users.cpp.
 .PP
 References invites.
 .PP
 .nf
-111 {
-112         return &invites;
-113 }
+137 {
+138         return &invites;
+139 }
 .fi
 .PP
 .SS "\fBstd::string\fP userrec::GetWriteError ()"
 .PP
 Returns the write error which last occured on this connection or an empty string if none occured. 
 .PP
-Definition at line 300 of file users.cpp.
+Definition at line 325 of file users.cpp.
 .PP
 References WriteError.
 .PP
 .nf
-301 {
-302         return this->WriteError;
-303 }
+326 {
+327         return this->WriteError;
+328 }
 .fi
 .PP
-.SS "bool userrec::HasPermission (char * command)"
+.SS "bool userrec::HasPermission (\fBstd::string\fP & command)"
 .PP
 Returns true or false for if a user can execute a privilaged oper command. 
 .PP
 This is done by looking up their oper type from \fBuserrec::oper\fP, then referencing this to their oper classes and checking the commands they can execute.
 .PP
-Definition at line 144 of file users.cpp.
+Definition at line 165 of file users.cpp.
 .PP
 References ServerConfig::config_f, ServerConfig::ConfValue(), and is_uline().
 .PP
 .nf
-145 {
-146         char TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-147         char* mycmd;
-148         char* savept;
-149         char* savept2;
-150         
-151         // users on u-lined servers can completely bypass
-152         // all permissions based checks.
-153         //
-154         // of course, if this is sent to a remote server and this
-155         // server is not ulined there, then that other server
-156         // silently drops the command.
-157         if (is_uline(this->server))
-158                 return true;
-159         
-160         // are they even an oper at all?
-161         if (strchr(this->modes,'o'))
-162         {
-163                 for (int j =0; j < Config->ConfValueEnum('type',&Config->config_f); j++)
-164                 {
-165                         Config->ConfValue('type','name',j,TypeName,&Config->config_f);
-166                         if (!strcmp(TypeName,this->oper))
-167                         {
-168                                 Config->ConfValue('type','classes',j,Classes,&Config->config_f);
-169                                 char* myclass = strtok_r(Classes,' ',&savept);
-170                                 while (myclass)
-171                                 {
-172                                         for (int k =0; k < Config->ConfValueEnum('class',&Config->config_f); k++)
-173                                         {
-174                                                 Config->ConfValue('class','name',k,ClassName,&Config->config_f);
-175                                                 if (!strcmp(ClassName,myclass))
-176                                                 {
-177                                                         Config->ConfValue('class','commands',k,CommandList,&Config->config_f);
-178                                                         mycmd = strtok_r(CommandList,' ',&savept2);
-179                                                         while (mycmd)
-180                                                         {
-181                                                                 if ((!strcasecmp(mycmd,command)) || (*mycmd == '*'))
-182                                                                 {
-183                                                                         return true;
-184                                                                 }
-185                                                                 mycmd = strtok_r(NULL,' ',&savept2);
-186                                                         }
-187                                                 }
-188                                         }
-189                                         myclass = strtok_r(NULL,' ',&savept);
-190                                 }
-191                         }
-192                 }
-193         }
-194         return false;
-195 }
+166 {
+167         char TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
+168         char* mycmd;
+169         char* savept;
+170         char* savept2;
+171         
+172         // users on u-lined servers can completely bypass
+173         // all permissions based checks.
+174         //
+175         // of course, if this is sent to a remote server and this
+176         // server is not ulined there, then that other server
+177         // silently drops the command.
+178         if (is_uline(this->server))
+179                 return true;
+180         
+181         // are they even an oper at all?
+182         if (strchr(this->modes,'o'))
+183         {
+184                 for (int j =0; j < Config->ConfValueEnum('type',&Config->config_f); j++)
+185                 {
+186                         Config->ConfValue('type','name',j,TypeName,&Config->config_f);
+187                         if (!strcmp(TypeName,this->oper))
+188                         {
+189                                 Config->ConfValue('type','classes',j,Classes,&Config->config_f);
+190                                 char* myclass = strtok_r(Classes,' ',&savept);
+191                                 while (myclass)
+192                                 {
+193                                         for (int k =0; k < Config->ConfValueEnum('class',&Config->config_f); k++)
+194                                         {
+195                                                 Config->ConfValue('class','name',k,ClassName,&Config->config_f);
+196                                                 if (!strcmp(ClassName,myclass))
+197                                                 {
+198                                                         Config->ConfValue('class','commands',k,CommandList,&Config->config_f);
+199                                                         mycmd = strtok_r(CommandList,' ',&savept2);
+200                                                         while (mycmd)
+201                                                         {
+202                                                                 if ((!strcasecmp(mycmd,command.c_str())) || (*mycmd == '*'))
+203                                                                 {
+204                                                                         return true;
+205                                                                 }
+206                                                                 mycmd = strtok_r(NULL,' ',&savept2);
+207                                                         }
+208                                                 }
+209                                         }
+210                                         myclass = strtok_r(NULL,' ',&savept);
+211                                 }
+212                         }
+213                 }
+214         }
+215         return false;
+216 }
 .fi
 .PP
-.SS "void userrec::InviteTo (char * channel)\fC [virtual]\fP"
+.SS "void userrec::InviteTo (\fBirc::string\fP & channel)\fC [virtual]\fP"
 .PP
 Adds a channel to a users invite list (invites them to a channel). 
 .PP
-Definition at line 115 of file users.cpp.
+Definition at line 141 of file users.cpp.
 .PP
 References Invited::channel, and invites.
 .PP
 .nf
-116 {
-117         Invited i;
-118         strlcpy(i.channel,channel,CHANMAX);
-119         invites.push_back(i);
-120 }
+142 {
+143         Invited i;
+144         i.channel = channel;
+145         invites.push_back(i);
+146 }
 .fi
 .PP
-.SS "bool userrec::IsInvited (char * channel)\fC [virtual]\fP"
+.SS "bool userrec::IsInvited (\fBirc::string\fP & channel)\fC [virtual]\fP"
 .PP
 Returns true if a user is invited to a channel. 
 .PP
-Definition at line 96 of file users.cpp.
+Definition at line 123 of file users.cpp.
 .PP
 References invites.
 .PP
 Referenced by add_channel().
 .PP
 .nf
-97 {
-98         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
-99         {
-100                 if (i->channel) {
-101                         if (!strcasecmp(i->channel,channel))
-102                         {
-103                                 return true;
-104                         }
-105                 }
-106         }
-107         return false;
-108 }
+124 {
+125         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+126         {
+127                 irc::string compare = i->channel;
+128                 if (compare == channel)
+129                 {
+130                         return true;
+131                 }
+132         }
+133         return false;
+134 }
 .fi
 .PP
 .SS "int userrec::ReadData (void * buffer, size_t size)"
 .PP
 Calls read() to read some data for this user using their fd. 
 .PP
-Definition at line 79 of file users.cpp.
+Definition at line 106 of file users.cpp.
 .PP
 .nf
-80 {
-81         if (this->fd > -1)
-82         {
-83                 return read(this->fd, buffer, size);
-84         }
-85         else return 0;
-86 }
+107 {
+108         if (this->fd > -1)
+109         {
+110                 return read(this->fd, buffer, size);
+111         }
+112         else return 0;
+113 }
 .fi
 .PP
-.SS "void userrec::RemoveInvite (char * channel)\fC [virtual]\fP"
+.SS "void userrec::RemoveInvite (\fBirc::string\fP & channel)\fC [virtual]\fP"
 .PP
 Removes a channel from a users invite list. 
 .PP
 This member function is called on successfully joining an invite only channel to which the user has previously been invited, to clear the invitation.
 .PP
-Definition at line 122 of file users.cpp.
+Definition at line 148 of file users.cpp.
 .PP
 References DEBUG, invites, and log().
 .PP
 Referenced by add_channel().
 .PP
 .nf
-123 {
-124         log(DEBUG,'Removing invites');
-125         if (channel)
-126         {
-127                 if (invites.size())
-128                 {
-129                         for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
-130                         {
-131                                 if (i->channel)
-132                                 {
-133                                         if (!strcasecmp(i->channel,channel))
-134                                         {
-135                                                 invites.erase(i);
-136                                                 return;
-137                                         }
-138                                 }
-139                         }
-140                 }
-141         }
-142 }
+149 {
+150         log(DEBUG,'Removing invites');
+151         if (invites.size())
+152         {
+153                 for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+154                 {
+155                         irc::string compare = i->channel;
+156                         if (compare == channel)
+157                         {
+158                                 invites.erase(i);
+159                                 return;
+160                         }
+161                 }
+162         }
+163 }
 .fi
 .PP
 .SS "void userrec::SetWriteError (\fBstd::string\fP error)"
@@ -637,19 +639,19 @@ Sets the write error for a connection.
 .PP
 This is done because the actual disconnect of a client may occur at an inopportune time such as half way through /LIST output. The WriteErrors of clients are checked at a more ideal time (in the mainloop) and errored clients purged.
 .PP
-Definition at line 292 of file users.cpp.
+Definition at line 317 of file users.cpp.
 .PP
 References DEBUG, log(), and WriteError.
 .PP
 Referenced by AddBuffer(), AddWriteBuf(), and FlushWriteBuf().
 .PP
 .nf
-293 {
-294         log(DEBUG,'Setting error string for %s to '%s'',this->nick,error.c_str());
-295         // don't try to set the error twice, its already set take the first string.
-296         if (this->WriteError == '')
-297                 this->WriteError = error;
-298 }
+318 {
+319         log(DEBUG,'Setting error string for %s to '%s'',this->nick,error.c_str());
+320         // don't try to set the error twice, its already set take the first string.
+321         if (this->WriteError == '')
+322                 this->WriteError = error;
+323 }
 .fi
 .PP
 .SH "Member Data Documentation"
@@ -660,12 +662,12 @@ The user's away message.
 .PP
 If this string is empty, the user is not marked as away.
 .PP
-Definition at line 158 of file users.h.
+Definition at line 162 of file users.h.
 .PP
 Referenced by userrec().
 .SS "std::vector<\fBucrec\fP> \fBuserrec::chans\fP"
 .PP
-Definition at line 149 of file users.h.
+Definition at line 153 of file users.h.
 .PP
 Referenced by add_channel(), del_channel(), kick_channel(), Server::PseudoToUser(), and userrec().
 .SS "char \fBuserrec::dhost\fP[160]"
@@ -674,51 +676,51 @@ The host displayed to non-opers (used for cloaking etc).
 .PP
 This usually matches the value of \fBuserrec::host\fP.
 .PP
-Definition at line 134 of file users.h.
+Definition at line 138 of file users.h.
 .PP
-Referenced by GetFullHost(), and userrec().
+Referenced by AddWhoWas(), GetFullHost(), and userrec().
 .SS "bool \fBuserrec::dns_done\fP"
 .PP
 True when \fBDNS\fP lookups are completed. 
 .PP
-Definition at line 181 of file users.h.
+Definition at line 185 of file users.h.
 .PP
-Referenced by userrec().
+Referenced by ConnectUser(), and userrec().
 .SS "int \fBuserrec::flood\fP"
 .PP
 Number of lines the user can place into the buffer (up to the global NetBufferSize bytes) before they are disconnected for excess flood. 
 .PP
-Definition at line 164 of file users.h.
+Definition at line 168 of file users.h.
 .PP
 Referenced by userrec().
 .SS "char \fBuserrec::fullname\fP[MAXGECOS+1]"
 .PP
 The users full name. 
 .PP
-Definition at line 138 of file users.h.
+Definition at line 142 of file users.h.
 .PP
-Referenced by userrec().
+Referenced by AddWhoWas(), and userrec().
 .SS "char \fBuserrec::ident\fP[IDENTMAX+2]"
 .PP
 The users ident reply. 
 .PP
 Two characters are added to the user-defined limit to compensate for the tilde etc.
 .PP
-Definition at line 129 of file users.h.
+Definition at line 133 of file users.h.
 .PP
-Referenced by GetFullHost(), GetFullRealHost(), Server::PseudoToUser(), userrec(), and Server::UserToPseudo().
+Referenced by AddWhoWas(), FullConnectUser(), GetFullHost(), GetFullRealHost(), kill_link(), kill_link_silent(), Server::PseudoToUser(), userrec(), and Server::UserToPseudo().
 .SS "\fBInvitedList\fP \fBuserrec::invites\fP\fC [private]\fP"
 .PP
 A list of channels the user has a pending invite to. 
 .PP
-Definition at line 117 of file users.h.
+Definition at line 121 of file users.h.
 .PP
 Referenced by GetInviteList(), InviteTo(), IsInvited(), RemoveInvite(), and userrec().
 .SS "int \fBuserrec::lines_in\fP"
 .PP
 Flood counters. 
 .PP
-Definition at line 206 of file users.h.
+Definition at line 210 of file users.h.
 .PP
 Referenced by userrec().
 .SS "char \fBuserrec::modes\fP[54]"
@@ -727,7 +729,7 @@ The user's mode string.
 .PP
 This may contain any of the following RFC characters: o, w, s, i Your module may define other mode characters as it sees fit. it is limited to length 54, as there can only be a maximum of 52 user modes (26 upper, 26 lower case) a null terminating char, and an optional + character.
 .PP
-Definition at line 147 of file users.h.
+Definition at line 151 of file users.h.
 .PP
 Referenced by add_channel(), and userrec().
 .SS "char \fBuserrec::nick\fP[NICKMAX]"
@@ -736,16 +738,16 @@ The users nickname.
 .PP
 An invalid nickname indicates an unregistered connection prior to the NICK command.
 .PP
-Definition at line 124 of file users.h.
+Definition at line 128 of file users.h.
 .PP
-Referenced by add_channel(), del_channel(), ConfigReader::DumpErrors(), GetFullHost(), GetFullRealHost(), kick_channel(), Server::PseudoToUser(), and userrec().
+Referenced by add_channel(), AddWhoWas(), del_channel(), ConfigReader::DumpErrors(), FullConnectUser(), GetFullHost(), GetFullRealHost(), kick_channel(), kill_link(), kill_link_silent(), Server::PseudoToUser(), and userrec().
 .SS "char \fBuserrec::oper\fP[NICKMAX]"
 .PP
 The oper type they logged in as, if they are an oper. 
 .PP
 This is used to check permissions in operclasses, so that we can say 'yay' or 'nay' to any commands they issue. The value of this is the value of a valid 'type name=' tag.
 .PP
-Definition at line 177 of file users.h.
+Definition at line 181 of file users.h.
 .PP
 Referenced by userrec().
 .SS "char \fBuserrec::password\fP[MAXBUF]"
@@ -754,31 +756,31 @@ Password specified by the user when they registered.
 .PP
 This is stored even if the <connect> block doesnt need a password, so that modules may check it.
 .PP
-Definition at line 191 of file users.h.
+Definition at line 195 of file users.h.
 .SS "unsigned int \fBuserrec::pingmax\fP"
 .PP
 Number of seconds between PINGs for this user (set from <connect:allow> tag. 
 .PP
-Definition at line 185 of file users.h.
+Definition at line 189 of file users.h.
 .SS "\fBstd::string\fP \fBuserrec::recvq\fP"
 .PP
 User's receive queue. 
 .PP
 Lines from the IRCd awaiting processing are stored here. Upgraded april 2005, old system a bit hairy.
 .PP
-Definition at line 197 of file users.h.
+Definition at line 201 of file users.h.
 .PP
 Referenced by AddBuffer(), BufferIsReady(), ClearBuffer(), GetBuffer(), and userrec().
 .SS "long \fBuserrec::recvqmax\fP"
 .PP
 Maximum size this user's recvq can become. 
 .PP
-Definition at line 220 of file users.h.
+Definition at line 224 of file users.h.
 .PP
 Referenced by AddBuffer().
 .SS "time_t \fBuserrec::reset_due\fP"
 .PP
-Definition at line 207 of file users.h.
+Definition at line 211 of file users.h.
 .PP
 Referenced by userrec().
 .SS "\fBstd::string\fP \fBuserrec::sendq\fP"
@@ -787,36 +789,36 @@ User's send queue.
 .PP
 Lines waiting to be sent are stored here until their buffer is flushed.
 .PP
-Definition at line 202 of file users.h.
+Definition at line 206 of file users.h.
 .PP
 Referenced by AddWriteBuf(), FlushWriteBuf(), and userrec().
 .SS "long \fBuserrec::sendqmax\fP"
 .PP
 Maximum size this user's sendq can become. 
 .PP
-Definition at line 216 of file users.h.
+Definition at line 220 of file users.h.
 .PP
 Referenced by AddWriteBuf().
 .SS "char* \fBuserrec::server\fP"
 .PP
 The server the user is connected to. 
 .PP
-Definition at line 153 of file users.h.
+Definition at line 157 of file users.h.
 .PP
-Referenced by kick_channel(), and userrec().
+Referenced by AddWhoWas(), kick_channel(), and userrec().
 .SS "long \fBuserrec::threshold\fP"
 .PP
-Definition at line 208 of file users.h.
+Definition at line 212 of file users.h.
 .SS "unsigned int \fBuserrec::timeout\fP"
 .PP
 Number of seconds this user is given to send USER/NICK If they do not send their details in this time limit they will be disconnected. 
 .PP
-Definition at line 170 of file users.h.
+Definition at line 174 of file users.h.
 .PP
 Referenced by userrec().
 .SS "\fBstd::string\fP \fBuserrec::WriteError\fP"
 .PP
-Definition at line 212 of file users.h.
+Definition at line 216 of file users.h.
 .PP
 Referenced by GetWriteError(), and SetWriteError().
 
index 05915282eb96e8b067fdf4b7e8a61bfcb5e8f911..af36eb556041bb78b86b4d18f49457deb9817786 100644 (file)
@@ -1,4 +1,4 @@
-.TH "users.cpp" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "users.cpp" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -24,23 +24,708 @@ users.cpp \-
 .br
 \fC#include 'helperfuncs.h'\fP
 .br
+\fC#include 'typedefs.h'\fP
+.br
+\fC#include 'socketengine.h'\fP
+.br
+\fC#include 'hashcomp.h'\fP
+.br
+\fC#include 'message.h'\fP
+.br
+\fC#include 'wildcard.h'\fP
+.br
+\fC#include 'xline.h'\fP
+.br
 
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "template<typename T> \fBstring\fP \fBConvToStr\fP (const T &in)"
+.br
+.ti -1c
+.RI "void \fBAddOper\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBDeleteOper\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBkill_link\fP (\fBuserrec\fP *user, const char *r)"
+.br
+.ti -1c
+.RI "void \fBkill_link_silent\fP (\fBuserrec\fP *user, const char *r)"
+.br
+.ti -1c
+.RI "void \fBAddWhoWas\fP (\fBuserrec\fP *u)"
+.br
+.ti -1c
+.RI "void \fBAddClient\fP (int socket, char *host, int port, bool iscached, char *ip)"
+.br
+.ti -1c
+.RI "void \fBFullConnectUser\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBConnectUser\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "\fBuserrec\fP * \fBReHashNick\fP (char *Old, char *New)"
+.br
+.ti -1c
+.RI "void \fBforce_nickchange\fP (\fBuserrec\fP *user, const char *newnick)"
+.br
+.in -1c
 .SS "Variables"
 
 .in +1c
 .ti -1c
-.RI "\fBServerConfig\fP * \fBConfig\fP"
+.RI "\fBInspIRCd\fP * \fBServerInstance\fP"
+.br
+.ti -1c
+.RI "int \fBWHOWAS_STALE\fP"
+.br
+.ti -1c
+.RI "int \fBWHOWAS_MAX\fP"
+.br
+.ti -1c
+.RI "std::vector< \fBModule\fP * > \fBmodules\fP"
+.br
+.ti -1c
+.RI "std::vector< \fBircd_module\fP * > \fBfactory\fP"
+.br
+.ti -1c
+.RI "std::vector< \fBInspSocket\fP * > \fBmodule_sockets\fP"
+.br
+.ti -1c
+.RI "int \fBMODCOUNT\fP"
+.br
+.ti -1c
+.RI "\fBInspSocket\fP * \fBsocket_ref\fP [65535]"
 .br
 .ti -1c
 .RI "time_t \fBTIME\fP"
 .br
+.ti -1c
+.RI "\fBuserrec\fP * \fBfd_ref_table\fP [65536]"
+.br
+.ti -1c
+.RI "\fBServerConfig\fP * \fBConfig\fP"
+.br
+.ti -1c
+.RI "\fBuser_hash\fP \fBclientlist\fP"
+.br
+.ti -1c
+.RI "\fBwhowas_hash\fP \fBwhowas\fP"
+.br
+.ti -1c
+.RI "std::vector< \fBuserrec\fP * > \fBlocal_users\fP"
+.br
+.ti -1c
+.RI "std::vector< \fBuserrec\fP * > \fBall_opers\fP"
+.br
 .in -1c
+.SH "Function Documentation"
+.PP 
+.SS "void AddClient (int socket, char * host, int port, bool iscached, char * ip)"
+.PP
+Definition at line 524 of file users.cpp.
+.PP
+References SocketEngine::AddFd(), CC_ALLOW, ucrec::channel, ServerConfig::Classes, clientlist, ConvToStr(), DEBUG, ServerConfig::dns_timeout, FindServerNamePtr(), kill_link(), local_users, log(), matches_exception(), matches_zline(), InspIRCd::SE, ServerConfig::ServerName, ServerConfig::SoftLimit, TIME, ucrec::uc_modes, and X_ESTAB_CLIENT.
+.PP
+.nf
+525 {
+526         string tempnick;
+527         char tn2[MAXBUF];
+528         user_hash::iterator iter;
+529 
+530         tempnick = ConvToStr(socket) + '-unknown';
+531         sprintf(tn2,'%lu-unknown',(unsigned long)socket);
+532 
+533         iter = clientlist.find(tempnick);
+534 
+535         // fix by brain.
+536         // as these nicknames are 'RFC impossible', we can be sure nobody is going to be
+537         // using one as a registered connection. As theyre per fd, we can also safely assume
+538         // that we wont have collisions. Therefore, if the nick exists in the list, its only
+539         // used by a dead socket, erase the iterator so that the new client may reclaim it.
+540         // this was probably the cause of 'server ignores me when i hammer it with reconnects'
+541         // issue in earlier alphas/betas
+542         if (iter != clientlist.end())
+543         {
+544                 userrec* goner = iter->second;
+545                 delete goner;
+546                 clientlist.erase(iter);
+547         }
+548 
+549         /*
+550          * It is OK to access the value here this way since we know
+551          * it exists, we just created it above.
+552          *
+553          * At NO other time should you access a value in a map or a
+554          * hash_map this way.
+555          */
+556         clientlist[tempnick] = new userrec();
+557 
+558         log(DEBUG,'AddClient: %lu %s %d %s',(unsigned long)socket,host,port,ip);
+559 
+560         clientlist[tempnick]->fd = socket;
+561         strlcpy(clientlist[tempnick]->nick, tn2,NICKMAX);
+562         strlcpy(clientlist[tempnick]->host, host,160);
+563         strlcpy(clientlist[tempnick]->dhost, host,160);
+564         clientlist[tempnick]->server = (char*)FindServerNamePtr(Config->ServerName);
+565         strlcpy(clientlist[tempnick]->ident, 'unknown',IDENTMAX);
+566         clientlist[tempnick]->registered = 0;
+567         clientlist[tempnick]->signon = TIME + Config->dns_timeout;
+568         clientlist[tempnick]->lastping = 1;
+569         clientlist[tempnick]->port = port;
+570         strlcpy(clientlist[tempnick]->ip,ip,16);
+571 
+572         // set the registration timeout for this user
+573         unsigned long class_regtimeout = 90;
+574         int class_flood = 0;
+575         long class_threshold = 5;
+576         long class_sqmax = 262144;      // 256kb
+577         long class_rqmax = 4096;        // 4k
+578 
+579         for (ClassVector::iterator i = Config->Classes.begin(); i != Config->Classes.end(); i++)
+580         {
+581                 if (match(clientlist[tempnick]->host,i->host) && (i->type == CC_ALLOW))
+582                 {
+583                         class_regtimeout = (unsigned long)i->registration_timeout;
+584                         class_flood = i->flood;
+585                         clientlist[tempnick]->pingmax = i->pingtime;
+586                         class_threshold = i->threshold;
+587                         class_sqmax = i->sendqmax;
+588                         class_rqmax = i->recvqmax;
+589                         break;
+590                 }
+591         }
+592 
+593         clientlist[tempnick]->nping = TIME+clientlist[tempnick]->pingmax + Config->dns_timeout;
+594         clientlist[tempnick]->timeout = TIME+class_regtimeout;
+595         clientlist[tempnick]->flood = class_flood;
+596         clientlist[tempnick]->threshold = class_threshold;
+597         clientlist[tempnick]->sendqmax = class_sqmax;
+598         clientlist[tempnick]->recvqmax = class_rqmax;
+599 
+600         ucrec a;
+601         a.channel = NULL;
+602         a.uc_modes = 0;
+603         for (int i = 0; i < MAXCHANS; i++)
+604                 clientlist[tempnick]->chans.push_back(a);
+605 
+606         if (clientlist.size() > Config->SoftLimit)
+607         {
+608                 kill_link(clientlist[tempnick],'No more connections allowed');
+609                 return;
+610         }
+611 
+612         if (clientlist.size() >= MAXCLIENTS)
+613         {
+614                 kill_link(clientlist[tempnick],'No more connections allowed');
+615                 return;
+616         }
+617 
+618         // this is done as a safety check to keep the file descriptors within range of fd_ref_table.
+619         // its a pretty big but for the moment valid assumption:
+620         // file descriptors are handed out starting at 0, and are recycled as theyre freed.
+621         // therefore if there is ever an fd over 65535, 65536 clients must be connected to the
+622         // irc server at once (or the irc server otherwise initiating this many connections, files etc)
+623         // which for the time being is a physical impossibility (even the largest networks dont have more
+624         // than about 10,000 users on ONE server!)
+625         if ((unsigned)socket > 65534)
+626         {
+627                 kill_link(clientlist[tempnick],'Server is full');
+628                 return;
+629         }
+630         char* e = matches_exception(ip);
+631         if (!e)
+632         {
+633                 char* r = matches_zline(ip);
+634                 if (r)
+635                 {
+636                         char reason[MAXBUF];
+637                         snprintf(reason,MAXBUF,'Z-Lined: %s',r);
+638                         kill_link(clientlist[tempnick],reason);
+639                         return;
+640                 }
+641         }
+642         fd_ref_table[socket] = clientlist[tempnick];
+643         local_users.push_back(clientlist[tempnick]);
+644         ServerInstance->SE->AddFd(socket,true,X_ESTAB_CLIENT);
+645 }
+.fi
+.PP
+.SS "void AddOper (\fBuserrec\fP * user)"
+.PP
+Definition at line 330 of file users.cpp.
+.PP
+References all_opers, DEBUG, and log().
+.PP
+.nf
+331 {
+332         log(DEBUG,'Oper added to optimization list');
+333         all_opers.push_back(user);
+334 }
+.fi
+.PP
+.SS "void AddWhoWas (\fBuserrec\fP * u)"
+.PP
+Definition at line 471 of file users.cpp.
+.PP
+References DEBUG, WhoWasUser::dhost, userrec::dhost, WhoWasUser::fullname, userrec::fullname, WhoWasUser::host, connection::host, WhoWasUser::ident, userrec::ident, log(), userrec::nick, WhoWasUser::nick, WhoWasUser::server, userrec::server, WhoWasUser::signon, connection::signon, TIME, whowas, WHOWAS_MAX, and WHOWAS_STALE.
+.PP
+Referenced by kill_link().
+.PP
+.nf
+472 {
+473         whowas_hash::iterator iter = whowas.find(u->nick);
+474         WhoWasUser *a = new WhoWasUser();
+475         strlcpy(a->nick,u->nick,NICKMAX);
+476         strlcpy(a->ident,u->ident,IDENTMAX);
+477         strlcpy(a->dhost,u->dhost,160);
+478         strlcpy(a->host,u->host,160);
+479         strlcpy(a->fullname,u->fullname,MAXGECOS);
+480         strlcpy(a->server,u->server,256);
+481         a->signon = u->signon;
+482 
+483         /* MAX_WHOWAS:   max number of /WHOWAS items
+484          * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and
+485          *               can be replaced by a newer one
+486          */
+487 
+488         if (iter == whowas.end())
+489         {
+490                 if (whowas.size() >= (unsigned)WHOWAS_MAX)
+491                 {
+492                         for (whowas_hash::iterator i = whowas.begin(); i != whowas.end(); i++)
+493                         {
+494                                 // 3600 seconds in an hour ;)
+495                                 if ((i->second->signon)<(TIME-(WHOWAS_STALE*3600)))
+496                                 {
+497                                         // delete the old one
+498                                         if (i->second) delete i->second;
+499                                         // replace with new one
+500                                         i->second = a;
+501                                         log(DEBUG,'added WHOWAS entry, purged an old record');
+502                                         return;
+503                                 }
+504                         }
+505                         // no space left and user doesnt exist. Don't leave ram in use!
+506                         log(DEBUG,'Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram');
+507                         delete a;
+508                 }
+509                 else
+510                 {
+511                         log(DEBUG,'added fresh WHOWAS entry');
+512                         whowas[a->nick] = a;
+513                 }
+514         }
+515         else
+516         {
+517                 log(DEBUG,'updated WHOWAS entry');
+518                 if (iter->second) delete iter->second;
+519                 iter->second = a;
+520         }
+521 }
+.fi
+.PP
+.SS "void ConnectUser (\fBuserrec\fP * user)"
+.PP
+Definition at line 731 of file users.cpp.
+.PP
+References userrec::dns_done, FullConnectUser(), and connection::registered.
+.PP
+.nf
+732 {
+733         // dns is already done, things are fast. no need to wait for dns to complete just pass them straight on
+734         if ((user->dns_done) && (user->registered >= 3) && (AllModulesReportReady(user)))
+735         {
+736                 FullConnectUser(user);
+737         }
+738 }
+.fi
+.PP
+.SS "template<typename T> \fBstring\fP ConvToStr (const T & in)\fC [inline]\fP"
+.PP
+Definition at line 56 of file users.cpp.
+.PP
+Referenced by AddClient().
+.PP
+.nf
+57 {
+58         stringstream tmp;
+59         if (!(tmp << in)) return string();
+60         return tmp.str();
+61 }
+.fi
+.PP
+.SS "void DeleteOper (\fBuserrec\fP * user)"
+.PP
+Definition at line 336 of file users.cpp.
+.PP
+References all_opers, DEBUG, and log().
+.PP
+.nf
+337 {
+338         for (std::vector<userrec*>::iterator a = all_opers.begin(); a < all_opers.end(); a++)
+339         {
+340                 if (*a == user)
+341                 {
+342                         log(DEBUG,'Oper removed from optimization list');
+343                         all_opers.erase(a);
+344                         return;
+345                 }
+346         }
+347 }
+.fi
+.PP
+.SS "void force_nickchange (\fBuserrec\fP * user, const char * newnick)"
+.PP
+Definition at line 769 of file users.cpp.
+.PP
+References FOREACH_RESULT, kill_link(), matches_qline(), InspIRCd::Parser, connection::registered, InspIRCd::stats, and serverstats::statsCollisions.
+.PP
+Referenced by Server::ChangeUserNick().
+.PP
+.nf
+770 {
+771         char nick[MAXBUF];
+772         int MOD_RESULT = 0;
+773 
+774         strcpy(nick,'');
+775 
+776         FOREACH_RESULT(OnUserPreNick(user,newnick));
+777         if (MOD_RESULT) {
+778                 ServerInstance->stats->statsCollisions++;
+779                 kill_link(user,'Nickname collision');
+780                 return;
+781         }
+782         if (matches_qline(newnick))
+783         {
+784                 ServerInstance->stats->statsCollisions++;
+785                 kill_link(user,'Nickname collision');
+786                 return;
+787         }
+788 
+789         if (user)
+790         {
+791                 if (newnick)
+792                 {
+793                         strncpy(nick,newnick,MAXBUF);
+794                 }
+795                 if (user->registered == 7)
+796                 {
+797                         char* pars[1];
+798                         pars[0] = nick;
+799                         std::string cmd = 'NICK';
+800                         ServerInstance->Parser->CallHandler(cmd,pars,1,user);
+801                 }
+802         }
+803 }
+.fi
+.PP
+.SS "void FullConnectUser (\fBuserrec\fP * user)"
+.PP
+Definition at line 647 of file users.cpp.
+.PP
+References DEBUG, connection::fd, FOREACH_MOD, connection::haspassed, connection::host, userrec::ident, connection::idle_lastmsg, connection::ip, kill_link(), kill_link_silent(), log(), matches_exception(), matches_gline(), matches_kline(), ServerConfig::Network, userrec::nick, connection::port, connection::registered, ServerConfig::ServerName, InspIRCd::stats, serverstats::statsConnects, TIME, WriteOpers(), and WriteServ().
+.PP
+Referenced by ConnectUser().
+.PP
+.nf
+648 {
+649         ServerInstance->stats->statsConnects++;
+650         user->idle_lastmsg = TIME;
+651         log(DEBUG,'ConnectUser: %s',user->nick);
+652 
+653         if ((strcmp(Passwd(user),'')) && (!user->haspassed))
+654         {
+655                 kill_link(user,'Invalid password');
+656                 return;
+657         }
+658         if (IsDenied(user))
+659         {
+660                 kill_link(user,'Unauthorised connection');
+661                 return;
+662         }
+663 
+664         char match_against[MAXBUF];
+665         snprintf(match_against,MAXBUF,'%s@%s',user->ident,user->host);
+666         char* e = matches_exception(match_against);
+667         if (!e)
+668         {
+669                 char* r = matches_gline(match_against);
+670                 if (r)
+671                 {
+672                         char reason[MAXBUF];
+673                         snprintf(reason,MAXBUF,'G-Lined: %s',r);
+674                         kill_link_silent(user,reason);
+675                         return;
+676                 }
+677                 r = matches_kline(user->host);
+678                 if (r)
+679                 {
+680                         char reason[MAXBUF];
+681                         snprintf(reason,MAXBUF,'K-Lined: %s',r);
+682                         kill_link_silent(user,reason);
+683                         return;
+684                 }
+685         }
+686 
+687 
+688         WriteServ(user->fd,'NOTICE Auth :Welcome to \002%s\002!',Config->Network);
+689         WriteServ(user->fd,'001 %s :Welcome to the %s IRC Network %s!%s@%s',user->nick,Config->Network,user->nick,user->ident,user->host);
+690         WriteServ(user->fd,'002 %s :Your host is %s, running version %s',user->nick,Config->ServerName,VERSION);
+691         WriteServ(user->fd,'003 %s :This server was created %s %s',user->nick,__TIME__,__DATE__);
+692         WriteServ(user->fd,'004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN',user->nick,Config->ServerName,VERSION);
+693         // the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...
+694         std::stringstream v;
+695         v << 'WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS=' << MAXCHANS;
+696         v << ' MAXBANS=60 NICKLEN=' << NICKMAX;
+697         v << ' TOPICLEN=' << MAXTOPIC << ' KICKLEN=' << MAXKICK << ' MAXTARGETS=20 AWAYLEN=' << MAXAWAY << ' CHANMODES=ohvb,k,l,psmnti NETWORK=';
+698         v << Config->Network;
+699         std::string data005 = v.str();
+700         FOREACH_MOD On005Numeric(data005);
+701         // anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...
+702         // so i'd better split it :)
+703         std::stringstream out(data005);
+704         std::string token = '';
+705         std::string line5 = '';
+706         int token_counter = 0;
+707         while (!out.eof())
+708         {
+709                 out >> token;
+710                 line5 = line5 + token + ' ';
+711                 token_counter++;
+712                 if ((token_counter >= 13) || (out.eof() == true))
+713                 {
+714                         WriteServ(user->fd,'005 %s %s:are supported by this server',user->nick,line5.c_str());
+715                         line5 = '';
+716                         token_counter = 0;
+717                 }
+718         }
+719         ShowMOTD(user);
+720 
+721         // fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out
+722         // onto the network and produce 'fake direction'
+723         FOREACH_MOD OnUserConnect(user);
+724         FOREACH_MOD OnGlobalConnect(user);
+725         user->registered = 7;
+726         WriteOpers('*** Client connecting on port %lu: %s!%s@%s [%s]',(unsigned long)user->port,user->nick,user->ident,user->host,user->ip);
+727 }
+.fi
+.PP
+.SS "void kill_link (\fBuserrec\fP * user, const char * r)"
+.PP
+Definition at line 349 of file users.cpp.
+.PP
+References AddWhoWas(), clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), WriteCommonExcept(), and WriteOpers().
+.PP
+Referenced by AddClient(), force_nickchange(), FullConnectUser(), Server::PseudoToUser(), and Server::QuitUser().
+.PP
+.nf
+350 {
+351         user_hash::iterator iter = clientlist.find(user->nick);
+352 
+353         char reason[MAXBUF];
+354 
+355         strncpy(reason,r,MAXBUF);
+356 
+357         if (strlen(reason)>MAXQUIT)
+358         {
+359                 reason[MAXQUIT-1] = '\0';
+360         }
+361 
+362         log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
+363         Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
+364         log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
+365 
+366         if (user->registered == 7) {
+367                 FOREACH_MOD OnUserQuit(user,reason);
+368                 WriteCommonExcept(user,'QUIT :%s',reason);
+369         }
+370 
+371         user->FlushWriteBuf();
+372 
+373         FOREACH_MOD OnUserDisconnect(user);
+374 
+375         if (user->fd > -1)
+376         {
+377                 if (Config->GetIOHook(user->port))
+378                 {
+379                         Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
+380                 }
+381                 ServerInstance->SE->DelFd(user->fd);
+382                 user->CloseSocket();
+383         }
+384 
+385         // this must come before the WriteOpers so that it doesnt try to fill their buffer with anything
+386         // if they were an oper with +s.
+387         if (user->registered == 7) {
+388                 purge_empty_chans(user);
+389                 // fix by brain: only show local quits because we only show local connects (it just makes SENSE)
+390                 if (user->fd > -1)
+391                         WriteOpers('*** Client exiting: %s!%s@%s [%s]',user->nick,user->ident,user->host,reason);
+392                 AddWhoWas(user);
+393         }
+394 
+395         if (iter != clientlist.end())
+396         {
+397                 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
+398                 if (user->fd > -1)
+399                 {
+400                         fd_ref_table[user->fd] = NULL;
+401                         if (find(local_users.begin(),local_users.end(),user) != local_users.end())
+402                         {
+403                                 local_users.erase(find(local_users.begin(),local_users.end(),user));
+404                                 log(DEBUG,'Delete local user');
+405                         }
+406                 }
+407                 clientlist.erase(iter);
+408         }
+409         delete user;
+410 }
+.fi
+.PP
+.SS "void kill_link_silent (\fBuserrec\fP * user, const char * r)"
+.PP
+Definition at line 412 of file users.cpp.
+.PP
+References clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), and WriteCommonExcept().
+.PP
+Referenced by FullConnectUser().
+.PP
+.nf
+413 {
+414         user_hash::iterator iter = clientlist.find(user->nick);
+415 
+416         char reason[MAXBUF];
+417 
+418         strncpy(reason,r,MAXBUF);
+419 
+420         if (strlen(reason)>MAXQUIT)
+421         {
+422                 reason[MAXQUIT-1] = '\0';
+423         }
+424 
+425         log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
+426         Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
+427         log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
+428 
+429         user->FlushWriteBuf();
+430 
+431         if (user->registered == 7) {
+432                 FOREACH_MOD OnUserQuit(user,reason);
+433                 WriteCommonExcept(user,'QUIT :%s',reason);
+434         }
+435 
+436         FOREACH_MOD OnUserDisconnect(user);
+437 
+438         if (user->fd > -1)
+439         {
+440                 if (Config->GetIOHook(user->port))
+441                 {
+442                         Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
+443                 }
+444                 ServerInstance->SE->DelFd(user->fd);
+445                 user->CloseSocket();
+446         }
+447 
+448         if (user->registered == 7) {
+449                 purge_empty_chans(user);
+450         }
+451 
+452         if (iter != clientlist.end())
+453         {
+454                 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
+455                 if (user->fd > -1)
+456                 {
+457                         fd_ref_table[user->fd] = NULL;
+458                         if (find(local_users.begin(),local_users.end(),user) != local_users.end())
+459                         {
+460                                 log(DEBUG,'Delete local user');
+461                                 local_users.erase(find(local_users.begin(),local_users.end(),user));
+462                         }
+463                 }
+464                 clientlist.erase(iter);
+465         }
+466         delete user;
+467 }
+.fi
+.PP
+.SS "\fBuserrec\fP* ReHashNick (char * Old, char * New)"
+.PP
+Definition at line 743 of file users.cpp.
+.PP
+References clientlist, DEBUG, and log().
+.PP
+.nf
+744 {
+745         //user_hash::iterator newnick;
+746         user_hash::iterator oldnick = clientlist.find(Old);
+747 
+748         log(DEBUG,'ReHashNick: %s %s',Old,New);
+749 
+750         if (!strcasecmp(Old,New))
+751         {
+752                 log(DEBUG,'old nick is new nick, skipping');
+753                 return oldnick->second;
+754         }
+755 
+756         if (oldnick == clientlist.end()) return NULL; /* doesnt exist */
+757 
+758         log(DEBUG,'ReHashNick: Found hashed nick %s',Old);
+759 
+760         userrec* olduser = oldnick->second;
+761         clientlist[New] = olduser;
+762         clientlist.erase(oldnick);
+763 
+764         log(DEBUG,'ReHashNick: Nick rehashed as %s',New);
+765 
+766         return clientlist[New];
+767 }
+.fi
+.PP
 .SH "Variable Documentation"
 .PP 
+.SS "std::vector<\fBuserrec\fP*> \fBall_opers\fP"
+.PP
+Definition at line 54 of file users.cpp.
+.PP
+Referenced by AddOper(), and DeleteOper().
+.SS "\fBuser_hash\fP \fBclientlist\fP"
+.PP
 .SS "\fBServerConfig\fP* \fBConfig\fP"
 .PP
+.SS "std::vector<\fBircd_module\fP*> factory"
+.PP
+.SS "\fBuserrec\fP* \fBfd_ref_table\fP[65536]"
+.PP
+.SS "std::vector<\fBuserrec\fP*> \fBlocal_users\fP"
+.PP
+Definition at line 52 of file users.cpp.
+.PP
+Referenced by AddClient(), kill_link(), and kill_link_silent().
+.SS "int \fBMODCOUNT\fP"
+.PP
+.SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP"
+.PP
+.SS "std::vector<\fBModule\fP*> modules"
+.PP
+.SS "\fBInspIRCd\fP* \fBServerInstance\fP"
+.PP
+.SS "\fBInspSocket\fP* \fBsocket_ref\fP[65535]"
+.PP
+Definition at line 43 of file socket.cpp.
 .SS "time_t \fBTIME\fP"
 .PP
+.SS "\fBwhowas_hash\fP \fBwhowas\fP"
+.PP
+Referenced by AddWhoWas().
+.SS "int \fBWHOWAS_MAX\fP"
+.PP
+.SS "int \fBWHOWAS_STALE\fP"
+.PP
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index 895149d914271e5a88f829b9669bdd4caea5885a..a1be9c4630be64ad83c47e14f26d887cd8b6147f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "users.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "users.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -16,6 +16,8 @@ users.h \-
 .br
 \fC#include <string>\fP
 .br
+\fC#include 'hashcomp.h'\fP
+.br
 
 .SS "Classes"
 
@@ -71,40 +73,642 @@ users.h \-
 .br
 .RI "\fIHolds a complete list of all allow and deny tags from the configuration file (connection classes). \fP"
 .in -1c
+.SS "Functions"
+
+.in +1c
+.ti -1c
+.RI "template<typename T> \fBstring\fP \fBConvToStr\fP (const T &in)"
+.br
+.ti -1c
+.RI "void \fBAddOper\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBDeleteOper\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBkill_link\fP (\fBuserrec\fP *user, const char *r)"
+.br
+.ti -1c
+.RI "void \fBkill_link_silent\fP (\fBuserrec\fP *user, const char *r)"
+.br
+.ti -1c
+.RI "void \fBAddWhoWas\fP (\fBuserrec\fP *u)"
+.br
+.ti -1c
+.RI "void \fBAddClient\fP (int socket, char *host, int port, bool iscached, char *ip)"
+.br
+.ti -1c
+.RI "void \fBFullConnectUser\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "void \fBConnectUser\fP (\fBuserrec\fP *user)"
+.br
+.ti -1c
+.RI "\fBuserrec\fP * \fBReHashNick\fP (char *Old, char *New)"
+.br
+.ti -1c
+.RI "void \fBforce_nickchange\fP (\fBuserrec\fP *user, const char *newnick)"
+.br
+.in -1c
 .SH "Define Documentation"
 .PP 
 .SS "#define CC_ALLOW   0"
 .PP
-Definition at line 34 of file users.h.
+Definition at line 36 of file users.h.
+.PP
+Referenced by AddClient().
 .SS "#define CC_DENY   1"
 .PP
-Definition at line 35 of file users.h.
+Definition at line 37 of file users.h.
 .SS "#define STATUS_HOP   2"
 .PP
-Definition at line 30 of file users.h.
+Definition at line 32 of file users.h.
 .PP
 Referenced by kick_channel().
 .SS "#define STATUS_NORMAL   0"
 .PP
-Definition at line 32 of file users.h.
+Definition at line 34 of file users.h.
 .SS "#define STATUS_OP   4"
 .PP
-Definition at line 29 of file users.h.
+Definition at line 31 of file users.h.
 .SS "#define STATUS_VOICE   1"
 .PP
-Definition at line 31 of file users.h.
+Definition at line 33 of file users.h.
 .SH "Typedef Documentation"
 .PP 
 .SS "typedef std::vector<\fBConnectClass\fP> \fBClassVector\fP"
 .PP
 Holds a complete list of all allow and deny tags from the configuration file (connection classes). 
 .PP
-Definition at line 103 of file users.h.
+Definition at line 107 of file users.h.
 .SS "typedef std::vector<\fBInvited\fP> \fBInvitedList\fP"
 .PP
 Holds a complete list of all channels to which a user has been invited and has not yet joined. 
 .PP
-Definition at line 97 of file users.h.
+Definition at line 101 of file users.h.
+.SH "Function Documentation"
+.PP 
+.SS "void AddClient (int socket, char * host, int port, bool iscached, char * ip)"
+.PP
+Definition at line 524 of file users.cpp.
+.PP
+References SocketEngine::AddFd(), CC_ALLOW, ucrec::channel, ServerConfig::Classes, clientlist, ConvToStr(), DEBUG, ServerConfig::dns_timeout, FindServerNamePtr(), kill_link(), local_users, log(), matches_exception(), matches_zline(), InspIRCd::SE, ServerConfig::ServerName, ServerConfig::SoftLimit, TIME, ucrec::uc_modes, and X_ESTAB_CLIENT.
+.PP
+.nf
+525 {
+526         string tempnick;
+527         char tn2[MAXBUF];
+528         user_hash::iterator iter;
+529 
+530         tempnick = ConvToStr(socket) + '-unknown';
+531         sprintf(tn2,'%lu-unknown',(unsigned long)socket);
+532 
+533         iter = clientlist.find(tempnick);
+534 
+535         // fix by brain.
+536         // as these nicknames are 'RFC impossible', we can be sure nobody is going to be
+537         // using one as a registered connection. As theyre per fd, we can also safely assume
+538         // that we wont have collisions. Therefore, if the nick exists in the list, its only
+539         // used by a dead socket, erase the iterator so that the new client may reclaim it.
+540         // this was probably the cause of 'server ignores me when i hammer it with reconnects'
+541         // issue in earlier alphas/betas
+542         if (iter != clientlist.end())
+543         {
+544                 userrec* goner = iter->second;
+545                 delete goner;
+546                 clientlist.erase(iter);
+547         }
+548 
+549         /*
+550          * It is OK to access the value here this way since we know
+551          * it exists, we just created it above.
+552          *
+553          * At NO other time should you access a value in a map or a
+554          * hash_map this way.
+555          */
+556         clientlist[tempnick] = new userrec();
+557 
+558         log(DEBUG,'AddClient: %lu %s %d %s',(unsigned long)socket,host,port,ip);
+559 
+560         clientlist[tempnick]->fd = socket;
+561         strlcpy(clientlist[tempnick]->nick, tn2,NICKMAX);
+562         strlcpy(clientlist[tempnick]->host, host,160);
+563         strlcpy(clientlist[tempnick]->dhost, host,160);
+564         clientlist[tempnick]->server = (char*)FindServerNamePtr(Config->ServerName);
+565         strlcpy(clientlist[tempnick]->ident, 'unknown',IDENTMAX);
+566         clientlist[tempnick]->registered = 0;
+567         clientlist[tempnick]->signon = TIME + Config->dns_timeout;
+568         clientlist[tempnick]->lastping = 1;
+569         clientlist[tempnick]->port = port;
+570         strlcpy(clientlist[tempnick]->ip,ip,16);
+571 
+572         // set the registration timeout for this user
+573         unsigned long class_regtimeout = 90;
+574         int class_flood = 0;
+575         long class_threshold = 5;
+576         long class_sqmax = 262144;      // 256kb
+577         long class_rqmax = 4096;        // 4k
+578 
+579         for (ClassVector::iterator i = Config->Classes.begin(); i != Config->Classes.end(); i++)
+580         {
+581                 if (match(clientlist[tempnick]->host,i->host) && (i->type == CC_ALLOW))
+582                 {
+583                         class_regtimeout = (unsigned long)i->registration_timeout;
+584                         class_flood = i->flood;
+585                         clientlist[tempnick]->pingmax = i->pingtime;
+586                         class_threshold = i->threshold;
+587                         class_sqmax = i->sendqmax;
+588                         class_rqmax = i->recvqmax;
+589                         break;
+590                 }
+591         }
+592 
+593         clientlist[tempnick]->nping = TIME+clientlist[tempnick]->pingmax + Config->dns_timeout;
+594         clientlist[tempnick]->timeout = TIME+class_regtimeout;
+595         clientlist[tempnick]->flood = class_flood;
+596         clientlist[tempnick]->threshold = class_threshold;
+597         clientlist[tempnick]->sendqmax = class_sqmax;
+598         clientlist[tempnick]->recvqmax = class_rqmax;
+599 
+600         ucrec a;
+601         a.channel = NULL;
+602         a.uc_modes = 0;
+603         for (int i = 0; i < MAXCHANS; i++)
+604                 clientlist[tempnick]->chans.push_back(a);
+605 
+606         if (clientlist.size() > Config->SoftLimit)
+607         {
+608                 kill_link(clientlist[tempnick],'No more connections allowed');
+609                 return;
+610         }
+611 
+612         if (clientlist.size() >= MAXCLIENTS)
+613         {
+614                 kill_link(clientlist[tempnick],'No more connections allowed');
+615                 return;
+616         }
+617 
+618         // this is done as a safety check to keep the file descriptors within range of fd_ref_table.
+619         // its a pretty big but for the moment valid assumption:
+620         // file descriptors are handed out starting at 0, and are recycled as theyre freed.
+621         // therefore if there is ever an fd over 65535, 65536 clients must be connected to the
+622         // irc server at once (or the irc server otherwise initiating this many connections, files etc)
+623         // which for the time being is a physical impossibility (even the largest networks dont have more
+624         // than about 10,000 users on ONE server!)
+625         if ((unsigned)socket > 65534)
+626         {
+627                 kill_link(clientlist[tempnick],'Server is full');
+628                 return;
+629         }
+630         char* e = matches_exception(ip);
+631         if (!e)
+632         {
+633                 char* r = matches_zline(ip);
+634                 if (r)
+635                 {
+636                         char reason[MAXBUF];
+637                         snprintf(reason,MAXBUF,'Z-Lined: %s',r);
+638                         kill_link(clientlist[tempnick],reason);
+639                         return;
+640                 }
+641         }
+642         fd_ref_table[socket] = clientlist[tempnick];
+643         local_users.push_back(clientlist[tempnick]);
+644         ServerInstance->SE->AddFd(socket,true,X_ESTAB_CLIENT);
+645 }
+.fi
+.PP
+.SS "void AddOper (\fBuserrec\fP * user)"
+.PP
+Definition at line 330 of file users.cpp.
+.PP
+References all_opers, DEBUG, and log().
+.PP
+.nf
+331 {
+332         log(DEBUG,'Oper added to optimization list');
+333         all_opers.push_back(user);
+334 }
+.fi
+.PP
+.SS "void AddWhoWas (\fBuserrec\fP * u)"
+.PP
+Definition at line 471 of file users.cpp.
+.PP
+References DEBUG, userrec::dhost, WhoWasUser::dhost, userrec::fullname, WhoWasUser::fullname, connection::host, WhoWasUser::host, userrec::ident, WhoWasUser::ident, log(), WhoWasUser::nick, userrec::nick, userrec::server, WhoWasUser::server, connection::signon, WhoWasUser::signon, TIME, whowas, WHOWAS_MAX, and WHOWAS_STALE.
+.PP
+Referenced by kill_link().
+.PP
+.nf
+472 {
+473         whowas_hash::iterator iter = whowas.find(u->nick);
+474         WhoWasUser *a = new WhoWasUser();
+475         strlcpy(a->nick,u->nick,NICKMAX);
+476         strlcpy(a->ident,u->ident,IDENTMAX);
+477         strlcpy(a->dhost,u->dhost,160);
+478         strlcpy(a->host,u->host,160);
+479         strlcpy(a->fullname,u->fullname,MAXGECOS);
+480         strlcpy(a->server,u->server,256);
+481         a->signon = u->signon;
+482 
+483         /* MAX_WHOWAS:   max number of /WHOWAS items
+484          * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and
+485          *               can be replaced by a newer one
+486          */
+487 
+488         if (iter == whowas.end())
+489         {
+490                 if (whowas.size() >= (unsigned)WHOWAS_MAX)
+491                 {
+492                         for (whowas_hash::iterator i = whowas.begin(); i != whowas.end(); i++)
+493                         {
+494                                 // 3600 seconds in an hour ;)
+495                                 if ((i->second->signon)<(TIME-(WHOWAS_STALE*3600)))
+496                                 {
+497                                         // delete the old one
+498                                         if (i->second) delete i->second;
+499                                         // replace with new one
+500                                         i->second = a;
+501                                         log(DEBUG,'added WHOWAS entry, purged an old record');
+502                                         return;
+503                                 }
+504                         }
+505                         // no space left and user doesnt exist. Don't leave ram in use!
+506                         log(DEBUG,'Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram');
+507                         delete a;
+508                 }
+509                 else
+510                 {
+511                         log(DEBUG,'added fresh WHOWAS entry');
+512                         whowas[a->nick] = a;
+513                 }
+514         }
+515         else
+516         {
+517                 log(DEBUG,'updated WHOWAS entry');
+518                 if (iter->second) delete iter->second;
+519                 iter->second = a;
+520         }
+521 }
+.fi
+.PP
+.SS "void ConnectUser (\fBuserrec\fP * user)"
+.PP
+Definition at line 731 of file users.cpp.
+.PP
+References userrec::dns_done, FullConnectUser(), and connection::registered.
+.PP
+.nf
+732 {
+733         // dns is already done, things are fast. no need to wait for dns to complete just pass them straight on
+734         if ((user->dns_done) && (user->registered >= 3) && (AllModulesReportReady(user)))
+735         {
+736                 FullConnectUser(user);
+737         }
+738 }
+.fi
+.PP
+.SS "template<typename T> \fBstring\fP ConvToStr (const T & in)\fC [inline]\fP"
+.PP
+Definition at line 56 of file users.cpp.
+.PP
+Referenced by AddClient().
+.PP
+.nf
+57 {
+58         stringstream tmp;
+59         if (!(tmp << in)) return string();
+60         return tmp.str();
+61 }
+.fi
+.PP
+.SS "void DeleteOper (\fBuserrec\fP * user)"
+.PP
+Definition at line 336 of file users.cpp.
+.PP
+References all_opers, DEBUG, and log().
+.PP
+.nf
+337 {
+338         for (std::vector<userrec*>::iterator a = all_opers.begin(); a < all_opers.end(); a++)
+339         {
+340                 if (*a == user)
+341                 {
+342                         log(DEBUG,'Oper removed from optimization list');
+343                         all_opers.erase(a);
+344                         return;
+345                 }
+346         }
+347 }
+.fi
+.PP
+.SS "void force_nickchange (\fBuserrec\fP * user, const char * newnick)"
+.PP
+Definition at line 769 of file users.cpp.
+.PP
+References FOREACH_RESULT, kill_link(), matches_qline(), InspIRCd::Parser, connection::registered, InspIRCd::stats, and serverstats::statsCollisions.
+.PP
+Referenced by Server::ChangeUserNick().
+.PP
+.nf
+770 {
+771         char nick[MAXBUF];
+772         int MOD_RESULT = 0;
+773 
+774         strcpy(nick,'');
+775 
+776         FOREACH_RESULT(OnUserPreNick(user,newnick));
+777         if (MOD_RESULT) {
+778                 ServerInstance->stats->statsCollisions++;
+779                 kill_link(user,'Nickname collision');
+780                 return;
+781         }
+782         if (matches_qline(newnick))
+783         {
+784                 ServerInstance->stats->statsCollisions++;
+785                 kill_link(user,'Nickname collision');
+786                 return;
+787         }
+788 
+789         if (user)
+790         {
+791                 if (newnick)
+792                 {
+793                         strncpy(nick,newnick,MAXBUF);
+794                 }
+795                 if (user->registered == 7)
+796                 {
+797                         char* pars[1];
+798                         pars[0] = nick;
+799                         std::string cmd = 'NICK';
+800                         ServerInstance->Parser->CallHandler(cmd,pars,1,user);
+801                 }
+802         }
+803 }
+.fi
+.PP
+.SS "void FullConnectUser (\fBuserrec\fP * user)"
+.PP
+Definition at line 647 of file users.cpp.
+.PP
+References DEBUG, connection::fd, FOREACH_MOD, connection::haspassed, connection::host, userrec::ident, connection::idle_lastmsg, connection::ip, kill_link(), kill_link_silent(), log(), matches_exception(), matches_gline(), matches_kline(), ServerConfig::Network, userrec::nick, connection::port, connection::registered, ServerConfig::ServerName, InspIRCd::stats, serverstats::statsConnects, TIME, WriteOpers(), and WriteServ().
+.PP
+Referenced by ConnectUser().
+.PP
+.nf
+648 {
+649         ServerInstance->stats->statsConnects++;
+650         user->idle_lastmsg = TIME;
+651         log(DEBUG,'ConnectUser: %s',user->nick);
+652 
+653         if ((strcmp(Passwd(user),'')) && (!user->haspassed))
+654         {
+655                 kill_link(user,'Invalid password');
+656                 return;
+657         }
+658         if (IsDenied(user))
+659         {
+660                 kill_link(user,'Unauthorised connection');
+661                 return;
+662         }
+663 
+664         char match_against[MAXBUF];
+665         snprintf(match_against,MAXBUF,'%s@%s',user->ident,user->host);
+666         char* e = matches_exception(match_against);
+667         if (!e)
+668         {
+669                 char* r = matches_gline(match_against);
+670                 if (r)
+671                 {
+672                         char reason[MAXBUF];
+673                         snprintf(reason,MAXBUF,'G-Lined: %s',r);
+674                         kill_link_silent(user,reason);
+675                         return;
+676                 }
+677                 r = matches_kline(user->host);
+678                 if (r)
+679                 {
+680                         char reason[MAXBUF];
+681                         snprintf(reason,MAXBUF,'K-Lined: %s',r);
+682                         kill_link_silent(user,reason);
+683                         return;
+684                 }
+685         }
+686 
+687 
+688         WriteServ(user->fd,'NOTICE Auth :Welcome to \002%s\002!',Config->Network);
+689         WriteServ(user->fd,'001 %s :Welcome to the %s IRC Network %s!%s@%s',user->nick,Config->Network,user->nick,user->ident,user->host);
+690         WriteServ(user->fd,'002 %s :Your host is %s, running version %s',user->nick,Config->ServerName,VERSION);
+691         WriteServ(user->fd,'003 %s :This server was created %s %s',user->nick,__TIME__,__DATE__);
+692         WriteServ(user->fd,'004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN',user->nick,Config->ServerName,VERSION);
+693         // the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...
+694         std::stringstream v;
+695         v << 'WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS=' << MAXCHANS;
+696         v << ' MAXBANS=60 NICKLEN=' << NICKMAX;
+697         v << ' TOPICLEN=' << MAXTOPIC << ' KICKLEN=' << MAXKICK << ' MAXTARGETS=20 AWAYLEN=' << MAXAWAY << ' CHANMODES=ohvb,k,l,psmnti NETWORK=';
+698         v << Config->Network;
+699         std::string data005 = v.str();
+700         FOREACH_MOD On005Numeric(data005);
+701         // anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...
+702         // so i'd better split it :)
+703         std::stringstream out(data005);
+704         std::string token = '';
+705         std::string line5 = '';
+706         int token_counter = 0;
+707         while (!out.eof())
+708         {
+709                 out >> token;
+710                 line5 = line5 + token + ' ';
+711                 token_counter++;
+712                 if ((token_counter >= 13) || (out.eof() == true))
+713                 {
+714                         WriteServ(user->fd,'005 %s %s:are supported by this server',user->nick,line5.c_str());
+715                         line5 = '';
+716                         token_counter = 0;
+717                 }
+718         }
+719         ShowMOTD(user);
+720 
+721         // fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out
+722         // onto the network and produce 'fake direction'
+723         FOREACH_MOD OnUserConnect(user);
+724         FOREACH_MOD OnGlobalConnect(user);
+725         user->registered = 7;
+726         WriteOpers('*** Client connecting on port %lu: %s!%s@%s [%s]',(unsigned long)user->port,user->nick,user->ident,user->host,user->ip);
+727 }
+.fi
+.PP
+.SS "void kill_link (\fBuserrec\fP * user, const char * r)"
+.PP
+Definition at line 349 of file users.cpp.
+.PP
+References AddWhoWas(), clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), WriteCommonExcept(), and WriteOpers().
+.PP
+Referenced by AddClient(), force_nickchange(), FullConnectUser(), Server::PseudoToUser(), and Server::QuitUser().
+.PP
+.nf
+350 {
+351         user_hash::iterator iter = clientlist.find(user->nick);
+352 
+353         char reason[MAXBUF];
+354 
+355         strncpy(reason,r,MAXBUF);
+356 
+357         if (strlen(reason)>MAXQUIT)
+358         {
+359                 reason[MAXQUIT-1] = '\0';
+360         }
+361 
+362         log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
+363         Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
+364         log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
+365 
+366         if (user->registered == 7) {
+367                 FOREACH_MOD OnUserQuit(user,reason);
+368                 WriteCommonExcept(user,'QUIT :%s',reason);
+369         }
+370 
+371         user->FlushWriteBuf();
+372 
+373         FOREACH_MOD OnUserDisconnect(user);
+374 
+375         if (user->fd > -1)
+376         {
+377                 if (Config->GetIOHook(user->port))
+378                 {
+379                         Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
+380                 }
+381                 ServerInstance->SE->DelFd(user->fd);
+382                 user->CloseSocket();
+383         }
+384 
+385         // this must come before the WriteOpers so that it doesnt try to fill their buffer with anything
+386         // if they were an oper with +s.
+387         if (user->registered == 7) {
+388                 purge_empty_chans(user);
+389                 // fix by brain: only show local quits because we only show local connects (it just makes SENSE)
+390                 if (user->fd > -1)
+391                         WriteOpers('*** Client exiting: %s!%s@%s [%s]',user->nick,user->ident,user->host,reason);
+392                 AddWhoWas(user);
+393         }
+394 
+395         if (iter != clientlist.end())
+396         {
+397                 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
+398                 if (user->fd > -1)
+399                 {
+400                         fd_ref_table[user->fd] = NULL;
+401                         if (find(local_users.begin(),local_users.end(),user) != local_users.end())
+402                         {
+403                                 local_users.erase(find(local_users.begin(),local_users.end(),user));
+404                                 log(DEBUG,'Delete local user');
+405                         }
+406                 }
+407                 clientlist.erase(iter);
+408         }
+409         delete user;
+410 }
+.fi
+.PP
+.SS "void kill_link_silent (\fBuserrec\fP * user, const char * r)"
+.PP
+Definition at line 412 of file users.cpp.
+.PP
+References clientlist, userrec::CloseSocket(), DEBUG, SocketEngine::DelFd(), connection::fd, userrec::FlushWriteBuf(), FOREACH_MOD, ServerConfig::GetIOHook(), connection::host, userrec::ident, local_users, log(), userrec::nick, Module::OnRawSocketClose(), connection::port, connection::registered, InspIRCd::SE, Write(), and WriteCommonExcept().
+.PP
+Referenced by FullConnectUser().
+.PP
+.nf
+413 {
+414         user_hash::iterator iter = clientlist.find(user->nick);
+415 
+416         char reason[MAXBUF];
+417 
+418         strncpy(reason,r,MAXBUF);
+419 
+420         if (strlen(reason)>MAXQUIT)
+421         {
+422                 reason[MAXQUIT-1] = '\0';
+423         }
+424 
+425         log(DEBUG,'kill_link: %s '%s'',user->nick,reason);
+426         Write(user->fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,reason);
+427         log(DEBUG,'closing fd %lu',(unsigned long)user->fd);
+428 
+429         user->FlushWriteBuf();
+430 
+431         if (user->registered == 7) {
+432                 FOREACH_MOD OnUserQuit(user,reason);
+433                 WriteCommonExcept(user,'QUIT :%s',reason);
+434         }
+435 
+436         FOREACH_MOD OnUserDisconnect(user);
+437 
+438         if (user->fd > -1)
+439         {
+440                 if (Config->GetIOHook(user->port))
+441                 {
+442                         Config->GetIOHook(user->port)->OnRawSocketClose(user->fd);
+443                 }
+444                 ServerInstance->SE->DelFd(user->fd);
+445                 user->CloseSocket();
+446         }
+447 
+448         if (user->registered == 7) {
+449                 purge_empty_chans(user);
+450         }
+451 
+452         if (iter != clientlist.end())
+453         {
+454                 log(DEBUG,'deleting user hash value %lu',(unsigned long)user);
+455                 if (user->fd > -1)
+456                 {
+457                         fd_ref_table[user->fd] = NULL;
+458                         if (find(local_users.begin(),local_users.end(),user) != local_users.end())
+459                         {
+460                                 log(DEBUG,'Delete local user');
+461                                 local_users.erase(find(local_users.begin(),local_users.end(),user));
+462                         }
+463                 }
+464                 clientlist.erase(iter);
+465         }
+466         delete user;
+467 }
+.fi
+.PP
+.SS "\fBuserrec\fP* ReHashNick (char * Old, char * New)"
+.PP
+Definition at line 743 of file users.cpp.
+.PP
+References clientlist, DEBUG, and log().
+.PP
+.nf
+744 {
+745         //user_hash::iterator newnick;
+746         user_hash::iterator oldnick = clientlist.find(Old);
+747 
+748         log(DEBUG,'ReHashNick: %s %s',Old,New);
+749 
+750         if (!strcasecmp(Old,New))
+751         {
+752                 log(DEBUG,'old nick is new nick, skipping');
+753                 return oldnick->second;
+754         }
+755 
+756         if (oldnick == clientlist.end()) return NULL; /* doesnt exist */
+757 
+758         log(DEBUG,'ReHashNick: Found hashed nick %s',Old);
+759 
+760         userrec* olduser = oldnick->second;
+761         clientlist[New] = olduser;
+762         clientlist.erase(oldnick);
+763 
+764         log(DEBUG,'ReHashNick: Nick rehashed as %s',New);
+765 
+766         return clientlist[New];
+767 }
+.fi
+.PP
 .SH "Author"
 .PP 
 Generated automatically by Doxygen for InspIRCd from the source code.
index bac860eff741cbdd2d3af8308b4e721e106d348f..feca7ea4a009324f9afb0b1641ab016fb8236d6c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "xline.h" 3 "15 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
+.TH "xline.h" 3 "19 Dec 2005" "Version 1.0Betareleases" "InspIRCd" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -202,14 +202,19 @@ Referenced by Server::DelZLine().
 .PP
 .SS "char* matches_exception (const char * host)"
 .PP
+Referenced by AddClient(), and FullConnectUser().
 .SS "char* matches_gline (const char * host)"
 .PP
+Referenced by FullConnectUser().
 .SS "char* matches_kline (const char * host)"
 .PP
+Referenced by FullConnectUser().
 .SS "char* matches_qline (const char * nick)"
 .PP
+Referenced by force_nickchange().
 .SS "char* matches_zline (const char * ipaddr)"
 .PP
+Referenced by AddClient().
 .SS "bool qline_make_global (const char * nickname)"
 .PP
 .SS "void qline_set_creation_time (char * nick, time_t create_time)"
diff --git a/docs/module-doc/aes_8h-source.html b/docs/module-doc/aes_8h-source.html
new file mode 100644 (file)
index 0000000..3abd230
--- /dev/null
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InspIRCd: aes.h Source File</title>
+<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.4-20050815 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></div>
+<h1>aes.h</h1><a href="aes_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef __AES_H__</span>
+<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __AES_H__</span>
+<a name="l00003"></a>00003 <span class="preprocessor"></span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;cstring&gt;</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
+<a name="l00007"></a>00007 
+<a name="l00010"></a><a class="code" href="classAES.html">00010</a> <span class="keyword">class </span><a class="code" href="classAES.html">AES</a>
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012 <span class="keyword">public</span>:
+<a name="l00013"></a>00013         <span class="keyword">enum</span> { <a class="code" href="classAES.html#_40_30ECB">ECB</a>=0, <a class="code" href="classAES.html#_40_30CBC">CBC</a>=1, <a class="code" href="classAES.html#_40_30CFB">CFB</a>=2 };
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 <span class="keyword">private</span>:
+<a name="l00016"></a>00016         <span class="keyword">enum</span> { <a class="code" href="classAES.html#_40_31DEFAULT_5FBLOCK_5FSIZE">DEFAULT_BLOCK_SIZE</a>=16 };
+<a name="l00017"></a>00017         <span class="keyword">enum</span> { <a class="code" href="classAES.html#_40_32MAX_5FBLOCK_5FSIZE">MAX_BLOCK_SIZE</a>=32, <a class="code" href="classAES.html#_40_32MAX_5FROUNDS">MAX_ROUNDS</a>=14, <a class="code" href="classAES.html#_40_32MAX_5FKC">MAX_KC</a>=8, <a class="code" href="classAES.html#_40_32MAX_5FBC">MAX_BC</a>=8 };
+<a name="l00018"></a>00018 
+<a name="l00019"></a><a class="code" href="classAES.html#Mul_28int_20a_2C_20int_20b_29">00019</a>         <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#Mul_28int_20a_2C_20int_20b_29">Mul</a>(<span class="keywordtype">int</span> <a class="code" href="classAES.html#a_5BMAX_5FBC_5D">a</a>, <span class="keywordtype">int</span> b)
+<a name="l00020"></a>00020         {
+<a name="l00021"></a>00021                 <span class="keywordflow">return</span> (a != 0 &amp;&amp; b != 0) ? <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[(<a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[a &amp; 0xFF] + <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[b &amp; 0xFF]) % 255] : 0;
+<a name="l00022"></a>00022         }
+<a name="l00023"></a>00023 
+<a name="l00026"></a><a class="code" href="classAES.html#Mul_34_28int_20a_2C_20char_20b_5B_5D_29">00026</a>         <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#Mul_34_28int_20a_2C_20char_20b_5B_5D_29">Mul4</a>(<span class="keywordtype">int</span> <a class="code" href="classAES.html#a_5BMAX_5FBC_5D">a</a>, <span class="keywordtype">char</span> b[])
+<a name="l00027"></a>00027         {
+<a name="l00028"></a>00028                 <span class="keywordflow">if</span>(a == 0)
+<a name="l00029"></a>00029                         <span class="keywordflow">return</span> 0;
+<a name="l00030"></a>00030                 a = <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[a &amp; 0xFF];
+<a name="l00031"></a>00031                 <span class="keywordtype">int</span> a0 = (b[0] != 0) ? <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[(a + <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[b[0] &amp; 0xFF]) % 255] &amp; 0xFF : 0;
+<a name="l00032"></a>00032                 <span class="keywordtype">int</span> a1 = (b[1] != 0) ? <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[(a + <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[b[1] &amp; 0xFF]) % 255] &amp; 0xFF : 0;
+<a name="l00033"></a>00033                 <span class="keywordtype">int</span> a2 = (b[2] != 0) ? <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[(a + <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[b[2] &amp; 0xFF]) % 255] &amp; 0xFF : 0;
+<a name="l00034"></a>00034                 <span class="keywordtype">int</span> a3 = (b[3] != 0) ? <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[(a + <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[b[3] &amp; 0xFF]) % 255] &amp; 0xFF : 0;
+<a name="l00035"></a>00035                 <span class="keywordflow">return</span> a0 &lt;&lt; 24 | a1 &lt;&lt; 16 | a2 &lt;&lt; 8 | a3;
+<a name="l00036"></a>00036         }
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="keyword">public</span>:
+<a name="l00039"></a>00039         <a class="code" href="classAES.html#AES_28_29">AES</a>();
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041         <span class="keyword">virtual</span> <a class="code" href="classAES.html#_7EAES_28_29">~AES</a>();
+<a name="l00042"></a>00042 
+<a name="l00050"></a>00050         <span class="keywordtype">void</span> <a class="code" href="classAES.html#MakeKey_28char_20const_20_2Akey_2C_20char_20const_20_2Achain_2C_20int_20keylength_3DDEFAULT_5FBLOCK_5FSIZE_2C_20int_20blockSize_3DDEFAULT_5FBLOCK_5FSIZE_29">MakeKey</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* key, <span class="keywordtype">char</span> <span class="keyword">const</span>* chain, <span class="keywordtype">int</span> keylength=<a class="code" href="classAES.html#_40_31DEFAULT_5FBLOCK_5FSIZE">DEFAULT_BLOCK_SIZE</a>, <span class="keywordtype">int</span> blockSize=<a class="code" href="classAES.html#_40_31DEFAULT_5FBLOCK_5FSIZE">DEFAULT_BLOCK_SIZE</a>);
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 <span class="keyword">private</span>:
+<a name="l00055"></a><a class="code" href="classAES.html#Xor_28char_20_2Abuff_2C_20char_20const_20_2Achain_29">00055</a>         <span class="keywordtype">void</span> <a class="code" href="classAES.html#Xor_28char_20_2Abuff_2C_20char_20const_20_2Achain_29">Xor</a>(<span class="keywordtype">char</span>* buff, <span class="keywordtype">char</span> <span class="keyword">const</span>* chain)
+<a name="l00056"></a>00056         {
+<a name="l00057"></a>00057                 <span class="keywordflow">if</span>(<span class="keyword">false</span>==<a class="code" href="classAES.html#m_5FbKeyInit">m_bKeyInit</a>)
+<a name="l00058"></a>00058                         <span class="keywordflow">return</span>;
+<a name="l00059"></a>00059                 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;<a class="code" href="classAES.html#m_5FblockSize">m_blockSize</a>; i++)
+<a name="l00060"></a>00060                         *(buff++) ^= *(chain++);        
+<a name="l00061"></a>00061         }
+<a name="l00062"></a>00062 
+<a name="l00067"></a>00067         <span class="keywordtype">void</span> <a class="code" href="classAES.html#DefEncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">DefEncryptBlock</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result);
+<a name="l00068"></a>00068 
+<a name="l00073"></a>00073         <span class="keywordtype">void</span> <a class="code" href="classAES.html#DefDecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">DefDecryptBlock</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result);
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075 <span class="keyword">public</span>:
+<a name="l00080"></a>00080         <span class="keywordtype">void</span> <a class="code" href="classAES.html#EncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">EncryptBlock</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result);
+<a name="l00081"></a>00081         
+<a name="l00086"></a>00086         <span class="keywordtype">void</span> <a class="code" href="classAES.html#DecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">DecryptBlock</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result);
+<a name="l00087"></a>00087 
+<a name="l00094"></a>00094         <span class="keywordtype">void</span> <a class="code" href="classAES.html#Encrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">Encrypt</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result, size_t n, <span class="keywordtype">int</span> iMode=<a class="code" href="classAES.html#_40_30ECB">ECB</a>);
+<a name="l00095"></a>00095         
+<a name="l00102"></a>00102         <span class="keywordtype">void</span> <a class="code" href="classAES.html#Decrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">Decrypt</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* in, <span class="keywordtype">char</span>* result, size_t n, <span class="keywordtype">int</span> iMode=<a class="code" href="classAES.html#_40_30ECB">ECB</a>);
+<a name="l00103"></a>00103 
+<a name="l00106"></a><a class="code" href="classAES.html#GetKeyLength_28_29">00106</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#GetKeyLength_28_29">GetKeyLength</a>()
+<a name="l00107"></a>00107         {
+<a name="l00108"></a>00108                 <span class="keywordflow">if</span>(<span class="keyword">false</span>==<a class="code" href="classAES.html#m_5FbKeyInit">m_bKeyInit</a>)
+<a name="l00109"></a>00109                         <span class="keywordflow">return</span> 0;
+<a name="l00110"></a>00110                 <span class="keywordflow">return</span> <a class="code" href="classAES.html#m_5Fkeylength">m_keylength</a>;
+<a name="l00111"></a>00111         }
+<a name="l00112"></a>00112 
+<a name="l00115"></a><a class="code" href="classAES.html#GetBlockSize_28_29">00115</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#GetBlockSize_28_29">GetBlockSize</a>()
+<a name="l00116"></a>00116         {
+<a name="l00117"></a>00117                 <span class="keywordflow">if</span>(<span class="keyword">false</span>==<a class="code" href="classAES.html#m_5FbKeyInit">m_bKeyInit</a>)
+<a name="l00118"></a>00118                         <span class="keywordflow">return</span> 0;
+<a name="l00119"></a>00119                 <span class="keywordflow">return</span> <a class="code" href="classAES.html#m_5FblockSize">m_blockSize</a>;
+<a name="l00120"></a>00120         }
+<a name="l00121"></a>00121         
+<a name="l00124"></a><a class="code" href="classAES.html#GetRounds_28_29">00124</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#GetRounds_28_29">GetRounds</a>()
+<a name="l00125"></a>00125         {
+<a name="l00126"></a>00126                 <span class="keywordflow">if</span>(<span class="keyword">false</span>==<a class="code" href="classAES.html#m_5FbKeyInit">m_bKeyInit</a>)
+<a name="l00127"></a>00127                         <span class="keywordflow">return</span> 0;
+<a name="l00128"></a>00128                 <span class="keywordflow">return</span> <a class="code" href="classAES.html#m_5FiROUNDS">m_iROUNDS</a>;
+<a name="l00129"></a>00129         }
+<a name="l00130"></a>00130 
+<a name="l00133"></a><a class="code" href="classAES.html#ResetChain_28_29">00133</a>         <span class="keywordtype">void</span> <a class="code" href="classAES.html#ResetChain_28_29">ResetChain</a>()
+<a name="l00134"></a>00134         {
+<a name="l00135"></a>00135                 memcpy(<a class="code" href="classAES.html#m_5Fchain_5BMAX_5FBLOCK_5FSIZE_5D">m_chain</a>, <a class="code" href="classAES.html#m_5Fchain_30_5BMAX_5FBLOCK_5FSIZE_5D">m_chain0</a>, <a class="code" href="classAES.html#m_5FblockSize">m_blockSize</a>);
+<a name="l00136"></a>00136         }
+<a name="l00137"></a>00137 
+<a name="l00138"></a>00138 <span class="keyword">public</span>:
+<a name="l00141"></a><a class="code" href="classAES.html#sm_5Fchain_30">00141</a>         <span class="keyword">static</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* <a class="code" href="classAES.html#sm_5Fchain_30">sm_chain0</a>;
+<a name="l00142"></a>00142 
+<a name="l00143"></a>00143 <span class="keyword">private</span>:
+<a name="l00144"></a><a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">00144</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5Falog_5B_32_35_36_5D">sm_alog</a>[256];
+<a name="l00145"></a><a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">00145</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5Flog_5B_32_35_36_5D">sm_log</a>[256];
+<a name="l00146"></a><a class="code" href="classAES.html#sm_5FS_5B_32_35_36_5D">00146</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="classAES.html#sm_5FS_5B_32_35_36_5D">sm_S</a>[256];
+<a name="l00147"></a><a class="code" href="classAES.html#sm_5FSi_5B_32_35_36_5D">00147</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="classAES.html#sm_5FSi_5B_32_35_36_5D">sm_Si</a>[256];
+<a name="l00148"></a><a class="code" href="classAES.html#sm_5FT_31_5B_32_35_36_5D">00148</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_31_5B_32_35_36_5D">sm_T1</a>[256];
+<a name="l00149"></a><a class="code" href="classAES.html#sm_5FT_32_5B_32_35_36_5D">00149</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_32_5B_32_35_36_5D">sm_T2</a>[256];
+<a name="l00150"></a><a class="code" href="classAES.html#sm_5FT_33_5B_32_35_36_5D">00150</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_33_5B_32_35_36_5D">sm_T3</a>[256];
+<a name="l00151"></a><a class="code" href="classAES.html#sm_5FT_34_5B_32_35_36_5D">00151</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_34_5B_32_35_36_5D">sm_T4</a>[256];
+<a name="l00152"></a><a class="code" href="classAES.html#sm_5FT_35_5B_32_35_36_5D">00152</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_35_5B_32_35_36_5D">sm_T5</a>[256];
+<a name="l00153"></a><a class="code" href="classAES.html#sm_5FT_36_5B_32_35_36_5D">00153</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_36_5B_32_35_36_5D">sm_T6</a>[256];
+<a name="l00154"></a><a class="code" href="classAES.html#sm_5FT_37_5B_32_35_36_5D">00154</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_37_5B_32_35_36_5D">sm_T7</a>[256];
+<a name="l00155"></a><a class="code" href="classAES.html#sm_5FT_38_5B_32_35_36_5D">00155</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FT_38_5B_32_35_36_5D">sm_T8</a>[256];
+<a name="l00156"></a><a class="code" href="classAES.html#sm_5FU_31_5B_32_35_36_5D">00156</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FU_31_5B_32_35_36_5D">sm_U1</a>[256];
+<a name="l00157"></a><a class="code" href="classAES.html#sm_5FU_32_5B_32_35_36_5D">00157</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FU_32_5B_32_35_36_5D">sm_U2</a>[256];
+<a name="l00158"></a><a class="code" href="classAES.html#sm_5FU_33_5B_32_35_36_5D">00158</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FU_33_5B_32_35_36_5D">sm_U3</a>[256];
+<a name="l00159"></a><a class="code" href="classAES.html#sm_5FU_34_5B_32_35_36_5D">00159</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5FU_34_5B_32_35_36_5D">sm_U4</a>[256];
+<a name="l00160"></a><a class="code" href="classAES.html#sm_5Frcon_5B_33_30_5D">00160</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="classAES.html#sm_5Frcon_5B_33_30_5D">sm_rcon</a>[30];
+<a name="l00161"></a><a class="code" href="classAES.html#sm_5Fshifts_5B_33_5D_5B_34_5D_5B_32_5D">00161</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classAES.html#sm_5Fshifts_5B_33_5D_5B_34_5D_5B_32_5D">sm_shifts</a>[3][4][2];
+<a name="l00164"></a><a class="code" href="classAES.html#m_5FbKeyInit">00164</a>         <span class="keywordtype">bool</span> <a class="code" href="classAES.html#m_5FbKeyInit">m_bKeyInit</a>;
+<a name="l00167"></a><a class="code" href="classAES.html#m_5FKe_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">00167</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#m_5FKe_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">m_Ke</a>[<a class="code" href="classAES.html#_40_32MAX_5FROUNDS">MAX_ROUNDS</a>+1][<a class="code" href="classAES.html#_40_32MAX_5FBC">MAX_BC</a>];
+<a name="l00170"></a><a class="code" href="classAES.html#m_5FKd_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">00170</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#m_5FKd_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">m_Kd</a>[<a class="code" href="classAES.html#_40_32MAX_5FROUNDS">MAX_ROUNDS</a>+1][<a class="code" href="classAES.html#_40_32MAX_5FBC">MAX_BC</a>];
+<a name="l00173"></a><a class="code" href="classAES.html#m_5Fkeylength">00173</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#m_5Fkeylength">m_keylength</a>;
+<a name="l00176"></a><a class="code" href="classAES.html#m_5FblockSize">00176</a>         <span class="keywordtype">int</span>     <a class="code" href="classAES.html#m_5FblockSize">m_blockSize</a>;
+<a name="l00179"></a><a class="code" href="classAES.html#m_5FiROUNDS">00179</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#m_5FiROUNDS">m_iROUNDS</a>;
+<a name="l00182"></a><a class="code" href="classAES.html#m_5Fchain_30_5BMAX_5FBLOCK_5FSIZE_5D">00182</a>         <span class="keywordtype">char</span> <a class="code" href="classAES.html#m_5Fchain_30_5BMAX_5FBLOCK_5FSIZE_5D">m_chain0</a>[<a class="code" href="classAES.html#_40_32MAX_5FBLOCK_5FSIZE">MAX_BLOCK_SIZE</a>];
+<a name="l00183"></a><a class="code" href="classAES.html#m_5Fchain_5BMAX_5FBLOCK_5FSIZE_5D">00183</a>         <span class="keywordtype">char</span> <a class="code" href="classAES.html#m_5Fchain_5BMAX_5FBLOCK_5FSIZE_5D">m_chain</a>[<a class="code" href="classAES.html#_40_32MAX_5FBLOCK_5FSIZE">MAX_BLOCK_SIZE</a>];
+<a name="l00186"></a><a class="code" href="classAES.html#tk_5BMAX_5FKC_5D">00186</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#tk_5BMAX_5FKC_5D">tk</a>[<a class="code" href="classAES.html#_40_32MAX_5FKC">MAX_KC</a>];
+<a name="l00187"></a><a class="code" href="classAES.html#a_5BMAX_5FBC_5D">00187</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#a_5BMAX_5FBC_5D">a</a>[<a class="code" href="classAES.html#_40_32MAX_5FBC">MAX_BC</a>];
+<a name="l00188"></a><a class="code" href="classAES.html#t_5BMAX_5FBC_5D">00188</a>         <span class="keywordtype">int</span> <a class="code" href="classAES.html#t_5BMAX_5FBC_5D">t</a>[<a class="code" href="classAES.html#_40_32MAX_5FBC">MAX_BC</a>];
+<a name="l00189"></a>00189 };
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 <span class="preprocessor">#endif</span>
+<a name="l00192"></a>00192 <span class="preprocessor"></span>
+<a name="l00199"></a>00199 <span class="keywordtype">void</span> <a class="code" href="aes_8h.html#to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29">to64frombits</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *out, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> inlen);
+<a name="l00206"></a>00206 <span class="keywordtype">int</span> <a class="code" href="aes_8h.html#from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29">from64tobits</a>(<span class="keywordtype">char</span> *out, <span class="keyword">const</span> <span class="keywordtype">char</span> *in, <span class="keywordtype">int</span> maxlen);
+<a name="l00207"></a>00207 
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/aes_8h.html b/docs/module-doc/aes_8h.html
new file mode 100644 (file)
index 0000000..bc7ccff
--- /dev/null
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>InspIRCd: aes.h File Reference</title>
+<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.4-20050815 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></div>
+<h1>aes.h File Reference</h1><code>#include &lt;cstring&gt;</code><br>
+
+<p>
+Include dependency graph for aes.h:<p><center><img src="aes_8h__incl.gif" border="0" usemap="#aes.h_map" alt=""></center>
+
+<p>
+<a href="aes_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>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAES.html">AES</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The AES class is a utility class for use in modules and the core for encryption of data.  <a href="classAES.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="aes_8h.html#to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29">to64frombits</a> (unsigned char *out, const unsigned char *in, int inlen)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert from binary to base64.  <a href="#to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="aes_8h.html#from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29">from64tobits</a> (char *out, const char *in, int maxlen)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert from base64 to binary  Output  Input  Size of output buffer.  <a href="#from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29"></a><!-- doxytag: member="aes.h::from64tobits" ref="from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29" args="(char *out, const char *in, int maxlen)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int from64tobits           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>maxlen</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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>
+Convert from base64 to binary  Output  Input  Size of output buffer. 
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>Number of bytes actually converted</dd></dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29"></a><!-- doxytag: member="aes.h::to64frombits" ref="to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29" args="(unsigned char *out, const unsigned char *in, int inlen)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void to64frombits           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">unsigned char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const unsigned char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>in</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>inlen</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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>
+Convert from binary to base64. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>Output </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>Input </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>inlen</em>&nbsp;</td><td>Number of bytes in input buffer</td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
+</body>
+</html>
diff --git a/docs/module-doc/aes_8h__incl.map b/docs/module-doc/aes_8h__incl.map
new file mode 100644 (file)
index 0000000..5a14779
--- /dev/null
@@ -0,0 +1 @@
+base referer
diff --git a/docs/module-doc/aes_8h__incl.md5 b/docs/module-doc/aes_8h__incl.md5
new file mode 100644 (file)
index 0000000..763f9a7
--- /dev/null
@@ -0,0 +1 @@
+757d940097e33843502a3704b6517705
\ No newline at end of file
index d242be3d1e5a9032d5d279d0293858094c70dc7f..021f871ac9cc1ed8d952d92d68ab27b25911035e 100644 (file)
@@ -7,11 +7,13 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindexHL" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>InspIRCd Class 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="classAES.html">AES</a></td><td class="indexvalue">Utility class for use in modules and the core for encryption of data </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="classBoolSet.html">BoolSet</a></td><td class="indexvalue">BoolSet is a utility class designed to hold eight bools in a bitmask </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="classstd_1_1char__traits.html">char_traits</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classclassbase.html">classbase</a></td><td class="indexvalue">The base class for all inspircd classes </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classcmd__mode.html">cmd_mode</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classcommand__t.html">command_t</a></td><td class="indexvalue">A structure that defines a command </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>
@@ -38,6 +40,7 @@
   <tr><td class="indexkey"><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td class="indexvalue">The <a class="el" href="structirc_1_1irc__char__traits.html">irc_char_traits</a> class is used for RFC-style comparison of strings </td></tr>
   <tr><td class="indexkey"><a class="el" href="classKLine.html">KLine</a></td><td class="indexvalue">KLine class </td></tr>
   <tr><td class="indexkey"><a class="el" href="classModeParameter.html">ModeParameter</a></td><td class="indexvalue">Holds a custom parameter to a module-defined channel mode e.g </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classModeParser.html">ModeParser</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classModule.html">Module</a></td><td class="indexvalue">Base class for all <a class="el" href="classInspIRCd.html">InspIRCd</a> modules This class is the base class for <a class="el" href="classInspIRCd.html">InspIRCd</a> 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="classModuleMessage.html">ModuleMessage</a></td><td class="indexvalue">Base class of <a class="el" href="classRequest.html">Request</a> and <a class="el" href="classEvent.html">Event</a> This class is used to represent a basic data structure which is passed between modules for safe inter-module communications </td></tr>
@@ -55,7 +58,7 @@
   <tr><td class="indexkey"><a class="el" href="classXLine.html">XLine</a></td><td class="indexvalue">XLine is the base class for ban lines such as G lines and K lines </td></tr>
   <tr><td class="indexkey"><a class="el" href="classZLine.html">ZLine</a></td><td class="indexvalue">ZLine class </td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index dd5093d21d703733c8a2bc4ecd0f02f27539d245..b0ea61862863e7c15240efa51e427acb643d1e22 100644 (file)
@@ -88,7 +88,7 @@
 <a name="l00161"></a>00161 
 <a name="l00162"></a>00162 <span class="preprocessor">#endif</span>
 <a name="l00163"></a>00163 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 21cb374cacfe3b115325f4dc2608636c82403314..6f4d7700be59b7d59457910fc93219ca866cbbc1 100644 (file)
@@ -21,8 +21,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 <map name="base.hdep_map">
 <area href="channels_8h-source.html" shape="rect" coords="123,7,208,33" alt="">
 <area href="connection_8h-source.html" shape="rect" coords="116,57,215,84" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="128,108,203,135" alt="">
-<area href="modules_8h-source.html" shape="rect" coords="264,133,347,160" alt="">
+<area href="modules_8h-source.html" shape="rect" coords="124,108,207,135" alt="">
 </map>
 
 <p>
@@ -68,7 +67,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 Definition at line <a class="el" href="base_8h-source.html#l00026">26</a> of file <a class="el" href="base_8h-source.html">base.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:15 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c410efa5bc74e4ccf9b3bc5865a8e2428da0dc1c..f4ecb8acaf6b5749aa426d7b16c6b1db80063a38 100644 (file)
@@ -1,5 +1,4 @@
 base referer
 rect $channels_8h-source.html 123,7 208,33
 rect $connection_8h-source.html 116,57 215,84
-rect $ctables_8h-source.html 128,108 203,135
-rect $modules_8h-source.html 264,133 347,160
+rect $modules_8h-source.html 124,108 207,135
index 41b45569961f3c1b285fb095a554502a0d0b8a2c..ca5585f51a103313f679f51b753bd8181a5c4a6b 100644 (file)
@@ -1 +1 @@
-b145898866c61fc2668d99f3afe53948
\ No newline at end of file
+ee5adf3802b7f876813a7157861bd8af
\ No newline at end of file
index c8421934ac5cd7e10087db9eb31d6710dc16e62c..be9c4fc431d85089271ac8097e7a404d6295b3ff 100644 (file)
 <a name="l00019"></a>00019 <span class="preprocessor">#include "inspircd_config.h"</span>
 <a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
 <a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="inspircd__io_8h.html">inspircd_io.h</a>"</span>
-<a name="l00022"></a>00022 <span class="preprocessor">#include "inspircd_util.h"</span>
-<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
-<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
-<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
-<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;sys/utsname.h&gt;</span>
-<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;time.h&gt;</span>
-<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00029"></a>00029 <span class="preprocessor">#ifdef GCC3</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
-<a name="l00031"></a>00031 <span class="preprocessor">#else</span>
-<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
-<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;sstream&gt;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;deque&gt;</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "dynamic.h"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include "wildcard.h"</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include "inspstring.h"</span>
-<a name="l00049"></a>00049 <span class="preprocessor">#include "helperfuncs.h"</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span>
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052 <span class="preprocessor">#ifdef GCC3</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define nspace __gnu_cxx</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00055"></a><a class="code" href="channels_8cpp.html#nspace">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define nspace std</span>
-<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00057"></a>00057 <span class="preprocessor"></span>
-<a name="l00058"></a>00058 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="channels_8cpp.html#Config">Config</a>;
-<a name="l00059"></a>00059 
-<a name="l00060"></a>00060 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>;
-<a name="l00061"></a>00061 <span class="keyword">extern</span> std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>;
-<a name="l00062"></a>00062 <span class="keyword">extern</span> std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>;
-<a name="l00063"></a>00063 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>;
-<a name="l00064"></a>00064 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>;
-<a name="l00065"></a>00065 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00066"></a>00066 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>;
-<a name="l00067"></a>00067 
-<a name="l00068"></a>00068 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
-<a name="l00069"></a>00069 
-<a name="l00070"></a><a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">00070</a> std::vector&lt;ModeParameter&gt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>;
-<a name="l00071"></a>00071 
-<a name="l00072"></a>00072 <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="channels_8cpp.html#ForceChan_28chanrec_20_2APtr_2C_20ucrec_20_26a_2C_20userrec_20_2Auser_2C_20int_20created_29">ForceChan</a>(<a class="code" href="classchanrec.html">chanrec</a>* Ptr,<a class="code" href="classucrec.html">ucrec</a> &amp;a,<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">int</span> created);
-<a name="l00073"></a>00073 
-<a name="l00074"></a><a class="code" href="classchanrec.html#chanrec_28_29">00074</a> <a class="code" href="classchanrec.html#chanrec_28_29">chanrec::chanrec</a>()
-<a name="l00075"></a>00075 {
-<a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
-<a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
-<a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
-<a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
-<a name="l00080"></a>00080         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
-<a name="l00081"></a>00081         <a class="code" href="classchanrec.html#created">created</a> = <a class="code" href="classchanrec.html#topicset">topicset</a> = <a class="code" href="classchanrec.html#limit">limit</a> = 0;
-<a name="l00082"></a>00082         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
-<a name="l00083"></a>00083         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085 
-<a name="l00086"></a><a class="code" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">00086</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
-<a name="l00087"></a>00087 {
-<a name="l00088"></a>00088         <span class="keywordflow">if</span> (mode_on) {
-<a name="l00089"></a>00089                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
-<a name="l00090"></a>00090                 m[0] = mode;
-<a name="l00091"></a>00091                 m[1] = <span class="charliteral">'\0'</span>;
-<a name="l00092"></a>00092                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-<a name="l00093"></a>00093                 {
-<a name="l00094"></a>00094                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
-<a name="l00095"></a>00095                 }
-<a name="l00096"></a>00096                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-<a name="l00097"></a>00097         }
-<a name="l00098"></a>00098         <span class="keywordflow">else</span> {
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100                 <a class="code" href="namespaceirc.html#string">std::string</a> a = this-&gt;<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>;
-<a name="l00101"></a>00101                 <span class="keywordtype">int</span> pos = a.find(mode);
-<a name="l00102"></a>00102                 a.erase(pos,1);
-<a name="l00103"></a>00103                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
-<a name="l00106"></a>00106                 this-&gt;<a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-<a name="l00107"></a>00107         }
-<a name="l00108"></a>00108 }
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;sys/utsname.h&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;time.h&gt;</span>
+<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#ifdef GCC3</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#else</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#endif</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;deque&gt;</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "dynamic.h"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "wildcard.h"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "inspstring.h"</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include "helperfuncs.h"</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span>
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 <span class="preprocessor">#ifdef GCC3</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#define nspace __gnu_cxx</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00054"></a><a class="code" href="channels_8cpp.html#nspace">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define nspace std</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span>
+<a name="l00057"></a>00057 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="channels_8cpp.html#Config">Config</a>;
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>;
+<a name="l00060"></a>00060 <span class="keyword">extern</span> std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>;
+<a name="l00061"></a>00061 <span class="keyword">extern</span> std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>;
+<a name="l00062"></a>00062 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>;
+<a name="l00063"></a>00063 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>;
+<a name="l00064"></a>00064 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00065"></a>00065 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>;
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
+<a name="l00068"></a>00068 
+<a name="l00069"></a><a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">00069</a> std::vector&lt;ModeParameter&gt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>;
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="channels_8cpp.html#ForceChan_28chanrec_20_2APtr_2C_20ucrec_20_26a_2C_20userrec_20_2Auser_2C_20int_20created_29">ForceChan</a>(<a class="code" href="classchanrec.html">chanrec</a>* Ptr,<a class="code" href="classucrec.html">ucrec</a> &amp;a,<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">int</span> created);
+<a name="l00072"></a>00072 
+<a name="l00073"></a><a class="code" href="classchanrec.html#chanrec_28_29">00073</a> <a class="code" href="classchanrec.html#chanrec_28_29">chanrec::chanrec</a>()
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
+<a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
+<a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
+<a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
+<a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
+<a name="l00080"></a>00080         <a class="code" href="classchanrec.html#created">created</a> = <a class="code" href="classchanrec.html#topicset">topicset</a> = <a class="code" href="classchanrec.html#limit">limit</a> = 0;
+<a name="l00081"></a>00081         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
+<a name="l00082"></a>00082         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+<a name="l00085"></a><a class="code" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">00085</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">chanrec::SetCustomMode</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">bool</span> mode_on)
+<a name="l00086"></a>00086 {
+<a name="l00087"></a>00087         <span class="keywordflow">if</span> (mode_on) {
+<a name="l00088"></a>00088                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
+<a name="l00089"></a>00089                 m[0] = mode;
+<a name="l00090"></a>00090                 m[1] = <span class="charliteral">'\0'</span>;
+<a name="l00091"></a>00091                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+<a name="l00092"></a>00092                 {
+<a name="l00093"></a>00093                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
+<a name="l00094"></a>00094                 }
+<a name="l00095"></a>00095                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+<a name="l00096"></a>00096         }
+<a name="l00097"></a>00097         <span class="keywordflow">else</span> {
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099                 <a class="code" href="namespaceirc.html#string">std::string</a> a = this-&gt;<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>;
+<a name="l00100"></a>00100                 <span class="keywordtype">int</span> pos = a.find(mode);
+<a name="l00101"></a>00101                 a.erase(pos,1);
+<a name="l00102"></a>00102                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
+<a name="l00105"></a>00105                 this-&gt;<a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+<a name="l00106"></a>00106         }
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108 
 <a name="l00109"></a>00109 
-<a name="l00110"></a>00110 
-<a name="l00111"></a><a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">00111</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
-<a name="l00112"></a>00112 {
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
-<a name="l00115"></a>00115         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-<a name="l00116"></a>00116         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
-<a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
-<a name="l00118"></a>00118         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
-<a name="l00119"></a>00119         <span class="keywordflow">if</span> (mode_on)
-<a name="l00120"></a>00120         {
-<a name="l00121"></a>00121                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-<a name="l00122"></a>00122                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
-<a name="l00123"></a>00123         }
-<a name="l00124"></a>00124         <span class="keywordflow">else</span>
-<a name="l00125"></a>00125         {
-<a name="l00126"></a>00126                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
-<a name="l00127"></a>00127                 {
-<a name="l00128"></a>00128                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
-<a name="l00129"></a>00129                         {
-<a name="l00130"></a>00130                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-<a name="l00131"></a>00131                                 {
-<a name="l00132"></a>00132                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-<a name="l00133"></a>00133                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
-<a name="l00134"></a>00134                                         <span class="keywordflow">return</span>;
-<a name="l00135"></a>00135                                 }
-<a name="l00136"></a>00136                         }
-<a name="l00137"></a>00137                 }
-<a name="l00138"></a>00138                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-<a name="l00139"></a>00139         }
-<a name="l00140"></a>00140 }
-<a name="l00141"></a>00141 
-<a name="l00142"></a><a class="code" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">00142</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
-<a name="l00143"></a>00143 {
-<a name="l00144"></a>00144         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
-<a name="l00145"></a>00145 }
-<a name="l00146"></a>00146 
-<a name="l00147"></a><a class="code" href="classchanrec.html#GetModeParameter_28char_20mode_29">00147</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classchanrec.html#GetModeParameter_28char_20mode_29">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
-<a name="l00148"></a>00148 {
-<a name="l00149"></a>00149         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
-<a name="l00150"></a>00150         {
-<a name="l00151"></a>00151                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
-<a name="l00152"></a>00152                 {
-<a name="l00153"></a>00153                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-<a name="l00154"></a>00154                         {
-<a name="l00155"></a>00155                                 <span class="keywordflow">return</span> i-&gt;parameter;
-<a name="l00156"></a>00156                         }
-<a name="l00157"></a>00157                 }
-<a name="l00158"></a>00158         }
-<a name="l00159"></a>00159         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00160"></a>00160 }
-<a name="l00161"></a>00161 
-<a name="l00162"></a><a class="code" href="classchanrec.html#GetUserCounter_28_29">00162</a> <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#GetUserCounter_28_29">chanrec::GetUserCounter</a>()
-<a name="l00163"></a>00163 {
-<a name="l00164"></a>00164         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
-<a name="l00165"></a>00165 }
-<a name="l00166"></a>00166 
-<a name="l00167"></a><a class="code" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">00167</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">chanrec::AddUser</a>(<span class="keywordtype">char</span>* castuser)
-<a name="l00168"></a>00168 {
-<a name="l00169"></a>00169         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
-<a name="l00170"></a>00170         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
-<a name="l00171"></a>00171 }
-<a name="l00172"></a>00172 
-<a name="l00173"></a><a class="code" href="classchanrec.html#DelUser_28char_20_2Acastuser_29">00173</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#DelUser_28char_20_2Acastuser_29">chanrec::DelUser</a>(<span class="keywordtype">char</span>* castuser)
-<a name="l00174"></a>00174 {
-<a name="l00175"></a>00175         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.end(); a++)
-<a name="l00176"></a>00176         {
-<a name="l00177"></a>00177                 <span class="keywordflow">if</span> (*a == castuser)
-<a name="l00178"></a>00178                 {
-<a name="l00179"></a>00179                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
-<a name="l00180"></a>00180                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
-<a name="l00181"></a>00181                         <span class="keywordflow">return</span>;
-<a name="l00182"></a>00182                 }
-<a name="l00183"></a>00183         }
-<a name="l00184"></a>00184         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00185"></a>00185 }
-<a name="l00186"></a>00186 
-<a name="l00187"></a><a class="code" href="classchanrec.html#GetUsers_28_29">00187</a> std::vector&lt;char*&gt; *<a class="code" href="classchanrec.html#GetUsers_28_29">chanrec::GetUsers</a>()
-<a name="l00188"></a>00188 {
-<a name="l00189"></a>00189         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191 
-<a name="l00192"></a>00192 <span class="comment">/* add a channel to a user, creating the record for it if needed and linking</span>
-<a name="l00193"></a>00193 <span class="comment"> * it to the user record */</span>
-<a name="l00194"></a>00194 
-<a name="l00195"></a><a class="code" href="channels_8h.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">00195</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(<a class="code" href="classuserrec.html">userrec</a> *user, <span class="keyword">const</span> <span class="keywordtype">char</span>* cn, <span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keywordtype">bool</span> override)
-<a name="l00196"></a>00196 {
-<a name="l00197"></a>00197         <span class="keywordflow">if</span> ((!user) || (!cn))
-<a name="l00198"></a>00198         {
-<a name="l00199"></a>00199                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
-<a name="l00200"></a>00200                 <span class="keywordflow">return</span> 0;
-<a name="l00201"></a>00201         }
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203         <span class="keywordtype">int</span> created = 0;
-<a name="l00204"></a>00204         <span class="keywordtype">char</span> cname[MAXBUF];
-<a name="l00205"></a>00205         <span class="keywordtype">int</span> MOD_RESULT = 0;
-<a name="l00206"></a>00206         strncpy(cname,cn,CHANMAX);
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212         <span class="keywordflow">if</span> (!Ptr)
-<a name="l00213"></a>00213         {
-<a name="l00214"></a>00214                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00215"></a>00215                 {
-<a name="l00216"></a>00216                         MOD_RESULT = 0;
-<a name="l00217"></a>00217                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
-<a name="l00218"></a>00218                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00219"></a>00219                                 <span class="keywordflow">return</span> NULL;
-<a name="l00220"></a>00220                 }
-<a name="l00221"></a>00221                 <span class="comment">/* create a new one */</span>
-<a name="l00222"></a>00222                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
-<a name="l00223"></a>00223                 strlcpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;name, cname,CHANMAX);
-<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
-<a name="l00225"></a>00225                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00226"></a>00226                 strcpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topic, <span class="stringliteral">""</span>);
-<a name="l00227"></a>00227                 strncpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
-<a name="l00228"></a>00228                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
-<a name="l00229"></a>00229                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
-<a name="l00230"></a>00230                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
-<a name="l00231"></a>00231                 <span class="comment">/* set created to 2 to indicate user</span>
-<a name="l00232"></a>00232 <span class="comment">                 * is the first in the channel</span>
-<a name="l00233"></a>00233 <span class="comment">                 * and should be given ops */</span>
-<a name="l00234"></a>00234                 created = 2;
-<a name="l00235"></a>00235         }
-<a name="l00236"></a>00236         <span class="keywordflow">else</span>
-<a name="l00237"></a>00237         {
-<a name="l00238"></a>00238                 <span class="comment">/* Already on the channel */</span>
-<a name="l00239"></a>00239                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
-<a name="l00240"></a>00240                         <span class="keywordflow">return</span> NULL;
-<a name="l00241"></a>00241 
-<a name="l00242"></a>00242                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
-<a name="l00243"></a>00243                 <span class="comment">// and bans (used by servers)</span>
-<a name="l00244"></a>00244                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00245"></a>00245                 {
-<a name="l00246"></a>00246                         MOD_RESULT = 0;
-<a name="l00247"></a>00247                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
-<a name="l00248"></a>00248                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00249"></a>00249                         {
-<a name="l00250"></a>00250                                 <span class="keywordflow">return</span> NULL;
-<a name="l00251"></a>00251                         }
-<a name="l00252"></a>00252                         <span class="keywordflow">else</span>
-<a name="l00253"></a>00253                         {
-<a name="l00254"></a>00254                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
-<a name="l00255"></a>00255                                 {
-<a name="l00256"></a>00256                                         MOD_RESULT = 0;
-<a name="l00257"></a>00257                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
-<a name="l00258"></a>00258                                         <span class="keywordflow">if</span> (!MOD_RESULT)
-<a name="l00259"></a>00259                                         {
-<a name="l00260"></a>00260                                                 <span class="keywordflow">if</span> (!key)
-<a name="l00261"></a>00261                                                 {
-<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
-<a name="l00263"></a>00263                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00264"></a>00264                                                         <span class="keywordflow">return</span> NULL;
-<a name="l00265"></a>00265                                                 }
-<a name="l00266"></a>00266                                                 <span class="keywordflow">else</span>
-<a name="l00267"></a>00267                                                 {
-<a name="l00268"></a>00268                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
-<a name="l00269"></a>00269                                                         {
-<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
-<a name="l00271"></a>00271                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00272"></a>00272                                                                 <span class="keywordflow">return</span> NULL;
-<a name="l00273"></a>00273                                                         }
-<a name="l00274"></a>00274                                                 }
-<a name="l00275"></a>00275                                         }
-<a name="l00276"></a>00276                                 }
-<a name="l00277"></a>00277                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
-<a name="l00278"></a>00278                                 {
-<a name="l00279"></a>00279                                         MOD_RESULT = 0;
+<a name="l00110"></a><a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">00110</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">chanrec::SetCustomModeParam</a>(<span class="keywordtype">char</span> mode,<span class="keywordtype">char</span>* parameter,<span class="keywordtype">bool</span> mode_on)
+<a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
+<a name="l00114"></a>00114         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+<a name="l00115"></a>00115         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
+<a name="l00116"></a>00116         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
+<a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
+<a name="l00118"></a>00118         <span class="keywordflow">if</span> (mode_on)
+<a name="l00119"></a>00119         {
+<a name="l00120"></a>00120                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+<a name="l00121"></a>00121                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
+<a name="l00122"></a>00122         }
+<a name="l00123"></a>00123         <span class="keywordflow">else</span>
+<a name="l00124"></a>00124         {
+<a name="l00125"></a>00125                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
+<a name="l00126"></a>00126                 {
+<a name="l00127"></a>00127                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
+<a name="l00128"></a>00128                         {
+<a name="l00129"></a>00129                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00130"></a>00130                                 {
+<a name="l00131"></a>00131                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+<a name="l00132"></a>00132                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
+<a name="l00133"></a>00133                                         <span class="keywordflow">return</span>;
+<a name="l00134"></a>00134                                 }
+<a name="l00135"></a>00135                         }
+<a name="l00136"></a>00136                 }
+<a name="l00137"></a>00137                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+<a name="l00138"></a>00138         }
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 
+<a name="l00141"></a><a class="code" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">00141</a> <span class="keywordtype">bool</span> <a class="code" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">chanrec::IsCustomModeSet</a>(<span class="keywordtype">char</span> mode)
+<a name="l00142"></a>00142 {
+<a name="l00143"></a>00143         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145 
+<a name="l00146"></a><a class="code" href="classchanrec.html#GetModeParameter_28char_20mode_29">00146</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classchanrec.html#GetModeParameter_28char_20mode_29">chanrec::GetModeParameter</a>(<span class="keywordtype">char</span> mode)
+<a name="l00147"></a>00147 {
+<a name="l00148"></a>00148         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
+<a name="l00149"></a>00149         {
+<a name="l00150"></a>00150                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
+<a name="l00151"></a>00151                 {
+<a name="l00152"></a>00152                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00153"></a>00153                         {
+<a name="l00154"></a>00154                                 <span class="keywordflow">return</span> i-&gt;parameter;
+<a name="l00155"></a>00155                         }
+<a name="l00156"></a>00156                 }
+<a name="l00157"></a>00157         }
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00159"></a>00159 }
+<a name="l00160"></a>00160 
+<a name="l00161"></a><a class="code" href="classchanrec.html#GetUserCounter_28_29">00161</a> <span class="keywordtype">long</span> <a class="code" href="classchanrec.html#GetUserCounter_28_29">chanrec::GetUserCounter</a>()
+<a name="l00162"></a>00162 {
+<a name="l00163"></a>00163         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
+<a name="l00164"></a>00164 }
+<a name="l00165"></a>00165 
+<a name="l00166"></a><a class="code" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">00166</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">chanrec::AddUser</a>(<span class="keywordtype">char</span>* castuser)
+<a name="l00167"></a>00167 {
+<a name="l00168"></a>00168         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
+<a name="l00169"></a>00169         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
+<a name="l00170"></a>00170 }
+<a name="l00171"></a>00171 
+<a name="l00172"></a><a class="code" href="classchanrec.html#DelUser_28char_20_2Acastuser_29">00172</a> <span class="keywordtype">void</span> <a class="code" href="classchanrec.html#DelUser_28char_20_2Acastuser_29">chanrec::DelUser</a>(<span class="keywordtype">char</span>* castuser)
+<a name="l00173"></a>00173 {
+<a name="l00174"></a>00174         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.end(); a++)
+<a name="l00175"></a>00175         {
+<a name="l00176"></a>00176                 <span class="keywordflow">if</span> (*a == castuser)
+<a name="l00177"></a>00177                 {
+<a name="l00178"></a>00178                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
+<a name="l00179"></a>00179                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
+<a name="l00180"></a>00180                         <span class="keywordflow">return</span>;
+<a name="l00181"></a>00181                 }
+<a name="l00182"></a>00182         }
+<a name="l00183"></a>00183         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185 
+<a name="l00186"></a><a class="code" href="classchanrec.html#GetUsers_28_29">00186</a> std::vector&lt;char*&gt; *<a class="code" href="classchanrec.html#GetUsers_28_29">chanrec::GetUsers</a>()
+<a name="l00187"></a>00187 {
+<a name="l00188"></a>00188         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 <span class="comment">/* add a channel to a user, creating the record for it if needed and linking</span>
+<a name="l00192"></a>00192 <span class="comment"> * it to the user record */</span>
+<a name="l00193"></a>00193 
+<a name="l00194"></a><a class="code" href="channels_8h.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">00194</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(<a class="code" href="classuserrec.html">userrec</a> *user, <span class="keyword">const</span> <span class="keywordtype">char</span>* cn, <span class="keyword">const</span> <span class="keywordtype">char</span>* key, <span class="keywordtype">bool</span> override)
+<a name="l00195"></a>00195 {
+<a name="l00196"></a>00196         <span class="keywordflow">if</span> ((!user) || (!cn))
+<a name="l00197"></a>00197         {
+<a name="l00198"></a>00198                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
+<a name="l00199"></a>00199                 <span class="keywordflow">return</span> 0;
+<a name="l00200"></a>00200         }
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202         <span class="keywordtype">int</span> created = 0;
+<a name="l00203"></a>00203         <span class="keywordtype">char</span> cname[MAXBUF];
+<a name="l00204"></a>00204         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00205"></a>00205         strncpy(cname,cn,CHANMAX);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211         <span class="keywordflow">if</span> (!Ptr)
+<a name="l00212"></a>00212         {
+<a name="l00213"></a>00213                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00214"></a>00214                 {
+<a name="l00215"></a>00215                         MOD_RESULT = 0;
+<a name="l00216"></a>00216                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
+<a name="l00217"></a>00217                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00218"></a>00218                                 <span class="keywordflow">return</span> NULL;
+<a name="l00219"></a>00219                 }
+<a name="l00220"></a>00220                 <span class="comment">/* create a new one */</span>
+<a name="l00221"></a>00221                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
+<a name="l00222"></a>00222                 strlcpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;name, cname,CHANMAX);
+<a name="l00223"></a>00223                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
+<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00225"></a>00225                 strcpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topic, <span class="stringliteral">""</span>);
+<a name="l00226"></a>00226                 strncpy(<a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00227"></a>00227                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
+<a name="l00228"></a>00228                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
+<a name="l00229"></a>00229                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
+<a name="l00230"></a>00230                 <span class="comment">/* set created to 2 to indicate user</span>
+<a name="l00231"></a>00231 <span class="comment">                 * is the first in the channel</span>
+<a name="l00232"></a>00232 <span class="comment">                 * and should be given ops */</span>
+<a name="l00233"></a>00233                 created = 2;
+<a name="l00234"></a>00234         }
+<a name="l00235"></a>00235         <span class="keywordflow">else</span>
+<a name="l00236"></a>00236         {
+<a name="l00237"></a>00237                 <span class="comment">/* Already on the channel */</span>
+<a name="l00238"></a>00238                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
+<a name="l00239"></a>00239                         <span class="keywordflow">return</span> NULL;
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
+<a name="l00242"></a>00242                 <span class="comment">// and bans (used by servers)</span>
+<a name="l00243"></a>00243                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00244"></a>00244                 {
+<a name="l00245"></a>00245                         MOD_RESULT = 0;
+<a name="l00246"></a>00246                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
+<a name="l00247"></a>00247                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00248"></a>00248                         {
+<a name="l00249"></a>00249                                 <span class="keywordflow">return</span> NULL;
+<a name="l00250"></a>00250                         }
+<a name="l00251"></a>00251                         <span class="keywordflow">else</span>
+<a name="l00252"></a>00252                         {
+<a name="l00253"></a>00253                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
+<a name="l00254"></a>00254                                 {
+<a name="l00255"></a>00255                                         MOD_RESULT = 0;
+<a name="l00256"></a>00256                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
+<a name="l00257"></a>00257                                         <span class="keywordflow">if</span> (!MOD_RESULT)
+<a name="l00258"></a>00258                                         {
+<a name="l00259"></a>00259                                                 <span class="keywordflow">if</span> (!key)
+<a name="l00260"></a>00260                                                 {
+<a name="l00261"></a>00261                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
+<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00263"></a>00263                                                         <span class="keywordflow">return</span> NULL;
+<a name="l00264"></a>00264                                                 }
+<a name="l00265"></a>00265                                                 <span class="keywordflow">else</span>
+<a name="l00266"></a>00266                                                 {
+<a name="l00267"></a>00267                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
+<a name="l00268"></a>00268                                                         {
+<a name="l00269"></a>00269                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
+<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00271"></a>00271                                                                 <span class="keywordflow">return</span> NULL;
+<a name="l00272"></a>00272                                                         }
+<a name="l00273"></a>00273                                                 }
+<a name="l00274"></a>00274                                         }
+<a name="l00275"></a>00275                                 }
+<a name="l00276"></a>00276                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
+<a name="l00277"></a>00277                                 {
+<a name="l00278"></a>00278                                         MOD_RESULT = 0;
+<a name="l00279"></a>00279                                         <a class="code" href="namespaceirc.html#string">irc::string</a> xname(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
 <a name="l00280"></a>00280                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckInvite(user, Ptr));
 <a name="l00281"></a>00281                                         <span class="keywordflow">if</span> (!MOD_RESULT)
 <a name="l00282"></a>00282                                         {
 <a name="l00283"></a>00283                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: channel is +i"</span>);
-<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>))
+<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a>(xname))
 <a name="l00285"></a>00285                                                 {
 <a name="l00286"></a>00286                                                         <span class="comment">/* user was invited to channel */</span>
 <a name="l00287"></a>00287                                                         <span class="comment">/* there may be an optional channel NOTICE here */</span>
 <a name="l00292"></a>00292                                                         <span class="keywordflow">return</span> NULL;
 <a name="l00293"></a>00293                                                 }
 <a name="l00294"></a>00294                                         }
-<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a>(xname);
 <a name="l00296"></a>00296                                 }
 <a name="l00297"></a>00297                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#limit">limit</a>)
 <a name="l00298"></a>00298                                 {
 <a name="l00543"></a>00543 }
 <a name="l00544"></a>00544 
 <a name="l00545"></a>00545 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 4bd98b6e2a5f8b1f64acac99c671cb88c7e217d0..ef2c18660d51fa8f0b7beb6e38bd03d2f1c20846 100644 (file)
@@ -10,7 +10,6 @@
 <h1>channels.cpp File Reference</h1><code>#include &quot;inspircd_config.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&quot;</code><br>
-<code>#include &quot;inspircd_util.h&quot;</code><br>
 <code>#include &lt;unistd.h&gt;</code><br>
 <code>#include &lt;sys/errno.h&gt;</code><br>
 <code>#include &lt;sys/ioctl.h&gt;</code><br>
 <p>
 Include dependency graph for channels.cpp:<p><center><img src="channels_8cpp__incl.gif" border="0" usemap="#channels.cpp_map" alt=""></center>
 <map name="channels.cpp_map">
-<area href="inspircd_8h-source.html" shape="rect" coords="580,665,660,692" alt="">
-<area href="inspircd__io_8h-source.html" shape="rect" coords="712,615,808,641" alt="">
-<area href="globals_8h-source.html" shape="rect" coords="872,767,947,793" alt="">
-<area href="users_8h-source.html" shape="rect" coords="1009,716,1073,743" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="452,868,527,895" alt="">
-<area href="modules_8h-source.html" shape="rect" coords="315,767,397,793" alt="">
-<area href="commands_8h-source.html" shape="rect" coords="860,361,959,388" alt="">
-<area href="message_8h-source.html" shape="rect" coords="867,412,952,439" alt="">
-<area href="mode_8h-source.html" shape="rect" coords="876,108,943,135" alt="">
-<area href="xline_8h-source.html" shape="rect" coords="879,159,940,185" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="168,1020,253,1047" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="313,817,393,844" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="443,919,539,945" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="600,615,675,641" alt="">
+<area href="users_8h-source.html" shape="rect" coords="745,817,809,844" alt="">
+<area href="modules_8h-source.html" shape="rect" coords="596,437,679,464" alt="">
+<area href="ctables_8h-source.html" shape="rect" coords="740,412,815,439" alt="">
+<area href="mode_8h-source.html" shape="rect" coords="604,919,671,945" alt="">
+<area href="commands_8h-source.html" shape="rect" coords="588,1223,687,1249" alt="">
+<area href="message_8h-source.html" shape="rect" coords="595,1273,680,1300" alt="">
+<area href="xline_8h-source.html" shape="rect" coords="607,1172,668,1199" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="168,463,253,489" alt="">
 </map>
 
 <p>
@@ -113,7 +112,7 @@ Include dependency graph for channels.cpp:<p><center><img src="channels_8cpp__in
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00055">55</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.    </td>
+Definition at line <a class="el" href="channels_8cpp-source.html#l00054">54</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.    </td>
   </tr>
 </table>
 <hr><h2>Function Documentation</h2>
@@ -165,99 +164,100 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00055">55</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00195">195</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00151">chanrec::bans</a>, <a class="el" href="channels_8h-source.html#l00147">chanrec::binarymodes</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="channels_8h-source.html#l00028">CM_INVITEONLY</a>, <a class="el" href="channels_8h-source.html#l00027">CM_NOEXTERNAL</a>, <a class="el" href="channels_8h-source.html#l00026">CM_TOPICLOCK</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="modules_8h-source.html#l00089">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00072">userrec::GetFullHost()</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="users_8cpp-source.html#l00096">userrec::IsInvited()</a>, <a class="el" href="channels_8h-source.html#l00143">chanrec::key</a>, <a class="el" href="channels_8h-source.html#l00138">chanrec::limit</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00147">userrec::modes</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
-<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinUserToChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00196"></a>00196 {
-<a name="l00197"></a>00197         <span class="keywordflow">if</span> ((!user) || (!cn))
-<a name="l00198"></a>00198         {
-<a name="l00199"></a>00199                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
-<a name="l00200"></a>00200                 <span class="keywordflow">return</span> 0;
-<a name="l00201"></a>00201         }
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203         <span class="keywordtype">int</span> created = 0;
-<a name="l00204"></a>00204         <span class="keywordtype">char</span> cname[MAXBUF];
-<a name="l00205"></a>00205         <span class="keywordtype">int</span> MOD_RESULT = 0;
-<a name="l00206"></a>00206         strncpy(cname,cn,CHANMAX);
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212         <span class="keywordflow">if</span> (!Ptr)
-<a name="l00213"></a>00213         {
-<a name="l00214"></a>00214                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00215"></a>00215                 {
-<a name="l00216"></a>00216                         MOD_RESULT = 0;
-<a name="l00217"></a>00217                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
-<a name="l00218"></a>00218                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00219"></a>00219                                 <span class="keywordflow">return</span> NULL;
-<a name="l00220"></a>00220                 }
-<a name="l00221"></a>00221                 <span class="comment">/* create a new one */</span>
-<a name="l00222"></a>00222                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
-<a name="l00223"></a>00223                 strlcpy(chanlist[cname]-&gt;name, cname,CHANMAX);
-<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
-<a name="l00225"></a>00225                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00226"></a>00226                 strcpy(chanlist[cname]-&gt;topic, <span class="stringliteral">""</span>);
-<a name="l00227"></a>00227                 strncpy(chanlist[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
-<a name="l00228"></a>00228                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
-<a name="l00229"></a>00229                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
-<a name="l00230"></a>00230                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
-<a name="l00231"></a>00231                 <span class="comment">/* set created to 2 to indicate user</span>
-<a name="l00232"></a>00232 <span class="comment">                 * is the first in the channel</span>
-<a name="l00233"></a>00233 <span class="comment">                 * and should be given ops */</span>
-<a name="l00234"></a>00234                 created = 2;
-<a name="l00235"></a>00235         }
-<a name="l00236"></a>00236         <span class="keywordflow">else</span>
-<a name="l00237"></a>00237         {
-<a name="l00238"></a>00238                 <span class="comment">/* Already on the channel */</span>
-<a name="l00239"></a>00239                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
-<a name="l00240"></a>00240                         <span class="keywordflow">return</span> NULL;
-<a name="l00241"></a>00241 
-<a name="l00242"></a>00242                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
-<a name="l00243"></a>00243                 <span class="comment">// and bans (used by servers)</span>
-<a name="l00244"></a>00244                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00245"></a>00245                 {
-<a name="l00246"></a>00246                         MOD_RESULT = 0;
-<a name="l00247"></a>00247                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
-<a name="l00248"></a>00248                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00249"></a>00249                         {
-<a name="l00250"></a>00250                                 <span class="keywordflow">return</span> NULL;
-<a name="l00251"></a>00251                         }
-<a name="l00252"></a>00252                         <span class="keywordflow">else</span>
-<a name="l00253"></a>00253                         {
-<a name="l00254"></a>00254                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
-<a name="l00255"></a>00255                                 {
-<a name="l00256"></a>00256                                         MOD_RESULT = 0;
-<a name="l00257"></a>00257                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
-<a name="l00258"></a>00258                                         <span class="keywordflow">if</span> (!MOD_RESULT)
-<a name="l00259"></a>00259                                         {
-<a name="l00260"></a>00260                                                 <span class="keywordflow">if</span> (!key)
-<a name="l00261"></a>00261                                                 {
-<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
-<a name="l00263"></a>00263                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00264"></a>00264                                                         <span class="keywordflow">return</span> NULL;
-<a name="l00265"></a>00265                                                 }
-<a name="l00266"></a>00266                                                 <span class="keywordflow">else</span>
-<a name="l00267"></a>00267                                                 {
-<a name="l00268"></a>00268                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
-<a name="l00269"></a>00269                                                         {
-<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
-<a name="l00271"></a>00271                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00272"></a>00272                                                                 <span class="keywordflow">return</span> NULL;
-<a name="l00273"></a>00273                                                         }
-<a name="l00274"></a>00274                                                 }
-<a name="l00275"></a>00275                                         }
-<a name="l00276"></a>00276                                 }
-<a name="l00277"></a>00277                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
-<a name="l00278"></a>00278                                 {
-<a name="l00279"></a>00279                                         MOD_RESULT = 0;
+Definition at line <a class="el" href="channels_8cpp-source.html#l00194">194</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00151">chanrec::bans</a>, <a class="el" href="channels_8h-source.html#l00147">chanrec::binarymodes</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="channels_8h-source.html#l00028">CM_INVITEONLY</a>, <a class="el" href="channels_8h-source.html#l00027">CM_NOEXTERNAL</a>, <a class="el" href="channels_8h-source.html#l00026">CM_TOPICLOCK</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00099">userrec::GetFullHost()</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="users_8cpp-source.html#l00123">userrec::IsInvited()</a>, <a class="el" href="channels_8h-source.html#l00143">chanrec::key</a>, <a class="el" href="channels_8h-source.html#l00138">chanrec::limit</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00151">userrec::modes</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8cpp-source.html#l00148">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00363">Server::JoinUserToChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00195"></a>00195 {
+<a name="l00196"></a>00196         <span class="keywordflow">if</span> ((!user) || (!cn))
+<a name="l00197"></a>00197         {
+<a name="l00198"></a>00198                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
+<a name="l00199"></a>00199                 <span class="keywordflow">return</span> 0;
+<a name="l00200"></a>00200         }
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202         <span class="keywordtype">int</span> created = 0;
+<a name="l00203"></a>00203         <span class="keywordtype">char</span> cname[MAXBUF];
+<a name="l00204"></a>00204         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00205"></a>00205         strncpy(cname,cn,CHANMAX);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211         <span class="keywordflow">if</span> (!Ptr)
+<a name="l00212"></a>00212         {
+<a name="l00213"></a>00213                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00214"></a>00214                 {
+<a name="l00215"></a>00215                         MOD_RESULT = 0;
+<a name="l00216"></a>00216                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
+<a name="l00217"></a>00217                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00218"></a>00218                                 <span class="keywordflow">return</span> NULL;
+<a name="l00219"></a>00219                 }
+<a name="l00220"></a>00220                 <span class="comment">/* create a new one */</span>
+<a name="l00221"></a>00221                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
+<a name="l00222"></a>00222                 strlcpy(chanlist[cname]-&gt;name, cname,CHANMAX);
+<a name="l00223"></a>00223                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
+<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00225"></a>00225                 strcpy(chanlist[cname]-&gt;topic, <span class="stringliteral">""</span>);
+<a name="l00226"></a>00226                 strncpy(chanlist[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00227"></a>00227                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
+<a name="l00228"></a>00228                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
+<a name="l00229"></a>00229                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
+<a name="l00230"></a>00230                 <span class="comment">/* set created to 2 to indicate user</span>
+<a name="l00231"></a>00231 <span class="comment">                 * is the first in the channel</span>
+<a name="l00232"></a>00232 <span class="comment">                 * and should be given ops */</span>
+<a name="l00233"></a>00233                 created = 2;
+<a name="l00234"></a>00234         }
+<a name="l00235"></a>00235         <span class="keywordflow">else</span>
+<a name="l00236"></a>00236         {
+<a name="l00237"></a>00237                 <span class="comment">/* Already on the channel */</span>
+<a name="l00238"></a>00238                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
+<a name="l00239"></a>00239                         <span class="keywordflow">return</span> NULL;
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
+<a name="l00242"></a>00242                 <span class="comment">// and bans (used by servers)</span>
+<a name="l00243"></a>00243                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00244"></a>00244                 {
+<a name="l00245"></a>00245                         MOD_RESULT = 0;
+<a name="l00246"></a>00246                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
+<a name="l00247"></a>00247                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00248"></a>00248                         {
+<a name="l00249"></a>00249                                 <span class="keywordflow">return</span> NULL;
+<a name="l00250"></a>00250                         }
+<a name="l00251"></a>00251                         <span class="keywordflow">else</span>
+<a name="l00252"></a>00252                         {
+<a name="l00253"></a>00253                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
+<a name="l00254"></a>00254                                 {
+<a name="l00255"></a>00255                                         MOD_RESULT = 0;
+<a name="l00256"></a>00256                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
+<a name="l00257"></a>00257                                         <span class="keywordflow">if</span> (!MOD_RESULT)
+<a name="l00258"></a>00258                                         {
+<a name="l00259"></a>00259                                                 <span class="keywordflow">if</span> (!key)
+<a name="l00260"></a>00260                                                 {
+<a name="l00261"></a>00261                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
+<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00263"></a>00263                                                         <span class="keywordflow">return</span> NULL;
+<a name="l00264"></a>00264                                                 }
+<a name="l00265"></a>00265                                                 <span class="keywordflow">else</span>
+<a name="l00266"></a>00266                                                 {
+<a name="l00267"></a>00267                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
+<a name="l00268"></a>00268                                                         {
+<a name="l00269"></a>00269                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
+<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00271"></a>00271                                                                 <span class="keywordflow">return</span> NULL;
+<a name="l00272"></a>00272                                                         }
+<a name="l00273"></a>00273                                                 }
+<a name="l00274"></a>00274                                         }
+<a name="l00275"></a>00275                                 }
+<a name="l00276"></a>00276                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
+<a name="l00277"></a>00277                                 {
+<a name="l00278"></a>00278                                         MOD_RESULT = 0;
+<a name="l00279"></a>00279                                         <a class="code" href="namespaceirc.html#string">irc::string</a> xname(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
 <a name="l00280"></a>00280                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckInvite(user, Ptr));
 <a name="l00281"></a>00281                                         <span class="keywordflow">if</span> (!MOD_RESULT)
 <a name="l00282"></a>00282                                         {
 <a name="l00283"></a>00283                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: channel is +i"</span>);
-<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>))
+<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a>(xname))
 <a name="l00285"></a>00285                                                 {
 <a name="l00286"></a>00286                                                         <span class="comment">/* user was invited to channel */</span>
 <a name="l00287"></a>00287                                                         <span class="comment">/* there may be an optional channel NOTICE here */</span>
@@ -268,7 +268,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinU
 <a name="l00292"></a>00292                                                         <span class="keywordflow">return</span> NULL;
 <a name="l00293"></a>00293                                                 }
 <a name="l00294"></a>00294                                         }
-<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a>(xname);
 <a name="l00296"></a>00296                                 }
 <a name="l00297"></a>00297                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#limit">limit</a>)
 <a name="l00298"></a>00298                                 {
@@ -399,9 +399,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinU
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00401">401</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.
+References <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00369">Server::PartUserFromChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00402"></a>00402 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00368">Server::PartUserFromChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00402"></a>00402 {
 <a name="l00403"></a>00403         <span class="keywordflow">if</span> ((!user) || (!cname))
 <a name="l00404"></a>00404         {
 <a name="l00405"></a>00405                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** del_channel was given an invalid parameter"</span>);
@@ -511,9 +511,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00369">Server::PartU
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00372">372</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="channels_8cpp-source.html#l00167">chanrec::AddUser()</a>, <a class="el" href="channels_8h-source.html#l00254">ucrec::channel</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="channels_8h-source.html#l00133">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00122">chanrec::topic</a>, <a class="el" href="channels_8h-source.html#l00129">chanrec::topicset</a>, <a class="el" href="channels_8h-source.html#l00249">ucrec::uc_modes</a>, <a class="el" href="channels_8h-source.html#l00232">UCMODE_OP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
+References <a class="el" href="channels_8cpp-source.html#l00166">chanrec::AddUser()</a>, <a class="el" href="channels_8h-source.html#l00254">ucrec::channel</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="channels_8h-source.html#l00133">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00122">chanrec::topic</a>, <a class="el" href="channels_8h-source.html#l00129">chanrec::topicset</a>, <a class="el" href="channels_8h-source.html#l00249">ucrec::uc_modes</a>, <a class="el" href="channels_8h-source.html#l00232">UCMODE_OP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00373"></a>00373 {
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00373"></a>00373 {
 <a name="l00374"></a>00374         <span class="keywordflow">if</span> (created == 2)
 <a name="l00375"></a>00375         {
 <a name="l00376"></a>00376                 <span class="comment">/* first user in is given ops */</span>
@@ -592,7 +592,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00459">459</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>, <a class="el" href="modules_8h-source.html#l00038">ACR_DENY</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cstatus()</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>, <a class="el" href="modules_8h-source.html#l00089">FOREACH_RESULT</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00153">userrec::server</a>, <a class="el" href="users_8h-source.html#l00030">STATUS_HOP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00460"></a>00460 {
+References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>, <a class="el" href="modules_8h-source.html#l00038">ACR_DENY</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cstatus()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00157">userrec::server</a>, <a class="el" href="users_8h-source.html#l00032">STATUS_HOP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00460"></a>00460 {
 <a name="l00461"></a>00461         <span class="keywordflow">if</span> ((!src) || (!user) || (!Ptr) || (!reason))
 <a name="l00462"></a>00462         {
 <a name="l00463"></a>00463                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** kick_channel was given an invalid parameter"</span>);
@@ -704,7 +704,7 @@ References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a cl
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Config"></a><!-- doxytag: member="channels.cpp::Config" ref="Config" args="" --><p>
@@ -752,9 +752,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00070">70</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00069">69</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00147">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00146">chanrec::GetModeParameter()</a>, and <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="factory"></a><!-- doxytag: member="channels.cpp::factory" ref="factory" args="" --><p>
@@ -786,7 +786,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00147">chanrec::Get
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="modules_8cpp.html#MODCOUNT">MODCOUNT</a> = -1          </td>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a> = -1          </td>
         </tr>
       </table>
     </td>
@@ -802,9 +802,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00147">chanrec::Get
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00935">935</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00934">934</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00724">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00723">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="modules"></a><!-- doxytag: member="channels.cpp::modules" ref="modules" args="" --><p>
@@ -829,7 +829,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00724">Server::FindM
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00724">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00723">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="TIME"></a><!-- doxytag: member="channels.cpp::TIME" ref="TIME" args="" --><p>
@@ -854,7 +854,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00724">Server::FindM
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WHOWAS_5FMAX"></a><!-- doxytag: member="channels.cpp::WHOWAS_MAX" ref="WHOWAS_5FMAX" args="" --><p>
@@ -863,7 +863,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>          </td>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>          </td>
         </tr>
       </table>
     </td>
@@ -877,7 +877,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WHOWAS_5FSTALE"></a><!-- doxytag: member="channels.cpp::WHOWAS_STALE" ref="WHOWAS_5FSTALE" args="" --><p>
@@ -886,7 +888,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>          </td>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>          </td>
         </tr>
       </table>
     </td>
@@ -900,10 +902,12 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:15 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f6471abe1aa344b94c8c64e0bb78b11f406f8668..820326c3c2c06a6c81de9cf91ebc8e060b7578a1 100644 (file)
@@ -1,12 +1,12 @@
 base referer
-rect $inspircd_8h-source.html 580,665 660,692
-rect $inspircd__io_8h-source.html 712,615 808,641
-rect $globals_8h-source.html 872,767 947,793
-rect $users_8h-source.html 1009,716 1073,743
-rect $ctables_8h-source.html 452,868 527,895
-rect $modules_8h-source.html 315,767 397,793
-rect $commands_8h-source.html 860,361 959,388
-rect $message_8h-source.html 867,412 952,439
-rect $mode_8h-source.html 876,108 943,135
-rect $xline_8h-source.html 879,159 940,185
-rect $typedefs_8h-source.html 168,1020 253,1047
+rect $inspircd_8h-source.html 313,817 393,844
+rect $inspircd__io_8h-source.html 443,919 539,945
+rect $globals_8h-source.html 600,615 675,641
+rect $users_8h-source.html 745,817 809,844
+rect $modules_8h-source.html 596,437 679,464
+rect $ctables_8h-source.html 740,412 815,439
+rect $mode_8h-source.html 604,919 671,945
+rect $commands_8h-source.html 588,1223 687,1249
+rect $message_8h-source.html 595,1273 680,1300
+rect $xline_8h-source.html 607,1172 668,1199
+rect $typedefs_8h-source.html 168,463 253,489
index 319dd1c05db8723e994b7d17e128c943ef911705..880c1637387ce88057a2244b0b2d4fb07c27b8de 100644 (file)
@@ -1 +1 @@
-4f90f86ea2d42fe100213ae570a3e482
\ No newline at end of file
+693bc7a6b868d635e208e839a3f75bab
\ No newline at end of file
index c66267f32cb6c9ac2927e2a75a2de07089929354..71048115e7e6bd309d7a88415c257c1acc9fe9e9 100644 (file)
 <a name="l00263"></a>00263 
 <a name="l00264"></a>00264 <span class="preprocessor">#endif</span>
 <a name="l00265"></a>00265 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bafe033e10f5fcc141ced2734eda7e3f74dc4404..6104b1de2b64e93d327493fd8f163d2aabffc104 100644 (file)
@@ -22,16 +22,16 @@ Include dependency graph for channels.h:<p><center><img src="channels_8h__incl.g
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="channels_8h__dep__incl.gif" border="0" usemap="#channels.hdep_map" alt=""></center>
 <map name="channels.hdep_map">
-<area href="users_8cpp-source.html" shape="rect" coords="407,83,487,109" alt="">
-<area href="users_8h-source.html" shape="rect" coords="144,260,208,287" alt="">
-<area href="commands_8h-source.html" shape="rect" coords="257,57,356,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="665,311,745,337" alt="">
+<area href="users_8h-source.html" shape="rect" coords="144,285,208,312" alt="">
+<area href="commands_8h-source.html" shape="rect" coords="257,108,356,135" alt="">
+<area href="cull__list_8h-source.html" shape="rect" coords="268,159,345,185" alt="">
 <area href="globals_8h-source.html" shape="rect" coords="269,209,344,236" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="404,235,489,261" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="267,108,347,135" alt="">
-<area href="cull__list_8h-source.html" shape="rect" coords="268,311,345,337" alt="">
-<area href="message_8h-source.html" shape="rect" coords="264,361,349,388" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="532,260,617,287" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="404,361,484,388" alt="">
 <area href="mode_8h-source.html" shape="rect" coords="273,412,340,439" alt="">
-<area href="xline_8h-source.html" shape="rect" coords="276,463,337,489" alt="">
+<area href="message_8h-source.html" shape="rect" coords="264,463,349,489" alt="">
+<area href="xline_8h-source.html" shape="rect" coords="276,513,337,540" alt="">
 </map>
 
 <p>
@@ -125,7 +125,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00028">28</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CM_5FMODERATED"></a><!-- doxytag: member="channels.h::CM_MODERATED" ref="CM_5FMODERATED" args="" --><p>
@@ -177,7 +177,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00029">29</a> of
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00027">27</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CM_5FPRIVATE"></a><!-- doxytag: member="channels.h::CM_PRIVATE" ref="CM_5FPRIVATE" args="" --><p>
@@ -254,7 +254,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00030">30</a> of
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00026">26</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="UCMODE_5FFOUNDER"></a><!-- doxytag: member="channels.h::UCMODE_FOUNDER" ref="UCMODE_5FFOUNDER" args="" --><p>
@@ -515,99 +515,100 @@ Definition at line <a class="el" href="channels_8h-source.html#l00097">97</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00195">195</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00151">chanrec::bans</a>, <a class="el" href="channels_8h-source.html#l00147">chanrec::binarymodes</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="channels_8h-source.html#l00028">CM_INVITEONLY</a>, <a class="el" href="channels_8h-source.html#l00027">CM_NOEXTERNAL</a>, <a class="el" href="channels_8h-source.html#l00026">CM_TOPICLOCK</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="modules_8h-source.html#l00089">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00072">userrec::GetFullHost()</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="users_8cpp-source.html#l00096">userrec::IsInvited()</a>, <a class="el" href="channels_8h-source.html#l00143">chanrec::key</a>, <a class="el" href="channels_8h-source.html#l00138">chanrec::limit</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00147">userrec::modes</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
-<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinUserToChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00196"></a>00196 {
-<a name="l00197"></a>00197         <span class="keywordflow">if</span> ((!user) || (!cn))
-<a name="l00198"></a>00198         {
-<a name="l00199"></a>00199                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
-<a name="l00200"></a>00200                 <span class="keywordflow">return</span> 0;
-<a name="l00201"></a>00201         }
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203         <span class="keywordtype">int</span> created = 0;
-<a name="l00204"></a>00204         <span class="keywordtype">char</span> cname[MAXBUF];
-<a name="l00205"></a>00205         <span class="keywordtype">int</span> MOD_RESULT = 0;
-<a name="l00206"></a>00206         strncpy(cname,cn,CHANMAX);
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212         <span class="keywordflow">if</span> (!Ptr)
-<a name="l00213"></a>00213         {
-<a name="l00214"></a>00214                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00215"></a>00215                 {
-<a name="l00216"></a>00216                         MOD_RESULT = 0;
-<a name="l00217"></a>00217                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
-<a name="l00218"></a>00218                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00219"></a>00219                                 <span class="keywordflow">return</span> NULL;
-<a name="l00220"></a>00220                 }
-<a name="l00221"></a>00221                 <span class="comment">/* create a new one */</span>
-<a name="l00222"></a>00222                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
-<a name="l00223"></a>00223                 strlcpy(chanlist[cname]-&gt;name, cname,CHANMAX);
-<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
-<a name="l00225"></a>00225                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00226"></a>00226                 strcpy(chanlist[cname]-&gt;topic, <span class="stringliteral">""</span>);
-<a name="l00227"></a>00227                 strncpy(chanlist[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
-<a name="l00228"></a>00228                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
-<a name="l00229"></a>00229                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
-<a name="l00230"></a>00230                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
-<a name="l00231"></a>00231                 <span class="comment">/* set created to 2 to indicate user</span>
-<a name="l00232"></a>00232 <span class="comment">                 * is the first in the channel</span>
-<a name="l00233"></a>00233 <span class="comment">                 * and should be given ops */</span>
-<a name="l00234"></a>00234                 created = 2;
-<a name="l00235"></a>00235         }
-<a name="l00236"></a>00236         <span class="keywordflow">else</span>
-<a name="l00237"></a>00237         {
-<a name="l00238"></a>00238                 <span class="comment">/* Already on the channel */</span>
-<a name="l00239"></a>00239                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
-<a name="l00240"></a>00240                         <span class="keywordflow">return</span> NULL;
-<a name="l00241"></a>00241 
-<a name="l00242"></a>00242                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
-<a name="l00243"></a>00243                 <span class="comment">// and bans (used by servers)</span>
-<a name="l00244"></a>00244                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
-<a name="l00245"></a>00245                 {
-<a name="l00246"></a>00246                         MOD_RESULT = 0;
-<a name="l00247"></a>00247                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
-<a name="l00248"></a>00248                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
-<a name="l00249"></a>00249                         {
-<a name="l00250"></a>00250                                 <span class="keywordflow">return</span> NULL;
-<a name="l00251"></a>00251                         }
-<a name="l00252"></a>00252                         <span class="keywordflow">else</span>
-<a name="l00253"></a>00253                         {
-<a name="l00254"></a>00254                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
-<a name="l00255"></a>00255                                 {
-<a name="l00256"></a>00256                                         MOD_RESULT = 0;
-<a name="l00257"></a>00257                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
-<a name="l00258"></a>00258                                         <span class="keywordflow">if</span> (!MOD_RESULT)
-<a name="l00259"></a>00259                                         {
-<a name="l00260"></a>00260                                                 <span class="keywordflow">if</span> (!key)
-<a name="l00261"></a>00261                                                 {
-<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
-<a name="l00263"></a>00263                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00264"></a>00264                                                         <span class="keywordflow">return</span> NULL;
-<a name="l00265"></a>00265                                                 }
-<a name="l00266"></a>00266                                                 <span class="keywordflow">else</span>
-<a name="l00267"></a>00267                                                 {
-<a name="l00268"></a>00268                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
-<a name="l00269"></a>00269                                                         {
-<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
-<a name="l00271"></a>00271                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00272"></a>00272                                                                 <span class="keywordflow">return</span> NULL;
-<a name="l00273"></a>00273                                                         }
-<a name="l00274"></a>00274                                                 }
-<a name="l00275"></a>00275                                         }
-<a name="l00276"></a>00276                                 }
-<a name="l00277"></a>00277                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
-<a name="l00278"></a>00278                                 {
-<a name="l00279"></a>00279                                         MOD_RESULT = 0;
+Definition at line <a class="el" href="channels_8cpp-source.html#l00194">194</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00151">chanrec::bans</a>, <a class="el" href="channels_8h-source.html#l00147">chanrec::binarymodes</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="channels_8h-source.html#l00028">CM_INVITEONLY</a>, <a class="el" href="channels_8h-source.html#l00027">CM_NOEXTERNAL</a>, <a class="el" href="channels_8h-source.html#l00026">CM_TOPICLOCK</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00099">userrec::GetFullHost()</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="users_8cpp-source.html#l00123">userrec::IsInvited()</a>, <a class="el" href="channels_8h-source.html#l00143">chanrec::key</a>, <a class="el" href="channels_8h-source.html#l00138">chanrec::limit</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00151">userrec::modes</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8cpp-source.html#l00148">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00363">Server::JoinUserToChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00195"></a>00195 {
+<a name="l00196"></a>00196         <span class="keywordflow">if</span> ((!user) || (!cn))
+<a name="l00197"></a>00197         {
+<a name="l00198"></a>00198                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** add_channel was given an invalid parameter"</span>);
+<a name="l00199"></a>00199                 <span class="keywordflow">return</span> 0;
+<a name="l00200"></a>00200         }
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202         <span class="keywordtype">int</span> created = 0;
+<a name="l00203"></a>00203         <span class="keywordtype">char</span> cname[MAXBUF];
+<a name="l00204"></a>00204         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00205"></a>00205         strncpy(cname,cn,CHANMAX);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,cname);
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209         <a class="code" href="classchanrec.html">chanrec</a>* Ptr = <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(cname);
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211         <span class="keywordflow">if</span> (!Ptr)
+<a name="l00212"></a>00212         {
+<a name="l00213"></a>00213                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00214"></a>00214                 {
+<a name="l00215"></a>00215                         MOD_RESULT = 0;
+<a name="l00216"></a>00216                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,NULL,cname));
+<a name="l00217"></a>00217                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00218"></a>00218                                 <span class="keywordflow">return</span> NULL;
+<a name="l00219"></a>00219                 }
+<a name="l00220"></a>00220                 <span class="comment">/* create a new one */</span>
+<a name="l00221"></a>00221                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname] = <span class="keyword">new</span> <a class="code" href="classchanrec.html">chanrec</a>();
+<a name="l00222"></a>00222                 strlcpy(chanlist[cname]-&gt;name, cname,CHANMAX);
+<a name="l00223"></a>00223                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;binarymodes = <a class="code" href="channels_8h.html#CM_5FTOPICLOCK">CM_TOPICLOCK</a> | <a class="code" href="channels_8h.html#CM_5FNOEXTERNAL">CM_NOEXTERNAL</a>;
+<a name="l00224"></a>00224                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;created = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00225"></a>00225                 strcpy(chanlist[cname]-&gt;topic, <span class="stringliteral">""</span>);
+<a name="l00226"></a>00226                 strncpy(chanlist[cname]-&gt;setby, user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00227"></a>00227                 <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname]-&gt;topicset = 0;
+<a name="l00228"></a>00228                 Ptr = <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>[cname];
+<a name="l00229"></a>00229                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: created: %s"</span>,cname);
+<a name="l00230"></a>00230                 <span class="comment">/* set created to 2 to indicate user</span>
+<a name="l00231"></a>00231 <span class="comment">                 * is the first in the channel</span>
+<a name="l00232"></a>00232 <span class="comment">                 * and should be given ops */</span>
+<a name="l00233"></a>00233                 created = 2;
+<a name="l00234"></a>00234         }
+<a name="l00235"></a>00235         <span class="keywordflow">else</span>
+<a name="l00236"></a>00236         {
+<a name="l00237"></a>00237                 <span class="comment">/* Already on the channel */</span>
+<a name="l00238"></a>00238                 <span class="keywordflow">if</span> (<a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(user,Ptr))
+<a name="l00239"></a>00239                         <span class="keywordflow">return</span> NULL;
+<a name="l00240"></a>00240 
+<a name="l00241"></a>00241                 <span class="comment">// remote users are allowed us to bypass channel modes</span>
+<a name="l00242"></a>00242                 <span class="comment">// and bans (used by servers)</span>
+<a name="l00243"></a>00243                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00244"></a>00244                 {
+<a name="l00245"></a>00245                         MOD_RESULT = 0;
+<a name="l00246"></a>00246                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreJoin(user,Ptr,cname));
+<a name="l00247"></a>00247                         <span class="keywordflow">if</span> (MOD_RESULT == 1)
+<a name="l00248"></a>00248                         {
+<a name="l00249"></a>00249                                 <span class="keywordflow">return</span> NULL;
+<a name="l00250"></a>00250                         }
+<a name="l00251"></a>00251                         <span class="keywordflow">else</span>
+<a name="l00252"></a>00252                         {
+<a name="l00253"></a>00253                                 <span class="keywordflow">if</span> (*Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>)
+<a name="l00254"></a>00254                                 {
+<a name="l00255"></a>00255                                         MOD_RESULT = 0;
+<a name="l00256"></a>00256                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckKey(user, Ptr, key ? key : <span class="stringliteral">""</span>));
+<a name="l00257"></a>00257                                         <span class="keywordflow">if</span> (!MOD_RESULT)
+<a name="l00258"></a>00258                                         {
+<a name="l00259"></a>00259                                                 <span class="keywordflow">if</span> (!key)
+<a name="l00260"></a>00260                                                 {
+<a name="l00261"></a>00261                                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: no key given in JOIN"</span>);
+<a name="l00262"></a>00262                                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Requires key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00263"></a>00263                                                         <span class="keywordflow">return</span> NULL;
+<a name="l00264"></a>00264                                                 }
+<a name="l00265"></a>00265                                                 <span class="keywordflow">else</span>
+<a name="l00266"></a>00266                                                 {
+<a name="l00267"></a>00267                                                         <span class="keywordflow">if</span> (strcasecmp(key,Ptr-&gt;<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>))
+<a name="l00268"></a>00268                                                         {
+<a name="l00269"></a>00269                                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: bad key given in JOIN"</span>);
+<a name="l00270"></a>00270                                                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"475 %s %s :Cannot join channel (Incorrect key)"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00271"></a>00271                                                                 <span class="keywordflow">return</span> NULL;
+<a name="l00272"></a>00272                                                         }
+<a name="l00273"></a>00273                                                 }
+<a name="l00274"></a>00274                                         }
+<a name="l00275"></a>00275                                 }
+<a name="l00276"></a>00276                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#binarymodes">binarymodes</a> &amp; <a class="code" href="channels_8h.html#CM_5FINVITEONLY">CM_INVITEONLY</a>)
+<a name="l00277"></a>00277                                 {
+<a name="l00278"></a>00278                                         MOD_RESULT = 0;
+<a name="l00279"></a>00279                                         <a class="code" href="namespaceirc.html#string">irc::string</a> xname(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
 <a name="l00280"></a>00280                                         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnCheckInvite(user, Ptr));
 <a name="l00281"></a>00281                                         <span class="keywordflow">if</span> (!MOD_RESULT)
 <a name="l00282"></a>00282                                         {
 <a name="l00283"></a>00283                                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"add_channel: channel is +i"</span>);
-<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>))
+<a name="l00284"></a>00284                                                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a>(xname))
 <a name="l00285"></a>00285                                                 {
 <a name="l00286"></a>00286                                                         <span class="comment">/* user was invited to channel */</span>
 <a name="l00287"></a>00287                                                         <span class="comment">/* there may be an optional channel NOTICE here */</span>
@@ -618,7 +619,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinU
 <a name="l00292"></a>00292                                                         <span class="keywordflow">return</span> NULL;
 <a name="l00293"></a>00293                                                 }
 <a name="l00294"></a>00294                                         }
-<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00295"></a>00295                                         user-&gt;<a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a>(xname);
 <a name="l00296"></a>00296                                 }
 <a name="l00297"></a>00297                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#limit">limit</a>)
 <a name="l00298"></a>00298                                 {
@@ -749,9 +750,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00364">Server::JoinU
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00401">401</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.
+References <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00369">Server::PartUserFromChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00402"></a>00402 {
+Referenced by <a class="el" href="modules_8cpp-source.html#l00368">Server::PartUserFromChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00402"></a>00402 {
 <a name="l00403"></a>00403         <span class="keywordflow">if</span> ((!user) || (!cname))
 <a name="l00404"></a>00404         {
 <a name="l00405"></a>00405                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** del_channel was given an invalid parameter"</span>);
@@ -861,7 +862,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00369">Server::PartU
 <p>
 Definition at line <a class="el" href="channels_8cpp-source.html#l00459">459</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>, <a class="el" href="modules_8h-source.html#l00038">ACR_DENY</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cstatus()</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00030">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>, <a class="el" href="modules_8h-source.html#l00089">FOREACH_RESULT</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00153">userrec::server</a>, <a class="el" href="users_8h-source.html#l00030">STATUS_HOP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00460"></a>00460 {
+References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>, <a class="el" href="modules_8h-source.html#l00038">ACR_DENY</a>, <a class="el" href="channels_8cpp.html#chanlist">chanlist</a>, <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cstatus()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00031">DEFAULT</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>, <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00157">userrec::server</a>, <a class="el" href="users_8h-source.html#l00032">STATUS_HOP</a>, <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00460"></a>00460 {
 <a name="l00461"></a>00461         <span class="keywordflow">if</span> ((!src) || (!user) || (!Ptr) || (!reason))
 <a name="l00462"></a>00462         {
 <a name="l00463"></a>00463                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEFAULT">DEFAULT</a>,<span class="stringliteral">"*** BUG *** kick_channel was given an invalid parameter"</span>);
@@ -950,7 +951,7 @@ References <a class="el" href="modules_8h-source.html#l00040">AC_KICK</a>, <a cl
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:15 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index de7344cbf6ddf4fd8fa72af595e86e717510c7fc..4c89fda7831c7936db09f479f2b56402fbb76e18 100644 (file)
@@ -1,11 +1,11 @@
 base referer
-rect $users_8cpp-source.html 407,83 487,109
-rect $users_8h-source.html 144,260 208,287
-rect $commands_8h-source.html 257,57 356,84
+rect $users_8cpp-source.html 665,311 745,337
+rect $users_8h-source.html 144,285 208,312
+rect $commands_8h-source.html 257,108 356,135
+rect $cull__list_8h-source.html 268,159 345,185
 rect $globals_8h-source.html 269,209 344,236
-rect $typedefs_8h-source.html 404,235 489,261
-rect $inspircd_8h-source.html 267,108 347,135
-rect $cull__list_8h-source.html 268,311 345,337
-rect $message_8h-source.html 264,361 349,388
+rect $typedefs_8h-source.html 532,260 617,287
+rect $inspircd_8h-source.html 404,361 484,388
 rect $mode_8h-source.html 273,412 340,439
-rect $xline_8h-source.html 276,463 337,489
+rect $message_8h-source.html 264,463 349,489
+rect $xline_8h-source.html 276,513 337,540
index 2578e8764bba72a45539c531995d859fad7f3357..d9289d4a05680590eedbabbb5bc37d6580d4689b 100644 (file)
@@ -1 +1 @@
-de274c87a015c43131b3ccf72e93a260
\ No newline at end of file
+0f9059d2ac5956aa247c0791f634c13e
\ No newline at end of file
index 3771e8c941780775e6da9834530240393b0ef7bf..bef9c92e235f50f1d0928873dd7999050d29a9c7 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classAdmin.html#Name">Name</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classAdmin.html#Nick">Nick</a></td><td><a class="el" href="classAdmin.html">Admin</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a6f132e7d28900537551ecacc1818755d27c5811..9662e530c4c19f259df5365574eaa3e2d1af2da8 100644 (file)
@@ -38,7 +38,7 @@ It is constructed by class <a class="el" href="classServer.html">Server</a>, and
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00125">125</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00143">143</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29"></a><!-- doxytag: member="Admin::Admin" ref="Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29" args="(std::string name, std::string email, std::string nick)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -81,7 +81,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00125">125</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00163">163</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00163"></a>00163 : <a class="code" href="classAdmin.html#Name">Name</a>(name), <a class="code" href="classAdmin.html#Email">Email</a>(email), <a class="code" href="classAdmin.html#Nick">Nick</a>(nick) { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00162">162</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00162"></a>00162 : <a class="code" href="classAdmin.html#Name">Name</a>(name), <a class="code" href="classAdmin.html#Email">Email</a>(email), <a class="code" href="classAdmin.html#Nick">Nick</a>(nick) { };
 </pre></div>
 <p>
     </td>
@@ -110,7 +110,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00163">163</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00128">128</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00146">146</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Name"></a><!-- doxytag: member="Admin::Name" ref="Name" args="" --><p>
@@ -135,7 +135,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00128">128</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00128">128</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00146">146</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Nick"></a><!-- doxytag: member="Admin::Nick" ref="Nick" args="" --><p>
@@ -160,12 +160,12 @@ Definition at line <a class="el" href="modules_8h-source.html#l00128">128</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00128">128</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00146">146</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c7d9059a9c82afb7fccff33c7d4cba3de31691d9..68e1daf96600e65c9697682e4d51625b9b4b2cf4 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#_7EHostItem_28_29">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 06957a4be36473bac8213529aad460d0fca2782c..0712af48116afdfdc87da106d1e495c4edaa8365 100644 (file)
@@ -30,7 +30,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00054">54</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 66273bbab7fcb20742b4a427b5315806b17ac6f5..a5b2bf97315313f3d69413f97b56fbae5450f846 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">operator|</a>(BoolSet other)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classBoolSet.html#Set_28int_20number_29">Set</a>(int number)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classBoolSet.html#Unset_28int_20number_29">Unset</a>(int number)</td><td><a class="el" href="classBoolSet.html">BoolSet</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b88883b5e088591c7a33576431788fb4fc0317df..a6f782227820b4763808d9036fbcfbf702ecb7aa 100644 (file)
@@ -405,7 +405,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00106">106</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2dfac88f77d44c8a504b374dd78b060e494133f8..2704d05d57156d40c86d611dc8aef1cc3bd7705d 100644 (file)
@@ -24,7 +24,7 @@
   <tr class="memlist"><td><a class="el" href="classConfigReader.html#Verify_28_29">Verify</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>()</td><td><a class="el" href="classConfigReader.html">ConfigReader</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 88ea934ac34b9f329c37993090efd8c18ba35f11..c4d459fb98f238ae7cc5ed777174f4041f10267a 100644 (file)
@@ -73,7 +73,7 @@ It may either be instantiated with one parameter or none. Constructing the class
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01532">1532</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01550">1550</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="ConfigReader_28_29"></a><!-- doxytag: member="ConfigReader::ConfigReader" ref="ConfigReader_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -102,16 +102,16 @@ 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#l00736">736</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00735">735</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01523">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01545">error</a>, <a class="el" href="modules_8h-source.html#l01541">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01544">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00737"></a>00737 {
-<a name="l00738"></a>00738         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00739"></a>00739         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00740"></a>00740         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00741"></a>00741         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-<a name="l00742"></a>00742         <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00743"></a>00743                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00744"></a>00744 }
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01541">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01563">error</a>, <a class="el" href="modules_8h-source.html#l01559">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01562">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00736"></a>00736 {
+<a name="l00737"></a>00737         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00738"></a>00738         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00739"></a>00739         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00740"></a>00740         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+<a name="l00741"></a>00741         <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00742"></a>00742                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00743"></a>00743 }
 </pre></div>
 <p>
     </td>
@@ -146,16 +146,16 @@ 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#l00756">756</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00755">755</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01523">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01545">error</a>, <a class="el" href="modules_8h-source.html#l01541">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01544">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00757"></a>00757 {
-<a name="l00758"></a>00758         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00759"></a>00759         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00760"></a>00760         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00761"></a>00761         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
-<a name="l00762"></a>00762         <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00763"></a>00763                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00764"></a>00764 };
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig::ClearStack()</a>, <a class="el" href="modules_8h-source.html#l01541">CONF_FILE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01563">error</a>, <a class="el" href="modules_8h-source.html#l01559">errorlog</a>, <a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">ServerConfig::LoadConf()</a>, and <a class="el" href="modules_8h-source.html#l01562">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00756"></a>00756 {
+<a name="l00757"></a>00757         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00758"></a>00758         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00759"></a>00759         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00760"></a>00760         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
+<a name="l00761"></a>00761         <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00762"></a>00762                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00763"></a>00763 };
 </pre></div>
 <p>
     </td>
@@ -189,14 +189,14 @@ Default destructor.
 <p>
 This method destroys the ConfigReader class.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00747">747</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00746">746</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, and <a class="el" href="modules_8h-source.html#l01541">errorlog</a>.<div class="fragment"><pre class="fragment"><a name="l00748"></a>00748 {
-<a name="l00749"></a>00749         <span class="keywordflow">if</span> (this-&gt;cache)
-<a name="l00750"></a>00750                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l00751"></a>00751         <span class="keywordflow">if</span> (this-&gt;errorlog)
-<a name="l00752"></a>00752                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l00753"></a>00753 }
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, and <a class="el" href="modules_8h-source.html#l01559">errorlog</a>.<div class="fragment"><pre class="fragment"><a name="l00747"></a>00747 {
+<a name="l00748"></a>00748         <span class="keywordflow">if</span> (this-&gt;cache)
+<a name="l00749"></a>00749                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l00750"></a>00750         <span class="keywordflow">if</span> (this-&gt;errorlog)
+<a name="l00751"></a>00751                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l00752"></a>00752 }
 </pre></div>
 <p>
     </td>
@@ -241,38 +241,38 @@ Dumps the list of errors in a config file to an output location.
 <p>
 If bail is true, then the program will abort. If bail is false and user points to a valid user record, the error report will be spooled to the given user by means of NOTICE. if bool is false AND user is false, the error report will be spooled to all opers by means of a NOTICE to all opers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00835">835</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01541">errorlog</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00836"></a>00836 {
-<a name="l00837"></a>00837         <span class="keywordflow">if</span> (bail)
-<a name="l00838"></a>00838         {
-<a name="l00839"></a>00839                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
-<a name="l00840"></a>00840                 exit(0);
-<a name="l00841"></a>00841         }
-<a name="l00842"></a>00842         <span class="keywordflow">else</span>
-<a name="l00843"></a>00843         {
-<a name="l00844"></a>00844                 <span class="keywordtype">char</span> dataline[1024];
-<a name="l00845"></a>00845                 <span class="keywordflow">if</span> (user)
-<a name="l00846"></a>00846                 {
-<a name="l00847"></a>00847                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00848"></a>00848                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00849"></a>00849                         {
-<a name="l00850"></a>00850                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00851"></a>00851                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
-<a name="l00852"></a>00852                         }
-<a name="l00853"></a>00853                 }
-<a name="l00854"></a>00854                 <span class="keywordflow">else</span>
-<a name="l00855"></a>00855                 {
-<a name="l00856"></a>00856                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00857"></a>00857                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00858"></a>00858                         {
-<a name="l00859"></a>00859                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00860"></a>00860                                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline);
-<a name="l00861"></a>00861                         }
-<a name="l00862"></a>00862                 }
-<a name="l00863"></a>00863                 <span class="keywordflow">return</span>;
-<a name="l00864"></a>00864         }
-<a name="l00865"></a>00865 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00834">834</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01559">errorlog</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00835"></a>00835 {
+<a name="l00836"></a>00836         <span class="keywordflow">if</span> (bail)
+<a name="l00837"></a>00837         {
+<a name="l00838"></a>00838                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
+<a name="l00839"></a>00839                 exit(0);
+<a name="l00840"></a>00840         }
+<a name="l00841"></a>00841         <span class="keywordflow">else</span>
+<a name="l00842"></a>00842         {
+<a name="l00843"></a>00843                 <span class="keywordtype">char</span> dataline[1024];
+<a name="l00844"></a>00844                 <span class="keywordflow">if</span> (user)
+<a name="l00845"></a>00845                 {
+<a name="l00846"></a>00846                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00847"></a>00847                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00848"></a>00848                         {
+<a name="l00849"></a>00849                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00850"></a>00850                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
+<a name="l00851"></a>00851                         }
+<a name="l00852"></a>00852                 }
+<a name="l00853"></a>00853                 <span class="keywordflow">else</span>
+<a name="l00854"></a>00854                 {
+<a name="l00855"></a>00855                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00856"></a>00856                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00857"></a>00857                         {
+<a name="l00858"></a>00858                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00859"></a>00859                                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline);
+<a name="l00860"></a>00860                         }
+<a name="l00861"></a>00861                 }
+<a name="l00862"></a>00862                 <span class="keywordflow">return</span>;
+<a name="l00863"></a>00863         }
+<a name="l00864"></a>00864 }
 </pre></div>
 <p>
     </td>
@@ -307,11 +307,11 @@ 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#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">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#l00868">868</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00867">867</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, and <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig::EnumConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00869"></a>00869 {
-<a name="l00870"></a>00870         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
-<a name="l00871"></a>00871 }
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, and <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig::EnumConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00868"></a>00868 {
+<a name="l00869"></a>00869         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
+<a name="l00870"></a>00870 }
 </pre></div>
 <p>
     </td>
@@ -355,11 +355,11 @@ Returns the number of items within a tag.
 <p>
 For example if the tag was &lt;test tag="blah" data="foo"&gt; then this function would return 2. Spaces and newlines both qualify as valid seperators between values.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00873">873</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00872">872</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, and <a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">ServerConfig::EnumValues()</a>.<div class="fragment"><pre class="fragment"><a name="l00874"></a>00874 {
-<a name="l00875"></a>00875         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
-<a name="l00876"></a>00876 }
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, and <a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">ServerConfig::EnumValues()</a>.<div class="fragment"><pre class="fragment"><a name="l00873"></a>00873 {
+<a name="l00874"></a>00874         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
+<a name="l00875"></a>00875 }
 </pre></div>
 <p>
     </td>
@@ -393,13 +393,13 @@ Returns the last error to occur.
 <p>
 Valid errors can be found by looking in <a class="el" href="modules_8h.html">modules.h</a>. Any nonzero value indicates an error condition. A call to <a class="el" href="classConfigReader.html#GetError_28_29">GetError()</a> resets the error flag back to 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00828">828</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00827">827</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01545">error</a>.<div class="fragment"><pre class="fragment"><a name="l00829"></a>00829 {
-<a name="l00830"></a>00830         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l00831"></a>00831         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
-<a name="l00832"></a>00832         <span class="keywordflow">return</span> olderr;
-<a name="l00833"></a>00833 }
+References <a class="el" href="modules_8h-source.html#l01563">error</a>.<div class="fragment"><pre class="fragment"><a name="l00828"></a>00828 {
+<a name="l00829"></a>00829         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l00830"></a>00830         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
+<a name="l00831"></a>00831         <span class="keywordflow">return</span> olderr;
+<a name="l00832"></a>00832 }
 </pre></div>
 <p>
     </td>
@@ -449,23 +449,23 @@ Retrieves a boolean value from the config file.
 <p>
 This method retrieves a boolean value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. The values "1", "yes" and "true" in the config file count as true to ReadFlag, and any other value counts as false.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00782">782</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, <a class="el" href="modules_8h-source.html#l01522">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01545">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00783"></a>00783 {
-<a name="l00784"></a>00784         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00785"></a>00785         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00786"></a>00786         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00787"></a>00787         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00788"></a>00788         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00789"></a>00789         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00790"></a>00790         <span class="keywordflow">if</span> (!res)
-<a name="l00791"></a>00791         {
-<a name="l00792"></a>00792                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00793"></a>00793                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00794"></a>00794         }
-<a name="l00795"></a>00795         <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
-<a name="l00796"></a>00796         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
-<a name="l00797"></a>00797 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00781">781</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, <a class="el" href="modules_8h-source.html#l01540">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01563">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00782"></a>00782 {
+<a name="l00783"></a>00783         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00784"></a>00784         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00785"></a>00785         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00786"></a>00786         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00787"></a>00787         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00788"></a>00788         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00789"></a>00789         <span class="keywordflow">if</span> (!res)
+<a name="l00790"></a>00790         {
+<a name="l00791"></a>00791                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00792"></a>00792                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00793"></a>00793         }
+<a name="l00794"></a>00794         <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
+<a name="l00795"></a>00795         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
+<a name="l00796"></a>00796 }
 </pre></div>
 <p>
     </td>
@@ -521,35 +521,35 @@ Retrieves an integer value from the config file.
 <p>
 This method retrieves an integer value from the config file. Where multiple copies of the tag exist in the config file, index indicates which of the values to retrieve. Any invalid integer values in the tag will cause the objects error value to be set, and any call to <a class="el" href="classConfigReader.html#GetError_28_29">GetError()</a> will return CONF_INVALID_NUMBER to be returned. needs_unsigned is set if the number must be unsigned. If a signed number is placed into a tag which is specified unsigned, 0 will be returned and <a class="el" href="classConfigReader.html#GetError_28_29">GetError()</a> will return CONF_NOT_UNSIGNED
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00799">799</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, <a class="el" href="modules_8h-source.html#l01520">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01521">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01522">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01545">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00800"></a>00800 {
-<a name="l00801"></a>00801         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00802"></a>00802         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00803"></a>00803         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00804"></a>00804         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00805"></a>00805         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00806"></a>00806         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00807"></a>00807         <span class="keywordflow">if</span> (!res)
-<a name="l00808"></a>00808         {
-<a name="l00809"></a>00809                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00810"></a>00810                 <span class="keywordflow">return</span> 0;
-<a name="l00811"></a>00811         }
-<a name="l00812"></a>00812         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
-<a name="l00813"></a>00813         {
-<a name="l00814"></a>00814                 <span class="keywordflow">if</span> (!isdigit(val[i]))
-<a name="l00815"></a>00815                 {
-<a name="l00816"></a>00816                         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
-<a name="l00817"></a>00817                         <span class="keywordflow">return</span> 0;
-<a name="l00818"></a>00818                 }
-<a name="l00819"></a>00819         }
-<a name="l00820"></a>00820         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-<a name="l00821"></a>00821         {
-<a name="l00822"></a>00822                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
-<a name="l00823"></a>00823                 <span class="keywordflow">return</span> 0;
-<a name="l00824"></a>00824         }
-<a name="l00825"></a>00825         <span class="keywordflow">return</span> atoi(val);
-<a name="l00826"></a>00826 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00798">798</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, <a class="el" href="modules_8h-source.html#l01538">CONF_NOT_A_NUMBER</a>, <a class="el" href="modules_8h-source.html#l01539">CONF_NOT_UNSIGNED</a>, <a class="el" href="modules_8h-source.html#l01540">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01563">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00799"></a>00799 {
+<a name="l00800"></a>00800         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00801"></a>00801         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00802"></a>00802         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00803"></a>00803         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00804"></a>00804         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00805"></a>00805         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00806"></a>00806         <span class="keywordflow">if</span> (!res)
+<a name="l00807"></a>00807         {
+<a name="l00808"></a>00808                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00809"></a>00809                 <span class="keywordflow">return</span> 0;
+<a name="l00810"></a>00810         }
+<a name="l00811"></a>00811         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+<a name="l00812"></a>00812         {
+<a name="l00813"></a>00813                 <span class="keywordflow">if</span> (!isdigit(val[i]))
+<a name="l00814"></a>00814                 {
+<a name="l00815"></a>00815                         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
+<a name="l00816"></a>00816                         <span class="keywordflow">return</span> 0;
+<a name="l00817"></a>00817                 }
+<a name="l00818"></a>00818         }
+<a name="l00819"></a>00819         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+<a name="l00820"></a>00820         {
+<a name="l00821"></a>00821                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
+<a name="l00822"></a>00822                 <span class="keywordflow">return</span> 0;
+<a name="l00823"></a>00823         }
+<a name="l00824"></a>00824         <span class="keywordflow">return</span> atoi(val);
+<a name="l00825"></a>00825 }
 </pre></div>
 <p>
     </td>
@@ -599,22 +599,22 @@ 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#l00766">766</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01540">cache</a>, <a class="el" href="modules_8h-source.html#l01522">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01545">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00767"></a>00767 {
-<a name="l00768"></a>00768         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00769"></a>00769         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00770"></a>00770         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00771"></a>00771         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00772"></a>00772         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00773"></a>00773         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00774"></a>00774         <span class="keywordflow">if</span> (!res)
-<a name="l00775"></a>00775         {
-<a name="l00776"></a>00776                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00777"></a>00777                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00778"></a>00778         }
-<a name="l00779"></a>00779         <span class="keywordflow">return</span> val;
-<a name="l00780"></a>00780 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00765">765</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01558">cache</a>, <a class="el" href="modules_8h-source.html#l01540">CONF_VALUE_NOT_FOUND</a>, <a class="el" href="modules_8h-source.html#l01563">error</a>, and <a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ServerConfig::ReadConf()</a>.<div class="fragment"><pre class="fragment"><a name="l00766"></a>00766 {
+<a name="l00767"></a>00767         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00768"></a>00768         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00769"></a>00769         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00770"></a>00770         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00771"></a>00771         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00772"></a>00772         <span class="keywordtype">int</span> res = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00773"></a>00773         <span class="keywordflow">if</span> (!res)
+<a name="l00774"></a>00774         {
+<a name="l00775"></a>00775                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00776"></a>00776                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00777"></a>00777         }
+<a name="l00778"></a>00778         <span class="keywordflow">return</span> val;
+<a name="l00779"></a>00779 }
 </pre></div>
 <p>
     </td>
@@ -648,11 +648,11 @@ Returns true if a config file is valid.
 <p>
 This method is partially implemented and will only return false if the config file does not exist or could not be opened.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00878">878</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00877">877</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01544">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00879"></a>00879 {
-<a name="l00880"></a>00880         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l00881"></a>00881 }
+References <a class="el" href="modules_8h-source.html#l01562">readerror</a>.<div class="fragment"><pre class="fragment"><a name="l00878"></a>00878 {
+<a name="l00879"></a>00879         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l00880"></a>00880 }
 </pre></div>
 <p>
     </td>
@@ -683,9 +683,9 @@ The contents of the configuration file This protected member should never be acc
 <p>
 It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01540">1540</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01558">1558</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#l00736">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00868">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00873">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00782">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00799">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00766">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00747">~ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00867">Enumerate()</a>, <a class="el" href="modules_8cpp-source.html#l00872">EnumerateValues()</a>, <a class="el" href="modules_8cpp-source.html#l00781">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00798">ReadInteger()</a>, <a class="el" href="modules_8cpp-source.html#l00765">ReadValue()</a>, and <a class="el" href="modules_8cpp-source.html#l00746">~ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="error"></a><!-- doxytag: member="ConfigReader::error" ref="error" args="" --><p>
@@ -710,9 +710,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00736">ConfigReader(
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01545">1545</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01563">1563</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#l00736">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00828">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00782">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00799">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00766">ReadValue()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00827">GetError()</a>, <a class="el" href="modules_8cpp-source.html#l00781">ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00798">ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00765">ReadValue()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="errorlog"></a><!-- doxytag: member="ConfigReader::errorlog" ref="errorlog" args="" --><p>
@@ -737,9 +737,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00736">ConfigReader(
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01541">1541</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01559">1559</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#l00736">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00835">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00747">~ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader()</a>, <a class="el" href="modules_8cpp-source.html#l00834">DumpErrors()</a>, and <a class="el" href="modules_8cpp-source.html#l00746">~ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="readerror"></a><!-- doxytag: member="ConfigReader::readerror" ref="readerror" args="" --><p>
@@ -766,14 +766,14 @@ Used to store errors.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01544">1544</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01562">1562</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#l00736">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00878">Verify()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00877">Verify()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 611aad790b150ed81b7c2918e2a4a770f2c7f19a..8c1fc24c28736b6a34c52bbe126534665919bb0f 100644 (file)
@@ -19,7 +19,7 @@
   <tr class="memlist"><td><a class="el" href="classConnectClass.html#threshold">threshold</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classConnectClass.html#type">type</a></td><td><a class="el" href="classConnectClass.html">ConnectClass</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 181775c1ef9628319cbdef73382b9caaecfad6f6..16a2a19a1b45ee13787f15a81f84fb524af5ed59 100644 (file)
@@ -57,7 +57,7 @@ Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tag
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00048">48</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="users_8h-source.html#l00052">52</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="ConnectClass_28_29"></a><!-- doxytag: member="ConnectClass::ConnectClass" ref="ConnectClass_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -84,18 +84,18 @@ Definition at line <a class="el" href="users_8h-source.html#l00048">48</a> of fi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00082">82</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00059">flood</a>, <a class="el" href="users_8h-source.html#l00062">host</a>, <a class="el" href="users_8h-source.html#l00068">pass</a>, <a class="el" href="users_8h-source.html#l00065">pingtime</a>, <a class="el" href="users_8h-source.html#l00080">recvqmax</a>, <a class="el" href="users_8h-source.html#l00056">registration_timeout</a>, <a class="el" href="users_8h-source.html#l00076">sendqmax</a>, and <a class="el" href="users_8h-source.html#l00072">threshold</a>.<div class="fragment"><pre class="fragment"><a name="l00083"></a>00083         {
-<a name="l00084"></a>00084                 <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a> = 0;
-<a name="l00085"></a>00085                 <a class="code" href="classConnectClass.html#flood">flood</a> = 0;
-<a name="l00086"></a>00086                 <a class="code" href="classConnectClass.html#pingtime">pingtime</a> = 0;
-<a name="l00087"></a>00087                 <a class="code" href="classConnectClass.html#threshold">threshold</a> = 0;
-<a name="l00088"></a>00088                 <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a> = 0;
-<a name="l00089"></a>00089                 <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a> = 0;
-<a name="l00090"></a>00090                 strlcpy(<a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>,<span class="stringliteral">""</span>,MAXBUF);
-<a name="l00091"></a>00091                 strlcpy(<a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>,<span class="stringliteral">""</span>,MAXBUF);
-<a name="l00092"></a>00092         }
+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>
+References <a class="el" href="users_8h-source.html#l00063">flood</a>, <a class="el" href="users_8h-source.html#l00066">host</a>, <a class="el" href="users_8h-source.html#l00072">pass</a>, <a class="el" href="users_8h-source.html#l00069">pingtime</a>, <a class="el" href="users_8h-source.html#l00084">recvqmax</a>, <a class="el" href="users_8h-source.html#l00060">registration_timeout</a>, <a class="el" href="users_8h-source.html#l00080">sendqmax</a>, and <a class="el" href="users_8h-source.html#l00076">threshold</a>.<div class="fragment"><pre class="fragment"><a name="l00087"></a>00087         {
+<a name="l00088"></a>00088                 <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a> = 0;
+<a name="l00089"></a>00089                 <a class="code" href="classConnectClass.html#flood">flood</a> = 0;
+<a name="l00090"></a>00090                 <a class="code" href="classConnectClass.html#pingtime">pingtime</a> = 0;
+<a name="l00091"></a>00091                 <a class="code" href="classConnectClass.html#threshold">threshold</a> = 0;
+<a name="l00092"></a>00092                 <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a> = 0;
+<a name="l00093"></a>00093                 <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a> = 0;
+<a name="l00094"></a>00094                 strlcpy(<a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>,<span class="stringliteral">""</span>,MAXBUF);
+<a name="l00095"></a>00095                 strlcpy(<a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>,<span class="stringliteral">""</span>,MAXBUF);
+<a name="l00096"></a>00096         }
 </pre></div>
 <p>
     </td>
@@ -126,9 +126,9 @@ Number of lines in buffer before excess flood is triggered.
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00063">63</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="host_5BMAXBUF_5D"></a><!-- doxytag: member="ConnectClass::host" ref="host_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -155,9 +155,9 @@ Host mask for this line.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00062">62</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="pass_5BMAXBUF_5D"></a><!-- doxytag: member="ConnectClass::pass" ref="pass_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -184,9 +184,9 @@ Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00068">68</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="pingtime"></a><!-- doxytag: member="ConnectClass::pingtime" ref="pingtime" args="" --><p>
@@ -213,9 +213,9 @@ Number of seconds between pings for this line.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00065">65</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00069">69</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="recvqmax"></a><!-- doxytag: member="ConnectClass::recvqmax" ref="recvqmax" args="" --><p>
@@ -242,9 +242,9 @@ Maximum size of recvq for users in this class (bytes).
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00084">84</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="registration_5Ftimeout"></a><!-- doxytag: member="ConnectClass::registration_timeout" ref="registration_5Ftimeout" args="" --><p>
@@ -271,9 +271,9 @@ Max time to register the connection in seconds.
 <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>.
+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>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="sendqmax"></a><!-- doxytag: member="ConnectClass::sendqmax" ref="sendqmax" args="" --><p>
@@ -300,9 +300,9 @@ Maximum size of sendq for users in this class (bytes).
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00076">76</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="threshold"></a><!-- doxytag: member="ConnectClass::threshold" ref="threshold" args="" --><p>
@@ -329,9 +329,9 @@ Threshold value for flood disconnect.
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00076">76</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="users_8h-source.html#l00082">ConnectClass()</a>.    </td>
+Referenced by <a class="el" href="users_8h-source.html#l00086">ConnectClass()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="type"></a><!-- doxytag: member="ConnectClass::type" ref="type" args="" --><p>
@@ -358,12 +358,12 @@ Type of line, either CC_ALLOW or CC_DENY.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00053">53</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00057">57</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index caf670396c035796a1e3d0871cf50ed519250888..60281b3733e79a4c9635001959ad04d313c914e4 100644 (file)
@@ -11,7 +11,7 @@
   <tr class="memlist"><td><a class="el" href="classCullItem.html#GetUser_28_29">GetUser</a>()</td><td><a class="el" href="classCullItem.html">CullItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classCullItem.html#reason">reason</a></td><td><a class="el" href="classCullItem.html">CullItem</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classCullItem.html#user">user</a></td><td><a class="el" href="classCullItem.html">CullItem</a></td><td><code> [private]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 238f45a7a2c27c8f0360f348dfecd613d22b4d98..541769237e0fdb5edc4be546dc1ee9bb2d6d16b7 100644 (file)
@@ -201,7 +201,7 @@ Definition at line <a class="el" href="cull__list_8h-source.html#l00042">42</a>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="cull__list_8h-source.html">cull_list.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2fdf261b6584446094578ed1dc7940afac75b069..0f08fc8772027f695a3bbdae19b4c07c54d628ba 100644 (file)
@@ -11,7 +11,7 @@
   <tr class="memlist"><td><a class="el" href="classCullList.html#CullList_28_29">CullList</a>()</td><td><a class="el" href="classCullList.html">CullList</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classCullList.html#exempt">exempt</a></td><td><a class="el" href="classCullList.html">CullList</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classCullList.html#list">list</a></td><td><a class="el" href="classCullList.html">CullList</a></td><td><code> [private]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 23176ef93106c81680c58964500145ed37e80e9e..c06db2050431729f7c66f6c80c29f139393468bd 100644 (file)
@@ -201,7 +201,7 @@ Definition at line <a class="el" href="cull__list_8h-source.html#l00082">82</a>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="cull__list_8h-source.html">cull_list.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c69edea68d710048d79cfdaf165413df4399eb98..3bc4ec7823c2022906472f30588aa0caa8fc64b5 100644 (file)
@@ -36,7 +36,7 @@
   <tr class="memlist"><td><a class="el" href="classDNS.html#SetNS_28std_3A_3Astring_20dnsserver_29">SetNS</a>(std::string dnsserver)</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#t">t</a></td><td><a class="el" href="classDNS.html">DNS</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classDNS.html#_7EDNS_28_29">~DNS</a>()</td><td><a class="el" href="classDNS.html">DNS</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c9ce09783b1da4ff4536ced20d40c6d1b3560ae2..df244b836943b9a34a2b35dc56a8c79c4e78a454 100644 (file)
@@ -961,7 +961,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00041">41</a> of file
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bae6a29158a620b320878350a78347cf600101ba..c5b8dbfb44626864d046ef547075cb8eca1b0dea 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 40d87e69203cc59c113206f7c93472ed88c51d14..66aa9f5e0df9ef8ffa92024a2625d77e1ae11b9e 100644 (file)
@@ -59,7 +59,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00093">93</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c69a6347468566c890ce542ae5aa3c348d201bae..1a25d8f6d28d84387d43dac9f3050e46b4c9d0b7 100644 (file)
@@ -18,7 +18,7 @@
   <tr class="memlist"><td><a class="el" href="classEvent.html#source">source</a></td><td><a class="el" href="classEvent.html">Event</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 56a41deab3f27e23862822b4dd7410e37c85b5d7..a24c1a04db1520ca3572c964ecf79b7f97e35269 100644 (file)
@@ -57,7 +57,7 @@ When the class is properly instantiated it may be sent to all modules using the
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00197">197</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00215">215</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29"></a><!-- doxytag: member="Event::Event" ref="Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29" args="(char *anydata, Module *src, std::string eventid)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -102,7 +102,7 @@ Create a new Event.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00194">194</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00194"></a>00194 : <a class="code" href="classEvent.html#data">data</a>(anydata), <a class="code" href="classEvent.html#source">source</a>(src), <a class="code" href="classEvent.html#id">id</a>(eventid) { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00193">193</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00193"></a>00193 : <a class="code" href="classEvent.html#data">data</a>(anydata), <a class="code" href="classEvent.html#source">source</a>(src), <a class="code" href="classEvent.html#id">id</a>(eventid) { };
 </pre></div>
 <p>
     </td>
@@ -137,11 +137,11 @@ Get the Event data.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00196">196</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+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#l00202">data</a>.<div class="fragment"><pre class="fragment"><a name="l00197"></a>00197 {
-<a name="l00198"></a>00198         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#data">data</a>;
-<a name="l00199"></a>00199 }
+References <a class="el" href="modules_8h-source.html#l00220">data</a>.<div class="fragment"><pre class="fragment"><a name="l00196"></a>00196 {
+<a name="l00197"></a>00197         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#data">data</a>;
+<a name="l00198"></a>00198 }
 </pre></div>
 <p>
     </td>
@@ -175,11 +175,11 @@ Get the event ID.
 <p>
 Use this to determine the event type for safe casting of the data
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00212">212</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00211">211</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00211">id</a>.<div class="fragment"><pre class="fragment"><a name="l00213"></a>00213 {
-<a name="l00214"></a>00214         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#id">id</a>;
-<a name="l00215"></a>00215 }
+References <a class="el" href="modules_8h-source.html#l00229">id</a>.<div class="fragment"><pre class="fragment"><a name="l00212"></a>00212 {
+<a name="l00213"></a>00213         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#id">id</a>;
+<a name="l00214"></a>00214 }
 </pre></div>
 <p>
     </td>
@@ -213,11 +213,11 @@ Get the event Source.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00201">201</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00200">200</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00206">source</a>.<div class="fragment"><pre class="fragment"><a name="l00202"></a>00202 {
-<a name="l00203"></a>00203         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#source">source</a>;
-<a name="l00204"></a>00204 }
+References <a class="el" href="modules_8h-source.html#l00224">source</a>.<div class="fragment"><pre class="fragment"><a name="l00201"></a>00201 {
+<a name="l00202"></a>00202         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#source">source</a>;
+<a name="l00203"></a>00203 }
 </pre></div>
 <p>
     </td>
@@ -253,12 +253,12 @@ The return result of an <a class="el" href="classEvent.html#Send_28_29">Event::S
 <p>
 Implements <a class="el" href="classModuleMessage.html#Send_28_29_3D_30">ModuleMessage</a>.
 <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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00205">205</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00081">FOREACH_MOD</a>.<div class="fragment"><pre class="fragment"><a name="l00207"></a>00207 {
-<a name="l00208"></a>00208         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>);
-<a name="l00209"></a>00209         <span class="keywordflow">return</span> NULL;
-<a name="l00210"></a>00210 }
+References <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>.<div class="fragment"><pre class="fragment"><a name="l00206"></a>00206 {
+<a name="l00207"></a>00207         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>);
+<a name="l00208"></a>00208         <span class="keywordflow">return</span> NULL;
+<a name="l00209"></a>00209 }
 </pre></div>
 <p>
     </td>
@@ -289,9 +289,9 @@ This member holds a pointer to arbitary data set by the emitter of the message.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00202">202</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00220">220</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#l00196">GetData()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00195">GetData()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="id"></a><!-- doxytag: member="Event::id" ref="id" args="" --><p>
@@ -318,9 +318,9 @@ The event identifier.
 <p>
 This is arbitary text which should be used to distinguish one type of event from another.
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00211">211</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00229">229</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#l00212">GetEventID()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00211">GetEventID()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="source"></a><!-- doxytag: member="Event::source" ref="source" args="" --><p>
@@ -347,14 +347,14 @@ This is a pointer to the sender of the message, which can be used to directly tr
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00206">206</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00224">224</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#l00201">GetSource()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00200">GetSource()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 53aa957e061a5dcae65c063924f41db7b2f1dcb7..60077cf326269616af5ff2f9b1b15644315468e5 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#_7EHostItem_28_29">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 289ab1249f656fdaef6031dd24beadbafc47b55f..882fec433a0e36e6664eb8026327a8f952bf13e7 100644 (file)
@@ -30,7 +30,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00062">62</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cacf87d7c07f21f5c46f6e01217980a23f8f2b7f..b59f12b91ccfe1913ee22668e47e73a3d8dc1e25 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtMode.html#type">type</a></td><td><a class="el" href="classExtMode.html">ExtMode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 8b50f11825470b1849b45738ebb9cf2bdff7527f..43f8ce47855d4c9296c1f232c4bb5cbbfb3742c9 100644 (file)
@@ -44,7 +44,7 @@ Used internally by <a class="el" href="modules_8cpp.html">modules.cpp</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00236">236</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00254">254</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29"></a><!-- doxytag: member="ExtMode::ExtMode" ref="ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29" args="(char mc, int ty, bool oper, int p_on, int p_off)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -99,7 +99,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00236">236</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00245">245</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l00245"></a>00245 : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
+Definition at line <a class="el" href="modules_8h-source.html#l00263">263</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l00263"></a>00263 : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
 </pre></div>
 <p>
     </td>
@@ -128,7 +128,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00245">245</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00244">244</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00262">262</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="modechar"></a><!-- doxytag: member="ExtMode::modechar" ref="modechar" args="" --><p>
@@ -153,7 +153,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00244">244</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00239">239</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00257">257</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="needsoper"></a><!-- doxytag: member="ExtMode::needsoper" ref="needsoper" args="" --><p>
@@ -178,7 +178,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00239">239</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00241">241</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00259">259</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="params_5Fwhen_5Foff"></a><!-- doxytag: member="ExtMode::params_when_off" ref="params_5Fwhen_5Foff" args="" --><p>
@@ -203,7 +203,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00241">241</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00243">243</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00261">261</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="params_5Fwhen_5Fon"></a><!-- doxytag: member="ExtMode::params_when_on" ref="params_5Fwhen_5Fon" args="" --><p>
@@ -228,7 +228,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00243">243</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00242">242</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00260">260</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="type"></a><!-- doxytag: member="ExtMode::type" ref="type" args="" --><p>
@@ -253,12 +253,12 @@ Definition at line <a class="el" href="modules_8h-source.html#l00242">242</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00240">240</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00258">258</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 file:<ul>
 <li><a class="el" href="modules_8h-source.html">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b5b8b6f26d33ba9ab91416c9ee605c91047030b6..1d123e9351cd692c8dad06566adfbc4c08dc4b64 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classExtensible.html#GetExtList_28std_3A_3Adeque_3C_20std_3A_3Astring_20_3E_20_26list_29">GetExtList</a>(std::deque&lt; std::string &gt; &amp;list)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ada8435012339d8bafad69f85d96c34048b8add0..7c0c14d1220f9fdb7e646e8c239dd2c48dd39d04 100644 (file)
 Inheritance diagram for Extensible:<p><center><img src="classExtensible__inherit__graph.gif" border="0" usemap="#Extensible__inherit__map" alt="Inheritance graph"></center>
 <map name="Extensible__inherit__map">
 <area href="classchanrec.html" shape="rect" coords="7,156,76,183" alt="">
-<area href="classcommand__t.html" shape="rect" coords="100,156,191,183" alt="">
-<area href="classconnection.html" shape="rect" coords="215,156,300,183" alt="">
-<area href="classclassbase.html" shape="rect" coords="106,7,186,33" alt="">
-<area href="classuserrec.html" shape="rect" coords="224,231,291,257" alt="">
+<area href="classconnection.html" shape="rect" coords="100,156,185,183" alt="">
+<area href="classclassbase.html" shape="rect" coords="52,7,132,33" alt="">
+<area href="classuserrec.html" shape="rect" coords="109,231,176,257" alt="">
 </map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for Extensible:<p><center><img src="classExtensible__coll__graph.gif" border="0" usemap="#Extensible__coll__map" alt="Collaboration graph"></center>
 <map name="Extensible__coll__map">
@@ -236,7 +235,7 @@ Definition at line <a class="el" href="base_8h-source.html#l00055">55</a> of fil
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2b223b9389f5b3d3c36ce5878b86f1d9bdc1872b..739ce8fc677cab7e8b429337f66824c3b506c2c0 100644 (file)
@@ -1,6 +1,5 @@
 base referer
 rect $classchanrec.html 7,156 76,183
-rect $classcommand__t.html 100,156 191,183
-rect $classconnection.html 215,156 300,183
-rect $classclassbase.html 106,7 186,33
-rect $classuserrec.html 224,231 291,257
+rect $classconnection.html 100,156 185,183
+rect $classclassbase.html 52,7 132,33
+rect $classuserrec.html 109,231 176,257
index fe7736291bb9e7d1dcc1873f514f7938e066c3a3..4616843727f75943276767b80da13b7b9af8ae24 100644 (file)
@@ -1 +1 @@
-09c2299ecc297b4760a076747177ec6d
\ No newline at end of file
+4a03bd45cd4754f0edff4e8a3bc20f54
\ No newline at end of file
index 1ab48f288c680b38e4348ec700c0e6a13d0da242..fa06188ed84a958f4373d350069bc8a822afc3a1 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(std::string filename)</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>()</td><td><a class="el" href="classFileReader.html">FileReader</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e5a725a26b5aebfe3eb7f26802c15e4e9d3e7ce8..1a03b0cc150ee25b3f2c60157a6ebb8687e71a97 100644 (file)
@@ -53,7 +53,7 @@ This class contains methods for read-only manipulation of a text file in memory.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01621">1621</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01639">1639</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="FileReader_28_29"></a><!-- doxytag: member="FileReader::FileReader" ref="FileReader_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -82,8 +82,8 @@ 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#l00891">891</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00892"></a>00892 {
-<a name="l00893"></a>00893 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00890">890</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00891"></a>00891 {
+<a name="l00892"></a>00892 }
 </pre></div>
 <p>
     </td>
@@ -118,13 +118,13 @@ 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#FileSize_28_29">FileReader::FileSize</a> returns 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00884">884</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00883">883</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01623">fc</a>, and <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile()</a>.<div class="fragment"><pre class="fragment"><a name="l00885"></a>00885 {
-<a name="l00886"></a>00886         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00887"></a>00887         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
-<a name="l00888"></a>00888         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00889"></a>00889 }
+References <a class="el" href="modules_8h-source.html#l01641">fc</a>, and <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile()</a>.<div class="fragment"><pre class="fragment"><a name="l00884"></a>00884 {
+<a name="l00885"></a>00885         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00886"></a>00886         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
+<a name="l00887"></a>00887         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00888"></a>00888 }
 </pre></div>
 <p>
     </td>
@@ -158,8 +158,8 @@ Default destructor.
 <p>
 This deletes the memory allocated to the file.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00903">903</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00904"></a>00904 {
-<a name="l00905"></a>00905 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00902">902</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00903"></a>00903 {
+<a name="l00904"></a>00904 }
 </pre></div>
 <p>
     </td>
@@ -194,18 +194,18 @@ Returns true if the file exists This function will return false if the file coul
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00907">907</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l01623">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00908"></a>00908 {
-<a name="l00909"></a>00909         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
-<a name="l00910"></a>00910         {
-<a name="l00911"></a>00911                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-<a name="l00912"></a>00912         }
-<a name="l00913"></a>00913         <span class="keywordflow">else</span>
-<a name="l00914"></a>00914         {
-<a name="l00915"></a>00915                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-<a name="l00916"></a>00916         }
-<a name="l00917"></a>00917 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00906">906</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l01641">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00907"></a>00907 {
+<a name="l00908"></a>00908         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
+<a name="l00909"></a>00909         {
+<a name="l00910"></a>00910                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+<a name="l00911"></a>00911         }
+<a name="l00912"></a>00912         <span class="keywordflow">else</span>
+<a name="l00913"></a>00913         {
+<a name="l00914"></a>00914                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+<a name="l00915"></a>00915         }
+<a name="l00916"></a>00916 }
 </pre></div>
 <p>
     </td>
@@ -239,11 +239,11 @@ 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#l00926">926</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00925">925</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01623">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00927"></a>00927 {
-<a name="l00928"></a>00928         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
-<a name="l00929"></a>00929 }
+References <a class="el" href="modules_8h-source.html#l01641">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00926"></a>00926 {
+<a name="l00927"></a>00927         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
+<a name="l00928"></a>00928 }
 </pre></div>
 <p>
     </td>
@@ -278,13 +278,13 @@ 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#l00919">919</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00918">918</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01623">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00920"></a>00920 {
-<a name="l00921"></a>00921         <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
-<a name="l00922"></a>00922                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00923"></a>00923         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
-<a name="l00924"></a>00924 }
+References <a class="el" href="modules_8h-source.html#l01641">fc</a>.<div class="fragment"><pre class="fragment"><a name="l00919"></a>00919 {
+<a name="l00920"></a>00920         <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
+<a name="l00921"></a>00921                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00922"></a>00922         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
+<a name="l00923"></a>00923 }
 </pre></div>
 <p>
     </td>
@@ -319,13 +319,13 @@ 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#FileSize_28_29">FileReader::FileSize</a> returns 0.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00895">895</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00894">894</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l01623">fc</a>, and <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile()</a>.<div class="fragment"><pre class="fragment"><a name="l00896"></a>00896 {
-<a name="l00897"></a>00897         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00898"></a>00898         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
-<a name="l00899"></a>00899         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00900"></a>00900 }
+References <a class="el" href="modules_8h-source.html#l01641">fc</a>, and <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile()</a>.<div class="fragment"><pre class="fragment"><a name="l00895"></a>00895 {
+<a name="l00896"></a>00896         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00897"></a>00897         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
+<a name="l00898"></a>00898         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00899"></a>00899 }
 </pre></div>
 <p>
     </td>
@@ -354,14 +354,14 @@ References <a class="el" href="modules_8h-source.html#l01623">fc</a>, and <a cla
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01623">1623</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01641">1641</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#l00907">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00884">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00926">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00919">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00895">LoadFile()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00906">Exists()</a>, <a class="el" href="modules_8cpp-source.html#l00883">FileReader()</a>, <a class="el" href="modules_8cpp-source.html#l00925">FileSize()</a>, <a class="el" href="modules_8cpp-source.html#l00918">GetLine()</a>, and <a class="el" href="modules_8cpp-source.html#l00894">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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 7c08537dbe8ed470abdf946d3b86b79d611d9640..905169ec691635a638aed78fddcd64a7057d1f1a 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1741041f49a4cecffe747abd8187b110fe42037e..2b60bc72a34bfb7faa1814afec66cb57b2ee1ece 100644 (file)
@@ -62,7 +62,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00084">84</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 4ece9c4c030e4d28006c215ecb9f1dfc1a9ef87f..5b1a97eb23e8f10f380b6a021247c31d70f507a4 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#_7EHostItem_28_29">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f1a09c4eff4d1631599cb12a109edb91fbb49a76..e74e080b63fa86b83d044e886556e7e0fd733668 100644 (file)
@@ -186,7 +186,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00041">41</a> of
 </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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5966c253af1848a3a1a27cda83668487f07398ba..e0987152384d070d3f06b86e789bedaee674c38b 100644 (file)
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>()</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29">InspIRCd</a>(int argc, char **argv)</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#LoadModule_28const_20char_20_2Afilename_29">LoadModule</a>(const char *filename)</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspIRCd.html#MakeLowerMap_28_29">MakeLowerMap</a>()</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspIRCd.html#ModeGrok">ModeGrok</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">MODERR</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#ModuleError_28_29">ModuleError</a>()</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspIRCd.html#Parser">Parser</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#Run_28_29">Run</a>()</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspIRCd.html#SE">SE</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#startup_5Ftime">startup_time</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspIRCd.html#stats">stats</a></td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspIRCd.html#UnloadModule_28const_20char_20_2Afilename_29">UnloadModule</a>(const char *filename)</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 26e293181ad05248d670976dc37b2aa263041034..da2a2b697e0ec7ce7c65121b9f436adf0d4a317c 100644 (file)
@@ -8,9 +8,16 @@
 <h1>InspIRCd Class Reference</h1><!-- doxytag: class="InspIRCd" --><code>#include &lt;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&gt;</code>
 <p>
 Collaboration diagram for InspIRCd:<p><center><img src="classInspIRCd__coll__graph.gif" border="0" usemap="#InspIRCd__coll__map" alt="Collaboration graph"></center>
+<map name="InspIRCd__coll__map">
+<area href="classSocketEngine.html" shape="rect" coords="22,10,126,36" alt="">
+<area href="classserverstats.html" shape="rect" coords="30,212,118,239" alt="">
+<area href="classModeParser.html" shape="rect" coords="27,263,120,290" alt="">
+</map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classInspIRCd-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 Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#MakeLowerMap_28_29">MakeLowerMap</a> ()</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#GetRevision_28_29">GetRevision</a> ()</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a> ()</td></tr>
@@ -28,6 +35,14 @@ Collaboration diagram for InspIRCd:<p><center><img src="classInspIRCd__coll__gra
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#startup_5Ftime">startup_time</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModeParser.html">ModeParser</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#ModeGrok">ModeGrok</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">CommandParser *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#Parser">Parser</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#SE">SE</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classserverstats.html">serverstats</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#stats">stats</a></td></tr>
+
 <tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspIRCd.html#erase_5Ffactory_28int_20j_29">erase_factory</a> (int j)</td></tr>
 
@@ -42,7 +57,7 @@ Collaboration diagram for InspIRCd:<p><center><img src="classInspIRCd__coll__gra
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00095">95</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00099">99</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29"></a><!-- doxytag: member="InspIRCd::InspIRCd" ref="InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29" args="(int argc, char **argv)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -190,7 +205,7 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00095">95</a> of
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::GetVersion()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00328">Server::GetVersion()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="LoadModule_28const_20char_20_2Afilename_29"></a><!-- doxytag: member="InspIRCd::LoadModule" ref="LoadModule_28const_20char_20_2Afilename_29" args="(const char *filename)" --><p>
@@ -217,6 +232,33 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::GetVe
     </td>
     <td>
 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="MakeLowerMap_28_29"></a><!-- doxytag: member="InspIRCd::MakeLowerMap" ref="MakeLowerMap_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void InspIRCd::MakeLowerMap           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&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>
     </td>
   </tr>
@@ -304,6 +346,33 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::GetVe
   </tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="ModeGrok"></a><!-- doxytag: member="InspIRCd::ModeGrok" ref="ModeGrok" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classModeParser.html">ModeParser</a>* <a class="el" href="classInspIRCd.html#ModeGrok">InspIRCd::ModeGrok</a>          </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="inspircd_8h-source.html#l00109">109</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00420">Server::SendMode()</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="MODERR_5BMAXBUF_5D"></a><!-- doxytag: member="InspIRCd::MODERR" ref="MODERR_5BMAXBUF_5D" args="[MAXBUF]" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -326,7 +395,61 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00329">Server::GetVe
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00099">99</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00103">103</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="Parser"></a><!-- doxytag: member="InspIRCd::Parser" ref="Parser" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">CommandParser* <a class="el" href="classInspIRCd.html#Parser">InspIRCd::Parser</a>          </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="inspircd_8h-source.html#l00110">110</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00415">Server::AddCommand()</a>, <a class="el" href="modules_8cpp-source.html#l00400">Server::CallCommandHandler()</a>, <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, and <a class="el" href="modules_8cpp-source.html#l00405">Server::IsValidModuleCommand()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="SE"></a><!-- doxytag: member="InspIRCd::SE" ref="SE" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a>* <a class="el" href="classInspIRCd.html#SE">InspIRCd::SE</a>          </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="inspircd_8h-source.html#l00111">111</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="socket_8cpp-source.html#l00050">InspSocket::InspSocket()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="socket_8cpp-source.html#l00216">InspSocket::Poll()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="startup_5Ftime"></a><!-- doxytag: member="InspIRCd::startup_time" ref="startup_5Ftime" args="" --><p>
@@ -351,12 +474,39 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00099">99</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00104">104</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00108">108</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="stats"></a><!-- doxytag: member="InspIRCd::stats" ref="stats" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classserverstats.html">serverstats</a>* <a class="el" href="classInspIRCd.html#stats">InspIRCd::stats</a>          </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="inspircd_8h-source.html#l00112">112</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, and <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="inspircd_8h-source.html">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5a14779e786cc5692df9066f3524592c3e668189..058bc0d1fcbeb0c0b383470883d3fde93b76afd4 100644 (file)
@@ -1 +1,4 @@
 base referer
+rect $classSocketEngine.html 22,10 126,36
+rect $classserverstats.html 30,212 118,239
+rect $classModeParser.html 27,263 120,290
index 9b6b4f43ba8006c5acb9f5470bf1796b9a21a3c4..f17fcfbb31c5c5baa7be1abf16e206b5bbe1f72a 100644 (file)
@@ -1 +1 @@
-cf2870df5188e9dd73f618305a399ded
\ No newline at end of file
+117342ac51fed621fabeb5e75c73aa1b
\ No newline at end of file
index a828ac31ed89a009f4895434fa4d9c57013fa6e6..eb9a03aa7110975f38e77007949754df99932799 100644 (file)
@@ -8,14 +8,16 @@
 <h1>InspSocket Member List</h1>This is the complete list of members for <a class="el" href="classInspSocket.html">InspSocket</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#addr">addr</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#addy">addy</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspSocket.html#Buffer">Buffer</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#client">client</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#Close_28_29">Close</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#fd">fd</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#GetFd_28_29">GetFd</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#GetIP_28_29">GetIP</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#GetState_28_29">GetState</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#host">host</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#InspSocket_28int_20newfd_2C_20char_20_2Aip_29">InspSocket</a>(int newfd, char *ip)</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29">InspSocket</a>(std::string host, int port, bool listening, unsigned long maxtime)</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td></td></tr>
@@ -39,7 +41,7 @@
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#timeout_5Fend">timeout_end</a></td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">Write</a>(std::string data)</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a>()</td><td><a class="el" href="classInspSocket.html">InspSocket</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 315270d8013467e95f490444e50238a2a640eefc..9341750614340d79f8c97ffe9249ffbbd26e5ede 100644 (file)
@@ -74,6 +74,10 @@ Collaboration diagram for InspSocket:<p><center><img src="classInspSocket__coll_
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The destructor may implicitly call <a class="el" href="classInspSocket.html#OnClose_28_29">OnClose()</a>, and will close() and shutdown() the file descriptor used for this socket.  <a href="#_7EInspSocket_28_29"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flushes the write buffer.  <a href="#FlushWriteBuffer_28_29"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#fd">fd</a></td></tr>
 
@@ -99,9 +103,12 @@ Collaboration diagram for InspSocket:<p><center><img src="classInspSocket__coll_
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#timeout">timeout</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This value is true if the socket has timed out.  <a href="#timeout"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a> [16384]</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a> [65535]</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket input buffer, used by read().  <a href="#ibuf_5B_36_35_35_33_35_5D"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#Buffer">Buffer</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket input buffer, used by read().  <a href="#ibuf_5B_31_36_33_38_34_5D"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The output buffer for this socket.  <a href="#Buffer"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInspSocket.html#IP">IP</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The IP address being connected to stored in string form for easy retrieval by accessors.  <a href="#IP"></a><br></td></tr>
@@ -151,11 +158,11 @@ The default constructor does nothing and should not be used.
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00048">48</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00045">45</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>, and <a class="el" href="socket_8h-source.html#l00072">state</a>.<div class="fragment"><pre class="fragment"><a name="l00049"></a>00049 {
-<a name="l00050"></a>00050         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>;
-<a name="l00051"></a>00051 }
+References <a class="el" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>, and <a class="el" href="socket_8h-source.html#l00072">state</a>.<div class="fragment"><pre class="fragment"><a name="l00046"></a>00046 {
+<a name="l00047"></a>00047         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>;
+<a name="l00048"></a>00048 }
 </pre></div>
 <p>
     </td>
@@ -199,15 +206,15 @@ This constructor is used to associate an existing connecting with an InspSocket
 <p>
 The given file descriptor must be valid, and when initialized, the InspSocket will be set with the given IP address and placed in CONNECTED state.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00053">53</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00050">50</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00054">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h-source.html#l00113">IP</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00054"></a>00054 {
-<a name="l00055"></a>00055         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = newfd;
-<a name="l00056"></a>00056         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>;
-<a name="l00057"></a>00057         this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
-<a name="l00058"></a>00058         <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00059"></a>00059         <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00060"></a>00060 }
+References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00054">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h-source.html#l00118">IP</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00051"></a>00051 {
+<a name="l00052"></a>00052         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = newfd;
+<a name="l00053"></a>00053         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>;
+<a name="l00054"></a>00054         this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
+<a name="l00055"></a>00055         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00056"></a>00056         <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00057"></a>00057 }
 </pre></div>
 <p>
     </td>
@@ -271,85 +278,85 @@ This constructor is used to create a new socket, either listening for connection
 </dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00062">62</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
-<p>
-References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00078">addr</a>, <a class="el" href="socket_8h-source.html#l00084">addy</a>, <a class="el" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00141">Close()</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="inspircd_8h-source.html#l00049">ERROR</a>, <a class="el" href="socket_8h-source.html#l00054">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00113">IP</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socket_8cpp-source.html#l00265">OnError()</a>, <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket()</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, <a class="el" href="socket_8h-source.html#l00097">timeout</a>, <a class="el" href="socket_8h-source.html#l00091">timeout_end</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00063"></a>00063 {
-<a name="l00064"></a>00064         <span class="keywordflow">if</span> (listening) {
-<a name="l00065"></a>00065                 <span class="keywordflow">if</span> ((this-&gt;fd = <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a>()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
-<a name="l00066"></a>00066                 {
-<a name="l00067"></a>00067                         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00068"></a>00068                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00069"></a>00069                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
-<a name="l00070"></a>00070                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"OpenTCPSocket() error"</span>);
-<a name="l00071"></a>00071                         <span class="keywordflow">return</span>;
-<a name="l00072"></a>00072                 }
-<a name="l00073"></a>00073                 <span class="keywordflow">else</span>
-<a name="l00074"></a>00074                 {
-<a name="l00075"></a>00075                         <span class="keywordflow">if</span> (<a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a>(this-&gt;fd,this-&gt;client,this-&gt;server,<a class="code" href="classInspSocket.html#port">port</a>,(<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
-<a name="l00076"></a>00076                         {
-<a name="l00077"></a>00077                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00078"></a>00078                                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00079"></a>00079                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00080"></a>00080                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>);
-<a name="l00081"></a>00081                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BindSocket() error %s"</span>,strerror(errno));
-<a name="l00082"></a>00082                                 <span class="keywordflow">return</span>;
-<a name="l00083"></a>00083                         }
-<a name="l00084"></a>00084                         <span class="keywordflow">else</span>
-<a name="l00085"></a>00085                         {
-<a name="l00086"></a>00086                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>;
-<a name="l00087"></a>00087                                 <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00088"></a>00088                                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00089"></a>00089                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"New socket now in I_LISTENING state"</span>);
-<a name="l00090"></a>00090                                 <span class="keywordflow">return</span>;
-<a name="l00091"></a>00091                         }
-<a name="l00092"></a>00092                 }                       
-<a name="l00093"></a>00093         } <span class="keywordflow">else</span> {
-<a name="l00094"></a>00094                 <span class="keywordtype">char</span>* ip;
-<a name="l00095"></a>00095                 this-&gt;<a class="code" href="classInspSocket.html#host">host</a> = <a class="code" href="classInspSocket.html#host">host</a>;
-<a name="l00096"></a>00096                 hostent* hoste = gethostbyname(<a class="code" href="classInspSocket.html#host">host</a>.c_str());
-<a name="l00097"></a>00097                 <span class="keywordflow">if</span> (!hoste) {
-<a name="l00098"></a>00098                         ip = (<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str();
-<a name="l00099"></a>00099                 } <span class="keywordflow">else</span> {
-<a name="l00100"></a>00100                         <span class="keyword">struct </span>in_addr* ia = (in_addr*)hoste-&gt;h_addr;
-<a name="l00101"></a>00101                         ip = inet_ntoa(*ia);
-<a name="l00102"></a>00102                 }
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104                 this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106                 <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a> = time(NULL)+maxtime;
-<a name="l00107"></a>00107                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">false</span>;
-<a name="l00108"></a>00108                 <span class="keywordflow">if</span> ((this-&gt;fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-<a name="l00109"></a>00109                 {
-<a name="l00110"></a>00110                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00111"></a>00111                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
-<a name="l00112"></a>00112                         <span class="keywordflow">return</span>;
-<a name="l00113"></a>00113                 }
-<a name="l00114"></a>00114                 this-&gt;<a class="code" href="classInspSocket.html#port">port</a> = <a class="code" href="classInspSocket.html#port">port</a>;
-<a name="l00115"></a>00115                 inet_aton(ip,&amp;<a class="code" href="classInspSocket.html#addy">addy</a>);
-<a name="l00116"></a>00116                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_family = AF_INET;
-<a name="l00117"></a>00117                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_addr = <a class="code" href="classInspSocket.html#addy">addy</a>;
-<a name="l00118"></a>00118                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_port = htons(this-&gt;port);
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120                 <span class="keywordtype">int</span> flags;
-<a name="l00121"></a>00121                 flags = fcntl(this-&gt;fd, F_GETFL, 0);
-<a name="l00122"></a>00122                 fcntl(this-&gt;fd, F_SETFL, flags | O_NONBLOCK);
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124                 <span class="keywordflow">if</span>(connect(this-&gt;fd, (sockaddr*)&amp;this-&gt;addr,<span class="keyword">sizeof</span>(this-&gt;addr)) == -1)
-<a name="l00125"></a>00125                 {
-<a name="l00126"></a>00126                         <span class="keywordflow">if</span> (errno != EINPROGRESS)
-<a name="l00127"></a>00127                         {
-<a name="l00128"></a>00128                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00129"></a>00129                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>);
-<a name="l00130"></a>00130                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00131"></a>00131                                 <span class="keywordflow">return</span>;
-<a name="l00132"></a>00132                         }
-<a name="l00133"></a>00133                 }
-<a name="l00134"></a>00134                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>;
-<a name="l00135"></a>00135                 <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">false</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00136"></a>00136                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00137"></a>00137                 <span class="keywordflow">return</span>;
-<a name="l00138"></a>00138         }
-<a name="l00139"></a>00139 }
+Definition at line <a class="el" href="socket_8cpp-source.html#l00059">59</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+<p>
+References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00078">addr</a>, <a class="el" href="socket_8h-source.html#l00084">addy</a>, <a class="el" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00138">Close()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd_8h-source.html#l00051">ERROR</a>, <a class="el" href="socket_8h-source.html#l00054">fd</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00118">IP</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socket_8cpp-source.html#l00264">OnError()</a>, <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket()</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, <a class="el" href="socket_8h-source.html#l00097">timeout</a>, <a class="el" href="socket_8h-source.html#l00091">timeout_end</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00060"></a>00060 {
+<a name="l00061"></a>00061         <span class="keywordflow">if</span> (listening) {
+<a name="l00062"></a>00062                 <span class="keywordflow">if</span> ((this-&gt;fd = <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a>()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
+<a name="l00063"></a>00063                 {
+<a name="l00064"></a>00064                         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00065"></a>00065                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00066"></a>00066                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
+<a name="l00067"></a>00067                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"OpenTCPSocket() error"</span>);
+<a name="l00068"></a>00068                         <span class="keywordflow">return</span>;
+<a name="l00069"></a>00069                 }
+<a name="l00070"></a>00070                 <span class="keywordflow">else</span>
+<a name="l00071"></a>00071                 {
+<a name="l00072"></a>00072                         <span class="keywordflow">if</span> (<a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a>(this-&gt;fd,this-&gt;client,this-&gt;server,<a class="code" href="classInspSocket.html#port">port</a>,(<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
+<a name="l00073"></a>00073                         {
+<a name="l00074"></a>00074                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00075"></a>00075                                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00076"></a>00076                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00077"></a>00077                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>);
+<a name="l00078"></a>00078                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BindSocket() error %s"</span>,strerror(errno));
+<a name="l00079"></a>00079                                 <span class="keywordflow">return</span>;
+<a name="l00080"></a>00080                         }
+<a name="l00081"></a>00081                         <span class="keywordflow">else</span>
+<a name="l00082"></a>00082                         {
+<a name="l00083"></a>00083                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>;
+<a name="l00084"></a>00084                                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00085"></a>00085                                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00086"></a>00086                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"New socket now in I_LISTENING state"</span>);
+<a name="l00087"></a>00087                                 <span class="keywordflow">return</span>;
+<a name="l00088"></a>00088                         }
+<a name="l00089"></a>00089                 }                       
+<a name="l00090"></a>00090         } <span class="keywordflow">else</span> {
+<a name="l00091"></a>00091                 <span class="keywordtype">char</span>* ip;
+<a name="l00092"></a>00092                 this-&gt;<a class="code" href="classInspSocket.html#host">host</a> = <a class="code" href="classInspSocket.html#host">host</a>;
+<a name="l00093"></a>00093                 hostent* hoste = gethostbyname(<a class="code" href="classInspSocket.html#host">host</a>.c_str());
+<a name="l00094"></a>00094                 <span class="keywordflow">if</span> (!hoste) {
+<a name="l00095"></a>00095                         ip = (<span class="keywordtype">char</span>*)<a class="code" href="classInspSocket.html#host">host</a>.c_str();
+<a name="l00096"></a>00096                 } <span class="keywordflow">else</span> {
+<a name="l00097"></a>00097                         <span class="keyword">struct </span>in_addr* ia = (in_addr*)hoste-&gt;h_addr;
+<a name="l00098"></a>00098                         ip = inet_ntoa(*ia);
+<a name="l00099"></a>00099                 }
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101                 this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103                 <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a> = time(NULL)+maxtime;
+<a name="l00104"></a>00104                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">false</span>;
+<a name="l00105"></a>00105                 <span class="keywordflow">if</span> ((this-&gt;fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
+<a name="l00106"></a>00106                 {
+<a name="l00107"></a>00107                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00108"></a>00108                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
+<a name="l00109"></a>00109                         <span class="keywordflow">return</span>;
+<a name="l00110"></a>00110                 }
+<a name="l00111"></a>00111                 this-&gt;<a class="code" href="classInspSocket.html#port">port</a> = <a class="code" href="classInspSocket.html#port">port</a>;
+<a name="l00112"></a>00112                 inet_aton(ip,&amp;<a class="code" href="classInspSocket.html#addy">addy</a>);
+<a name="l00113"></a>00113                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_family = AF_INET;
+<a name="l00114"></a>00114                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_addr = <a class="code" href="classInspSocket.html#addy">addy</a>;
+<a name="l00115"></a>00115                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_port = htons(this-&gt;port);
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117                 <span class="keywordtype">int</span> flags;
+<a name="l00118"></a>00118                 flags = fcntl(this-&gt;fd, F_GETFL, 0);
+<a name="l00119"></a>00119                 fcntl(this-&gt;fd, F_SETFL, flags | O_NONBLOCK);
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121                 <span class="keywordflow">if</span>(connect(this-&gt;fd, (sockaddr*)&amp;this-&gt;addr,<span class="keyword">sizeof</span>(this-&gt;addr)) == -1)
+<a name="l00122"></a>00122                 {
+<a name="l00123"></a>00123                         <span class="keywordflow">if</span> (errno != EINPROGRESS)
+<a name="l00124"></a>00124                         {
+<a name="l00125"></a>00125                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00126"></a>00126                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>);
+<a name="l00127"></a>00127                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00128"></a>00128                                 <span class="keywordflow">return</span>;
+<a name="l00129"></a>00129                         }
+<a name="l00130"></a>00130                 }
+<a name="l00131"></a>00131                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>;
+<a name="l00132"></a>00132                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">false</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00133"></a>00133                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00134"></a>00134                 <span class="keywordflow">return</span>;
+<a name="l00135"></a>00135         }
+<a name="l00136"></a>00136 }
 </pre></div>
 <p>
     </td>
@@ -383,11 +390,11 @@ The destructor may implicitly call <a class="el" href="classInspSocket.html#OnCl
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00272">272</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00271">271</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8cpp-source.html#l00141">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00273"></a>00273 {
-<a name="l00274"></a>00274         this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00275"></a>00275 }
+References <a class="el" href="socket_8cpp-source.html#l00138">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00272"></a>00272 {
+<a name="l00273"></a>00273         this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00274"></a>00274 }
 </pre></div>
 <p>
     </td>
@@ -422,20 +429,71 @@ This method causes the socket to close, and may also be triggered by other metho
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00141">141</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00138">138</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+<p>
+References <a class="el" href="socket_8h-source.html#l00054">fd</a>, and <a class="el" href="socket_8cpp-source.html#l00269">OnClose()</a>.
+<p>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00271">~InspSocket()</a>.<div class="fragment"><pre class="fragment"><a name="l00139"></a>00139 {
+<a name="l00140"></a>00140         <span class="keywordflow">if</span> (this-&gt;fd != -1)
+<a name="l00141"></a>00141         {
+<a name="l00142"></a>00142                 this-&gt;<a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
+<a name="l00143"></a>00143                 shutdown(this-&gt;fd,2);
+<a name="l00144"></a>00144                 close(this-&gt;fd);
+<a name="l00145"></a>00145                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = NULL;
+<a name="l00146"></a>00146                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00147"></a>00147         }
+<a name="l00148"></a>00148 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="FlushWriteBuffer_28_29"></a><!-- doxytag: member="InspSocket::FlushWriteBuffer" ref="FlushWriteBuffer_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void InspSocket::FlushWriteBuffer           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [private]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Flushes the write buffer. 
+<p>
+
+<p>
+Definition at line <a class="el" href="socket_8cpp-source.html#l00181">181</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8h-source.html#l00054">fd</a>, and <a class="el" href="socket_8cpp-source.html#l00270">OnClose()</a>.
+References <a class="el" href="socket_8h-source.html#l00111">Buffer</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00272">~InspSocket()</a>.<div class="fragment"><pre class="fragment"><a name="l00142"></a>00142 {
-<a name="l00143"></a>00143         <span class="keywordflow">if</span> (this-&gt;fd != -1)
-<a name="l00144"></a>00144         {
-<a name="l00145"></a>00145                 this-&gt;<a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
-<a name="l00146"></a>00146                 shutdown(this-&gt;fd,2);
-<a name="l00147"></a>00147                 close(this-&gt;fd);
-<a name="l00148"></a>00148                 <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = NULL;
-<a name="l00149"></a>00149                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00150"></a>00150         }
-<a name="l00151"></a>00151 }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>, and <a class="el" href="socket_8cpp-source.html#l00174">Write()</a>.<div class="fragment"><pre class="fragment"><a name="l00182"></a>00182 {
+<a name="l00183"></a>00183         <span class="keywordtype">int</span> result = 0;
+<a name="l00184"></a>00184         <span class="keywordflow">if</span> (this-&gt;Buffer.length())
+<a name="l00185"></a>00185         {
+<a name="l00186"></a>00186                 result = send(this-&gt;fd,this-&gt;Buffer.c_str(),this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a>.length(),0);
+<a name="l00187"></a>00187                 <span class="keywordflow">if</span> (result &gt; 0)
+<a name="l00188"></a>00188                 {
+<a name="l00189"></a>00189                         <span class="comment">/* If we wrote some, advance the buffer forwards */</span>
+<a name="l00190"></a>00190                         <span class="keywordtype">char</span>* n = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a>.c_str();
+<a name="l00191"></a>00191                         n += result;
+<a name="l00192"></a>00192                         this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> = n;
+<a name="l00193"></a>00193                 }
+<a name="l00194"></a>00194         }
+<a name="l00195"></a>00195 }
 </pre></div>
 <p>
     </td>
@@ -469,11 +527,11 @@ This method returns the socket's file descriptor as assigned by the operating sy
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00259">259</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00258">258</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8h-source.html#l00054">fd</a>.<div class="fragment"><pre class="fragment"><a name="l00260"></a>00260 {
-<a name="l00261"></a>00261         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>;
-<a name="l00262"></a>00262 }
+References <a class="el" href="socket_8h-source.html#l00054">fd</a>.<div class="fragment"><pre class="fragment"><a name="l00259"></a>00259 {
+<a name="l00260"></a>00260         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>;
+<a name="l00261"></a>00261 }
 </pre></div>
 <p>
     </td>
@@ -507,11 +565,11 @@ Returns the IP address associated with this connection, or an empty string if no
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00153">153</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00150">150</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8h-source.html#l00113">IP</a>.<div class="fragment"><pre class="fragment"><a name="l00154"></a>00154 {
-<a name="l00155"></a>00155         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a>;
-<a name="l00156"></a>00156 }
+References <a class="el" href="socket_8h-source.html#l00118">IP</a>.<div class="fragment"><pre class="fragment"><a name="l00151"></a>00151 {
+<a name="l00152"></a>00152         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a>;
+<a name="l00153"></a>00153 }
 </pre></div>
 <p>
     </td>
@@ -545,11 +603,11 @@ Returns the current socket state.
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00254">254</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00253">253</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="socket_8h-source.html#l00072">state</a>.<div class="fragment"><pre class="fragment"><a name="l00255"></a>00255 {
-<a name="l00256"></a>00256         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#state">state</a>;
-<a name="l00257"></a>00257 }
+References <a class="el" href="socket_8h-source.html#l00072">state</a>.<div class="fragment"><pre class="fragment"><a name="l00254"></a>00254 {
+<a name="l00255"></a>00255         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#state">state</a>;
+<a name="l00256"></a>00256 }
 </pre></div>
 <p>
     </td>
@@ -583,9 +641,9 @@ Whenever close() is called, <a class="el" href="classInspSocket.html#OnClose_28_
 <p>
 Please note that this means OnClose will be called alongside <a class="el" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError()</a>, <a class="el" href="classInspSocket.html#OnTimeout_28_29">OnTimeout()</a>, and <a class="el" href="classInspSocket.html#Close_28_29">Close()</a>, and also when cancelling a listening socket by calling the destructor indirectly.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00270">270</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00269">269</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00141">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00270"></a>00270 { <span class="keywordflow">return</span>; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00138">Close()</a>.<div class="fragment"><pre class="fragment"><a name="l00269"></a>00269 { <span class="keywordflow">return</span>; }
 </pre></div>
 <p>
     </td>
@@ -620,9 +678,9 @@ This method is called when an outbound connection on your socket is completed.
 <dl compact><dt><b>Returns:</b></dt><dd>false to abort the connection, true to continue</dd></dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00264">264</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00263">263</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00264"></a>00264 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00263"></a>00263 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
 </pre></div>
 <p>
     </td>
@@ -657,9 +715,9 @@ When there is data waiting to be read on a socket, the <a class="el" href="class
 Within this method, you *MUST* call the <a class="el" href="classInspSocket.html#Read_28_29">Read()</a> method to read any pending data. At its lowest level, this event is signalled by the core via the socket engine. If you return false from this function, the core removes your socket from its list and erases it from the socket engine, then calls <a class="el" href="classInspSocket.html#Close_28_29">InspSocket::Close()</a> and deletes it. <dl compact><dt><b>Returns:</b></dt><dd>false to close the socket</dd></dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00268">268</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00267">267</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00268"></a>00268 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00267"></a>00267 { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
 </pre></div>
 <p>
     </td>
@@ -693,7 +751,7 @@ When an established connection is terminated, the OnDisconnect method is trigger
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00266">266</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00266"></a>00266 { <span class="keywordflow">return</span> 0; }
+Definition at line <a class="el" href="socket_8cpp-source.html#l00265">265</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00265"></a>00265 { <span class="keywordflow">return</span> 0; }
 </pre></div>
 <p>
     </td>
@@ -733,9 +791,9 @@ A closed socket in itself is not an error, however errors also generate close ev
 </dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00265">265</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00264">264</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00200">Timeout()</a>.<div class="fragment"><pre class="fragment"><a name="l00265"></a>00265 { <span class="keywordflow">return</span>; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>.<div class="fragment"><pre class="fragment"><a name="l00264"></a>00264 { <span class="keywordflow">return</span>; }
 </pre></div>
 <p>
     </td>
@@ -781,9 +839,9 @@ Given the new file descriptor in the parameters, and the IP, it is recommended y
 MySocket* newsocket = new MySocket(newfd,ip);<p>
 Once you have done this, you can then associate the new socket with the core using <a class="el" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">Server::AddSocket()</a>.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00267">267</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00266">266</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00267"></a>00267 { <span class="keywordflow">return</span> 0; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00266"></a>00266 { <span class="keywordflow">return</span> 0; }
 </pre></div>
 <p>
     </td>
@@ -817,9 +875,9 @@ When an outbound connection fails, and the attempt times out, you will receive t
 <p>
 The mthod will trigger once maxtime secons are reached (as given in the constructor) just before the socket's descriptor is closed.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00269">269</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00268">268</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00200">Timeout()</a>.<div class="fragment"><pre class="fragment"><a name="l00269"></a>00269 { <span class="keywordflow">return</span>; }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>.<div class="fragment"><pre class="fragment"><a name="l00268"></a>00268 { <span class="keywordflow">return</span>; }
 </pre></div>
 <p>
     </td>
@@ -853,37 +911,37 @@ Only the core should call this function.
 <p>
 When called, it is assumed the socket is ready to read data, and the method call routes the event to the various methods of InspSocket for you to handle. This can also cause the socket's state to change.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00217">217</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
-<p>
-References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00119">client</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00131">length</a>, <a class="el" href="socket_8cpp-source.html#l00264">OnConnected()</a>, <a class="el" href="socket_8cpp-source.html#l00268">OnDataReady()</a>, <a class="el" href="socket_8cpp-source.html#l00267">OnIncomingConnection()</a>, <a class="el" href="socket_8cpp-source.html#l00248">SetState()</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00218"></a>00218 {
-<a name="l00219"></a>00219         <span class="keywordtype">int</span> incoming = -1;
-<a name="l00220"></a>00220         
-<a name="l00221"></a>00221         <span class="keywordflow">switch</span> (this-&gt;state)
-<a name="l00222"></a>00222         {
-<a name="l00223"></a>00223                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>:
-<a name="l00224"></a>00224                         this-&gt;<a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>);
-<a name="l00225"></a>00225                         <span class="comment">/* Our socket was in write-state, so delete it and re-add it</span>
-<a name="l00226"></a>00226 <span class="comment">                         * in read-state.</span>
-<a name="l00227"></a>00227 <span class="comment">                         */</span>
-<a name="l00228"></a>00228                         <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(this-&gt;fd);
-<a name="l00229"></a>00229                         <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00230"></a>00230                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
-<a name="l00231"></a>00231                 <span class="keywordflow">break</span>;
-<a name="l00232"></a>00232                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>:
-<a name="l00233"></a>00233                         <a class="code" href="classInspSocket.html#length">length</a> = <span class="keyword">sizeof</span> (<a class="code" href="classInspSocket.html#client">client</a>);
-<a name="l00234"></a>00234                         incoming = accept (this-&gt;fd, (sockaddr*)&amp;<a class="code" href="classInspSocket.html#client">client</a>,&amp;<a class="code" href="classInspSocket.html#length">length</a>);
-<a name="l00235"></a>00235                         this-&gt;<a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(incoming,inet_ntoa(<a class="code" href="classInspSocket.html#client">client</a>.sin_addr));
-<a name="l00236"></a>00236                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00237"></a>00237                 <span class="keywordflow">break</span>;
-<a name="l00238"></a>00238                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>:
-<a name="l00239"></a>00239                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
-<a name="l00240"></a>00240                 <span class="keywordflow">break</span>;
-<a name="l00241"></a>00241                 <span class="keywordflow">default</span>:
-<a name="l00242"></a>00242                 <span class="keywordflow">break</span>;
-<a name="l00243"></a>00243         }
-<a name="l00244"></a>00244 
-<a name="l00245"></a>00245         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00246"></a>00246 }
+Definition at line <a class="el" href="socket_8cpp-source.html#l00216">216</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+<p>
+References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socket_8h-source.html#l00124">client</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>, <a class="el" href="socket_8h-source.html#l00136">length</a>, <a class="el" href="socket_8cpp-source.html#l00263">OnConnected()</a>, <a class="el" href="socket_8cpp-source.html#l00267">OnDataReady()</a>, <a class="el" href="socket_8cpp-source.html#l00266">OnIncomingConnection()</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="socket_8cpp-source.html#l00247">SetState()</a>, and <a class="el" href="socketengine_8h-source.html#l00044">X_ESTAB_MODULE</a>.<div class="fragment"><pre class="fragment"><a name="l00217"></a>00217 {
+<a name="l00218"></a>00218         <span class="keywordtype">int</span> incoming = -1;
+<a name="l00219"></a>00219         
+<a name="l00220"></a>00220         <span class="keywordflow">switch</span> (this-&gt;state)
+<a name="l00221"></a>00221         {
+<a name="l00222"></a>00222                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>:
+<a name="l00223"></a>00223                         this-&gt;<a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>);
+<a name="l00224"></a>00224                         <span class="comment">/* Our socket was in write-state, so delete it and re-add it</span>
+<a name="l00225"></a>00225 <span class="comment">                         * in read-state.</span>
+<a name="l00226"></a>00226 <span class="comment">                         */</span>
+<a name="l00227"></a>00227                         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(this-&gt;fd);
+<a name="l00228"></a>00228                         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00229"></a>00229                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
+<a name="l00230"></a>00230                 <span class="keywordflow">break</span>;
+<a name="l00231"></a>00231                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>:
+<a name="l00232"></a>00232                         <a class="code" href="classInspSocket.html#length">length</a> = <span class="keyword">sizeof</span> (<a class="code" href="classInspSocket.html#client">client</a>);
+<a name="l00233"></a>00233                         incoming = accept (this-&gt;fd, (sockaddr*)&amp;<a class="code" href="classInspSocket.html#client">client</a>,&amp;<a class="code" href="classInspSocket.html#length">length</a>);
+<a name="l00234"></a>00234                         this-&gt;<a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(incoming,inet_ntoa(<a class="code" href="classInspSocket.html#client">client</a>.sin_addr));
+<a name="l00235"></a>00235                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00236"></a>00236                 <span class="keywordflow">break</span>;
+<a name="l00237"></a>00237                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>:
+<a name="l00238"></a>00238                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
+<a name="l00239"></a>00239                 <span class="keywordflow">break</span>;
+<a name="l00240"></a>00240                 <span class="keywordflow">default</span>:
+<a name="l00241"></a>00241                 <span class="keywordflow">break</span>;
+<a name="l00242"></a>00242         }
+<a name="l00243"></a>00243 
+<a name="l00244"></a>00244         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00245"></a>00245 }
 </pre></div>
 <p>
     </td>
@@ -917,21 +975,21 @@ Reads all pending bytes from the socket into a char* array which can be up to 16
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00158">158</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00155">155</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socket_8h-source.html#l00106">ibuf</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00159"></a>00159 {
-<a name="l00160"></a>00160         <span class="keywordtype">int</span> n = recv(this-&gt;fd,this-&gt;ibuf,<span class="keyword">sizeof</span>(this-&gt;ibuf),0);
-<a name="l00161"></a>00161         <span class="keywordflow">if</span> (n &gt; 0)
-<a name="l00162"></a>00162         {
-<a name="l00163"></a>00163                 <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>[n] = 0;
-<a name="l00164"></a>00164                 <span class="keywordflow">return</span> <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>;
-<a name="l00165"></a>00165         }
-<a name="l00166"></a>00166         <span class="keywordflow">else</span>
-<a name="l00167"></a>00167         {
-<a name="l00168"></a>00168                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"EOF or error on socket"</span>);
-<a name="l00169"></a>00169                 <span class="keywordflow">return</span> NULL;
-<a name="l00170"></a>00170         }
-<a name="l00171"></a>00171 }
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socket_8h-source.html#l00106">ibuf</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00156"></a>00156 {
+<a name="l00157"></a>00157         <span class="keywordtype">int</span> n = recv(this-&gt;fd,this-&gt;ibuf,<span class="keyword">sizeof</span>(this-&gt;ibuf),0);
+<a name="l00158"></a>00158         <span class="keywordflow">if</span> (n &gt; 0)
+<a name="l00159"></a>00159         {
+<a name="l00160"></a>00160                 <a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a>[n] = 0;
+<a name="l00161"></a>00161                 <span class="keywordflow">return</span> <a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a>;
+<a name="l00162"></a>00162         }
+<a name="l00163"></a>00163         <span class="keywordflow">else</span>
+<a name="l00164"></a>00164         {
+<a name="l00165"></a>00165                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"EOF or error on socket"</span>);
+<a name="l00166"></a>00166                 <span class="keywordflow">return</span> NULL;
+<a name="l00167"></a>00167         }
+<a name="l00168"></a>00168 }
 </pre></div>
 <p>
     </td>
@@ -966,14 +1024,14 @@ Changes the socket's state.
 <p>
 The core uses this to change socket states, and you should not call it directly.
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00248">248</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+Definition at line <a class="el" href="socket_8cpp-source.html#l00247">247</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="socket_8h-source.html#l00072">state</a>.
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="socket_8h-source.html#l00072">state</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00249"></a>00249 {
-<a name="l00250"></a>00250         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Socket state change"</span>);
-<a name="l00251"></a>00251         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = s;
-<a name="l00252"></a>00252 }
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00248"></a>00248 {
+<a name="l00249"></a>00249         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Socket state change"</span>);
+<a name="l00250"></a>00250         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = s;
+<a name="l00251"></a>00251 }
 </pre></div>
 <p>
     </td>
@@ -1009,23 +1067,25 @@ This function checks if the socket has timed out yet, given the current time in
 <dl compact><dt><b>Returns:</b></dt><dd>true if timed out, false if not timed out</dd></dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00200">200</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
-<p>
-References <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8cpp-source.html#l00265">OnError()</a>, <a class="el" href="socket_8cpp-source.html#l00269">OnTimeout()</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, <a class="el" href="socket_8h-source.html#l00097">timeout</a>, and <a class="el" href="socket_8h-source.html#l00091">timeout_end</a>.<div class="fragment"><pre class="fragment"><a name="l00201"></a>00201 {
-<a name="l00202"></a>00202         <span class="keywordflow">if</span> ((this-&gt;state == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>) &amp;&amp; (current &gt; <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a>))
-<a name="l00203"></a>00203         {
-<a name="l00204"></a>00204                 <span class="comment">// for non-listening sockets, the timeout can occur</span>
-<a name="l00205"></a>00205                 <span class="comment">// which causes termination of the connection after</span>
-<a name="l00206"></a>00206                 <span class="comment">// the given number of seconds without a successful</span>
-<a name="l00207"></a>00207                 <span class="comment">// connection.</span>
-<a name="l00208"></a>00208                 this-&gt;<a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
-<a name="l00209"></a>00209                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>);
-<a name="l00210"></a>00210                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">true</span>;
-<a name="l00211"></a>00211                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00212"></a>00212                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00213"></a>00213         }
-<a name="l00214"></a>00214         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00215"></a>00215 }
+Definition at line <a class="el" href="socket_8cpp-source.html#l00197">197</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+<p>
+References <a class="el" href="socket_8cpp-source.html#l00181">FlushWriteBuffer()</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>, <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>, <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>, <a class="el" href="socket_8cpp-source.html#l00264">OnError()</a>, <a class="el" href="socket_8cpp-source.html#l00268">OnTimeout()</a>, <a class="el" href="socket_8h-source.html#l00072">state</a>, <a class="el" href="socket_8h-source.html#l00097">timeout</a>, and <a class="el" href="socket_8h-source.html#l00091">timeout_end</a>.<div class="fragment"><pre class="fragment"><a name="l00198"></a>00198 {
+<a name="l00199"></a>00199         <span class="keywordflow">if</span> ((this-&gt;state == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>) &amp;&amp; (current &gt; <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a>))
+<a name="l00200"></a>00200         {
+<a name="l00201"></a>00201                 <span class="comment">// for non-listening sockets, the timeout can occur</span>
+<a name="l00202"></a>00202                 <span class="comment">// which causes termination of the connection after</span>
+<a name="l00203"></a>00203                 <span class="comment">// the given number of seconds without a successful</span>
+<a name="l00204"></a>00204                 <span class="comment">// connection.</span>
+<a name="l00205"></a>00205                 this-&gt;<a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
+<a name="l00206"></a>00206                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>);
+<a name="l00207"></a>00207                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">true</span>;
+<a name="l00208"></a>00208                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00209"></a>00209                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00210"></a>00210         }
+<a name="l00211"></a>00211         <span class="keywordflow">if</span> (this-&gt;Buffer.length())
+<a name="l00212"></a>00212                 this-&gt;<a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>();
+<a name="l00213"></a>00213         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00214"></a>00214 }
 </pre></div>
 <p>
     </td>
@@ -1065,27 +1125,13 @@ No carriage returns or linefeeds are appended to the string. <dl compact><dt><b>
 </dl>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00177">177</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00178"></a>00178 {
-<a name="l00179"></a>00179         <span class="keywordtype">char</span>* d = (<span class="keywordtype">char</span>*)data.c_str();
-<a name="l00180"></a>00180         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> written = 0;
-<a name="l00181"></a>00181         <span class="keywordtype">int</span> n = 0;
-<a name="l00182"></a>00182         <span class="keywordtype">int</span> s = data.length();
-<a name="l00183"></a>00183         <span class="keywordflow">while</span> ((written &lt; data.length()) &amp;&amp; (n &gt;= 0))
-<a name="l00184"></a>00184         {
-<a name="l00185"></a>00185                 n = send(this-&gt;fd,d,s,0);
-<a name="l00186"></a>00186                 <span class="keywordflow">if</span> (n &gt; 0)
-<a name="l00187"></a>00187                 {
-<a name="l00188"></a>00188                         <span class="comment">// If we didnt write everything, advance</span>
-<a name="l00189"></a>00189                         <span class="comment">// the pointers so that when we retry</span>
-<a name="l00190"></a>00190                         <span class="comment">// the next time around the loop, we try</span>
-<a name="l00191"></a>00191                         <span class="comment">// to write what we failed to write before.</span>
-<a name="l00192"></a>00192                         written += n;
-<a name="l00193"></a>00193                         s -= n;
-<a name="l00194"></a>00194                         d += n;
-<a name="l00195"></a>00195                 }
-<a name="l00196"></a>00196         }
-<a name="l00197"></a>00197         <span class="keywordflow">return</span> written;
-<a name="l00198"></a>00198 }
+Definition at line <a class="el" href="socket_8cpp-source.html#l00174">174</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.
+<p>
+References <a class="el" href="socket_8h-source.html#l00111">Buffer</a>, and <a class="el" href="socket_8cpp-source.html#l00181">FlushWriteBuffer()</a>.<div class="fragment"><pre class="fragment"><a name="l00175"></a>00175 {
+<a name="l00176"></a>00176         this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> = this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> + data;
+<a name="l00177"></a>00177         this-&gt;<a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>();
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> data.length();
+<a name="l00179"></a>00179 }
 </pre></div>
 <p>
     </td>
@@ -1118,7 +1164,7 @@ The host being connected to, in sockaddr form.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00078">78</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="addy"></a><!-- doxytag: member="InspSocket::addy" ref="addy" args="" --><p>
@@ -1147,7 +1193,36 @@ The host being connected to, in in_addr form.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00084">84</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="Buffer"></a><!-- doxytag: member="InspSocket::Buffer" ref="Buffer" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classInspSocket.html#Buffer">InspSocket::Buffer</a><code> [private]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+The output buffer for this socket. 
+<p>
+
+<p>
+Definition at line <a class="el" href="socket_8h-source.html#l00111">111</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
+<p>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00181">FlushWriteBuffer()</a>, and <a class="el" href="socket_8cpp-source.html#l00174">Write()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="client"></a><!-- doxytag: member="InspSocket::client" ref="client" args="" --><p>
@@ -1174,9 +1249,9 @@ Client sockaddr structure used by accept().
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8h-source.html#l00119">119</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
+Definition at line <a class="el" href="socket_8h-source.html#l00124">124</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="fd"></a><!-- doxytag: member="InspSocket::fd" ref="fd" args="" --><p>
@@ -1205,7 +1280,7 @@ The file descriptor of this socket.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00054">54</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00141">Close()</a>, <a class="el" href="socket_8cpp-source.html#l00259">GetFd()</a>, and <a class="el" href="socket_8cpp-source.html#l00053">InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00138">Close()</a>, <a class="el" href="socket_8cpp-source.html#l00258">GetFd()</a>, and <a class="el" href="socket_8cpp-source.html#l00050">InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="host"></a><!-- doxytag: member="InspSocket::host" ref="host" args="" --><p>
@@ -1235,13 +1310,13 @@ The hostname connected to.
 Definition at line <a class="el" href="socket_8h-source.html#l00059">59</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="ibuf_5B_31_36_33_38_34_5D"></a><!-- doxytag: member="InspSocket::ibuf" ref="ibuf_5B_31_36_33_38_34_5D" args="[16384]" --><p>
+<a class="anchor" name="ibuf_5B_36_35_35_33_35_5D"></a><!-- doxytag: member="InspSocket::ibuf" ref="ibuf_5B_36_35_35_33_35_5D" args="[65535]" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">char <a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">InspSocket::ibuf</a>[16384]<code> [private]</code>          </td>
+          <td class="md" nowrap valign="top">char <a class="el" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">InspSocket::ibuf</a>[65535]<code> [private]</code>          </td>
         </tr>
       </table>
     </td>
@@ -1257,11 +1332,11 @@ Definition at line <a class="el" href="socket_8h-source.html#l00059">59</a> of f
 <p>
 Socket input buffer, used by read(). 
 <p>
-The class which extends InspSocket is expected to implement an extendable buffer which can grow much larger than 16k, this buffer is just designed to be temporary storage. space.
+The class which extends InspSocket is expected to implement an extendable buffer which can grow much larger than 64k, this buffer is just designed to be temporary storage. space.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00106">106</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00158">Read()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00155">Read()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="IP"></a><!-- doxytag: member="InspSocket::IP" ref="IP" args="" --><p>
@@ -1288,9 +1363,9 @@ The IP address being connected to stored in string form for easy retrieval by ac
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8h-source.html#l00113">113</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
+Definition at line <a class="el" href="socket_8h-source.html#l00118">118</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00153">GetIP()</a>, and <a class="el" href="socket_8cpp-source.html#l00053">InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00150">GetIP()</a>, and <a class="el" href="socket_8cpp-source.html#l00050">InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="length"></a><!-- doxytag: member="InspSocket::length" ref="length" args="" --><p>
@@ -1317,9 +1392,9 @@ Used by accept() to indicate the sizes of the sockaddr_in structures.
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8h-source.html#l00131">131</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
+Definition at line <a class="el" href="socket_8h-source.html#l00136">136</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">Poll()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00216">Poll()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="port"></a><!-- doxytag: member="InspSocket::port" ref="port" args="" --><p>
@@ -1373,7 +1448,7 @@ Definition at line <a class="el" href="socket_8h-source.html#l00065">65</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8h-source.html#l00125">125</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
+Definition at line <a class="el" href="socket_8h-source.html#l00130">130</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="state"></a><!-- doxytag: member="InspSocket::state" ref="state" args="" --><p>
@@ -1402,7 +1477,7 @@ The state for this socket, either listening, connecting, connected or error.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00072">72</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00254">GetState()</a>, <a class="el" href="socket_8cpp-source.html#l00048">InspSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00248">SetState()</a>, and <a class="el" href="socket_8cpp-source.html#l00200">Timeout()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00253">GetState()</a>, <a class="el" href="socket_8cpp-source.html#l00045">InspSocket()</a>, <a class="el" href="socket_8cpp-source.html#l00247">SetState()</a>, and <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="timeout"></a><!-- doxytag: member="InspSocket::timeout" ref="timeout" args="" --><p>
@@ -1431,7 +1506,7 @@ This value is true if the socket has timed out.
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00097">97</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00200">Timeout()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="timeout_5Fend"></a><!-- doxytag: member="InspSocket::timeout_end" ref="timeout_5Fend" args="" --><p>
@@ -1460,12 +1535,12 @@ When this time is reached, the socket times out if it is in the CONNECTING state
 <p>
 Definition at line <a class="el" href="socket_8h-source.html#l00091">91</a> of file <a class="el" href="socket_8h-source.html">socket.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00200">Timeout()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00197">Timeout()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="socket_8h-source.html">socket.h</a><li><a class="el" href="socket_8cpp-source.html">socket.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f141be48a4e392a4dcfae865095755f14addf719..58e1367ba82a577b72191b21f75ccdb0996fe98f 100644 (file)
@@ -1 +1 @@
-7f01698bd61166ed2298c165402581f7
\ No newline at end of file
+51939a33bf707f1bcff03f02bd5b43b3
\ No newline at end of file
index 7ab51ae72e24c1ac17407c148390d374f68ffbae..0d41efe4cca999ad76ceea32d8ae098de303756f 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classHostItem.html#set_5Ftime">set_time</a></td><td><a class="el" href="classHostItem.html">HostItem</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classHostItem.html#_7EHostItem_28_29">~HostItem</a>()</td><td><a class="el" href="classHostItem.html">HostItem</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6a6ed71c8a772e07da4215f7062d7fa81127980d..9db6a7e50779c559f5a97554cbe37d40468ee469 100644 (file)
@@ -30,7 +30,7 @@ A subclass of <a class="el" href="classHostItem.html">HostItem</a> designed to h
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00070">70</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c13a0f6e6cf79c610bed0d21dd319e29a8a32e40..d28f69c90141512936400020941b96b391a72de7 100644 (file)
@@ -7,10 +7,10 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <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.<p><table>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#age">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classInvited.html#channel_5BCHANMAX_5D">channel</a></td><td><a class="el" href="classInvited.html">Invited</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classInvited.html#channel">channel</a></td><td><a class="el" href="classInvited.html">Invited</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#classbase_28_29">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a339904baf0e2bf37ed0feac73ba49b19ee0f06c..1f5a9f3434fc81a5ec7abe2df915039882130286 100644 (file)
@@ -21,7 +21,7 @@ Inheritance diagram for Invited:<p><center><img src="classInvited__inherit__grap
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><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 class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInvited.html#channel_5BCHANMAX_5D">channel</a> [CHANMAX]</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">irc::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classInvited.html#channel">channel</a></td></tr>
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
@@ -29,14 +29,14 @@ Holds a channel name to which a user has been invited.
 <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>.<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="channel_5BCHANMAX_5D"></a><!-- doxytag: member="Invited::channel" ref="channel_5BCHANMAX_5D" args="[CHANMAX]" --><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>.<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="channel"></a><!-- doxytag: member="Invited::channel" ref="channel" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">char <a class="el" href="classInvited.html#channel_5BCHANMAX_5D">Invited::channel</a>[CHANMAX]          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">irc::string</a> <a class="el" href="classInvited.html#channel">Invited::channel</a>          </td>
         </tr>
       </table>
     </td>
@@ -52,14 +52,14 @@ Definition at line <a class="el" href="users_8h-source.html#l00039">39</a> of fi
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00046">46</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#l00115">userrec::InviteTo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00141">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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1ffe72a60a8d7343e5641e637bcc65ae1f8b690c..4e56570e220a126ac5123b794bf6e8f30d22542f 100644 (file)
@@ -1 +1 @@
-7fbf1811875f3b2d0f9e2d08f95517bf
\ No newline at end of file
+14a980236c753f79990d5ee0b50c1adc
\ No newline at end of file
index 455ad453be8c4e7eac48854866f107fef5208c71..ff52faffefa81d4fe4081588d0aa785c46e41535 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d9a258167401734267c9dacb244851db691a5fe1..681126f3865c315e09ea294aba9517257a36d685 100644 (file)
@@ -62,7 +62,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00073">73</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 33f7e624805955723791344d4b10d5fb7fc619fe..d0d6788bbb510a405e91166067eeedf99ab38852 100644 (file)
@@ -12,7 +12,7 @@
   <tr class="memlist"><td><a class="el" href="classModeParameter.html#mode">mode</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a></td><td><a class="el" href="classModeParameter.html">ModeParameter</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 8e9753f5ce607def87cf0b2aa9040a02827d45bf..6a430b4749506d1c1247a20f18f0ca1a3f45399d 100644 (file)
@@ -60,7 +60,7 @@ Definition at line <a class="el" href="channels_8h-source.html#l00079">79</a> of
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00084">84</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="mode"></a><!-- doxytag: member="ModeParameter::mode" ref="mode" args="" --><p>
@@ -87,7 +87,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00111">chanrec::Set
 <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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="parameter_5BMAXBUF_5D"></a><!-- doxytag: member="ModeParameter::parameter" ref="parameter_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -114,12 +114,12 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00111">chanrec::Set
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00083">83</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index da275b22c13f5a676cf001fe0c7da8a946ba367c..1014b14eed1d1d6027e0ebaa52e5050b320e41dd 100644 (file)
@@ -89,7 +89,7 @@
   <tr class="memlist"><td><a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(void *opaque, int target_type, void *target, std::string modeline)</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModule.html#_7EModule_28_29">~Module</a>()</td><td><a class="el" href="classModule.html">Module</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index abedf601d54ea9d8ee9818defd0cd4f3d20a45b5..2c29a02dc7f96053db612d1293a2b4c86dfe7a25 100644 (file)
@@ -267,7 +267,7 @@ All modules must inherit from this class, its methods will be called when irc se
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00254">254</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00272">272</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Module_28Server_20_2AMe_29"></a><!-- doxytag: member="Module::Module" ref="Module_28Server_20_2AMe_29" args="(Server *Me)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -302,7 +302,7 @@ Default constructor Creates a module class.
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00220">220</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00220"></a>00220 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00219">219</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00219"></a>00219 { }
 </pre></div>
 <p>
     </td>
@@ -336,7 +336,7 @@ Default destructor destroys a module class.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00221">221</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00221"></a>00221 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00220">220</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00220"></a>00220 { }
 </pre></div>
 <p>
     </td>
@@ -371,9 +371,9 @@ 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#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version::Version</a>
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00232">232</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00231">231</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00053">VF_VENDOR</a>.<div class="fragment"><pre class="fragment"><a name="l00232"></a>00232 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); }
+References <a class="el" href="modules_8h-source.html#l00053">VF_VENDOR</a>.<div class="fragment"><pre class="fragment"><a name="l00231"></a>00231 { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); }
 </pre></div>
 <p>
     </td>
@@ -413,7 +413,7 @@ The module should modify the 005 numeric if needed to indicate its features. <dl
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00242">242</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00242"></a>00242 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00241">241</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00241"></a>00241 { };
 </pre></div>
 <p>
     </td>
@@ -488,9 +488,9 @@ This function is called before many functions which check a users status on a ch
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00241">241</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00240">240</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>.<div class="fragment"><pre class="fragment"><a name="l00241"></a>00241 { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#ACR_5FDEFAULT">ACR_DEFAULT</a>; };
+References <a class="el" href="modules_8h-source.html#l00037">ACR_DEFAULT</a>.<div class="fragment"><pre class="fragment"><a name="l00240"></a>00240 { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#ACR_5FDEFAULT">ACR_DEFAULT</a>; };
 </pre></div>
 <p>
     </td>
@@ -548,7 +548,7 @@ Return a non-zero value to 'eat' the mode change and prevent the ban from being
 <dl compact><dt><b>Returns:</b></dt><dd>1 to block the ban, 0 to continue as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00267">267</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00267"></a>00267 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00266">266</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00266"></a>00266 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -612,7 +612,7 @@ This method is triggered after the line is added. <dl compact><dt><b>Parameters:
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00293">293</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00293"></a>00293 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00292">292</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00292"></a>00292 { };
 </pre></div>
 <p>
     </td>
@@ -676,7 +676,7 @@ This method is triggered after the line is added. <dl compact><dt><b>Parameters:
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00289">289</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00289"></a>00289 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00288">288</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00288"></a>00288 { };
 </pre></div>
 <p>
     </td>
@@ -740,7 +740,7 @@ This method is triggered after the line is added. <dl compact><dt><b>Parameters:
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00291">291</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00291"></a>00291 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00290">290</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00290"></a>00290 { };
 </pre></div>
 <p>
     </td>
@@ -804,7 +804,7 @@ This method is triggered after the line is added. <dl compact><dt><b>Parameters:
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00292">292</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00292"></a>00292 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00291">291</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00291"></a>00291 { };
 </pre></div>
 <p>
     </td>
@@ -868,7 +868,7 @@ This method is triggered after the line is added. <dl compact><dt><b>Parameters:
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00290">290</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00290"></a>00290 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00289">289</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00289"></a>00289 { };
 </pre></div>
 <p>
     </td>
@@ -908,7 +908,7 @@ This timer can be used to control timed features. Its period is not accurate eno
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00246">246</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00246"></a>00246 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00245">245</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00245"></a>00245 { };
 </pre></div>
 <p>
     </td>
@@ -958,7 +958,7 @@ This event triggers after the host has been set. <dl compact><dt><b>Parameters:<
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00287">287</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00287"></a>00287 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00286">286</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00286"></a>00286 { };
 </pre></div>
 <p>
     </td>
@@ -1009,7 +1009,7 @@ return 1 to deny the name change, or 0 to allow it. <dl compact><dt><b>Parameter
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the GECOS change, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00260">260</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00260"></a>00260 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00259">259</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00259"></a>00259 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1060,7 +1060,7 @@ Return 1 to deny the host change, or 0 to allow it. <dl compact><dt><b>Parameter
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the host change, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00259">259</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00259"></a>00259 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00258">258</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00258"></a>00258 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1110,7 +1110,7 @@ This event triggers after the name has been set. <dl compact><dt><b>Parameters:<
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00288">288</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00288"></a>00288 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00287">287</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00287"></a>00287 { };
 </pre></div>
 <p>
     </td>
@@ -1161,7 +1161,7 @@ This method will always be called for each join, wether or not the user actually
 <dl compact><dt><b>Returns:</b></dt><dd>1 to explicitly allow the join, 0 to proceed as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00257">257</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00257"></a>00257 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00256">256</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00256"></a>00256 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1212,7 +1212,7 @@ This method will always be called for each join, wether or not the channel is ac
 <dl compact><dt><b>Returns:</b></dt><dd>1 to explicitly allow the join, 0 to proceed as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00254">254</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00254"></a>00254 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00253">253</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00253"></a>00253 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1269,7 +1269,7 @@ This method will always be called for each join, wether or not the channel is ac
 <dl compact><dt><b>Returns:</b></dt><dd>1 to explicitly allow the join, 0 to proceed as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00255">255</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00255"></a>00255 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00254">254</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00254"></a>00254 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1320,7 +1320,7 @@ This method will always be called for each join, wether or not the channel is ac
 <dl compact><dt><b>Returns:</b></dt><dd>1 to explicitly allow the join, 0 to proceed as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00256">256</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00256"></a>00256 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00255">255</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00255"></a>00255 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1361,7 +1361,7 @@ For example a module which implements ident lookups will continue to return fals
 <dl compact><dt><b>Returns:</b></dt><dd>true to indicate readiness, false if otherwise</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00249">249</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00249"></a>00249 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00248">248</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00248"></a>00248 { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
 </pre></div>
 <p>
     </td>
@@ -1411,7 +1411,7 @@ This method is called once for every user and channel on the network, so that wh
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00299">299</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00299"></a>00299 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00298">298</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00298"></a>00298 { };
 </pre></div>
 <p>
     </td>
@@ -1475,7 +1475,7 @@ Please see src/modules/m_swhois.cpp for a working example of how to use this met
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00284">284</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00284"></a>00284 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00283">283</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00283"></a>00283 { };
 </pre></div>
 <p>
     </td>
@@ -1533,7 +1533,7 @@ Return a non-zero value to 'eat' the mode change and prevent the ban from being
 <dl compact><dt><b>Returns:</b></dt><dd>1 to block the unban, 0 to continue as normal</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00268">268</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00268"></a>00268 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00267">267</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00267"></a>00267 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -1583,7 +1583,7 @@ This method is triggered after the line is deleted. <dl compact><dt><b>Parameter
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00298">298</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00298"></a>00298 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00297">297</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00297"></a>00297 { };
 </pre></div>
 <p>
     </td>
@@ -1633,7 +1633,7 @@ This method is triggered after the line is deleted. <dl compact><dt><b>Parameter
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00294">294</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00294"></a>00294 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00293">293</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00293"></a>00293 { };
 </pre></div>
 <p>
     </td>
@@ -1683,7 +1683,7 @@ This method is triggered after the line is deleted. <dl compact><dt><b>Parameter
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00296">296</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00296"></a>00296 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00295">295</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00295"></a>00295 { };
 </pre></div>
 <p>
     </td>
@@ -1733,7 +1733,7 @@ This method is triggered after the line is deleted. <dl compact><dt><b>Parameter
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00297">297</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00297"></a>00297 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00296">296</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00296"></a>00296 { };
 </pre></div>
 <p>
     </td>
@@ -1783,7 +1783,7 @@ This method is triggered after the line is deleted. <dl compact><dt><b>Parameter
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00295">295</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00295"></a>00295 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00294">294</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00294"></a>00294 { };
 </pre></div>
 <p>
     </td>
@@ -1823,7 +1823,7 @@ Please see the documentation of <a class="el" href="classEvent.html#Send_28_29">
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00262">262</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00262"></a>00262 { <span class="keywordflow">return</span>; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00261">261</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00261"></a>00261 { <span class="keywordflow">return</span>; };
 </pre></div>
 <p>
     </td>
@@ -1901,7 +1901,7 @@ The type parameter is MT_SERVER, MT_CLIENT or MT_CHANNEL, dependent on where the
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00230">230</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00230"></a>00230 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00229">229</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00229"></a>00229 { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
 </pre></div>
 <p>
     </td>
@@ -1951,7 +1951,7 @@ You may change or define the description given in <a class="el" href="namespacei
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00278">278</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00278"></a>00278 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00277">277</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00277"></a>00277 { };
 </pre></div>
 <p>
     </td>
@@ -1991,7 +1991,7 @@ This event is informational only. You should not change any user information in
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00266">266</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00266"></a>00266 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00265">265</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00265"></a>00265 { };
 </pre></div>
 <p>
     </td>
@@ -2031,7 +2031,7 @@ You cannot override this and prevent it from happening as it is already happened
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00265">265</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00265"></a>00265 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00264">264</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00264"></a>00264 { };
 </pre></div>
 <p>
     </td>
@@ -2073,7 +2073,7 @@ The userrec will contain the information of the user who typed the command. Modu
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00234">234</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00234"></a>00234 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00233">233</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00233"></a>00233 { };
 </pre></div>
 <p>
     </td>
@@ -2131,7 +2131,7 @@ If a client is killed by a server, e.g. a nickname collision or protocol error,
 <dl compact><dt><b>Returns:</b></dt><dd>1 to prevent the kill, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00243">243</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00243"></a>00243 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00242">242</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00242"></a>00242 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2181,7 +2181,7 @@ mod will contain a pointer to the module, and string will contain its name, for
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00244">244</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00244"></a>00244 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00243">243</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00243"></a>00243 { };
 </pre></div>
 <p>
     </td>
@@ -2239,7 +2239,7 @@ Return 1 to deny the topic change, or 0 to allow it. <dl compact><dt><b>Paramete
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00261">261</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00261"></a>00261 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00260">260</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00260"></a>00260 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2303,7 +2303,7 @@ The text variable contains the remainder of the mode string after the target, e.
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00231">231</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00231"></a>00231 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00230">230</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00230"></a>00230 { };
 </pre></div>
 <p>
     </td>
@@ -2353,7 +2353,7 @@ The userrec will contain the oper mode 'o' as this function is called after any
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00233">233</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00233"></a>00233 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00232">232</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00232"></a>00232 { };
 </pre></div>
 <p>
     </td>
@@ -2404,7 +2404,7 @@ The password field (from the config file) is in 'password' and is to be compared
 <dl compact><dt><b>Returns:</b></dt><dd>1 to match the passwords, 0 to do nothing</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00264">264</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00264"></a>00264 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00263">263</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00263"></a>00263 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2461,7 +2461,7 @@ To block topic changes you must use OnLocalTopicChange instead. <dl compact><dt>
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00277">277</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00277"></a>00277 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00276">276</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00276"></a>00276 { };
 </pre></div>
 <p>
     </td>
@@ -2526,7 +2526,7 @@ This event occurs for all registered commands, wether they are registered in the
 <dl compact><dt><b>Returns:</b></dt><dd>1 to block the command, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00248">248</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00248"></a>00248 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00247">247</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00247"></a>00247 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2605,7 +2605,7 @@ Return 1 from this function to block the mode character from being processed ent
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the mode, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00253">253</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00253"></a>00253 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00252">252</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00252"></a>00252 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2662,7 +2662,7 @@ This is intended for raw socket processing (e.g. modules which wrap the tcp conn
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00269">269</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00269"></a>00269 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00268">268</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00268"></a>00268 { };
 </pre></div>
 <p>
     </td>
@@ -2702,7 +2702,9 @@ When this event is called, shutdown() has not yet been called on the socket. <dl
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00271">271</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00271"></a>00271 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00270">270</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, and <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>.<div class="fragment"><pre class="fragment"><a name="l00270"></a>00270 { };
 </pre></div>
 <p>
     </td>
@@ -2767,7 +2769,7 @@ This occurs AFTER the select() or poll() so there is always data waiting to be r
 <dl compact><dt><b>Returns:</b></dt><dd>nonzero if the event was handled, in which case readresult must be valid on exit</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00272">272</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00272"></a>00272 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00271">271</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00271"></a>00271 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2825,7 +2827,7 @@ Because this event is a low level event no user information is associated with i
 <dl compact><dt><b>Returns:</b></dt><dd>Number of characters actually written or 0 if you didn't handle the operation</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00270">270</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00270"></a>00270 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00269">269</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00269"></a>00269 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -2865,7 +2867,7 @@ This method is called prior to a /REHASH or when a SIGHUP is received from the o
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00227">227</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00227"></a>00227 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00226">226</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00226"></a>00226 { }
 </pre></div>
 <p>
     </td>
@@ -2922,7 +2924,7 @@ Called when an oper wants to disconnect a remote user via KILL.
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00275">275</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00275"></a>00275 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00274">274</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00274"></a>00274 { };
 </pre></div>
 <p>
     </td>
@@ -2962,9 +2964,9 @@ Please see the documentation of <a class="el" href="classRequest.html#Send_28_29
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00263">263</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00262">262</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00182">Request::Send()</a>.<div class="fragment"><pre class="fragment"><a name="l00263"></a>00263 { <span class="keywordflow">return</span> NULL; };
+Referenced by <a class="el" href="modules_8cpp-source.html#l00181">Request::Send()</a>.<div class="fragment"><pre class="fragment"><a name="l00262"></a>00262 { <span class="keywordflow">return</span> NULL; };
 </pre></div>
 <p>
     </td>
@@ -3021,7 +3023,7 @@ For example, when a /MODE channel +b (without any other parameters) is called, i
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00247">247</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00247"></a>00247 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00246">246</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00246"></a>00246 { };
 </pre></div>
 <p>
     </td>
@@ -3078,7 +3080,7 @@ This method is the lowest level of handler available to a module. It will be cal
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00228">228</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00228"></a>00228 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00227">227</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00227"></a>00227 { }
 </pre></div>
 <p>
     </td>
@@ -3118,7 +3120,7 @@ Called on all /STATS commands This method is triggered for all /STATS use, inclu
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00258">258</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00258"></a>00258 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00257">257</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00257"></a>00257 { };
 </pre></div>
 <p>
     </td>
@@ -3177,7 +3179,7 @@ For a good example of how to use this function, please see src/modules/m_chanpro
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00280">280</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00280"></a>00280 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00279">279</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00279"></a>00279 { };
 </pre></div>
 <p>
     </td>
@@ -3231,7 +3233,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00280">280</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00282">282</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00282"></a>00282 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00281">281</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00281"></a>00281 { };
 </pre></div>
 <p>
     </td>
@@ -3288,7 +3290,7 @@ When this function is called, it will be called from the module which implements
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00279">279</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00279"></a>00279 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00278">278</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00278"></a>00278 { };
 </pre></div>
 <p>
     </td>
@@ -3342,7 +3344,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00279">279</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00283">283</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00283"></a>00283 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00282">282</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00282"></a>00282 { };
 </pre></div>
 <p>
     </td>
@@ -3392,7 +3394,7 @@ mod will contain a pointer to the module, and string will contain its name, for
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00245">245</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00245"></a>00245 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00244">244</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00244"></a>00244 { };
 </pre></div>
 <p>
     </td>
@@ -3432,7 +3434,7 @@ The details of the connecting user are available to you in the parameter userrec
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00222">222</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00222"></a>00222 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00221">221</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00221"></a>00221 { }
 </pre></div>
 <p>
     </td>
@@ -3472,7 +3474,7 @@ The details of the exiting user are available to you in the parameter userrec *u
 </dl>
 
 <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>.<div class="fragment"><pre class="fragment"><a name="l00224"></a>00224 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00223">223</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00223"></a>00223 { }
 </pre></div>
 <p>
     </td>
@@ -3529,7 +3531,7 @@ You cannot prevent the invite from occuring using this function, to do that, use
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00276">276</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00276"></a>00276 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00275">275</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00275"></a>00275 { };
 </pre></div>
 <p>
     </td>
@@ -3579,7 +3581,7 @@ The details of the joining user are available to you in the parameter userrec *u
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00225">225</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00225"></a>00225 { }
+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>.<div class="fragment"><pre class="fragment"><a name="l00224"></a>00224 { }
 </pre></div>
 <p>
     </td>
@@ -3643,7 +3645,7 @@ If this method is called, the kick is already underway and cannot be prevented,
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00252">252</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00252"></a>00252 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00251">251</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00251"></a>00251 { };
 </pre></div>
 <p>
     </td>
@@ -3707,7 +3709,7 @@ The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00273">273</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00273"></a>00273 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00272">272</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00272"></a>00272 { };
 </pre></div>
 <p>
     </td>
@@ -3771,7 +3773,7 @@ The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec*
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00274">274</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00274"></a>00274 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00273">273</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00273"></a>00273 { };
 </pre></div>
 <p>
     </td>
@@ -3821,7 +3823,7 @@ The details of the leaving user are available to you in the parameter userrec *u
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00226">226</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00226"></a>00226 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00225">225</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00225"></a>00225 { }
 </pre></div>
 <p>
     </td>
@@ -3871,7 +3873,7 @@ This can be used to track users after nickchanges have been applied. Please note
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00240">240</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00240"></a>00240 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00239">239</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00239"></a>00239 { };
 </pre></div>
 <p>
     </td>
@@ -3929,7 +3931,7 @@ Returning 1 from this function stops the process immediately, causing no output
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the invite, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00236">236</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00236"></a>00236 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00235">235</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00235"></a>00235 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -3988,7 +3990,7 @@ If the user joins a NEW channel which does not exist yet, OnUserPreJoin will be
 <dl compact><dt><b>Returns:</b></dt><dd>1 To prevent the join, 0 to allow it.</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00229">229</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00229"></a>00229 { <span class="keywordflow">return</span> 0; }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00228">228</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00228"></a>00228 { <span class="keywordflow">return</span> 0; }
 </pre></div>
 <p>
     </td>
@@ -4053,7 +4055,7 @@ Returning a value of 1 from this function stops the process immediately, causing
 <dl compact><dt><b>Returns:</b></dt><dd>1 to prevent the kick, 0 to allow it</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00251">251</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00251"></a>00251 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00250">250</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00250"></a>00250 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -4118,7 +4120,7 @@ Returning any nonzero value from this function stops the process immediately, ca
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the NOTICE, 0 to allow it</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00237">237</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00237"></a>00237 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00236">236</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00236"></a>00236 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -4169,7 +4171,7 @@ This can be used to implement Q-lines etc. Please note that although you can see
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the change, 0 to allow</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00239">239</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00239"></a>00239 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00238">238</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00238"></a>00238 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -4234,7 +4236,7 @@ Returning any nonzero value from this function stops the process immediately, ca
 <dl compact><dt><b>Returns:</b></dt><dd>1 to deny the NOTICE, 0 to allow it</dd></dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00238">238</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00238"></a>00238 { <span class="keywordflow">return</span> 0; };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00237">237</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00237"></a>00237 { <span class="keywordflow">return</span> 0; };
 </pre></div>
 <p>
     </td>
@@ -4284,7 +4286,7 @@ The details of the exiting user are available to you in the parameter userrec *u
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00223">223</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00223"></a>00223 { }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00222">222</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00222"></a>00222 { }
 </pre></div>
 <p>
     </td>
@@ -4324,7 +4326,7 @@ before the user is sent the MOTD etc). Modules can use this method if they are p
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00250">250</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00250"></a>00250 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00249">249</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00249"></a>00249 { };
 </pre></div>
 <p>
     </td>
@@ -4374,7 +4376,7 @@ Called after every WALLOPS command.
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00286">286</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00286"></a>00286 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00285">285</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00285"></a>00285 { };
 </pre></div>
 <p>
     </td>
@@ -4424,7 +4426,7 @@ The source parameter contains the details of the user who issued the WHOIS comma
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00235">235</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00235"></a>00235 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00234">234</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00234"></a>00234 { };
 </pre></div>
 <p>
     </td>
@@ -4496,7 +4498,7 @@ More documentation to follow soon. Please see src/modules/m_swhois.cpp for examp
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00285">285</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00285"></a>00285 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00284">284</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00284"></a>00284 { };
 </pre></div>
 <p>
     </td>
@@ -4562,7 +4564,7 @@ More documentation to follow soon. Please see src/modules/m_chanprotect.cpp for
 </dl>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00281">281</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00281"></a>00281 { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00280">280</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00280"></a>00280 { };
 </pre></div>
 <p>
     </td>
@@ -4570,7 +4572,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00281">281</a>
 </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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 212914370fb1fe36afb1cfa0062feab40f6b977c..de3d70a0fc3a81f5ba5962d59e23d14d4c26a776 100644 (file)
@@ -12,7 +12,7 @@
   <tr class="memlist"><td><a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>()</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 096f375514237a2838ec942b234cc5f87e55b1d0..e21bbca4ae7e58a328a68832cbd41660e6ab59a6 100644 (file)
@@ -36,7 +36,7 @@ This is to allow for modules to create many different variants of <a class="el"
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01676">1676</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01694">1694</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="ModuleFactory_28_29"></a><!-- doxytag: member="ModuleFactory::ModuleFactory" ref="ModuleFactory_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -63,7 +63,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l01676">1676</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01679">1679</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01679"></a>01679 { }
+Definition at line <a class="el" href="modules_8h-source.html#l01697">1697</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01697"></a>01697 { }
 </pre></div>
 <p>
     </td>
@@ -95,7 +95,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l01679">1679</a> o
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01680">1680</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01680"></a>01680 { }
+Definition at line <a class="el" href="modules_8h-source.html#l01698">1698</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l01698"></a>01698 { }
 </pre></div>
 <p>
     </td>
@@ -134,7 +134,7 @@ Your inherited class of ModuleFactory must return a pointer to your <a class="el
 </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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bc697a2ef2b38aa47d666172d54b302690fbb6f1..dd93fb4b62555e435857bf0a9d00f95ec2b14128 100644 (file)
@@ -11,7 +11,7 @@
   <tr class="memlist"><td><a class="el" href="classModuleMessage.html#Send_28_29_3D_30">Send</a>()=0</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [pure virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 71f5fd7f22ce7a86fc8aa04ebe7a194ca7d5d296..c5ec9dd982b911831d471575a5fa8977caf65865 100644 (file)
@@ -34,7 +34,7 @@ The ModuleMessage class is the base class of <a class="el" href="classRequest.ht
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00143">143</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00161">161</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="_7EModuleMessage_28_29"></a><!-- doxytag: member="ModuleMessage::~ModuleMessage" ref="_7EModuleMessage_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -61,7 +61,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00143">143</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00149">149</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l00149"></a>00149 {};
+Definition at line <a class="el" href="modules_8h-source.html#l00167">167</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {};
 </pre></div>
 <p>
     </td>
@@ -101,7 +101,7 @@ Implemented in <a class="el" href="classRequest.html#Send_28_29">Request</a>, an
 </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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0d85a935d39d8988762724d6b14ee5141461a62e..c47950a5eccce5ca6de9e62e0489a530686bc072 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5cd4ea28dc12ea491aecfc3e46f2ea8ae19b7afa..14cb4d805961b30777f8f4b2a6015cd9b5fd6d5d 100644 (file)
@@ -92,7 +92,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00119">119</a> of f
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9f2ed1f7e8a388f8d660c1080180e8e33c943570..89f1a165b683e0c9bc8e91c17799ebb697567b91 100644 (file)
@@ -18,7 +18,7 @@
   <tr class="memlist"><td><a class="el" href="classRequest.html#source">source</a></td><td><a class="el" href="classRequest.html">Request</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>()</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a42c65b8cc6495b4749a15b3f637559cecdc2caa..cca86ed5178e5eec5a411a6440dd8e5ead2b7bbb 100644 (file)
@@ -57,7 +57,7 @@ When this class is properly instantiated it may be sent to a module using the <a
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00157">157</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00175">175</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29"></a><!-- doxytag: member="Request::Request" ref="Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29" args="(char *anydata, Module *src, Module *dst)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -102,7 +102,7 @@ Create a new Request.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00165">165</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00165"></a>00165 : <a class="code" href="classRequest.html#data">data</a>(anydata), <a class="code" href="classRequest.html#source">source</a>(src), <a class="code" href="classRequest.html#dest">dest</a>(dst) { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00164">164</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00164"></a>00164 : <a class="code" href="classRequest.html#data">data</a>(anydata), <a class="code" href="classRequest.html#source">source</a>(src), <a class="code" href="classRequest.html#dest">dest</a>(dst) { };
 </pre></div>
 <p>
     </td>
@@ -137,11 +137,11 @@ Fetch the Request data.
 <p>
 
 <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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00166">166</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00162">data</a>.<div class="fragment"><pre class="fragment"><a name="l00168"></a>00168 {
-<a name="l00169"></a>00169         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#data">data</a>;
-<a name="l00170"></a>00170 }
+References <a class="el" href="modules_8h-source.html#l00180">data</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {
+<a name="l00168"></a>00168         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#data">data</a>;
+<a name="l00169"></a>00169 }
 </pre></div>
 <p>
     </td>
@@ -175,11 +175,11 @@ Fetch the request destination (should be 'this' in the receiving module).
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00177">177</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00176">176</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00169">dest</a>.<div class="fragment"><pre class="fragment"><a name="l00178"></a>00178 {
-<a name="l00179"></a>00179         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#dest">dest</a>;
-<a name="l00180"></a>00180 }
+References <a class="el" href="modules_8h-source.html#l00187">dest</a>.<div class="fragment"><pre class="fragment"><a name="l00177"></a>00177 {
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#dest">dest</a>;
+<a name="l00179"></a>00179 }
 </pre></div>
 <p>
     </td>
@@ -213,11 +213,11 @@ Fetch the request source.
 <p>
 
 <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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00171">171</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h-source.html#l00166">source</a>.<div class="fragment"><pre class="fragment"><a name="l00173"></a>00173 {
-<a name="l00174"></a>00174         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#source">source</a>;
-<a name="l00175"></a>00175 }
+References <a class="el" href="modules_8h-source.html#l00184">source</a>.<div class="fragment"><pre class="fragment"><a name="l00172"></a>00172 {
+<a name="l00173"></a>00173         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#source">source</a>;
+<a name="l00174"></a>00174 }
 </pre></div>
 <p>
     </td>
@@ -253,18 +253,18 @@ Upon returning the result will be arbitary data returned by the module you sent
 <p>
 Implements <a class="el" href="classModuleMessage.html#Send_28_29_3D_30">ModuleMessage</a>.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00182">182</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8h-source.html#l00169">dest</a>, and <a class="el" href="modules_8cpp-source.html#l00263">Module::OnRequest()</a>.<div class="fragment"><pre class="fragment"><a name="l00183"></a>00183 {
-<a name="l00184"></a>00184         <span class="keywordflow">if</span> (this-&gt;dest)
-<a name="l00185"></a>00185         {
-<a name="l00186"></a>00186                 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-&gt;<a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>);
-<a name="l00187"></a>00187         }
-<a name="l00188"></a>00188         <span class="keywordflow">else</span>
-<a name="l00189"></a>00189         {
-<a name="l00190"></a>00190                 <span class="keywordflow">return</span> NULL;
-<a name="l00191"></a>00191         }
-<a name="l00192"></a>00192 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00181">181</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00187">dest</a>, and <a class="el" href="modules_8cpp-source.html#l00262">Module::OnRequest()</a>.<div class="fragment"><pre class="fragment"><a name="l00182"></a>00182 {
+<a name="l00183"></a>00183         <span class="keywordflow">if</span> (this-&gt;dest)
+<a name="l00184"></a>00184         {
+<a name="l00185"></a>00185                 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-&gt;<a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>);
+<a name="l00186"></a>00186         }
+<a name="l00187"></a>00187         <span class="keywordflow">else</span>
+<a name="l00188"></a>00188         {
+<a name="l00189"></a>00189                 <span class="keywordflow">return</span> NULL;
+<a name="l00190"></a>00190         }
+<a name="l00191"></a>00191 }
 </pre></div>
 <p>
     </td>
@@ -295,9 +295,9 @@ This member holds a pointer to arbitary data set by the emitter of the message.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00162">162</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00180">180</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#l00167">GetData()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00166">GetData()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="dest"></a><!-- doxytag: member="Request::dest" ref="dest" args="" --><p>
@@ -324,9 +324,9 @@ The single destination of the Request.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00169">169</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00187">187</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#l00177">GetDest()</a>, and <a class="el" href="modules_8cpp-source.html#l00182">Send()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00176">GetDest()</a>, and <a class="el" href="modules_8cpp-source.html#l00181">Send()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="source"></a><!-- doxytag: member="Request::source" ref="source" args="" --><p>
@@ -353,14 +353,14 @@ This is a pointer to the sender of the message, which can be used to directly tr
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00166">166</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00184">184</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#l00172">GetSource()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00171">GetSource()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a268ec1b61204f9a40dbedb3b54a917916e1a8cf..cf95fac5f265efa51ee8c8ab0e5e4932bfafb86a 100644 (file)
@@ -6,7 +6,7 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <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.<p><table>
-  <tr class="memlist"><td><a class="el" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand</a>(char *cmd, handlerfunc f, char flags, int minparams, char *source)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">AddCommand</a>(command_t *f)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(long duration, std::string source, std::string reason, std::string hostmask)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(char modechar)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">AddExtendedMode</a>(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
@@ -69,7 +69,7 @@
   <tr class="memlist"><td><a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(userrec *user, std::string message)</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classServer.html#_7EServer_28_29">~Server</a>()</td><td><a class="el" href="classServer.html">Server</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 21df2ba69ba42cd91bae7cb294a12b8089bac38d..e7ec5d47445928b67ae7a6e5d685717c1e818095 100644 (file)
@@ -105,9 +105,9 @@ Inheritance diagram for Server:<p><center><img src="classServer__inherit__graph.
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a> (char modechar)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds an extended mode letter which is parsed by a module and handled in a list fashion.  <a href="#AddExtendedListMode_28char_20modechar_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand</a> (char *cmd, <a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, char flags, int minparams, char *source)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">AddCommand</a> (<a class="el" href="classcommand__t.html">command_t</a> *f)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a command to the command table.  <a href="#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a command to the command table.  <a href="#AddCommand_28command_5Ft_20_2Af_29"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends a servermode.  <a href="#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><br></td></tr>
@@ -207,7 +207,7 @@ All modules should instantiate at least one copy of this class, and use its memb
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01096">1096</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l01114">1114</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Server_28_29"></a><!-- doxytag: member="Server::Server" ref="Server_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -236,8 +236,8 @@ Default constructor.
 <p>
 Creates a Server object.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00305">305</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00306"></a>00306 {
-<a name="l00307"></a>00307 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00304">304</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00305"></a>00305 {
+<a name="l00306"></a>00306 }
 </pre></div>
 <p>
     </td>
@@ -271,15 +271,15 @@ Default destructor.
 <p>
 Destroys a Server object.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00309">309</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00310"></a>00310 {
-<a name="l00311"></a>00311 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00308">308</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00309"></a>00309 {
+<a name="l00310"></a>00310 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29"></a><!-- doxytag: member="Server::AddCommand" ref="AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29" args="(char *cmd, handlerfunc f, char flags, int minparams, char *source)" --><p>
+<a class="anchor" name="AddCommand_28command_5Ft_20_2Af_29"></a><!-- doxytag: member="Server::AddCommand" ref="AddCommand_28command_5Ft_20_2Af_29" args="(command_t *f)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -287,37 +287,10 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00309">309</a>
         <tr>
           <td class="md" nowrap valign="top">void Server::AddCommand           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>cmd</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>&nbsp;</td>
-          <td class="mdname" nowrap> <em>f</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char&nbsp;</td>
-          <td class="mdname" nowrap> <em>flags</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>minparams</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>source</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"><code> [virtual]</code></td>
+          <td class="md" nowrap valign="top"><a class="el" href="classcommand__t.html">command_t</a> *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>f</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
         </tr>
       </table>
     </td>
@@ -334,14 +307,14 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00309">309</a>
 Adds a command to the command table. 
 <p>
 This allows modules to add extra commands into the command table. You must place a function within your module which is is of type handlerfunc:<p>
-typedef void (handlerfunc) (char**, int, userrec*); ... void <a class="el" href="commands_8h.html#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kill(char **parameters, int pcnt, userrec *user)</a><p>
+typedef void (handlerfunc) (char**, int, userrec*); ... void handle_kill(char **parameters, int pcnt, userrec *user)<p>
 When the command is typed, the parameters will be placed into the parameters array (similar to argv) and the parameter count will be placed into pcnt (similar to argv). There will never be any less parameters than the 'minparams' value you specified when creating the command. The *user parameter is the class of the user which caused the command to trigger, who will always have the flag you specified in 'flags' when creating the initial command. For example to create an oper only command create the commands with flags='o'. The source parameter is used for resource tracking, and should contain the name of your module (with file extension) e.g. "m_blarp.so". If you place the wrong identifier here, you can cause crashes if your module is unloaded.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00416">416</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00415">415</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand()</a>.<div class="fragment"><pre class="fragment"><a name="l00417"></a>00417 {
-<a name="l00418"></a>00418         <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
-<a name="l00419"></a>00419 }
+References <a class="el" href="inspircd_8h-source.html#l00110">InspIRCd::Parser</a>.<div class="fragment"><pre class="fragment"><a name="l00416"></a>00416 {
+<a name="l00417"></a>00417         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CreateCommand(f);
+<a name="l00418"></a>00418 }
 </pre></div>
 <p>
     </td>
@@ -397,11 +370,11 @@ Adds a E-line The E-line is enforced as soon as it is added.
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00660">660</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00659">659</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00661"></a>00661 {
-<a name="l00662"></a>00662         <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00663"></a>00663 }
+References <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00660"></a>00660 {
+<a name="l00661"></a>00661         <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00662"></a>00662 }
 </pre></div>
 <p>
     </td>
@@ -441,14 +414,14 @@ This call is used to implement modes like +q and +a. The characteristics of thes
 (4) The mode and its parameter are NOT stored in the channels modes structure<p>
 It is down to the module handling the mode to maintain state and determine what 'items' (e.g. users, or a banlist) have the mode set on them, and process the modes at the correct times, e.g. during access checks on channels, etc. When the extended mode is triggered the OnExtendedMode method will be triggered as above. Note that the target you are given will be a channel, if for example your mode is set 'on a user' (in for example +a) you must use <a class="el" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Server::Find</a> to locate the user the mode is operating on. Your mode handler may return 1 to handle the mode AND tell the core to display the mode change, e.g. '+aaa one two three' in the case of the mode for 'two', or it may return -1 to 'eat' the mode change, so the above example would become '+aa one three' after processing.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00584">584</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00583">583</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00144">ModeMakeList()</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.<div class="fragment"><pre class="fragment"><a name="l00585"></a>00585 {
-<a name="l00586"></a>00586         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
-<a name="l00587"></a>00587         <span class="keywordflow">if</span> (res)
-<a name="l00588"></a>00588                 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
-<a name="l00589"></a>00589         <span class="keywordflow">return</span> res;
-<a name="l00590"></a>00590 }
+References <a class="el" href="modules_8cpp-source.html#l00133">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00143">ModeMakeList()</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.<div class="fragment"><pre class="fragment"><a name="l00584"></a>00584 {
+<a name="l00585"></a>00585         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
+<a name="l00586"></a>00586         <span class="keywordflow">if</span> (res)
+<a name="l00587"></a>00587                 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
+<a name="l00588"></a>00588         <span class="keywordflow">return</span> res;
+<a name="l00589"></a>00589 }
 </pre></div>
 <p>
     </td>
@@ -510,34 +483,34 @@ Adds an extended mode letter which is parsed by a module.
 <p>
 This allows modules to add extra mode letters, e.g. +x for hostcloak. the "type" parameter is either MT_CHANNEL, MT_CLIENT, or MT_SERVER, to indicate wether the mode is a channel mode, a client mode, or a server mode. requires_oper is used with MT_CLIENT type modes only to indicate the mode can only be set or unset by an oper. If this is used for MT_CHANNEL type modes it is ignored. params_when_on is the number of modes to expect when the mode is turned on (for type MT_CHANNEL only), e.g. with mode +k, this would have a value of 1. the params_when_off value has a similar value to params_when_on, except it indicates the number of parameters to expect when the mode is disabled. Modes which act in a similar way to channel mode +l (e.g. require a parameter to enable, but not to disable) should use this parameter. The function returns false if the mode is unavailable, and will not attempt to allocate another character, as this will confuse users. This also means that as only one module can claim a specific mode character, the core does not need to keep track of which modules own which modes, which speeds up operation of the server. In this version, a mode can have at most one parameter, attempting to use more parameters will have undefined effects.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00556">556</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtendedMode()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="modules_8h-source.html#l00032">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00033">MT_SERVER</a>.<div class="fragment"><pre class="fragment"><a name="l00557"></a>00557 {
-<a name="l00558"></a>00558         <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
-<a name="l00559"></a>00559         {
-<a name="l00560"></a>00560                 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
-<a name="l00561"></a>00561                 {
-<a name="l00562"></a>00562                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-<a name="l00563"></a>00563                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00564"></a>00564                 }
-<a name="l00565"></a>00565                 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>))
-<a name="l00566"></a>00566                 {
-<a name="l00567"></a>00567                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-<a name="l00568"></a>00568                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00569"></a>00569                 }
-<a name="l00570"></a>00570                 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-<a name="l00571"></a>00571                 {
-<a name="l00572"></a>00572                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-<a name="l00573"></a>00573                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00574"></a>00574                 }
-<a name="l00575"></a>00575                 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-<a name="l00576"></a>00576         }
-<a name="l00577"></a>00577         <span class="keywordflow">else</span>
-<a name="l00578"></a>00578         {
-<a name="l00579"></a>00579                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
-<a name="l00580"></a>00580         }
-<a name="l00581"></a>00581         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00582"></a>00582 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00555">555</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="modules_8cpp-source.html#l00133">DoAddExtendedMode()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="modules_8h-source.html#l00032">MT_CLIENT</a>, and <a class="el" href="modules_8h-source.html#l00033">MT_SERVER</a>.<div class="fragment"><pre class="fragment"><a name="l00556"></a>00556 {
+<a name="l00557"></a>00557         <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
+<a name="l00558"></a>00558         {
+<a name="l00559"></a>00559                 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
+<a name="l00560"></a>00560                 {
+<a name="l00561"></a>00561                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+<a name="l00562"></a>00562                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00563"></a>00563                 }
+<a name="l00564"></a>00564                 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>))
+<a name="l00565"></a>00565                 {
+<a name="l00566"></a>00566                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+<a name="l00567"></a>00567                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00568"></a>00568                 }
+<a name="l00569"></a>00569                 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00570"></a>00570                 {
+<a name="l00571"></a>00571                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00572"></a>00572                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00573"></a>00573                 }
+<a name="l00574"></a>00574                 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+<a name="l00575"></a>00575         }
+<a name="l00576"></a>00576         <span class="keywordflow">else</span>
+<a name="l00577"></a>00577         {
+<a name="l00578"></a>00578                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
+<a name="l00579"></a>00579         }
+<a name="l00580"></a>00580         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00581"></a>00581 }
 </pre></div>
 <p>
     </td>
@@ -593,11 +566,11 @@ Adds a G-line The G-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00640">640</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00639">639</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00641"></a>00641 {
-<a name="l00642"></a>00642         <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00643"></a>00643 }
+References <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00640"></a>00640 {
+<a name="l00641"></a>00641         <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00642"></a>00642 }
 </pre></div>
 <p>
     </td>
@@ -653,11 +626,11 @@ Adds a K-line The K-line is enforced as soon as it is added.
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00655">655</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00654">654</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00656"></a>00656 {
-<a name="l00657"></a>00657         <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00658"></a>00658 }
+References <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00655"></a>00655 {
+<a name="l00656"></a>00656         <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00657"></a>00657 }
 </pre></div>
 <p>
     </td>
@@ -713,11 +686,11 @@ Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00645">645</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00644">644</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00646"></a>00646 {
-<a name="l00647"></a>00647         <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
-<a name="l00648"></a>00648 }
+References <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00645"></a>00645 {
+<a name="l00646"></a>00646         <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), nickname.c_str());
+<a name="l00647"></a>00647 }
 </pre></div>
 <p>
     </td>
@@ -752,11 +725,11 @@ Adds a class derived from <a class="el" href="classInspSocket.html">InspSocket</
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00313">313</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00312">312</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00314"></a>00314 {
-<a name="l00315"></a>00315         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock);
-<a name="l00316"></a>00316 }
+References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00313"></a>00313 {
+<a name="l00314"></a>00314         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock);
+<a name="l00315"></a>00315 }
 </pre></div>
 <p>
     </td>
@@ -812,11 +785,11 @@ Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enf
 <p>
 The duration must be in seconds, however you can use the <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a> method to convert durations into the 1w2d3h3m6s format used by /GLINE etc. The source is an arbitary string used to indicate who or what sent the data, usually this is the nickname of a person, or a server name.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00650">650</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00649">649</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00651"></a>00651 {
-<a name="l00652"></a>00652         <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
-<a name="l00653"></a>00653 }
+References <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00650"></a>00650 {
+<a name="l00651"></a>00651         <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(<a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, source.c_str(), reason.c_str(), ipaddr.c_str());
+<a name="l00652"></a>00652 }
 </pre></div>
 <p>
     </td>
@@ -851,11 +824,11 @@ Calculates a duration This method will take a string containing a formatted dura
 <p>
 "1w2d") and return its value as a total number of seconds. This is the same function used internally by /GLINE etc to set the ban times.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00690">690</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00689">689</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration()</a>.<div class="fragment"><pre class="fragment"><a name="l00691"></a>00691 {
-<a name="l00692"></a>00692         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
-<a name="l00693"></a>00693 }
+References <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration()</a>.<div class="fragment"><pre class="fragment"><a name="l00690"></a>00690 {
+<a name="l00691"></a>00691         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
+<a name="l00692"></a>00692 }
 </pre></div>
 <p>
     </td>
@@ -910,13 +883,13 @@ References <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr
 Calls the handler for a command, either implemented by the core or by another module. 
 <p>
 You can use this function to trigger other commands in the ircd, such as PRIVMSG, JOIN, KICK etc, or even as a method of callback. By defining command names that are untypeable for users on irc (e.g. those which contain a  or <br>
-) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih <a class="el" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand()</a>. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
+) you may use them as callback identifiers. The first parameter to this method is the name of the command handler you wish to call, e.g. PRIVMSG. This will be a command handler previously registered by the core or wih <a class="el" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">AddCommand()</a>. The second parameter is an array of parameters, and the third parameter is a count of parameters in the array. If you do not pass enough parameters to meet the minimum needed by the handler, the functiom will silently ignore it. The final parameter is the user executing the command handler, used for privilage checks, etc.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00401">401</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00400">400</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler()</a>.<div class="fragment"><pre class="fragment"><a name="l00402"></a>00402 {
-<a name="l00403"></a>00403         <a class="code" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler</a>(commandname.c_str(),parameters,pcnt,user);
-<a name="l00404"></a>00404 }
+References <a class="el" href="inspircd_8h-source.html#l00110">InspIRCd::Parser</a>.<div class="fragment"><pre class="fragment"><a name="l00401"></a>00401 {
+<a name="l00402"></a>00402         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CallHandler(commandname,parameters,pcnt,user);
+<a name="l00403"></a>00403 }
 </pre></div>
 <p>
     </td>
@@ -960,11 +933,11 @@ Change GECOS (fullname) of a user.
 <p>
 You should always call this method to change a user's GECOS rather than writing directly to the fullname member of userrec, as any change applied via this method will be propogated to any linked servers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00499">499</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00498">498</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName()</a>.<div class="fragment"><pre class="fragment"><a name="l00500"></a>00500 {
-<a name="l00501"></a>00501         <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
-<a name="l00502"></a>00502 }
+References <a class="el" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName()</a>.<div class="fragment"><pre class="fragment"><a name="l00499"></a>00499 {
+<a name="l00500"></a>00500         <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
+<a name="l00501"></a>00501 }
 </pre></div>
 <p>
     </td>
@@ -1008,11 +981,11 @@ Change displayed hostname of a user.
 <p>
 You should always call this method to change a user's host rather than writing directly to the dhost member of userrec, as any change applied via this method will be propogated to any linked servers.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00494">494</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00493">493</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost()</a>.<div class="fragment"><pre class="fragment"><a name="l00495"></a>00495 {
-<a name="l00496"></a>00496         <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
-<a name="l00497"></a>00497 }
+References <a class="el" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost()</a>.<div class="fragment"><pre class="fragment"><a name="l00494"></a>00494 {
+<a name="l00495"></a>00495         <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
+<a name="l00496"></a>00496 }
 </pre></div>
 <p>
     </td>
@@ -1056,11 +1029,11 @@ Forces a user nickchange.
 <p>
 This command works similarly to SVSNICK, and can be used to implement Q-lines etc. If you specify an invalid nickname, the nick change will be dropped and the target user will receive the error numeric for it.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00386">386</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00385">385</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange()</a>.<div class="fragment"><pre class="fragment"><a name="l00387"></a>00387 {
-<a name="l00388"></a>00388         <a class="code" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str());
-<a name="l00389"></a>00389 }
+References <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>.<div class="fragment"><pre class="fragment"><a name="l00386"></a>00386 {
+<a name="l00387"></a>00387         <a class="code" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str());
+<a name="l00388"></a>00388 }
 </pre></div>
 <p>
     </td>
@@ -1104,11 +1077,11 @@ 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#l00524">524</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00523">523</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode()</a>.<div class="fragment"><pre class="fragment"><a name="l00525"></a>00525 {
-<a name="l00526"></a>00526         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
-<a name="l00527"></a>00527 }
+References <a class="el" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode()</a>.<div class="fragment"><pre class="fragment"><a name="l00524"></a>00524 {
+<a name="l00525"></a>00525         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
+<a name="l00526"></a>00526 }
 </pre></div>
 <p>
     </td>
@@ -1152,11 +1125,11 @@ 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#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a> method.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00472">472</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00471">471</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels()</a>.<div class="fragment"><pre class="fragment"><a name="l00473"></a>00473 {
-<a name="l00474"></a>00474         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
-<a name="l00475"></a>00475 }
+References <a class="el" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels()</a>.<div class="fragment"><pre class="fragment"><a name="l00472"></a>00472 {
+<a name="l00473"></a>00473         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
+<a name="l00474"></a>00474 }
 </pre></div>
 <p>
     </td>
@@ -1191,9 +1164,9 @@ Returns a count of the number of users on a channel.
 <p>
 This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00592">592</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00593"></a>00593 {
-<a name="l00594"></a>00594         <span class="keywordflow">return</span> usercount(c);
-<a name="l00595"></a>00595 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00591">591</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00592"></a>00592 {
+<a name="l00593"></a>00593         <span class="keywordflow">return</span> usercount(c);
+<a name="l00594"></a>00594 }
 </pre></div>
 <p>
     </td>
@@ -1228,11 +1201,11 @@ Deletes a local E-Line.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00685">685</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00684">684</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00686"></a>00686 {
-<a name="l00687"></a>00687         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
-<a name="l00688"></a>00688 }
+References <a class="el" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline()</a>.<div class="fragment"><pre class="fragment"><a name="l00685"></a>00685 {
+<a name="l00686"></a>00686         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
+<a name="l00687"></a>00687 }
 </pre></div>
 <p>
     </td>
@@ -1267,11 +1240,11 @@ Deletes a G-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00665">665</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00664">664</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00666"></a>00666 {
-<a name="l00667"></a>00667         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
-<a name="l00668"></a>00668 }
+References <a class="el" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline()</a>.<div class="fragment"><pre class="fragment"><a name="l00665"></a>00665 {
+<a name="l00666"></a>00666         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
+<a name="l00667"></a>00667 }
 </pre></div>
 <p>
     </td>
@@ -1306,11 +1279,11 @@ Deletes a local K-Line.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00680">680</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00679">679</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00681"></a>00681 {
-<a name="l00682"></a>00682         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
-<a name="l00683"></a>00683 }
+References <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline()</a>.<div class="fragment"><pre class="fragment"><a name="l00680"></a>00680 {
+<a name="l00681"></a>00681         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
+<a name="l00682"></a>00682 }
 </pre></div>
 <p>
     </td>
@@ -1345,11 +1318,11 @@ Deletes a Q-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00670">670</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00669">669</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00671"></a>00671 {
-<a name="l00672"></a>00672         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
-<a name="l00673"></a>00673 }
+References <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline()</a>.<div class="fragment"><pre class="fragment"><a name="l00670"></a>00670 {
+<a name="l00671"></a>00671         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
+<a name="l00672"></a>00672 }
 </pre></div>
 <p>
     </td>
@@ -1384,18 +1357,18 @@ Deletes a class derived from <a class="el" href="classInspSocket.html">InspSocke
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00334">334</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00333">333</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00335"></a>00335 {
-<a name="l00336"></a>00336         <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
-<a name="l00337"></a>00337         {
-<a name="l00338"></a>00338                 <span class="keywordflow">if</span> (*a == sock)
-<a name="l00339"></a>00339                 {
-<a name="l00340"></a>00340                         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
-<a name="l00341"></a>00341                         <span class="keywordflow">return</span>;
-<a name="l00342"></a>00342                 }
-<a name="l00343"></a>00343         }
-<a name="l00344"></a>00344 }
+References <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.<div class="fragment"><pre class="fragment"><a name="l00334"></a>00334 {
+<a name="l00335"></a>00335         <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
+<a name="l00336"></a>00336         {
+<a name="l00337"></a>00337                 <span class="keywordflow">if</span> (*a == sock)
+<a name="l00338"></a>00338                 {
+<a name="l00339"></a>00339                         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
+<a name="l00340"></a>00340                         <span class="keywordflow">return</span>;
+<a name="l00341"></a>00341                 }
+<a name="l00342"></a>00342         }
+<a name="l00343"></a>00343 }
 </pre></div>
 <p>
     </td>
@@ -1430,11 +1403,11 @@ Deletes a Z-Line from all servers on the mesh.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00675">675</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00674">674</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00676"></a>00676 {
-<a name="l00677"></a>00677         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
-<a name="l00678"></a>00678 }
+References <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline()</a>.<div class="fragment"><pre class="fragment"><a name="l00675"></a>00675 {
+<a name="l00676"></a>00676         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
+<a name="l00677"></a>00677 }
 </pre></div>
 <p>
     </td>
@@ -1469,11 +1442,11 @@ 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#l00519">519</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00518">518</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00520"></a>00520 {
-<a name="l00521"></a>00521         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str());
-<a name="l00522"></a>00522 }
+References <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00519"></a>00519 {
+<a name="l00520"></a>00520         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str());
+<a name="l00521"></a>00521 }
 </pre></div>
 <p>
     </td>
@@ -1508,9 +1481,9 @@ Attempts to look up a nick using the file descriptor associated with that nick.
 <p>
 This function will return NULL if the file descriptor is not associated with a valid user.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00514">514</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00515"></a>00515 {
-<a name="l00516"></a>00516         <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
-<a name="l00517"></a>00517 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00513">513</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00514"></a>00514 {
+<a name="l00515"></a>00515         <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
+<a name="l00516"></a>00516 }
 </pre></div>
 <p>
     </td>
@@ -1545,18 +1518,18 @@ This function finds a module by name.
 <p>
 You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00724">724</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="modules_8cpp-source.html#l00935">MODCOUNT</a>, <a class="el" href="inspircd__io_8h-source.html#l00247">ServerConfig::module_names</a>, and <a class="el" href="channels_8cpp.html#modules">modules</a>.<div class="fragment"><pre class="fragment"><a name="l00725"></a>00725 {
-<a name="l00726"></a>00726         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
-<a name="l00727"></a>00727         {
-<a name="l00728"></a>00728                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
-<a name="l00729"></a>00729                 {
-<a name="l00730"></a>00730                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
-<a name="l00731"></a>00731                 }
-<a name="l00732"></a>00732         }
-<a name="l00733"></a>00733         <span class="keywordflow">return</span> NULL;
-<a name="l00734"></a>00734 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00723">723</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp-source.html#l00934">MODCOUNT</a>, <a class="el" href="inspircd__io_8h-source.html#l00248">ServerConfig::module_names</a>, and <a class="el" href="channels_8cpp.html#modules">modules</a>.<div class="fragment"><pre class="fragment"><a name="l00724"></a>00724 {
+<a name="l00725"></a>00725         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
+<a name="l00726"></a>00726         {
+<a name="l00727"></a>00727                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
+<a name="l00728"></a>00728                 {
+<a name="l00729"></a>00729                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
+<a name="l00730"></a>00730                 }
+<a name="l00731"></a>00731         }
+<a name="l00732"></a>00732         <span class="keywordflow">return</span> NULL;
+<a name="l00733"></a>00733 }
 </pre></div>
 <p>
     </td>
@@ -1591,11 +1564,11 @@ 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#l00509">509</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00508">508</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find()</a>.<div class="fragment"><pre class="fragment"><a name="l00510"></a>00510 {
-<a name="l00511"></a>00511         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick);
-<a name="l00512"></a>00512 }
+References <a class="el" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find()</a>.<div class="fragment"><pre class="fragment"><a name="l00509"></a>00509 {
+<a name="l00510"></a>00510         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick);
+<a name="l00511"></a>00511 }
 </pre></div>
 <p>
     </td>
@@ -1629,11 +1602,11 @@ 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#Nick">Admin::Nick</a>, <a class="el" href="classAdmin.html#Email">Admin::Email</a> and <a class="el" href="classAdmin.html#Name">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#l00549">549</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00548">548</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00089">ServerConfig::AdminEmail</a>, <a class="el" href="inspircd__io_8h-source.html#l00084">ServerConfig::AdminName</a>, and <a class="el" href="inspircd__io_8h-source.html#l00094">ServerConfig::AdminNick</a>.<div class="fragment"><pre class="fragment"><a name="l00550"></a>00550 {
-<a name="l00551"></a>00551         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>);
-<a name="l00552"></a>00552 }
+References <a class="el" href="inspircd__io_8h-source.html#l00090">ServerConfig::AdminEmail</a>, <a class="el" href="inspircd__io_8h-source.html#l00085">ServerConfig::AdminName</a>, and <a class="el" href="inspircd__io_8h-source.html#l00095">ServerConfig::AdminNick</a>.<div class="fragment"><pre class="fragment"><a name="l00549"></a>00549 {
+<a name="l00550"></a>00550         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>);
+<a name="l00551"></a>00551 }
 </pre></div>
 <p>
     </td>
@@ -1667,9 +1640,9 @@ Obtains a pointer to the server's <a class="el" href="classServerConfig.html">Se
 <p>
 The <a class="el" href="classServerConfig.html">ServerConfig</a> object contains most of the configuration data of the IRC server, as read from the config file by the core.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00324">324</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00325"></a>00325 {
-<a name="l00326"></a>00326         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>;
-<a name="l00327"></a>00327 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00323">323</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00324"></a>00324 {
+<a name="l00325"></a>00325         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>;
+<a name="l00326"></a>00326 }
 </pre></div>
 <p>
     </td>
@@ -1703,11 +1676,11 @@ Returns the network name, global to all linked servers.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00539">539</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00538">538</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00074">ServerConfig::Network</a>.<div class="fragment"><pre class="fragment"><a name="l00540"></a>00540 {
-<a name="l00541"></a>00541         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
-<a name="l00542"></a>00542 }
+References <a class="el" href="inspircd__io_8h-source.html#l00075">ServerConfig::Network</a>.<div class="fragment"><pre class="fragment"><a name="l00539"></a>00539 {
+<a name="l00540"></a>00540         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
+<a name="l00541"></a>00541 }
 </pre></div>
 <p>
     </td>
@@ -1741,11 +1714,11 @@ Returns the server description string of the local server.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00544">544</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00543">543</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00079">ServerConfig::ServerDesc</a>.<div class="fragment"><pre class="fragment"><a name="l00545"></a>00545 {
-<a name="l00546"></a>00546         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>;
-<a name="l00547"></a>00547 }
+References <a class="el" href="inspircd__io_8h-source.html#l00080">ServerConfig::ServerDesc</a>.<div class="fragment"><pre class="fragment"><a name="l00544"></a>00544 {
+<a name="l00545"></a>00545         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>;
+<a name="l00546"></a>00546 }
 </pre></div>
 <p>
     </td>
@@ -1779,11 +1752,11 @@ 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#l00534">534</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00533">533</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00068">ServerConfig::ServerName</a>.<div class="fragment"><pre class="fragment"><a name="l00535"></a>00535 {
-<a name="l00536"></a>00536         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>;
-<a name="l00537"></a>00537 }
+References <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>.<div class="fragment"><pre class="fragment"><a name="l00534"></a>00534 {
+<a name="l00535"></a>00535         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>;
+<a name="l00536"></a>00536 }
 </pre></div>
 <p>
     </td>
@@ -1818,19 +1791,19 @@ Fetches the userlist of a channel.
 <p>
 This function must be here and not a member of userrec or chanrec due to include constraints.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00374">374</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="channels_8cpp-source.html#l00187">chanrec::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00375"></a>00375 {
-<a name="l00376"></a>00376         <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
-<a name="l00377"></a>00377         userl.clear();
-<a name="l00378"></a>00378         std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
-<a name="l00379"></a>00379         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
-<a name="l00380"></a>00380         {
-<a name="l00381"></a>00381                 <span class="keywordtype">char</span>* o = *i;
-<a name="l00382"></a>00382                 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
-<a name="l00383"></a>00383         }
-<a name="l00384"></a>00384         <span class="keywordflow">return</span> userl;
-<a name="l00385"></a>00385 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00373">373</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00186">chanrec::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00374"></a>00374 {
+<a name="l00375"></a>00375         <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
+<a name="l00376"></a>00376         userl.clear();
+<a name="l00377"></a>00377         std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
+<a name="l00378"></a>00378         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
+<a name="l00379"></a>00379         {
+<a name="l00380"></a>00380                 <span class="keywordtype">char</span>* o = *i;
+<a name="l00381"></a>00381                 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
+<a name="l00382"></a>00382         }
+<a name="l00383"></a>00383         <span class="keywordflow">return</span> userl;
+<a name="l00384"></a>00384 }
 </pre></div>
 <p>
     </td>
@@ -1864,11 +1837,11 @@ Returns the version string of this server.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00329">329</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00328">328</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="classInspIRCd.html#GetVersionString_28_29">InspIRCd::GetVersionString()</a>.<div class="fragment"><pre class="fragment"><a name="l00330"></a>00330 {
-<a name="l00331"></a>00331         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
-<a name="l00332"></a>00332 }
+References <a class="el" href="classInspIRCd.html#GetVersionString_28_29">InspIRCd::GetVersionString()</a>.<div class="fragment"><pre class="fragment"><a name="l00329"></a>00329 {
+<a name="l00330"></a>00330         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
+<a name="l00331"></a>00331 }
 </pre></div>
 <p>
     </td>
@@ -1903,11 +1876,11 @@ 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#l00504">504</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00503">503</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick()</a>.<div class="fragment"><pre class="fragment"><a name="l00505"></a>00505 {
-<a name="l00506"></a>00506         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
-<a name="l00507"></a>00507 }
+References <a class="el" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick()</a>.<div class="fragment"><pre class="fragment"><a name="l00504"></a>00504 {
+<a name="l00505"></a>00505         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
+<a name="l00506"></a>00506 }
 </pre></div>
 <p>
     </td>
@@ -1951,11 +1924,11 @@ Checks if a user is on a channel.
 <p>
 This function will return true or false to indicate if user 'User' is on channel 'Chan'.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00529">529</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00528">528</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00530"></a>00530 {
-<a name="l00531"></a>00531         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
-<a name="l00532"></a>00532 }
+References <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00529"></a>00529 {
+<a name="l00530"></a>00530         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
+<a name="l00531"></a>00531 }
 </pre></div>
 <p>
     </td>
@@ -1990,11 +1963,11 @@ Returns true if the servername you give is ulined.
 <p>
 ULined servers have extra privilages. They are allowed to change nicknames on remote servers, change modes of clients which are on remote servers and set modes of channels where there are no channel operators for that channel on the ulined server, amongst other things. Ulined server data is also broadcast across the mesh at all times as opposed to selectively messaged in the case of normal servers, as many ulined server types (such as services) do not support meshed links and must operate in this manner.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00396">396</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00395">395</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00397"></a>00397 {
-<a name="l00398"></a>00398         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
-<a name="l00399"></a>00399 }
+References <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00396"></a>00396 {
+<a name="l00397"></a>00397         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
+<a name="l00398"></a>00398 }
 </pre></div>
 <p>
     </td>
@@ -2029,33 +2002,33 @@ Returns true if a nick!ident string is correctly formatted, false if otherwise.
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00695">695</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00696"></a>00696 {
-<a name="l00697"></a>00697         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-<a name="l00698"></a>00698         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-<a name="l00699"></a>00699                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00700"></a>00700         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
-<a name="l00701"></a>00701                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00702"></a>00702         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00703"></a>00703                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-<a name="l00704"></a>00704                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00705"></a>00705         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00706"></a>00706                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-<a name="l00707"></a>00707                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00708"></a>00708         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
-<a name="l00709"></a>00709         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00710"></a>00710                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-<a name="l00711"></a>00711                         c++;
-<a name="l00712"></a>00712         <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00713"></a>00713                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00714"></a>00714         c = 0;
-<a name="l00715"></a>00715         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00716"></a>00716                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-<a name="l00717"></a>00717                         c++;
-<a name="l00718"></a>00718         <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00719"></a>00719                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00720"></a>00720 
-<a name="l00721"></a>00721         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00722"></a>00722 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00694">694</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00695"></a>00695 {
+<a name="l00696"></a>00696         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+<a name="l00697"></a>00697         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
+<a name="l00698"></a>00698                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00699"></a>00699         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+<a name="l00700"></a>00700                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00701"></a>00701         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00702"></a>00702                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+<a name="l00703"></a>00703                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00704"></a>00704         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00705"></a>00705                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+<a name="l00706"></a>00706                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00707"></a>00707         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
+<a name="l00708"></a>00708         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00709"></a>00709                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+<a name="l00710"></a>00710                         c++;
+<a name="l00711"></a>00711         <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00712"></a>00712                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00713"></a>00713         c = 0;
+<a name="l00714"></a>00714         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00715"></a>00715                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+<a name="l00716"></a>00716                         c++;
+<a name="l00717"></a>00717         <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00718"></a>00718                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00719"></a>00719 
+<a name="l00720"></a>00720         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00721"></a>00721 }
 </pre></div>
 <p>
     </td>
@@ -2103,11 +2076,11 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00695">695</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00406">406</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00405">405</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd()</a>.<div class="fragment"><pre class="fragment"><a name="l00407"></a>00407 {
-<a name="l00408"></a>00408         <span class="keywordflow">return</span> <a class="code" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd</a>(commandname.c_str(), pcnt, user);
-<a name="l00409"></a>00409 }
+References <a class="el" href="inspircd_8h-source.html#l00110">InspIRCd::Parser</a>.<div class="fragment"><pre class="fragment"><a name="l00406"></a>00406 {
+<a name="l00407"></a>00407         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;IsValidCommand(commandname, pcnt, user);
+<a name="l00408"></a>00408 }
 </pre></div>
 <p>
     </td>
@@ -2157,11 +2130,11 @@ Forces a user to join a channel.
 <p>
 This is similar to svsjoin and can be used to implement redirection, etc. On success, the return value is a valid pointer to a chanrec* of the channel the user was joined to. On failure, the result is NULL.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00364">364</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00363">363</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00365"></a>00365 {
-<a name="l00366"></a>00366         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
-<a name="l00367"></a>00367 }
+References <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00364"></a>00364 {
+<a name="l00365"></a>00365         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
+<a name="l00366"></a>00366 }
 </pre></div>
 <p>
     </td>
@@ -2205,11 +2178,11 @@ Writes a log string.
 <p>
 This method writes a line of text to the log. If the level given is lower than the level given in the configuration, this command has no effect.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00411">411</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00410">410</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00412"></a>00412 {
-<a name="l00413"></a>00413         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00414"></a>00414 }
+References <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00411"></a>00411 {
+<a name="l00412"></a>00412         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00413"></a>00413 }
 </pre></div>
 <p>
     </td>
@@ -2253,12 +2226,12 @@ Matches text against a glob pattern.
 <p>
 Uses the ircd's internal matching function to match string against a globbing pattern, e.g. *!*@*.com Returns true if the literal successfully matches the pattern, false if otherwise.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00351">351</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00352"></a>00352 {
-<a name="l00353"></a>00353         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-<a name="l00354"></a>00354         strlcpy(literal,sliteral.c_str(),MAXBUF);
-<a name="l00355"></a>00355         strlcpy(pattern,spattern.c_str(),MAXBUF);
-<a name="l00356"></a>00356         <span class="keywordflow">return</span> match(literal,pattern);
-<a name="l00357"></a>00357 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00350">350</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00351"></a>00351 {
+<a name="l00352"></a>00352         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+<a name="l00353"></a>00353         strlcpy(literal,sliteral.c_str(),MAXBUF);
+<a name="l00354"></a>00354         strlcpy(pattern,spattern.c_str(),MAXBUF);
+<a name="l00355"></a>00355         <span class="keywordflow">return</span> match(literal,pattern);
+<a name="l00356"></a>00356 }
 </pre></div>
 <p>
     </td>
@@ -2308,11 +2281,11 @@ Forces a user to part a channel.
 <p>
 This is similar to svspart and can be used to implement redirection, etc. Although the return value of this function is a pointer to a channel record, the returned data is undefined and should not be read or written to. This behaviour may be changed in a future version.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00369">369</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00368">368</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00370"></a>00370 {
-<a name="l00371"></a>00371         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-<a name="l00372"></a>00372 }
+References <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00369"></a>00369 {
+<a name="l00370"></a>00370         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+<a name="l00371"></a>00371 }
 </pre></div>
 <p>
     </td>
@@ -2362,36 +2335,36 @@ This user takes one user, and switches their file descriptor with another user,
 <p>
 The user in 'alive' is booted off the server with the given message. The user referred to by 'zombie' should have previously been locked with Server::ZombifyUser, otherwise stale sockets and file descriptor leaks can occur. After this call, the pointer to alive will be invalid, and the pointer to zombie will be equivalent in effect to the old pointer to alive.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00610">610</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00149">userrec::chans</a>, <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>, <a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00124">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00133">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00122">chanrec::topic</a>, <a class="el" href="channels_8h-source.html#l00129">chanrec::topicset</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, <a class="el" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00611"></a>00611 {
-<a name="l00612"></a>00612         zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00613"></a>00613         alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00614"></a>00614         alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00615"></a>00615         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00616"></a>00616         <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str());
-<a name="l00617"></a>00617         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
-<a name="l00618"></a>00618         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
-<a name="l00619"></a>00619         {
-<a name="l00620"></a>00620                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
-<a name="l00621"></a>00621                 {
-<a name="l00622"></a>00622                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
-<a name="l00623"></a>00623                         {
-<a name="l00624"></a>00624                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
-<a name="l00625"></a>00625                                 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00626"></a>00626                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
-<a name="l00627"></a>00627                                 {
-<a name="l00628"></a>00628                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
-<a name="l00629"></a>00629                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
-<a name="l00630"></a>00630                                 }
-<a name="l00631"></a>00631                                 userlist(zombie,Ptr);
-<a name="l00632"></a>00632                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00633"></a>00633 
-<a name="l00634"></a>00634                         }
-<a name="l00635"></a>00635                 }
-<a name="l00636"></a>00636         }
-<a name="l00637"></a>00637         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00638"></a>00638 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00609">609</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00153">userrec::chans</a>, <a class="el" href="users_8cpp-source.html#l00253">userrec::ClearBuffer()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00102">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="channels_8h-source.html#l00108">chanrec::name</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="channels_8h-source.html#l00133">chanrec::setby</a>, <a class="el" href="channels_8h-source.html#l00122">chanrec::topic</a>, <a class="el" href="channels_8h-source.html#l00129">chanrec::topicset</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, <a class="el" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00610"></a>00610 {
+<a name="l00611"></a>00611         zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00612"></a>00612         alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00613"></a>00613         alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00614"></a>00614         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00615"></a>00615         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str());
+<a name="l00616"></a>00616         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
+<a name="l00617"></a>00617         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
+<a name="l00618"></a>00618         {
+<a name="l00619"></a>00619                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
+<a name="l00620"></a>00620                 {
+<a name="l00621"></a>00621                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
+<a name="l00622"></a>00622                         {
+<a name="l00623"></a>00623                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
+<a name="l00624"></a>00624                                 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00625"></a>00625                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
+<a name="l00626"></a>00626                                 {
+<a name="l00627"></a>00627                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
+<a name="l00628"></a>00628                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
+<a name="l00629"></a>00629                                 }
+<a name="l00630"></a>00630                                 userlist(zombie,Ptr);
+<a name="l00631"></a>00631                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633                         }
+<a name="l00634"></a>00634                 }
+<a name="l00635"></a>00635         }
+<a name="l00636"></a>00636         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00637"></a>00637 }
 </pre></div>
 <p>
     </td>
@@ -2437,11 +2410,11 @@ To the user, it will appear as if they typed /QUIT themselves, except for the fa
 WARNING!<p>
 Once you call this function, userrec* user will immediately become INVALID. You MUST NOT write to, or read from this pointer after calling the QuitUser method UNDER ANY CIRCUMSTANCES! The best course of action after calling this method is to immediately bail from your handler.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00391">391</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00390">390</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link()</a>.<div class="fragment"><pre class="fragment"><a name="l00392"></a>00392 {
-<a name="l00393"></a>00393         <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str());
-<a name="l00394"></a>00394 }
+References <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>.<div class="fragment"><pre class="fragment"><a name="l00391"></a>00391 {
+<a name="l00392"></a>00392         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str());
+<a name="l00393"></a>00393 }
 </pre></div>
 <p>
     </td>
@@ -2473,12 +2446,12 @@ References <a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00318">318</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00317">317</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">ServerConfig::Read()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00319"></a>00319 {
-<a name="l00320"></a>00320         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>);
-<a name="l00321"></a>00321         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL);
-<a name="l00322"></a>00322 }
+References <a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">ServerConfig::Read()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00318"></a>00318 {
+<a name="l00319"></a>00319         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>);
+<a name="l00320"></a>00320         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL);
+<a name="l00321"></a>00321 }
 </pre></div>
 <p>
     </td>
@@ -2522,11 +2495,11 @@ 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#l00426">426</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00425">425</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>.<div class="fragment"><pre class="fragment"><a name="l00427"></a>00427 {
-<a name="l00428"></a>00428         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00429"></a>00429 }
+References <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>.<div class="fragment"><pre class="fragment"><a name="l00426"></a>00426 {
+<a name="l00427"></a>00427         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00428"></a>00428 }
 </pre></div>
 <p>
     </td>
@@ -2582,18 +2555,18 @@ 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#l00460">460</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender()</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00461"></a>00461 {
-<a name="l00462"></a>00462         <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00463"></a>00463         {
-<a name="l00464"></a>00464                 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00465"></a>00465         }
-<a name="l00466"></a>00466         <span class="keywordflow">else</span>
-<a name="l00467"></a>00467         {
-<a name="l00468"></a>00468                 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00469"></a>00469         }
-<a name="l00470"></a>00470 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00459">459</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender()</a>, and <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel()</a>.<div class="fragment"><pre class="fragment"><a name="l00460"></a>00460 {
+<a name="l00461"></a>00461         <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00462"></a>00462         {
+<a name="l00463"></a>00463                 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00464"></a>00464         }
+<a name="l00465"></a>00465         <span class="keywordflow">else</span>
+<a name="l00466"></a>00466         {
+<a name="l00467"></a>00467                 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00468"></a>00468         }
+<a name="l00469"></a>00469 }
 </pre></div>
 <p>
     </td>
@@ -2643,9 +2616,9 @@ Writes text to a channel, but from a server, including all.
 <p>
 This can be used to send server notices to a group of users.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00455">455</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00456"></a>00456 {
-<a name="l00457"></a>00457         WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
-<a name="l00458"></a>00458 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00454">454</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00455"></a>00455 {
+<a name="l00456"></a>00456         WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
+<a name="l00457"></a>00457 }
 </pre></div>
 <p>
     </td>
@@ -2695,18 +2668,18 @@ 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#l00477">477</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon()</a>, and <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>.<div class="fragment"><pre class="fragment"><a name="l00478"></a>00478 {
-<a name="l00479"></a>00479         <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00480"></a>00480         {
-<a name="l00481"></a>00481                 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00482"></a>00482         }
-<a name="l00483"></a>00483         <span class="keywordflow">else</span>
-<a name="l00484"></a>00484         {
-<a name="l00485"></a>00485                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00486"></a>00486         }
-<a name="l00487"></a>00487 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00476">476</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon()</a>, and <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>.<div class="fragment"><pre class="fragment"><a name="l00477"></a>00477 {
+<a name="l00478"></a>00478         <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00479"></a>00479         {
+<a name="l00480"></a>00480                 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00481"></a>00481         }
+<a name="l00482"></a>00482         <span class="keywordflow">else</span>
+<a name="l00483"></a>00483         {
+<a name="l00484"></a>00484                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00485"></a>00485         }
+<a name="l00486"></a>00486 }
 </pre></div>
 <p>
     </td>
@@ -2756,11 +2729,11 @@ 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#l00436">436</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00435">435</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom()</a>.<div class="fragment"><pre class="fragment"><a name="l00437"></a>00437 {
-<a name="l00438"></a>00438         <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00439"></a>00439 }
+References <a class="el" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom()</a>.<div class="fragment"><pre class="fragment"><a name="l00436"></a>00436 {
+<a name="l00437"></a>00437         <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00438"></a>00438 }
 </pre></div>
 <p>
     </td>
@@ -2817,11 +2790,11 @@ modes[2] = user-&gt;nick;<p>
 Srv-&gt;SendMode(modes,3,user);<p>
 The modes will originate from the server where the command was issued, however responses (e.g. numerics) will be sent to the user you provide as the third parameter. You must be sure to get the number of parameters correct in the pcnt parameter otherwise you could leave your server in an unstable state!
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00421">421</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00420">420</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode()</a>.<div class="fragment"><pre class="fragment"><a name="l00422"></a>00422 {
-<a name="l00423"></a>00423         <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
-<a name="l00424"></a>00424 }
+References <a class="el" href="inspircd_8h-source.html#l00109">InspIRCd::ModeGrok</a>, and <a class="el" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ModeParser::ServerMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00421"></a>00421 {
+<a name="l00422"></a>00422         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#ModeGrok">ModeGrok</a>-&gt;<a class="code" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ServerMode</a>(parameters,pcnt,user);
+<a name="l00423"></a>00423 }
 </pre></div>
 <p>
     </td>
@@ -2856,11 +2829,11 @@ 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#l00346">346</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00345">345</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00347"></a>00347 {
-<a name="l00348"></a>00348         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00349"></a>00349 }
+References <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00346"></a>00346 {
+<a name="l00347"></a>00347         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00348"></a>00348 }
 </pre></div>
 <p>
     </td>
@@ -2904,11 +2877,11 @@ 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#l00431">431</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00430">430</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00432"></a>00432 {
-<a name="l00433"></a>00433         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00434"></a>00434 }
+References <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.<div class="fragment"><pre class="fragment"><a name="l00431"></a>00431 {
+<a name="l00432"></a>00432         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00433"></a>00433 }
 </pre></div>
 <p>
     </td>
@@ -2962,20 +2935,20 @@ The format will become:<p>
 :localserver TEXT<p>
 Which is useful for numerics and server notices to single users, etc.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00441">441</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, and <a class="el" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo()</a>.<div class="fragment"><pre class="fragment"><a name="l00442"></a>00442 {
-<a name="l00443"></a>00443         <span class="keywordflow">if</span> (!Source)
-<a name="l00444"></a>00444         {
-<a name="l00445"></a>00445                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-<a name="l00446"></a>00446                 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-<a name="l00447"></a>00447         }
-<a name="l00448"></a>00448         <span class="keywordflow">else</span>
-<a name="l00449"></a>00449         {
-<a name="l00450"></a>00450                 <span class="comment">// otherwise it comes from the user specified</span>
-<a name="l00451"></a>00451                 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00452"></a>00452         }
-<a name="l00453"></a>00453 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00440">440</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, and <a class="el" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo()</a>.<div class="fragment"><pre class="fragment"><a name="l00441"></a>00441 {
+<a name="l00442"></a>00442         <span class="keywordflow">if</span> (!Source)
+<a name="l00443"></a>00443         {
+<a name="l00444"></a>00444                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+<a name="l00445"></a>00445                 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+<a name="l00446"></a>00446         }
+<a name="l00447"></a>00447         <span class="keywordflow">else</span>
+<a name="l00448"></a>00448         {
+<a name="l00449"></a>00449                 <span class="comment">// otherwise it comes from the user specified</span>
+<a name="l00450"></a>00450                 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00451"></a>00451         }
+<a name="l00452"></a>00452 }
 </pre></div>
 <p>
     </td>
@@ -3027,9 +3000,9 @@ These can be RFC specified modes such as +i, or module provided modes, including
 Serv-&gt;SendToModeMask("xi", WM_OR, "m00");<p>
 Then the text 'm00' will be sent to all users with EITHER mode x or i. Conversely if you used WM_AND, the user must have both modes set to receive the message.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00359">359</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00360"></a>00360 {
-<a name="l00361"></a>00361         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00362"></a>00362 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00358">358</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00359"></a>00359 {
+<a name="l00360"></a>00360         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00361"></a>00361 }
 </pre></div>
 <p>
     </td>
@@ -3073,11 +3046,11 @@ 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#l00489">489</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00488">488</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps()</a>.<div class="fragment"><pre class="fragment"><a name="l00490"></a>00490 {
-<a name="l00491"></a>00491         <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00492"></a>00492 }
+References <a class="el" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps()</a>.<div class="fragment"><pre class="fragment"><a name="l00489"></a>00489 {
+<a name="l00490"></a>00490         <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00491"></a>00491 }
 </pre></div>
 <p>
     </td>
@@ -3121,18 +3094,18 @@ Remove a user's connection to the irc server, but leave their client in existenc
 <p>
 When you call this function, the user's file descriptor will be replaced with the value of FD_MAGIC_NUMBER and their old file descriptor will be closed. This idle client will remain until it is restored with a valid file descriptor, or is removed from IRC by an operator After this call, the pointer to user will be invalid.
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00598">598</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
-<p>
-References <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuffer()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00101">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">userrec::ident</a>, and <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>.<div class="fragment"><pre class="fragment"><a name="l00599"></a>00599 {
-<a name="l00600"></a>00600         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00601"></a>00601         user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00602"></a>00602         user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00603"></a>00603         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
-<a name="l00604"></a>00604         <a class="code" href="modules_8cpp.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
-<a name="l00605"></a>00605         shutdown(old_fd,2);
-<a name="l00606"></a>00606         close(old_fd);
-<a name="l00607"></a>00607         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00608"></a>00608 }
+Definition at line <a class="el" href="modules_8cpp-source.html#l00597">597</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00253">userrec::ClearBuffer()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00102">FD_MAGIC_NUMBER</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, and <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>.<div class="fragment"><pre class="fragment"><a name="l00598"></a>00598 {
+<a name="l00599"></a>00599         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00600"></a>00600         user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00601"></a>00601         user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00602"></a>00602         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
+<a name="l00603"></a>00603         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
+<a name="l00604"></a>00604         shutdown(old_fd,2);
+<a name="l00605"></a>00605         close(old_fd);
+<a name="l00606"></a>00606         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00607"></a>00607 }
 </pre></div>
 <p>
     </td>
@@ -3140,7 +3113,7 @@ References <a class="el" href="users_8cpp-source.html#l00232">userrec::ClearBuff
 </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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6093b0551d27c989bddd2fa0761404368e873c3e..0913e0c3ebfc1d5fd7514aa4bc8e1810d299e948 100644 (file)
@@ -6,6 +6,7 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>ServerConfig Member List</h1>This is the complete list of members for <a class="el" href="classServerConfig.html">ServerConfig</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classServerConfig.html#AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29">AddIOHook</a>(int port, Module *iomod)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
@@ -20,6 +21,7 @@
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(char *tag, char *var, int index, char *result, std::stringstream *config)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValueEnum</a>(char *tag, std::stringstream *config)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#debugging">debugging</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classServerConfig.html#DelIOHook_28int_20port_29">DelIOHook</a>(int port)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#DieDelay">DieDelay</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
@@ -29,7 +31,9 @@
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(std::stringstream *config_f, const char *tag)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(std::stringstream *config, const char *tag, int index)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a>(char *buffer, size_t maxsize, FILE *&amp;file)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(int port)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#include_5Fstack">include_stack</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td><code> [private]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classServerConfig.html#IOHookModule">IOHookModule</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(const char *filename, std::stringstream *target, std::stringstream *errorstream)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#log_5Ffile">log_file</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#LogLevel">LogLevel</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(bool bail, userrec *user)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(std::stringstream *config_f, const char *tag, const char *var, int index, char *result)</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#RULES">RULES</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a>()</td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#SoftLimit">SoftLimit</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classServerConfig.html#unlimitcore">unlimitcore</a></td><td><a class="el" href="classServerConfig.html">ServerConfig</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 990abb1666dd02f4052e7d4e0a08542e8d9cd723..28c2a00f4654caa2b2d78fe738dc9e207d1b0620 100644 (file)
@@ -16,7 +16,7 @@ Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inh
 </map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ServerConfig:<p><center><img src="classServerConfig__coll__graph.gif" border="0" usemap="#ServerConfig__coll__map" alt="Collaboration graph"></center>
 <map name="ServerConfig__coll__map">
-<area href="classclassbase.html" shape="rect" coords="38,12,118,39" alt="">
+<area href="classclassbase.html" shape="rect" coords="40,11,120,37" alt="">
 </map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classServerConfig-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
@@ -41,6 +41,12 @@ Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inh
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a> (std::stringstream *config, const char *tag, int index)</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classModule.html">Module</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a> (int port)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29">AddIOHook</a> (int port, <a class="el" href="classModule.html">Module</a> *iomod)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#DelIOHook_28int_20port_29">DelIOHook</a> (int port)</td></tr>
+
 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a> [MAXBUF]</td></tr>
 
@@ -149,6 +155,9 @@ Inheritance diagram for ServerConfig:<p><center><img src="classServerConfig__inh
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#ports_5B_32_35_35_5D">ports</a> [255]</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of ports which the server is listening on.  <a href="#ports_5B_32_35_35_5D"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::map&lt; int, <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#IOHookModule">IOHookModule</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of ports claimed by IO Modules.  <a href="#IOHookModule"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a> (char *buffer, size_t maxsize, FILE *&amp;file)</td></tr>
 
@@ -168,7 +177,7 @@ It allows for reading new config values, accessing configuration files, and stor
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00039">39</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00040">40</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="ServerConfig_28_29"></a><!-- doxytag: member="ServerConfig::ServerConfig" ref="ServerConfig_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -197,6 +206,43 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00039">39</a
   </tr>
 </table>
 <hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29"></a><!-- doxytag: member="ServerConfig::AddIOHook" ref="AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29" args="(int port, Module *iomod)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">bool ServerConfig::AddIOHook           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">int&nbsp;</td>
+          <td class="mdname" nowrap> <em>port</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap><a class="el" href="classModule.html">Module</a> *&nbsp;</td>
+          <td class="mdname" nowrap> <em>iomod</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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>
+    </td>
+  </tr>
+</table>
 <a class="anchor" name="ClearStack_28_29"></a><!-- doxytag: member="ServerConfig::ClearStack" ref="ClearStack_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -225,7 +271,7 @@ Clears the include stack in preperation for a <a class="el" href="classServerCon
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00736">ConfigReader::ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader::ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29"></a><!-- doxytag: member="ServerConfig::ConfProcess" ref="ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29" args="(char *buffer, long linenumber, std::stringstream *errorstream, bool &amp;error, std::string filename)" --><p>
@@ -339,7 +385,7 @@ This private method processes one line of configutation, appending errors to err
 <p>
 
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00165">userrec::HasPermission()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29"></a><!-- doxytag: member="ServerConfig::ConfValueEnum" ref="ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29" args="(char *tag, std::stringstream *config)" --><p>
@@ -375,6 +421,34 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPer
     </td>
     <td>
 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="DelIOHook_28int_20port_29"></a><!-- doxytag: member="ServerConfig::DelIOHook" ref="DelIOHook_28int_20port_29" args="(int port)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">bool ServerConfig::DelIOHook           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">int&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>port</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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>
     </td>
   </tr>
@@ -415,7 +489,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPer
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00868">ConfigReader::Enumerate()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00867">ConfigReader::Enumerate()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29"></a><!-- doxytag: member="ServerConfig::EnumValues" ref="EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29" args="(std::stringstream *config, const char *tag, int index)" --><p>
@@ -460,7 +534,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00868">ConfigReader:
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00873">ConfigReader::EnumerateValues()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00872">ConfigReader::EnumerateValues()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29"></a><!-- doxytag: member="ServerConfig::fgets_safe" ref="fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29" args="(char *buffer, size_t maxsize, FILE *&amp;file)" --><p>
@@ -508,6 +582,36 @@ Used by the config file subsystem to safely read a C-style string without depend
 it can read both windows and UNIX style linefeeds transparently.    </td>
   </tr>
 </table>
+<a class="anchor" name="GetIOHook_28int_20port_29"></a><!-- doxytag: member="ServerConfig::GetIOHook" ref="GetIOHook_28int_20port_29" args="(int port)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classModule.html">Module</a>* ServerConfig::GetIOHook           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">int&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>port</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, and <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29"></a><!-- doxytag: member="ServerConfig::LoadConf" ref="LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29" args="(const char *filename, std::stringstream *target, std::stringstream *errorstream)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -550,7 +654,7 @@ it can read both windows and UNIX style linefeeds transparently.    </td>
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00736">ConfigReader::ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader::ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Read_28bool_20bail_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="ServerConfig::Read" ref="Read_28bool_20bail_2C_20userrec_20_2Auser_29" args="(bool bail, userrec *user)" --><p>
@@ -591,7 +695,7 @@ Read the entire configuration into memory and initialize this class.
 <p>
 All other methods should be used only by the core.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00318">Server::RehashServer()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00317">Server::RehashServer()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29"></a><!-- doxytag: member="ServerConfig::ReadConf" ref="ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29" args="(std::stringstream *config_f, const char *tag, const char *var, int index, char *result)" --><p>
@@ -648,7 +752,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00318">Server::Rehas
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00782">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00799">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00766">ConfigReader::ReadValue()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00781">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00798">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00765">ConfigReader::ReadValue()</a>.    </td>
   </tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
@@ -676,7 +780,7 @@ A list of IP addresses the server is listening on.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00216">216</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00217">217</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="AdminEmail_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminEmail" ref="AdminEmail_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -703,9 +807,9 @@ Holds the email address of the admin, for output in the /ADMIN command.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00089">89</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00090">90</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00549">Server::GetAdmin()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00548">Server::GetAdmin()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="AdminName_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminName" ref="AdminName_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -732,9 +836,9 @@ Holds the admin's name, for output in the /ADMIN command.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00084">84</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00085">85</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00549">Server::GetAdmin()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00548">Server::GetAdmin()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="AdminNick_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::AdminNick" ref="AdminNick_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -761,9 +865,9 @@ Holds the admin's nickname, for output in the /ADMIN command.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00094">94</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00095">95</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00549">Server::GetAdmin()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00548">Server::GetAdmin()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="AllowHalfop"></a><!-- doxytag: member="ServerConfig::AllowHalfop" ref="AllowHalfop" args="" --><p>
@@ -790,7 +894,7 @@ If this value is true, halfops have been enabled in the configuration file.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00171">171</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00172">172</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Classes"></a><!-- doxytag: member="ServerConfig::Classes" ref="Classes" args="" --><p>
@@ -817,7 +921,9 @@ The connect classes in use by the IRC server.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00242">242</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00243">243</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="config_5Ff"></a><!-- doxytag: member="ServerConfig::config_f" ref="config_5Ff" args="" --><p>
@@ -844,9 +950,9 @@ The parsed configuration file as a stringstream.
 <p>
 You should pass this to any configuration methods of this class, and not access it directly. It is recommended that modules use <a class="el" href="classConfigReader.html">ConfigReader</a> instead which provides a simpler abstraction of configuration files.
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00238">238</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00239">239</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00165">userrec::HasPermission()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="debugging"></a><!-- doxytag: member="ServerConfig::debugging" ref="debugging" args="" --><p>
@@ -873,7 +979,7 @@ True if the DEBUG loglevel is selected.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00202">202</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00203">203</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DieDelay"></a><!-- doxytag: member="ServerConfig::DieDelay" ref="DieDelay" args="" --><p>
@@ -900,7 +1006,7 @@ How many seconds to wait before exiting the program when /DIE is correctly issue
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00211">211</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00212">212</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="diepass_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::diepass" ref="diepass_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -927,7 +1033,7 @@ The admin-configured /DIE password.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00098">98</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00099">99</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DieValue_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DieValue" ref="DieValue_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -954,7 +1060,7 @@ The last string found within a &lt;die&gt; tag, or an empty string.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00121">121</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00122">122</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DisabledCommands_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DisabledCommands" ref="DisabledCommands_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -981,7 +1087,7 @@ This variable contains a space-seperated list of commands which are disabled by
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00131">131</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00132">132</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="dns_5Ftimeout"></a><!-- doxytag: member="ServerConfig::dns_timeout" ref="dns_5Ftimeout" args="" --><p>
@@ -1008,7 +1114,9 @@ The number of seconds the <a class="el" href="classDNS.html">DNS</a> subsystem w
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00176">176</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00177">177</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DNSServer_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::DNSServer" ref="DNSServer_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1035,7 +1143,7 @@ The <a class="el" href="classDNS.html">DNS</a> server to use for <a class="el" h
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00125">125</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00126">126</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="include_5Fstack"></a><!-- doxytag: member="ServerConfig::include_stack" ref="include_5Fstack" args="" --><p>
@@ -1062,7 +1170,34 @@ This variable holds the names of all files included from the main one.
 <p>
 This is used to make sure that no files are recursively included.
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00047">47</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00048">48</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="IOHookModule"></a><!-- doxytag: member="ServerConfig::IOHookModule" ref="IOHookModule" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::map&lt;int,<a class="el" href="classModule.html">Module</a>*&gt; <a class="el" href="classServerConfig.html#IOHookModule">ServerConfig::IOHookModule</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+A list of ports claimed by IO Modules. 
+<p>
+
+<p>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00256">256</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="log_5Ffile"></a><!-- doxytag: member="ServerConfig::log_file" ref="log_5Ffile" args="" --><p>
@@ -1089,7 +1224,7 @@ The file handle of the logfile.
 <p>
 If this value is NULL, the log file is not open, probably due to a permissions error on startup (this should not happen in normal operation!).
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00151">151</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00152">152</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="LogLevel"></a><!-- doxytag: member="ServerConfig::LogLevel" ref="LogLevel" args="" --><p>
@@ -1116,7 +1251,7 @@ The loglevel in use by the IRC server.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00206">206</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00207">207</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MaxConn"></a><!-- doxytag: member="ServerConfig::MaxConn" ref="MaxConn" args="" --><p>
@@ -1143,7 +1278,7 @@ The value to be used for listen() backlogs as default.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00187">187</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00188">188</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MaxWhoResults"></a><!-- doxytag: member="ServerConfig::MaxWhoResults" ref="MaxWhoResults" args="" --><p>
@@ -1170,7 +1305,7 @@ The maximum number of /WHO results allowed in any single /WHO command.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00198">198</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00199">199</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ModPath_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::ModPath" ref="ModPath_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1197,7 +1332,7 @@ The full path to the modules directory.
 <p>
 This is either set at compile time, or overridden in the configuration file via the &lt;options&gt; tag.
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00138">138</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00139">139</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="module_5Fnames"></a><!-- doxytag: member="ServerConfig::module_names" ref="module_5Fnames" args="" --><p>
@@ -1224,9 +1359,9 @@ A list of module names (names only, no paths) which are currently loaded by the
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00247">247</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00248">248</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00724">Server::FindModule()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00723">Server::FindModule()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MOTD"></a><!-- doxytag: member="ServerConfig::MOTD" ref="MOTD" args="" --><p>
@@ -1253,7 +1388,7 @@ The MOTD file, cached in a file_cache type.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00220">220</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00221">221</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="motd_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::motd" ref="motd_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1280,7 +1415,7 @@ The pathname and filename of the message of the day file, as defined by the admi
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00107">107</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00108">108</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MyExecutable_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::MyExecutable" ref="MyExecutable_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1307,7 +1442,7 @@ The full pathname to the executable, as given in argv[0] when the program starts
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00143">143</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00144">144</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="NetBufferSize"></a><!-- doxytag: member="ServerConfig::NetBufferSize" ref="NetBufferSize" args="" --><p>
@@ -1334,7 +1469,7 @@ The size of the read() buffer in the user handling code, used to read data into
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00182">182</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00183">183</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Network_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::Network" ref="Network_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1359,9 +1494,9 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00182">182</
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00074">74</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00075">75</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00539">Server::GetNetworkName()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00538">Server::GetNetworkName()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="nofork"></a><!-- doxytag: member="ServerConfig::nofork" ref="nofork" args="" --><p>
@@ -1388,7 +1523,7 @@ If this value is true, the owner of the server specified -nofork on the command
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00158">158</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00159">159</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="PID_5B_31_30_32_34_5D"></a><!-- doxytag: member="ServerConfig::PID" ref="PID_5B_31_30_32_34_5D" args="[1024]" --><p>
@@ -1415,7 +1550,7 @@ The full pathname and filename of the PID file as defined in the configuration.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00229">229</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00230">230</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ports_5B_32_35_35_5D"></a><!-- doxytag: member="ServerConfig::ports" ref="ports_5B_32_35_35_5D" args="[255]" --><p>
@@ -1442,7 +1577,7 @@ A list of ports which the server is listening on.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00251">251</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00252">252</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="PrefixQuit_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::PrefixQuit" ref="PrefixQuit_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1469,7 +1604,7 @@ The quit prefix in use, or an empty string.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00116">116</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00117">117</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="restartpass_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::restartpass" ref="restartpass_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1496,7 +1631,7 @@ The admin-configured /RESTART password.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00102">102</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00103">103</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="RULES"></a><!-- doxytag: member="ServerConfig::RULES" ref="RULES" args="" --><p>
@@ -1523,7 +1658,7 @@ The RULES file, cached in a file_cache type.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00224">224</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00225">225</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="rules_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::rules" ref="rules_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1550,7 +1685,7 @@ The pathname and filename of the rules file, as defined by the administrator.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00112">112</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00113">113</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ServerDesc_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::ServerDesc" ref="ServerDesc_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1577,9 +1712,9 @@ Holds the description of the local server as defined by the administrator.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00079">79</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00080">80</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00544">Server::GetServerDescription()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00543">Server::GetServerDescription()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ServerName_5BMAXBUF_5D"></a><!-- doxytag: member="ServerConfig::ServerName" ref="ServerName_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1606,9 +1741,9 @@ Holds the server name of the local server as defined by the administrator.
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00068">68</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00069">69</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00534">Server::GetServerName()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="modules_8cpp-source.html#l00533">Server::GetServerName()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="SoftLimit"></a><!-- doxytag: member="ServerConfig::SoftLimit" ref="SoftLimit" args="" --><p>
@@ -1635,7 +1770,9 @@ The soft limit value assigned to the irc server.
 <p>
 The IRC server will not allow more than this number of local users.
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00193">193</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00194">194</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="unlimitcore"></a><!-- doxytag: member="ServerConfig::unlimitcore" ref="unlimitcore" args="" --><p>
@@ -1662,12 +1799,12 @@ If this value is true, the owner of the server has chosen to unlimit the coredum
 <p>
 This is often used when debugging.
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00166">166</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00167">167</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index aca75f3079c1f1dd7d0b658b757a6d239fb1ad61..c18c2ef120cd035e224eb9f5a7dfcc003740aaa9 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classclassbase.html 38,12 118,39
+rect $classclassbase.html 40,11 120,37
index 8b64681f9358493689a6c2163327ff5db38e8e31..19bbc12100a0be119d7a3ab48da6061c4bb42971 100644 (file)
@@ -1 +1 @@
-ccb417531b2d5c8c500f80e926167613
\ No newline at end of file
+6622bf16a5d6e3d1fa66d187c3430dae
\ No newline at end of file
index 4a2c4f3195493b3f5cc07707dcaa511a721669ff..2ba70b22ca51fd85bd0c371971af85be84d653b6 100644 (file)
@@ -17,7 +17,7 @@
   <tr class="memlist"><td><a class="el" href="classSocketEngine.html#ts">ts</a></td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td><code> [private]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">Wait</a>(std::vector&lt; int &gt; &amp;fdlist)</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">~SocketEngine</a>()</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 76c76d918d2a1c48e13057165ac5b7ecf920e40c..0dedef2548efaae028e20eb05ff775a11bd8ec90 100644 (file)
@@ -83,7 +83,7 @@ Please note that if there is a catastrophic failure (for example, you try and en
 <p>
 Definition at line <a class="el" href="socketengine_8cpp-source.html#l00035">35</a> of file <a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00036"></a>00036 {
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00036"></a>00036 {
 <a name="l00037"></a>00037         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SocketEngine::SocketEngine()"</span>);
 <a name="l00038"></a>00038 <span class="preprocessor">#ifdef USE_EPOLL</span>
 <a name="l00039"></a>00039 <span class="preprocessor"></span>        <a class="code" href="classSocketEngine.html#EngineHandle">EngineHandle</a> = epoll_create(65535);
@@ -127,7 +127,7 @@ Destructor The destructor transparently tidies up any resources used by the sock
 <p>
 Definition at line <a class="el" href="socketengine_8cpp-source.html#l00046">46</a> of file <a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00047"></a>00047 {
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00047"></a>00047 {
 <a name="l00048"></a>00048         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SocketEngine::~SocketEngine()"</span>);
 <a name="l00049"></a>00049 <span class="preprocessor">#ifdef USE_EPOLL</span>
 <a name="l00050"></a>00050 <span class="preprocessor"></span>        close(<a class="code" href="classSocketEngine.html#EngineHandle">EngineHandle</a>);
@@ -188,9 +188,9 @@ You must provide a type (see the consts in <a class="el" href="socketengine_8h.h
 <p>
 Definition at line <a class="el" href="socketengine_8cpp-source.html#l00065">65</a> of file <a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, <a class="el" href="socketengine_8h-source.html#l00068">fds</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socketengine_8cpp-source.html#l00033">ref</a>, and <a class="el" href="socketengine_8h-source.html#l00055">X_READBIT</a>.
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, <a class="el" href="socketengine_8h-source.html#l00068">fds</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socketengine_8cpp-source.html#l00033">ref</a>, and <a class="el" href="socketengine_8h-source.html#l00055">X_READBIT</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00053">InspSocket::InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00217">InspSocket::Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00066"></a>00066 {
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="socket_8cpp-source.html#l00050">InspSocket::InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00216">InspSocket::Poll()</a>.<div class="fragment"><pre class="fragment"><a name="l00066"></a>00066 {
 <a name="l00067"></a>00067         <span class="keywordflow">if</span> ((fd &lt; 0) || (fd &gt; 65535))
 <a name="l00068"></a>00068                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
 <a name="l00069"></a>00069         this-&gt;<a class="code" href="classSocketEngine.html#fds">fds</a>.push_back(fd);
@@ -262,9 +262,9 @@ Delete a file descriptor f rom the engine This function call deletes a file desc
 <p>
 Definition at line <a class="el" href="socketengine_8cpp-source.html#l00103">103</a> of file <a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, <a class="el" href="socketengine_8h-source.html#l00068">fds</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socketengine_8cpp-source.html#l00033">ref</a>, and <a class="el" href="socketengine_8h-source.html#l00055">X_READBIT</a>.
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8h-source.html#l00069">EngineHandle</a>, <a class="el" href="socketengine_8h-source.html#l00068">fds</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="socketengine_8cpp-source.html#l00033">ref</a>, and <a class="el" href="socketengine_8h-source.html#l00055">X_READBIT</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00217">InspSocket::Poll()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00104"></a>00104 {
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="socket_8cpp-source.html#l00216">InspSocket::Poll()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00104"></a>00104 {
 <a name="l00105"></a>00105         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SocketEngine::DelFd(%d)"</span>,fd);
 <a name="l00106"></a>00106 
 <a name="l00107"></a>00107         <span class="keywordflow">if</span> ((fd &lt; 0) || (fd &gt; 65535))
@@ -589,7 +589,7 @@ Referenced by <a class="el" href="socketengine_8cpp-source.html#l00146">Wait()</
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="socketengine_8h-source.html">socketengine.h</a><li><a class="el" href="socketengine_8cpp-source.html">socketengine.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 8463f70f48e69283267238307b4557558d0d470c..d86eb68cebdebac3a003a6ab120fc7cdd1def6b3 100644 (file)
@@ -15,7 +15,7 @@
   <tr class="memlist"><td><a class="el" href="classVersion.html#Revision">Revision</a></td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a>(int major, int minor, int revision, int build, int flags)</td><td><a class="el" href="classVersion.html">Version</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d2b5d222055d69726ef045e582338fc0f522f6d4..d9be95e7817fdcbdd9d5aadc323322c7f304e282 100644 (file)
@@ -42,7 +42,7 @@ A class of type Version is returned by the GetVersion method of the <a class="el
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00113">113</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="modules_8h-source.html#l00131">131</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29"></a><!-- doxytag: member="Version::Version" ref="Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29" args="(int major, int minor, int revision, int build, int flags)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -97,7 +97,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00113">113</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00159">159</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00159"></a>00159 : <a class="code" href="classVersion.html#Major">Major</a>(major), <a class="code" href="classVersion.html#Minor">Minor</a>(minor), <a class="code" href="classVersion.html#Revision">Revision</a>(revision), <a class="code" href="classVersion.html#Build">Build</a>(build), <a class="code" href="classVersion.html#Flags">Flags</a>(flags) { };
+Definition at line <a class="el" href="modules_8cpp-source.html#l00158">158</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00158"></a>00158 : <a class="code" href="classVersion.html#Major">Major</a>(major), <a class="code" href="classVersion.html#Minor">Minor</a>(minor), <a class="code" href="classVersion.html#Revision">Revision</a>(revision), <a class="code" href="classVersion.html#Build">Build</a>(build), <a class="code" href="classVersion.html#Flags">Flags</a>(flags) { };
 </pre></div>
 <p>
     </td>
@@ -126,7 +126,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00159">159</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00134">134</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Flags"></a><!-- doxytag: member="Version::Flags" ref="Flags" args="" --><p>
@@ -151,7 +151,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00134">134</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Major"></a><!-- doxytag: member="Version::Major" ref="Major" args="" --><p>
@@ -176,7 +176,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00134">134</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Minor"></a><!-- doxytag: member="Version::Minor" ref="Minor" args="" --><p>
@@ -201,7 +201,7 @@ Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00134">134</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Revision"></a><!-- doxytag: member="Version::Revision" ref="Revision" args="" --><p>
@@ -226,12 +226,12 @@ Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00116">116</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00134">134</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1139e562ef1a07be058178e47d1f4ce19da0eda5..6e562e76f95d44fe299af02bee12a000a6f56288 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classWhoWasUser.html#signon">signon</a></td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f12e98d57589f74b2eba0f9be063f820274a202d..0a32092aa10b40f9179337aa5fda7ff1bd9a690d 100644 (file)
@@ -34,7 +34,7 @@ A lightweight userrec used by WHOWAS.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00332">332</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
+Definition at line <a class="el" href="users_8h-source.html#l00336">336</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Member Data Documentation</h2>
 <a class="anchor" name="dhost_5B_31_36_30_5D"></a><!-- doxytag: member="WhoWasUser::dhost" ref="dhost_5B_31_36_30_5D" args="[160]" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -57,7 +57,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00332">332</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00337">337</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00341">341</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="fullname_5BMAXGECOS_2B_31_5D"></a><!-- doxytag: member="WhoWasUser::fullname" ref="fullname_5BMAXGECOS_2B_31_5D" args="[MAXGECOS+1]" --><p>
@@ -82,7 +84,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00337">337</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00339">339</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00343">343</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="host_5B_31_36_30_5D"></a><!-- doxytag: member="WhoWasUser::host" ref="host_5B_31_36_30_5D" args="[160]" --><p>
@@ -107,7 +111,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00339">339</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00338">338</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00342">342</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ident_5BIDENTMAX_2B_31_5D"></a><!-- doxytag: member="WhoWasUser::ident" ref="ident_5BIDENTMAX_2B_31_5D" args="[IDENTMAX+1]" --><p>
@@ -132,7 +138,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00338">338</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00336">336</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00340">340</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="nick_5BNICKMAX_5D"></a><!-- doxytag: member="WhoWasUser::nick" ref="nick_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -157,7 +165,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00336">336</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00335">335</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00339">339</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="server_5B_32_35_36_5D"></a><!-- doxytag: member="WhoWasUser::server" ref="server_5B_32_35_36_5D" args="[256]" --><p>
@@ -182,7 +192,9 @@ Definition at line <a class="el" href="users_8h-source.html#l00335">335</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00340">340</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00344">344</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#l00471">AddWhoWas()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="signon"></a><!-- doxytag: member="WhoWasUser::signon" ref="signon" args="" --><p>
@@ -207,12 +219,14 @@ Definition at line <a class="el" href="users_8h-source.html#l00340">340</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00341">341</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00345">345</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#l00471">AddWhoWas()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f6812f0589e88c07d27ce54cac222a849db8c2ce..d31eb7759dafe9a3e74cbb54edd43eef99bb4773 100644 (file)
@@ -14,7 +14,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e031d76388747b667da7a6b2cf4d618851d689f1..3858597503cefe3295d9258eeb852e422c2a0134 100644 (file)
@@ -185,7 +185,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00053">53</a> of fi
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b2c9826680918e637d79f29d1810f7e75d170bc6..21ad50226f71d664bd4ba26cb052824205a6eab5 100644 (file)
@@ -16,7 +16,7 @@
   <tr class="memlist"><td><a class="el" href="classXLine.html#set_5Ftime">set_time</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classXLine.html#source_5B_32_35_36_5D">source</a></td><td><a class="el" href="classXLine.html">XLine</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 335760d10ee1be74295252e1f06b2a3c2a9f2d1f..caef06faf70045655bca48258c98990f34031b14 100644 (file)
@@ -92,7 +92,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00108">108</a> of f
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="xline_8h-source.html">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index edb7982d7fbf3a0b5bf10c2e3ba616718e84361b..3512117d8c43138a7368aad4a0228d8036d15610 100644 (file)
@@ -34,7 +34,7 @@
   <tr class="memlist"><td><a class="el" href="classchanrec.html#topicset">topicset</a></td><td><a class="el" href="classchanrec.html">chanrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classchanrec.html#_7Echanrec_28_29">~chanrec</a>()</td><td><a class="el" href="classchanrec.html">chanrec</a></td><td><code> [inline, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ec4daab2b7a367ab17b67461a500f3a0855e8cf1..228e998edda70a968d6ffce6eb7c4496a4abda72 100644 (file)
@@ -123,18 +123,18 @@ Creates a channel record and initialises it with default values.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00074">74</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00147">binarymodes</a>, <a class="el" href="channels_8h-source.html#l00125">created</a>, <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00143">key</a>, <a class="el" href="channels_8h-source.html#l00138">limit</a>, <a class="el" href="channels_8h-source.html#l00108">name</a>, <a class="el" href="channels_8h-source.html#l00133">setby</a>, <a class="el" href="channels_8h-source.html#l00122">topic</a>, and <a class="el" href="channels_8h-source.html#l00129">topicset</a>.<div class="fragment"><pre class="fragment"><a name="l00075"></a>00075 {
-<a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
-<a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
-<a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
-<a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
-<a name="l00080"></a>00080         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
-<a name="l00081"></a>00081         <a class="code" href="classchanrec.html#created">created</a> = <a class="code" href="classchanrec.html#topicset">topicset</a> = <a class="code" href="classchanrec.html#limit">limit</a> = 0;
-<a name="l00082"></a>00082         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
-<a name="l00083"></a>00083         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
-<a name="l00084"></a>00084 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00073">73</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00147">binarymodes</a>, <a class="el" href="channels_8h-source.html#l00125">created</a>, <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00143">key</a>, <a class="el" href="channels_8h-source.html#l00138">limit</a>, <a class="el" href="channels_8h-source.html#l00108">name</a>, <a class="el" href="channels_8h-source.html#l00133">setby</a>, <a class="el" href="channels_8h-source.html#l00122">topic</a>, and <a class="el" href="channels_8h-source.html#l00129">topicset</a>.<div class="fragment"><pre class="fragment"><a name="l00074"></a>00074 {
+<a name="l00075"></a>00075         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
+<a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
+<a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
+<a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
+<a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
+<a name="l00080"></a>00080         <a class="code" href="classchanrec.html#created">created</a> = <a class="code" href="classchanrec.html#topicset">topicset</a> = <a class="code" href="classchanrec.html#limit">limit</a> = 0;
+<a name="l00081"></a>00081         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
+<a name="l00082"></a>00082         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
+<a name="l00083"></a>00083 }
 </pre></div>
 <p>
     </td>
@@ -207,14 +207,14 @@ Add a user pointer to the internal reference list.
 </dl>
 The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00167">167</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00166">166</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00168"></a>00168 {
-<a name="l00169"></a>00169         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
-<a name="l00170"></a>00170         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
-<a name="l00171"></a>00171 }
+Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {
+<a name="l00168"></a>00168         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
+<a name="l00169"></a>00169         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
+<a name="l00170"></a>00170 }
 </pre></div>
 <p>
     </td>
@@ -254,22 +254,22 @@ Delete a user pointer to the internal reference list.
 </dl>
 The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00173">173</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8h-source.html#l00108">name</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00174"></a>00174 {
-<a name="l00175"></a>00175         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.end(); a++)
-<a name="l00176"></a>00176         {
-<a name="l00177"></a>00177                 <span class="keywordflow">if</span> (*a == castuser)
-<a name="l00178"></a>00178                 {
-<a name="l00179"></a>00179                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
-<a name="l00180"></a>00180                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
-<a name="l00181"></a>00181                         <span class="keywordflow">return</span>;
-<a name="l00182"></a>00182                 }
-<a name="l00183"></a>00183         }
-<a name="l00184"></a>00184         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00185"></a>00185 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00172">172</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8h-source.html#l00108">name</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00173"></a>00173 {
+<a name="l00174"></a>00174         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.end(); a++)
+<a name="l00175"></a>00175         {
+<a name="l00176"></a>00176                 <span class="keywordflow">if</span> (*a == castuser)
+<a name="l00177"></a>00177                 {
+<a name="l00178"></a>00178                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
+<a name="l00179"></a>00179                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
+<a name="l00180"></a>00180                         <span class="keywordflow">return</span>;
+<a name="l00181"></a>00181                 }
+<a name="l00182"></a>00182         }
+<a name="l00183"></a>00183         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00184"></a>00184 }
 </pre></div>
 <p>
     </td>
@@ -311,21 +311,21 @@ For example if "+L #foo" is set, and you pass this method 'L', it will return 'f
 <dl compact><dt><b>Returns:</b></dt><dd>The parameter for this mode is returned, or an empty string</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00147">147</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8cpp-source.html#l00070">custom_mode_params</a>.<div class="fragment"><pre class="fragment"><a name="l00148"></a>00148 {
-<a name="l00149"></a>00149         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
-<a name="l00150"></a>00150         {
-<a name="l00151"></a>00151                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
-<a name="l00152"></a>00152                 {
-<a name="l00153"></a>00153                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-<a name="l00154"></a>00154                         {
-<a name="l00155"></a>00155                                 <span class="keywordflow">return</span> i-&gt;parameter;
-<a name="l00156"></a>00156                         }
-<a name="l00157"></a>00157                 }
-<a name="l00158"></a>00158         }
-<a name="l00159"></a>00159         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00160"></a>00160 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00146">146</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8cpp-source.html#l00069">custom_mode_params</a>.<div class="fragment"><pre class="fragment"><a name="l00147"></a>00147 {
+<a name="l00148"></a>00148         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
+<a name="l00149"></a>00149         {
+<a name="l00150"></a>00150                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
+<a name="l00151"></a>00151                 {
+<a name="l00152"></a>00152                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00153"></a>00153                         {
+<a name="l00154"></a>00154                                 <span class="keywordflow">return</span> i-&gt;parameter;
+<a name="l00155"></a>00155                         }
+<a name="l00156"></a>00156                 }
+<a name="l00157"></a>00157         }
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00159"></a>00159 }
 </pre></div>
 <p>
     </td>
@@ -360,9 +360,9 @@ Obtain the channel "user counter" This returns the channel reference counter, wh
 <dl compact><dt><b>Returns:</b></dt><dd>The number of users on this channel</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00162">162</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00163"></a>00163 {
-<a name="l00164"></a>00164         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
-<a name="l00165"></a>00165 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00161">161</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00162"></a>00162 {
+<a name="l00163"></a>00163         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
+<a name="l00164"></a>00164 }
 </pre></div>
 <p>
     </td>
@@ -398,13 +398,13 @@ These are used for rapid comparison to determine channel membership for PRIVMSG,
 <dl compact><dt><b>Returns:</b></dt><dd>This function returns a vector of userrec pointers, each of which has been casted to char* to prevent circular references</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00187">187</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+Definition at line <a class="el" href="channels_8cpp-source.html#l00186">186</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
 <p>
 References <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00374">Server::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00188"></a>00188 {
-<a name="l00189"></a>00189         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
-<a name="l00190"></a>00190 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00373">Server::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00187"></a>00187 {
+<a name="l00188"></a>00188         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
+<a name="l00189"></a>00189 }
 </pre></div>
 <p>
     </td>
@@ -445,9 +445,9 @@ Returns true if a custom mode is set on a channel.
 <dl compact><dt><b>Returns:</b></dt><dd>True if the custom mode is set, false if otherwise</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00142">142</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00143"></a>00143 {
-<a name="l00144"></a>00144         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
-<a name="l00145"></a>00145 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00141">141</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00142"></a>00142 {
+<a name="l00143"></a>00143         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
+<a name="l00144"></a>00144 }
 </pre></div>
 <p>
     </td>
@@ -497,30 +497,30 @@ Sets or unsets a custom mode in the channels info.
 </dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00086">86</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8cpp-source.html#l00111">SetCustomModeParam()</a>.<div class="fragment"><pre class="fragment"><a name="l00087"></a>00087 {
-<a name="l00088"></a>00088         <span class="keywordflow">if</span> (mode_on) {
-<a name="l00089"></a>00089                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
-<a name="l00090"></a>00090                 m[0] = mode;
-<a name="l00091"></a>00091                 m[1] = <span class="charliteral">'\0'</span>;
-<a name="l00092"></a>00092                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-<a name="l00093"></a>00093                 {
-<a name="l00094"></a>00094                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
-<a name="l00095"></a>00095                 }
-<a name="l00096"></a>00096                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-<a name="l00097"></a>00097         }
-<a name="l00098"></a>00098         <span class="keywordflow">else</span> {
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100                 <a class="code" href="namespaceirc.html#string">std::string</a> a = this-&gt;<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>;
-<a name="l00101"></a>00101                 <span class="keywordtype">int</span> pos = a.find(mode);
-<a name="l00102"></a>00102                 a.erase(pos,1);
-<a name="l00103"></a>00103                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
-<a name="l00104"></a>00104 
-<a name="l00105"></a>00105                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
-<a name="l00106"></a>00106                 this-&gt;<a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-<a name="l00107"></a>00107         }
-<a name="l00108"></a>00108 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00085">85</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8cpp-source.html#l00110">SetCustomModeParam()</a>.<div class="fragment"><pre class="fragment"><a name="l00086"></a>00086 {
+<a name="l00087"></a>00087         <span class="keywordflow">if</span> (mode_on) {
+<a name="l00088"></a>00088                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
+<a name="l00089"></a>00089                 m[0] = mode;
+<a name="l00090"></a>00090                 m[1] = <span class="charliteral">'\0'</span>;
+<a name="l00091"></a>00091                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+<a name="l00092"></a>00092                 {
+<a name="l00093"></a>00093                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
+<a name="l00094"></a>00094                 }
+<a name="l00095"></a>00095                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
+<a name="l00096"></a>00096         }
+<a name="l00097"></a>00097         <span class="keywordflow">else</span> {
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099                 <a class="code" href="namespaceirc.html#string">std::string</a> a = this-&gt;<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>;
+<a name="l00100"></a>00100                 <span class="keywordtype">int</span> pos = a.find(mode);
+<a name="l00101"></a>00101                 a.erase(pos,1);
+<a name="l00102"></a>00102                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+<a name="l00103"></a>00103 
+<a name="l00104"></a>00104                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
+<a name="l00105"></a>00105                 this-&gt;<a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
+<a name="l00106"></a>00106         }
+<a name="l00107"></a>00107 }
 </pre></div>
 <p>
     </td>
@@ -577,39 +577,39 @@ Sets or unsets the parameters for a custom mode in a channels info.
 </dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00111">111</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00084">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00070">custom_mode_params</a>, <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00082">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00083">ModeParameter::parameter</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00086">SetCustomMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00112"></a>00112 {
-<a name="l00113"></a>00113 
-<a name="l00114"></a>00114         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
-<a name="l00115"></a>00115         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-<a name="l00116"></a>00116         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
-<a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
-<a name="l00118"></a>00118         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
-<a name="l00119"></a>00119         <span class="keywordflow">if</span> (mode_on)
-<a name="l00120"></a>00120         {
-<a name="l00121"></a>00121                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-<a name="l00122"></a>00122                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
-<a name="l00123"></a>00123         }
-<a name="l00124"></a>00124         <span class="keywordflow">else</span>
-<a name="l00125"></a>00125         {
-<a name="l00126"></a>00126                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
-<a name="l00127"></a>00127                 {
-<a name="l00128"></a>00128                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
-<a name="l00129"></a>00129                         {
-<a name="l00130"></a>00130                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-<a name="l00131"></a>00131                                 {
-<a name="l00132"></a>00132                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-<a name="l00133"></a>00133                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
-<a name="l00134"></a>00134                                         <span class="keywordflow">return</span>;
-<a name="l00135"></a>00135                                 }
-<a name="l00136"></a>00136                         }
-<a name="l00137"></a>00137                 }
-<a name="l00138"></a>00138                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-<a name="l00139"></a>00139         }
-<a name="l00140"></a>00140 }
+Definition at line <a class="el" href="channels_8cpp-source.html#l00110">110</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00084">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00069">custom_mode_params</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00082">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00083">ModeParameter::parameter</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00085">SetCustomMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
+<a name="l00114"></a>00114         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+<a name="l00115"></a>00115         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
+<a name="l00116"></a>00116         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
+<a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
+<a name="l00118"></a>00118         <span class="keywordflow">if</span> (mode_on)
+<a name="l00119"></a>00119         {
+<a name="l00120"></a>00120                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
+<a name="l00121"></a>00121                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
+<a name="l00122"></a>00122         }
+<a name="l00123"></a>00123         <span class="keywordflow">else</span>
+<a name="l00124"></a>00124         {
+<a name="l00125"></a>00125                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
+<a name="l00126"></a>00126                 {
+<a name="l00127"></a>00127                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
+<a name="l00128"></a>00128                         {
+<a name="l00129"></a>00129                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00130"></a>00130                                 {
+<a name="l00131"></a>00131                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
+<a name="l00132"></a>00132                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
+<a name="l00133"></a>00133                                         <span class="keywordflow">return</span>;
+<a name="l00134"></a>00134                                 }
+<a name="l00135"></a>00135                         }
+<a name="l00136"></a>00136                 }
+<a name="l00137"></a>00137                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
+<a name="l00138"></a>00138         }
+<a name="l00139"></a>00139 }
 </pre></div>
 <p>
     </td>
@@ -642,7 +642,7 @@ The list of all bans set on the channel.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00151">151</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="binarymodes"></a><!-- doxytag: member="chanrec::binarymodes" ref="binarymodes" args="" --><p>
@@ -671,7 +671,7 @@ Contains a bitmask of the CM_* builtin (RFC) binary mode symbols.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00147">147</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="created"></a><!-- doxytag: member="chanrec::created" ref="created" args="" --><p>
@@ -700,7 +700,7 @@ Creation time.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00125">125</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="custom_5Fmodes_5BMAXMODES_5D"></a><!-- doxytag: member="chanrec::custom_modes" ref="custom_5Fmodes_5BMAXMODES_5D" args="[MAXMODES]" --><p>
@@ -729,7 +729,7 @@ Plugins may use this field in any way they see fit.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00112">112</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00086">SetCustomMode()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00085">SetCustomMode()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="internal_5Fuserlist"></a><!-- doxytag: member="chanrec::internal_userlist" ref="internal_5Fuserlist" args="" --><p>
@@ -758,7 +758,7 @@ User list (casted to char*'s to stop forward declaration stuff) (chicken and egg
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00117">117</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00167">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00173">DelUser()</a>, and <a class="el" href="channels_8cpp-source.html#l00187">GetUsers()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00166">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, and <a class="el" href="channels_8cpp-source.html#l00186">GetUsers()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="key_5B_33_32_5D"></a><!-- doxytag: member="chanrec::key" ref="key_5B_33_32_5D" args="[32]" --><p>
@@ -787,7 +787,7 @@ 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#l00143">143</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="limit"></a><!-- doxytag: member="chanrec::limit" ref="limit" args="" --><p>
@@ -816,7 +816,7 @@ If this value is zero, there is no limit in place.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00138">138</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="name_5BCHANMAX_5D"></a><!-- doxytag: member="chanrec::name" ref="name_5BCHANMAX_5D" args="[CHANMAX]" --><p>
@@ -845,7 +845,7 @@ The channels name.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00173">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="setby_5BNICKMAX_5D"></a><!-- doxytag: member="chanrec::setby" ref="setby_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -874,7 +874,7 @@ If this member is an empty string, no topic was ever set.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00133">133</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="topic_5BMAXBUF_5D"></a><!-- doxytag: member="chanrec::topic" ref="topic_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -903,7 +903,7 @@ If this is an empty string, no channel topic is set.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00122">122</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="topicset"></a><!-- doxytag: member="chanrec::topicset" ref="topicset" args="" --><p>
@@ -932,12 +932,12 @@ If no topic was ever set, this will be equal to <a class="el" href="classchanrec
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00129">129</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00074">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <li><a class="el" href="channels_8h-source.html">channels.h</a><li><a class="el" href="channels_8cpp-source.html">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6ebcc98e89320edb7bdbbe6d36f92be722adb837..2b22f303ac15d26c838b0d8bd9d8951b7fa08a41 100644 (file)
@@ -9,7 +9,7 @@
   <tr class="memlist"><td><a class="el" href="classclassbase.html#age">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#classbase_28_29">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ccef96079bf89e910c799bd93cfc75c7b3431c14..5deada1240afa7ceb33f321a3f86eafe66fbbe3f 100644 (file)
@@ -150,7 +150,7 @@ Referenced by <a class="el" href="base_8h-source.html#l00040">classbase()</a>.
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="base_8h-source.html">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f544ba5d8e25f99efd9866513800edf68393b81f..90a8c0c47c322d84aa6b0f028fc90cfc2ef1bcbe 100644 (file)
@@ -1 +1 @@
-2dcead24293b96c88fe586688d98dbf1
\ No newline at end of file
+a7cad757539041de468d74629f972ab7
\ No newline at end of file
index 6610398516f5c87084fb35bd0893f53836403c49..ca55224519d45e784dc0da00fe9b75d6dc128247 100644 (file)
@@ -6,21 +6,16 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>command_t Member List</h1>This is the complete list of members for <a class="el" href="classcommand__t.html">command_t</a>, including all inherited members.<p><table>
-  <tr class="memlist"><td><a class="el" href="classclassbase.html#age">age</a></td><td><a class="el" href="classclassbase.html">classbase</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classclassbase.html#classbase_28_29">classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classcommand__t.html#command_5BMAXBUF_5D">command</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classExtensible.html#Extend_28std_3A_3Astring_20key_2C_20char_20_2Ap_29">Extend</a>(std::string key, char *p)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classcommand__t.html#command">command</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">command_t</a>(std::string cmd, char flags, int minpara)</td><td><a class="el" href="classcommand__t.html">command_t</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#flags_5Fneeded">flags_needed</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classExtensible.html#GetExt_28std_3A_3Astring_20key_29">GetExt</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classExtensible.html#GetExtList_28std_3A_3Adeque_3C_20std_3A_3Astring_20_3E_20_26list_29">GetExtList</a>(std::deque&lt; std::string &gt; &amp;list)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classcommand__t.html#handler_5Ffunction">handler_function</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classcommand__t.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30">Handle</a>(char **parameters, int pcnt, userrec *user)=0</td><td><a class="el" href="classcommand__t.html">command_t</a></td><td><code> [pure virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#min_5Fparams">min_params</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">source</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classcommand__t.html#source">source</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#total_5Fbytes">total_bytes</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classcommand__t.html#use_5Fcount">use_count</a></td><td><a class="el" href="classcommand__t.html">command_t</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+  <tr class="memlist"><td><a class="el" href="classcommand__t.html#_7Ecommand_5Ft_28_29">~command_t</a>()</td><td><a class="el" href="classcommand__t.html">command_t</a></td><td><code> [inline, virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1b665f081d366b069f7ef53dfc1ab288aecf7d65..11c891bdad2dd17a246c49b68da89e03d2dbaac1 100644 (file)
@@ -5,30 +5,29 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<h1>command_t Class Reference</h1><!-- doxytag: class="command_t" --><!-- doxytag: inherits="Extensible" -->A structure that defines a command.  
+<h1>command_t Class Reference</h1><!-- doxytag: class="command_t" -->A structure that defines a command.  
 <a href="#_details">More...</a>
 <p>
 <code>#include &lt;<a class="el" href="ctables_8h-source.html">ctables.h</a>&gt;</code>
 <p>
 Inheritance diagram for command_t:<p><center><img src="classcommand__t__inherit__graph.gif" border="0" usemap="#command__t__inherit__map" alt="Inheritance graph"></center>
 <map name="command__t__inherit__map">
-<area href="classExtensible.html" shape="rect" coords="11,81,93,108" alt="">
-<area href="classclassbase.html" shape="rect" coords="12,7,92,33" alt="">
+<area href="classcmd__mode.html" shape="rect" coords="8,82,96,108" alt="">
 </map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for command_t:<p><center><img src="classcommand__t__coll__graph.gif" border="0" usemap="#command__t__coll__map" alt="Collaboration graph"></center>
-<map name="command__t__coll__map">
-<area href="classExtensible.html" shape="rect" coords="80,97,163,124" alt="">
-<area href="classclassbase.html" shape="rect" coords="7,7,87,33" alt="">
-</map>
 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classcommand__t-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 class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#command_5BMAXBUF_5D">command</a> [MAXBUF]</td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">command_t</a> (<a class="el" href="namespaceirc.html#string">std::string</a> cmd, char flags, int minpara)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30">Handle</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)=0</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command name.  <a href="#command_5BMAXBUF_5D"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#handler_5Ffunction">handler_function</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#_7Ecommand_5Ft_28_29">~command_t</a> ()</td></tr>
+
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#command">command</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handler function as in typedef.  <a href="#handler_5Ffunction"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Command name.  <a href="#command"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#flags_5Fneeded">flags_needed</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User flags needed to execute the command or 0.  <a href="#flags_5Fneeded"></a><br></td></tr>
@@ -41,23 +40,43 @@ Inheritance diagram for command_t:<p><center><img src="classcommand__t__inherit_
 <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#total_5Fbytes">total_bytes</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">used by /stats m  <a href="#total_5Fbytes"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">source</a> [MAXBUF]</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html#source">source</a></td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">used for resource tracking between modules  <a href="#source_5BMAXBUF_5D"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">used for resource tracking between modules  <a href="#source"></a><br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 A structure that defines a command. 
 <p>
 
 <p>
-Definition at line <a class="el" href="ctables_8h-source.html#l00026">26</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.<hr><h2>Member Data Documentation</h2>
-<a class="anchor" name="command_5BMAXBUF_5D"></a><!-- doxytag: member="command_t::command" ref="command_5BMAXBUF_5D" args="[MAXBUF]" --><p>
+Definition at line <a class="el" href="ctables_8h-source.html#l00029">29</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29"></a><!-- doxytag: member="command_t::command_t" ref="command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29" args="(std::string cmd, char flags, int minpara)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">char <a class="el" href="classcommand__t.html#command_5BMAXBUF_5D">command_t::command</a>[MAXBUF]          </td>
+          <td class="md" nowrap valign="top">command_t::command_t           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
+          <td class="mdname" nowrap> <em>cmd</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char&nbsp;</td>
+          <td class="mdname" nowrap> <em>flags</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>minpara</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inline]</code></td>
         </tr>
       </table>
     </td>
@@ -71,20 +90,31 @@ Definition at line <a class="el" href="ctables_8h-source.html#l00026">26</a> of
     <td>
 
 <p>
-Command name. 
-<p>
 
 <p>
-Definition at line <a class="el" href="ctables_8h-source.html#l00031">31</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+Definition at line <a class="el" href="ctables_8h-source.html#l00051">51</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.
+<p>
+References <a class="el" href="ctables_8h-source.html#l00049">source</a>, <a class="el" href="ctables_8h-source.html#l00046">total_bytes</a>, and <a class="el" href="ctables_8h-source.html#l00043">use_count</a>.<div class="fragment"><pre class="fragment"><a name="l00051"></a>00051                                                           : <a class="code" href="classcommand__t.html#command">command</a>(cmd), <a class="code" href="classcommand__t.html#flags_5Fneeded">flags_needed</a>(flags), <a class="code" href="classcommand__t.html#min_5Fparams">min_params</a>(minpara)
+<a name="l00052"></a>00052         {
+<a name="l00053"></a>00053                 <a class="code" href="classcommand__t.html#use_5Fcount">use_count</a> = <a class="code" href="classcommand__t.html#total_5Fbytes">total_bytes</a> = 0;
+<a name="l00054"></a>00054                 <a class="code" href="classcommand__t.html#source">source</a> = <span class="stringliteral">"&lt;core&gt;"</span>;
+<a name="l00055"></a>00055         }
+</pre></div>
+<p>
+    </td>
   </tr>
 </table>
-<a class="anchor" name="flags_5Fneeded"></a><!-- doxytag: member="command_t::flags_needed" ref="flags_5Fneeded" args="" --><p>
+<a class="anchor" name="_7Ecommand_5Ft_28_29"></a><!-- doxytag: member="command_t::~command_t" ref="_7Ecommand_5Ft_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">char <a class="el" href="classcommand__t.html#flags_5Fneeded">command_t::flags_needed</a>          </td>
+          <td class="md" nowrap valign="top">virtual command_t::~command_t           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inline, virtual]</code></td>
         </tr>
       </table>
     </td>
@@ -98,20 +128,68 @@ Definition at line <a class="el" href="ctables_8h-source.html#l00031">31</a> of
     <td>
 
 <p>
-User flags needed to execute the command or 0. 
+
+<p>
+Definition at line <a class="el" href="ctables_8h-source.html#l00059">59</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.<div class="fragment"><pre class="fragment"><a name="l00059"></a>00059 {}
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30"></a><!-- doxytag: member="command_t::Handle" ref="Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30" args="(char **parameters, int pcnt, userrec *user)=0" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void command_t::Handle           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char **&nbsp;</td>
+          <td class="mdname" nowrap> <em>parameters</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+          <td class="mdname" nowrap> <em>user</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [pure 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="ctables_8h-source.html#l00037">37</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+Implemented in <a class="el" href="classcmd__mode.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">cmd_mode</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="handler_5Ffunction"></a><!-- doxytag: member="command_t::handler_function" ref="handler_5Ffunction" args="" --><p>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="command"></a><!-- doxytag: member="command_t::command" ref="command" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>* <a class="el" href="classcommand__t.html#handler_5Ffunction">command_t::handler_function</a>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classcommand__t.html#command">command_t::command</a>          </td>
         </tr>
       </table>
     </td>
@@ -125,13 +203,40 @@ Definition at line <a class="el" href="ctables_8h-source.html#l00037">37</a> of
     <td>
 
 <p>
-Handler function as in typedef
+Command name
 <p>
 
 <p>
 Definition at line <a class="el" href="ctables_8h-source.html#l00034">34</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
   </tr>
 </table>
+<a class="anchor" name="flags_5Fneeded"></a><!-- doxytag: member="command_t::flags_needed" ref="flags_5Fneeded" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">char <a class="el" href="classcommand__t.html#flags_5Fneeded">command_t::flags_needed</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+User flags needed to execute the command or 0. 
+<p>
+
+<p>
+Definition at line <a class="el" href="ctables_8h-source.html#l00037">37</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="min_5Fparams"></a><!-- doxytag: member="command_t::min_params" ref="min_5Fparams" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -159,13 +264,13 @@ Minimum number of parameters command takes.
 Definition at line <a class="el" href="ctables_8h-source.html#l00040">40</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="source_5BMAXBUF_5D"></a><!-- doxytag: member="command_t::source" ref="source_5BMAXBUF_5D" args="[MAXBUF]" --><p>
+<a class="anchor" name="source"></a><!-- doxytag: member="command_t::source" ref="source" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">char <a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">command_t::source</a>[MAXBUF]          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> <a class="el" href="classcommand__t.html#source">command_t::source</a>          </td>
         </tr>
       </table>
     </td>
@@ -183,7 +288,9 @@ used for resource tracking between modules
 <p>
 
 <p>
-Definition at line <a class="el" href="ctables_8h-source.html#l00049">49</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+Definition at line <a class="el" href="ctables_8h-source.html#l00049">49</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.
+<p>
+Referenced by <a class="el" href="ctables_8h-source.html#l00051">command_t()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="total_5Fbytes"></a><!-- doxytag: member="command_t::total_bytes" ref="total_5Fbytes" args="" --><p>
@@ -210,7 +317,9 @@ used by /stats m
 <p>
 
 <p>
-Definition at line <a class="el" href="ctables_8h-source.html#l00046">46</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+Definition at line <a class="el" href="ctables_8h-source.html#l00046">46</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.
+<p>
+Referenced by <a class="el" href="ctables_8h-source.html#l00051">command_t()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="use_5Fcount"></a><!-- doxytag: member="command_t::use_count" ref="use_5Fcount" args="" --><p>
@@ -237,12 +346,14 @@ used by /stats m
 <p>
 
 <p>
-Definition at line <a class="el" href="ctables_8h-source.html#l00043">43</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+Definition at line <a class="el" href="ctables_8h-source.html#l00043">43</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.
+<p>
+Referenced by <a class="el" href="ctables_8h-source.html#l00051">command_t()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="ctables_8h-source.html">ctables.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cc88b53ff4c7ba8321fd14f0a28c67056e2f3eac..5a14779e786cc5692df9066f3524592c3e668189 100644 (file)
@@ -1,3 +1 @@
 base referer
-rect $classExtensible.html 80,97 163,124
-rect $classclassbase.html 7,7 87,33
index 312c9417b4c33c0bd640bef709efd34430778325..0ef3d64e901721926868af022f0ce8e8b68d16d8 100644 (file)
@@ -1 +1 @@
-c1351289da2fb0e69df5517d601b50d5
\ No newline at end of file
+a870a1a889c9b48d45ed8d3fe3dde1c9
\ No newline at end of file
index f7ab96c5d67124fe4969194abf170178fac046ff..7c32f56f50905041448c85859a1369869ec2e2fa 100644 (file)
@@ -1,3 +1,2 @@
 base referer
-rect $classExtensible.html 11,81 93,108
-rect $classclassbase.html 12,7 92,33
+rect $classcmd__mode.html 8,82 96,108
index 9c538143fe4d3cf895bbd67634ad76b8e0849b90..f6a379e7109c9bd5431e1bbaa8df7d23be8c242e 100644 (file)
@@ -1 +1 @@
-f184248fba7e0bab49a632a5b1d29a64
\ No newline at end of file
+561f8c00e2c3919b70cd1ad50528624f
\ No newline at end of file
index 6d4b23eeef6c5170afe52112fd5ce1b2ff885bb5..6498c8c874e1ce0b3899244f4e9f454ed276cea9 100644 (file)
@@ -28,7 +28,7 @@
   <tr class="memlist"><td><a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Shrink</a>(std::string key)</td><td><a class="el" href="classExtensible.html">Extensible</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#signon">signon</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 7fec9c4147950309eef221e715cdb36e0e1be711..b2d31161fd5f47d8cb40ec6e2f61db3f6eafd124 100644 (file)
@@ -142,7 +142,7 @@ Stats counter for bytes inbound.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00054">54</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="bytes_5Fout"></a><!-- doxytag: member="connection::bytes_out" ref="bytes_5Fout" args="" --><p>
@@ -171,7 +171,7 @@ Stats counter for bytes outbound.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00058">58</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00270">userrec::FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="cmds_5Fin"></a><!-- doxytag: member="connection::cmds_in" ref="cmds_5Fin" args="" --><p>
@@ -200,7 +200,7 @@ Stats counter for commands inbound.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00062">62</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="cmds_5Fout"></a><!-- doxytag: member="connection::cmds_out" ref="cmds_5Fout" args="" --><p>
@@ -229,7 +229,7 @@ Stats counter for commands outbound.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00066">66</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00270">userrec::FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="fd"></a><!-- doxytag: member="connection::fd" ref="fd" args="" --><p>
@@ -258,7 +258,7 @@ File descriptor of the connection.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00042">42</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="connection_8h-source.html#l00100">connection()</a>, <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader::DumpErrors()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00441">Server::SendTo()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="connection_8h-source.html#l00100">connection()</a>, <a class="el" href="modules_8cpp-source.html#l00834">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00440">Server::SendTo()</a>, <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="haspassed"></a><!-- doxytag: member="connection::haspassed" ref="haspassed" args="" --><p>
@@ -287,7 +287,7 @@ True if server/user has authenticated, false if otherwise.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00070">70</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="host_5B_31_36_30_5D"></a><!-- doxytag: member="connection::host" ref="host_5B_31_36_30_5D" args="[160]" --><p>
@@ -316,7 +316,7 @@ Not used if this is a serverrec
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00046">46</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00089">userrec::GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00116">userrec::GetFullRealHost()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="idle_5Flastmsg"></a><!-- doxytag: member="connection::idle_lastmsg" ref="idle_5Flastmsg" args="" --><p>
@@ -345,7 +345,7 @@ Time that the connection last sent data, used to calculate idle time.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00092">92</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ip_5B_31_36_5D"></a><!-- doxytag: member="connection::ip" ref="ip_5B_31_36_5D" args="[16]" --><p>
@@ -374,7 +374,7 @@ IP of connection.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00050">50</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="lastping"></a><!-- doxytag: member="connection::lastping" ref="lastping" args="" --><p>
@@ -403,7 +403,7 @@ Time the connection was last pinged.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00084">84</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="nping"></a><!-- doxytag: member="connection::nping" ref="nping" args="" --><p>
@@ -432,7 +432,7 @@ Used by PING checks with clients.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00096">96</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="port"></a><!-- doxytag: member="connection::port" ref="port" args="" --><p>
@@ -461,7 +461,7 @@ For a serverrec this is the current listening port of the serverrec object.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00076">76</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="registered"></a><!-- doxytag: member="connection::registered" ref="registered" args="" --><p>
@@ -490,7 +490,7 @@ Used by userrec to indicate the registration status of the connection.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00080">80</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00731">ConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="signon"></a><!-- doxytag: member="connection::signon" ref="signon" args="" --><p>
@@ -519,12 +519,12 @@ Time the connection was created, set in the constructor.
 <p>
 Definition at line <a class="el" href="connection_8h-source.html#l00088">88</a> of file <a class="el" href="connection_8h-source.html">connection.h</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="connection_8h-source.html">connection.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bf330f4a09b51c69ef225261413d6d54836447ee..71b5f16a92904c5555fbf5b71220926dff06b6ad 100644 (file)
@@ -8,26 +8,26 @@
 <h1>InspIRCd Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_W">W</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Z">Z</a></div><p>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
 <tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classCullList.html">CullList</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html">hash&lt; in_addr &gt;</a> (<a class="el" href="namespacenspace.html">nspace</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModeParameter.html">ModeParameter</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structirc_1_1StrHashComp.html">StrHashComp</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classDNS.html">DNS</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html">hash&lt; string &gt;</a> (<a class="el" href="namespacenspace.html">nspace</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModule.html">Module</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classBanItem.html">BanItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHostItem.html">HostItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModuleFactory.html">ModuleFactory</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classucrec.html">ucrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classBoolSet.html">BoolSet</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classconnection.html">connection</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classKLine.html">KLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classserverstats.html">serverstats</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAdmin.html">Admin</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classCullItem.html">CullItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;M&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classSocketEngine.html">SocketEngine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classAES.html">AES</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classCullList.html">CullList</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;H&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classModeParameter.html">ModeParameter</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structirc_1_1StrHashComp.html">StrHashComp</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html">hash&lt; in_addr &gt;</a> (<a class="el" href="namespacenspace.html">nspace</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classModeParser.html">ModeParser</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;U&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classBanItem.html">BanItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classDNS.html">DNS</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html">hash&lt; string &gt;</a> (<a class="el" href="namespacenspace.html">nspace</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><a class="el" href="classBoolSet.html">BoolSet</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classHostItem.html">HostItem</a>&nbsp;&nbsp;&nbsp;</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 name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
 </td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classuserrec.html">userrec</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classELine.html">ELine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structirc_1_1InAddr__HashComp.html">InAddr_HashComp</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Q&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classchanrec.html">chanrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classEvent.html">Event</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classQLine.html">QLine</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="classstd_1_1char__traits.html">char_traits</a> (<a class="el" href="namespacestd.html">std</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExemptItem.html">ExemptItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInspSocket.html">InspSocket</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;W&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classclassbase.html">classbase</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExtensible.html">Extensible</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInvited.html">Invited</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classRequest.html">Request</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcommand__t.html">command_t</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExtMode.html">ExtMode</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classConfigReader.html">ConfigReader</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc_char_traits</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classXLine.html">XLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classFileReader.html">FileReader</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;K&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classServerConfig.html">ServerConfig</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Z"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Z&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classconnection.html">connection</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;G&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classKLine.html">KLine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classserverstats.html">serverstats</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classCullItem.html">CullItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classGLine.html">GLine</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_W">W</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Z">Z</a></div><p>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+</td><td><a class="el" href="classModuleMessage.html">ModuleMessage</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;V&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classchanrec.html">chanrec</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classELine.html">ELine</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structirc_1_1InAddr__HashComp.html">InAddr_HashComp</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Q&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classVersion.html">Version</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classstd_1_1char__traits.html">char_traits</a> (<a class="el" href="namespacestd.html">std</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classEvent.html">Event</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInspIRCd.html">InspIRCd</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classQLine.html">QLine</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;W&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classclassbase.html">classbase</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExemptItem.html">ExemptItem</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInspSocket.html">InspSocket</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;R&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classWhoWasUser.html">WhoWasUser</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classcmd__mode.html">cmd_mode</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExtensible.html">Extensible</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInvited.html">Invited</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classRequest.html">Request</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;X&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classcommand__t.html">command_t</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classExtMode.html">ExtMode</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classInviteItem.html">InviteItem</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classXLine.html">XLine</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classConfigReader.html">ConfigReader</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc_char_traits</a> (<a class="el" href="namespaceirc.html">irc</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classServer.html">Server</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_Z"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;Z&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="classConnectClass.html">ConnectClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classFileReader.html">FileReader</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;K&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classServerConfig.html">ServerConfig</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classZLine.html">ZLine</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_G">G</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_H">H</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_M">M</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Q">Q</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_R">R</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_U">U</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_V">V</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_W">W</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_X">X</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_Z">Z</a></div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 09fe9f5f3147c6e97a23c6c4446121fa124fb324..fdabefd953c2229a337e87296affece55998defb 100644 (file)
@@ -6,6 +6,7 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>serverstats Member List</h1>This is the complete list of members for <a class="el" href="classserverstats.html">serverstats</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classserverstats.html#BoundPortCount">BoundPortCount</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverstats.html#serverstats_28_29">serverstats</a>()</td><td><a class="el" href="classserverstats.html">serverstats</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverstats.html#statsAccept">statsAccept</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverstats.html#statsCollisions">statsCollisions</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
@@ -17,7 +18,7 @@
   <tr class="memlist"><td><a class="el" href="classserverstats.html#statsRefused">statsRefused</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverstats.html#statsSent">statsSent</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classserverstats.html#statsUnknown">statsUnknown</a></td><td><a class="el" href="classserverstats.html">serverstats</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 676683293367fa51c24315f275881b5c4861187a..eed83c8c8ec7a4cb54682b36027c98eaa6da5908 100644 (file)
@@ -34,13 +34,15 @@ Collaboration diagram for serverstats:<p><center><img src="classserverstats__col
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserverstats.html#statsRecv">statsRecv</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserverstats.html#BoundPortCount">BoundPortCount</a></td></tr>
+
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00072">72</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00074">74</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="serverstats_28_29"></a><!-- doxytag: member="serverstats::serverstats" ref="serverstats_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -67,19 +69,47 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00072">72</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00086">86</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00089">89</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-References <a class="el" href="inspircd_8h-source.html#l00075">statsAccept</a>, <a class="el" href="inspircd_8h-source.html#l00078">statsCollisions</a>, <a class="el" href="inspircd_8h-source.html#l00082">statsConnects</a>, <a class="el" href="inspircd_8h-source.html#l00079">statsDns</a>, <a class="el" href="inspircd_8h-source.html#l00081">statsDnsBad</a>, <a class="el" href="inspircd_8h-source.html#l00080">statsDnsGood</a>, <a class="el" href="inspircd_8h-source.html#l00084">statsRecv</a>, <a class="el" href="inspircd_8h-source.html#l00076">statsRefused</a>, <a class="el" href="inspircd_8h-source.html#l00083">statsSent</a>, and <a class="el" href="inspircd_8h-source.html#l00077">statsUnknown</a>.<div class="fragment"><pre class="fragment"><a name="l00087"></a>00087         {
-<a name="l00088"></a>00088                 <a class="code" href="classserverstats.html#statsAccept">statsAccept</a> = <a class="code" href="classserverstats.html#statsRefused">statsRefused</a> = <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a> = 0;
-<a name="l00089"></a>00089                 <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a> = <a class="code" href="classserverstats.html#statsDns">statsDns</a> = <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a> = 0;
-<a name="l00090"></a>00090                 <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a> = <a class="code" href="classserverstats.html#statsConnects">statsConnects</a> = <a class="code" href="classserverstats.html#statsSent">statsSent</a> = <a class="code" href="classserverstats.html#statsRecv">statsRecv</a> = 0;
-<a name="l00091"></a>00091         }
+References <a class="el" href="inspircd_8h-source.html#l00087">BoundPortCount</a>, <a class="el" href="inspircd_8h-source.html#l00077">statsAccept</a>, <a class="el" href="inspircd_8h-source.html#l00080">statsCollisions</a>, <a class="el" href="inspircd_8h-source.html#l00084">statsConnects</a>, <a class="el" href="inspircd_8h-source.html#l00081">statsDns</a>, <a class="el" href="inspircd_8h-source.html#l00083">statsDnsBad</a>, <a class="el" href="inspircd_8h-source.html#l00082">statsDnsGood</a>, <a class="el" href="inspircd_8h-source.html#l00086">statsRecv</a>, <a class="el" href="inspircd_8h-source.html#l00078">statsRefused</a>, <a class="el" href="inspircd_8h-source.html#l00085">statsSent</a>, and <a class="el" href="inspircd_8h-source.html#l00079">statsUnknown</a>.<div class="fragment"><pre class="fragment"><a name="l00090"></a>00090         {
+<a name="l00091"></a>00091                 <a class="code" href="classserverstats.html#statsAccept">statsAccept</a> = <a class="code" href="classserverstats.html#statsRefused">statsRefused</a> = <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a> = 0;
+<a name="l00092"></a>00092                 <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a> = <a class="code" href="classserverstats.html#statsDns">statsDns</a> = <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a> = 0;
+<a name="l00093"></a>00093                 <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a> = <a class="code" href="classserverstats.html#statsConnects">statsConnects</a> = <a class="code" href="classserverstats.html#statsSent">statsSent</a> = <a class="code" href="classserverstats.html#statsRecv">statsRecv</a> = 0;
+<a name="l00094"></a>00094                 <a class="code" href="classserverstats.html#BoundPortCount">BoundPortCount</a> = 0;
+<a name="l00095"></a>00095         }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
 <hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="BoundPortCount"></a><!-- doxytag: member="serverstats::BoundPortCount" ref="BoundPortCount" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classserverstats.html#BoundPortCount">serverstats::BoundPortCount</a>          </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="inspircd_8h-source.html#l00087">87</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+<p>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="statsAccept"></a><!-- doxytag: member="serverstats::statsAccept" ref="statsAccept" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -102,9 +132,9 @@ References <a class="el" href="inspircd_8h-source.html#l00075">statsAccept</a>,
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00075">75</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00077">77</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsCollisions"></a><!-- doxytag: member="serverstats::statsCollisions" ref="statsCollisions" args="" --><p>
@@ -129,9 +159,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00078">78</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00080">80</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, and <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsConnects"></a><!-- doxytag: member="serverstats::statsConnects" ref="statsConnects" args="" --><p>
@@ -156,9 +186,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00082">82</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00084">84</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsDns"></a><!-- doxytag: member="serverstats::statsDns" ref="statsDns" args="" --><p>
@@ -183,9 +213,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00079">79</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00081">81</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsDnsBad"></a><!-- doxytag: member="serverstats::statsDnsBad" ref="statsDnsBad" args="" --><p>
@@ -210,9 +240,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00081">81</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00083">83</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsDnsGood"></a><!-- doxytag: member="serverstats::statsDnsGood" ref="statsDnsGood" args="" --><p>
@@ -237,9 +267,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00080">80</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00082">82</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsRecv"></a><!-- doxytag: member="serverstats::statsRecv" ref="statsRecv" args="" --><p>
@@ -264,9 +294,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00084">84</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00086">86</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsRefused"></a><!-- doxytag: member="serverstats::statsRefused" ref="statsRefused" args="" --><p>
@@ -291,9 +321,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00076">76</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00078">78</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsSent"></a><!-- doxytag: member="serverstats::statsSent" ref="statsSent" args="" --><p>
@@ -318,9 +348,9 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00083">83</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00085">85</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="statsUnknown"></a><!-- doxytag: member="serverstats::statsUnknown" ref="statsUnknown" args="" --><p>
@@ -345,14 +375,14 @@ Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()<
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00077">77</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00079">79</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="inspircd_8h-source.html#l00086">serverstats()</a>.    </td>
+Referenced by <a class="el" href="inspircd_8h-source.html#l00089">serverstats()</a>.    </td>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="inspircd_8h-source.html">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bebb257cfa9855d28624537432a6dfba4ce07b5f..bdc97b9ee81317b8e60ecc5d074f50cd9e3e34f2 100644 (file)
@@ -1 +1 @@
-0d72c6ae7afecc93452896afbba8a691
\ No newline at end of file
+fdefe64364c509e2b3a4a66fc7ca77f1
\ No newline at end of file
index cf38e16f5be7fa149949ce0802b4d3999b1f4f33..f4299f6e83186a0c11c0fbb065b9e6781db6d9b8 100644 (file)
@@ -14,7 +14,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f1038cef0ef94991ac741b7c05311118c4414438..09954f765c6e969f5b13ba0c8278f6ea80dbcf2e 100644 (file)
@@ -13,7 +13,7 @@
   <tr class="memlist"><td><a class="el" href="classucrec.html#ucrec_28_29">ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classucrec.html#_7Eucrec_28_29">~ucrec</a>()</td><td><a class="el" href="classucrec.html">ucrec</a></td><td><code> [inline, virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cf4852d6d66763a2fe10f1afd7fa66ad41c41425..5710fbb6f2477395d4ef1d8ddf99de8d6e695cd4 100644 (file)
@@ -133,7 +133,7 @@ If the record is not in use, this value will be NULL.
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00254">254</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, and <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="uc_5Fmodes"></a><!-- doxytag: member="ucrec::uc_modes" ref="uc_5Fmodes" args="" --><p>
@@ -162,12 +162,12 @@ Contains a bitmask of the UCMODE_OP .
 <p>
 Definition at line <a class="el" href="channels_8h-source.html#l00249">249</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, and <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:19 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9dccd1622aa94a7123b469e0ca7404932fe99fb0..45e7fee94b204c314e87821db78d3b8a3f0b7749 100644 (file)
   <tr class="memlist"><td><a class="el" href="classuserrec.html#GetInviteList_28_29">GetInviteList</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#GetWriteError_28_29">GetWriteError</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#haspassed">haspassed</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">HasPermission</a>(char *command)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">HasPermission</a>(std::string &amp;command)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#host_5B_31_36_30_5D">host</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#invites">invites</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [private]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">InviteTo</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">InviteTo</a>(irc::string &amp;channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#ip_5B_31_36_5D">ip</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a>(irc::string &amp;channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#lastping">lastping</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#lines_5Fin">lines_in</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#modes_5B_35_34_5D">modes</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
@@ -56,7 +56,7 @@
   <tr class="memlist"><td><a class="el" href="classuserrec.html#recvq">recvq</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#recvqmax">recvqmax</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classconnection.html#registered">registered</a></td><td><a class="el" href="classconnection.html">connection</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(char *channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a>(irc::string &amp;channel)</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#reset_5Fdue">reset_due</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#sendq">sendq</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#sendqmax">sendqmax</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
@@ -70,7 +70,7 @@
   <tr class="memlist"><td><a class="el" href="classuserrec.html#WriteError">WriteError</a></td><td><a class="el" href="classuserrec.html">userrec</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classclassbase.html#_7Eclassbase_28_29">~classbase</a>()</td><td><a class="el" href="classclassbase.html">classbase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classuserrec.html#_7Euserrec_28_29">~userrec</a>()</td><td><a class="el" href="classuserrec.html">userrec</a></td><td><code> [virtual]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index bd18e2d55454d2d098e912d8b1d9bd21c1de6106..4313e9ff515ce398f87c1a90ab09012d3623d76d 100644 (file)
@@ -31,18 +31,18 @@ Inheritance diagram for userrec:<p><center><img src="classuserrec__inherit__grap
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#GetFullRealHost_28_29">GetFullRealHost</a> ()</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">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.  <a href="#GetFullRealHost_28_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a> (char *channel)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a> (<a class="el" href="namespaceirc.html#string">irc::string</a> &amp;channel)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a user is invited to a channel.  <a href="#IsInvited_28char_20_2Achannel_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">InviteTo</a> (char *channel)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a user is invited to a channel.  <a href="#IsInvited_28irc_3A_3Astring_20_26channel_29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">InviteTo</a> (<a class="el" href="namespaceirc.html#string">irc::string</a> &amp;channel)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a channel to a users invite list (invites them to a channel).  <a href="#InviteTo_28char_20_2Achannel_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a> (char *channel)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a channel to a users invite list (invites them to a channel).  <a href="#InviteTo_28irc_3A_3Astring_20_26channel_29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a> (<a class="el" href="namespaceirc.html#string">irc::string</a> &amp;channel)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a channel from a users invite list.  <a href="#RemoveInvite_28char_20_2Achannel_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">HasPermission</a> (char *command)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a channel from a users invite list.  <a href="#RemoveInvite_28irc_3A_3Astring_20_26channel_29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">HasPermission</a> (<a class="el" href="namespaceirc.html#string">std::string</a> &amp;command)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true or false for if a user can execute a privilaged oper command.  <a href="#HasPermission_28char_20_2Acommand_29"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true or false for if a user can execute a privilaged oper command.  <a href="#HasPermission_28std_3A_3Astring_20_26command_29"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">ReadData</a> (void *buffer, size_t size)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calls read() to read some data for this user using their fd.  <a href="#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29"></a><br></td></tr>
@@ -153,7 +153,7 @@ Everything about a connection is stored here primarily, from the user's socket I
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00111">111</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
+Definition at line <a class="el" href="users_8h-source.html#l00115">115</a> of file <a class="el" href="users_8h-source.html">users.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" name="userrec_28_29"></a><!-- doxytag: member="userrec::userrec" ref="userrec_28_29" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -180,32 +180,32 @@ Definition at line <a class="el" href="users_8h-source.html#l00111">111</a> of f
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00036">36</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00158">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00054">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="users_8h-source.html#l00149">chans</a>, <a class="el" href="connection_8h-source.html#l00062">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00134">dhost</a>, <a class="el" href="users_8h-source.html#l00181">dns_done</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr()</a>, <a class="el" href="users_8h-source.html#l00164">flood</a>, <a class="el" href="users_8h-source.html#l00138">fullname</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00117">invites</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00084">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00206">lines_in</a>, <a class="el" href="users_8h-source.html#l00147">modes</a>, <a class="el" href="users_8h-source.html#l00124">nick</a>, <a class="el" href="connection_8h-source.html#l00096">connection::nping</a>, <a class="el" href="users_8h-source.html#l00177">oper</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="users_8h-source.html#l00197">recvq</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="users_8h-source.html#l00207">reset_due</a>, <a class="el" href="users_8h-source.html#l00202">sendq</a>, <a class="el" href="users_8h-source.html#l00153">server</a>, <a class="el" href="inspircd__io_8h-source.html#l00068">ServerConfig::ServerName</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="users_8h-source.html#l00170">timeout</a>.<div class="fragment"><pre class="fragment"><a name="l00037"></a>00037 {
-<a name="l00038"></a>00038         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
-<a name="l00039"></a>00039         strcpy(<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<span class="stringliteral">""</span>);
-<a name="l00040"></a>00040         strcpy(<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>,<span class="stringliteral">"127.0.0.1"</span>);
-<a name="l00041"></a>00041         <a class="code" href="classuserrec.html#timeout">timeout</a> = 0;
-<a name="l00042"></a>00042         strcpy(<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<span class="stringliteral">""</span>);
-<a name="l00043"></a>00043         strcpy(<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,<span class="stringliteral">""</span>);
-<a name="l00044"></a>00044         strcpy(<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,<span class="stringliteral">""</span>);
-<a name="l00045"></a>00045         strcpy(<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,<span class="stringliteral">""</span>);
-<a name="l00046"></a>00046         strcpy(<a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>,<span class="stringliteral">""</span>);
-<a name="l00047"></a>00047         <a class="code" href="classuserrec.html#server">server</a> = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
-<a name="l00048"></a>00048         strcpy(<a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>,<span class="stringliteral">""</span>);
-<a name="l00049"></a>00049         strcpy(<a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>,<span class="stringliteral">""</span>);
-<a name="l00050"></a>00050         <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00051"></a>00051         <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a> = 0;
-<a name="l00052"></a>00052         <a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="classconnection.html#lastping">lastping</a> = <a class="code" href="classconnection.html#signon">signon</a> = <a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="classconnection.html#nping">nping</a> = <a class="code" href="classconnection.html#registered">registered</a> = 0;
-<a name="l00053"></a>00053         <a class="code" href="classuserrec.html#flood">flood</a> = <a class="code" href="classconnection.html#port">port</a> = <a class="code" href="classconnection.html#bytes_5Fin">bytes_in</a> = <a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> = <a class="code" href="classconnection.html#cmds_5Fin">cmds_in</a> = <a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a> = 0;
-<a name="l00054"></a>00054         <a class="code" href="classconnection.html#haspassed">haspassed</a> = <span class="keyword">false</span>;
-<a name="l00055"></a>00055         <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a> = <span class="keyword">false</span>;
-<a name="l00056"></a>00056         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
-<a name="l00057"></a>00057         <a class="code" href="classuserrec.html#sendq">sendq</a> = <span class="stringliteral">""</span>;
-<a name="l00058"></a>00058         <a class="code" href="classuserrec.html#chans">chans</a>.clear();
-<a name="l00059"></a>00059         <a class="code" href="classuserrec.html#invites">invites</a>.clear();
-<a name="l00060"></a>00060 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00063">63</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00162">awaymsg</a>, <a class="el" href="connection_8h-source.html#l00054">connection::bytes_in</a>, <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="users_8h-source.html#l00153">chans</a>, <a class="el" href="connection_8h-source.html#l00062">connection::cmds_in</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00138">dhost</a>, <a class="el" href="users_8h-source.html#l00185">dns_done</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr()</a>, <a class="el" href="users_8h-source.html#l00168">flood</a>, <a class="el" href="users_8h-source.html#l00142">fullname</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="users_8h-source.html#l00121">invites</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="connection_8h-source.html#l00084">connection::lastping</a>, <a class="el" href="users_8h-source.html#l00210">lines_in</a>, <a class="el" href="users_8h-source.html#l00151">modes</a>, <a class="el" href="users_8h-source.html#l00128">nick</a>, <a class="el" href="connection_8h-source.html#l00096">connection::nping</a>, <a class="el" href="users_8h-source.html#l00181">oper</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="users_8h-source.html#l00201">recvq</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="users_8h-source.html#l00211">reset_due</a>, <a class="el" href="users_8h-source.html#l00206">sendq</a>, <a class="el" href="users_8h-source.html#l00157">server</a>, <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, and <a class="el" href="users_8h-source.html#l00174">timeout</a>.<div class="fragment"><pre class="fragment"><a name="l00064"></a>00064 {
+<a name="l00065"></a>00065         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+<a name="l00066"></a>00066         strcpy(<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<span class="stringliteral">""</span>);
+<a name="l00067"></a>00067         strcpy(<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>,<span class="stringliteral">"127.0.0.1"</span>);
+<a name="l00068"></a>00068         <a class="code" href="classuserrec.html#timeout">timeout</a> = 0;
+<a name="l00069"></a>00069         strcpy(<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<span class="stringliteral">""</span>);
+<a name="l00070"></a>00070         strcpy(<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,<span class="stringliteral">""</span>);
+<a name="l00071"></a>00071         strcpy(<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,<span class="stringliteral">""</span>);
+<a name="l00072"></a>00072         strcpy(<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,<span class="stringliteral">""</span>);
+<a name="l00073"></a>00073         strcpy(<a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>,<span class="stringliteral">""</span>);
+<a name="l00074"></a>00074         <a class="code" href="classuserrec.html#server">server</a> = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
+<a name="l00075"></a>00075         strcpy(<a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>,<span class="stringliteral">""</span>);
+<a name="l00076"></a>00076         strcpy(<a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>,<span class="stringliteral">""</span>);
+<a name="l00077"></a>00077         <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00078"></a>00078         <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a> = 0;
+<a name="l00079"></a>00079         <a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="classconnection.html#lastping">lastping</a> = <a class="code" href="classconnection.html#signon">signon</a> = <a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="classconnection.html#nping">nping</a> = <a class="code" href="classconnection.html#registered">registered</a> = 0;
+<a name="l00080"></a>00080         <a class="code" href="classuserrec.html#flood">flood</a> = <a class="code" href="classconnection.html#port">port</a> = <a class="code" href="classconnection.html#bytes_5Fin">bytes_in</a> = <a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> = <a class="code" href="classconnection.html#cmds_5Fin">cmds_in</a> = <a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a> = 0;
+<a name="l00081"></a>00081         <a class="code" href="classconnection.html#haspassed">haspassed</a> = <span class="keyword">false</span>;
+<a name="l00082"></a>00082         <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a> = <span class="keyword">false</span>;
+<a name="l00083"></a>00083         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
+<a name="l00084"></a>00084         <a class="code" href="classuserrec.html#sendq">sendq</a> = <span class="stringliteral">""</span>;
+<a name="l00085"></a>00085         <a class="code" href="classuserrec.html#chans">chans</a>.clear();
+<a name="l00086"></a>00086         <a class="code" href="classuserrec.html#invites">invites</a>.clear();
+<a name="l00087"></a>00087 }
 </pre></div>
 <p>
     </td>
@@ -237,8 +237,8 @@ References <a class="el" href="users_8h-source.html#l00158">awaymsg</a>, <a clas
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00062">62</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00063"></a>00063 {
-<a name="l00064"></a>00064 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00089">89</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00090"></a>00090 {
+<a name="l00091"></a>00091 }
 </pre></div>
 <p>
     </td>
@@ -274,32 +274,32 @@ This method adds data to the buffer of the user.
 <p>
 The buffer can grow to any size within limits of the available memory, managed by the size of a <a class="el" href="namespaceirc.html#string">std::string</a>, however if any individual line in the buffer grows over 600 bytes in length (which is 88 chars over the RFC-specified limit per line) then the method will return false and the text will not be inserted.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00198">198</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00197">recvq</a>, <a class="el" href="users_8h-source.html#l00220">recvqmax</a>, <a class="el" href="users_8cpp-source.html#l00292">SetWriteError()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00199"></a>00199 {
-<a name="l00200"></a>00200         <a class="code" href="namespaceirc.html#string">std::string</a> b = <span class="stringliteral">""</span>;
-<a name="l00201"></a>00201         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; a.length(); i++)
-<a name="l00202"></a>00202                 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) &amp;&amp; (a[i] != <span class="charliteral">'\0'</span>) &amp;&amp; (a[i] != 7))
-<a name="l00203"></a>00203                         b = b + a[i];
-<a name="l00204"></a>00204         std::stringstream stream(<a class="code" href="classuserrec.html#recvq">recvq</a>);
-<a name="l00205"></a>00205         stream &lt;&lt; b;
-<a name="l00206"></a>00206         <a class="code" href="classuserrec.html#recvq">recvq</a> = stream.str();
-<a name="l00207"></a>00207         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0;
-<a name="l00208"></a>00208         <span class="comment">// count the size of the first line in the buffer.</span>
-<a name="l00209"></a>00209         <span class="keywordflow">while</span> (i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length())
-<a name="l00210"></a>00210         {
-<a name="l00211"></a>00211                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i++] == <span class="charliteral">'\n'</span>)
-<a name="l00212"></a>00212                         <span class="keywordflow">break</span>;
-<a name="l00213"></a>00213         }
-<a name="l00214"></a>00214         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>)
-<a name="l00215"></a>00215         {
-<a name="l00216"></a>00216                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"RecvQ exceeded"</span>);
-<a name="l00217"></a>00217                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s RecvQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#recvq">recvq</a>.length(),this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>);
-<a name="l00218"></a>00218         }
-<a name="l00219"></a>00219         <span class="comment">// return false if we've had more than 600 characters WITHOUT</span>
-<a name="l00220"></a>00220         <span class="comment">// a carriage return (this is BAD, drop the socket)</span>
-<a name="l00221"></a>00221         <span class="keywordflow">return</span> (i &lt; 600);
-<a name="l00222"></a>00222 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00219">219</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00201">recvq</a>, <a class="el" href="users_8h-source.html#l00224">recvqmax</a>, <a class="el" href="users_8cpp-source.html#l00317">SetWriteError()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00220"></a>00220 {
+<a name="l00221"></a>00221         <a class="code" href="namespaceirc.html#string">std::string</a> b = <span class="stringliteral">""</span>;
+<a name="l00222"></a>00222         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; a.length(); i++)
+<a name="l00223"></a>00223                 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) &amp;&amp; (a[i] != <span class="charliteral">'\0'</span>) &amp;&amp; (a[i] != 7))
+<a name="l00224"></a>00224                         b = b + a[i];
+<a name="l00225"></a>00225         std::stringstream stream(<a class="code" href="classuserrec.html#recvq">recvq</a>);
+<a name="l00226"></a>00226         stream &lt;&lt; b;
+<a name="l00227"></a>00227         <a class="code" href="classuserrec.html#recvq">recvq</a> = stream.str();
+<a name="l00228"></a>00228         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0;
+<a name="l00229"></a>00229         <span class="comment">// count the size of the first line in the buffer.</span>
+<a name="l00230"></a>00230         <span class="keywordflow">while</span> (i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length())
+<a name="l00231"></a>00231         {
+<a name="l00232"></a>00232                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i++] == <span class="charliteral">'\n'</span>)
+<a name="l00233"></a>00233                         <span class="keywordflow">break</span>;
+<a name="l00234"></a>00234         }
+<a name="l00235"></a>00235         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>)
+<a name="l00236"></a>00236         {
+<a name="l00237"></a>00237                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"RecvQ exceeded"</span>);
+<a name="l00238"></a>00238                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s RecvQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#recvq">recvq</a>.length(),this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>);
+<a name="l00239"></a>00239         }
+<a name="l00240"></a>00240         <span class="comment">// return false if we've had more than 600 characters WITHOUT</span>
+<a name="l00241"></a>00241         <span class="comment">// a carriage return (this is BAD, drop the socket)</span>
+<a name="l00242"></a>00242         <span class="keywordflow">return</span> (i &lt; 600);
+<a name="l00243"></a>00243 }
 </pre></div>
 <p>
     </td>
@@ -334,21 +334,25 @@ Adds to the user's write buffer.
 <p>
 You may add any amount of text up to this users sendq value, if you exceed the sendq value, <a class="el" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError()</a> will be called to set the users error string to "SendQ exceeded", and further buffer adds will be dropped.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00254">254</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00202">sendq</a>, <a class="el" href="users_8h-source.html#l00216">sendqmax</a>, <a class="el" href="users_8cpp-source.html#l00292">SetWriteError()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00255"></a>00255 {
-<a name="l00256"></a>00256         <span class="keywordflow">if</span> (this-&gt;GetWriteError() != <span class="stringliteral">""</span>)
-<a name="l00257"></a>00257                 <span class="keywordflow">return</span>;
-<a name="l00258"></a>00258         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>)
-<a name="l00259"></a>00259         {
-<a name="l00260"></a>00260                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s SendQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length(),this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>);
-<a name="l00261"></a>00261                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"SendQ exceeded"</span>);
-<a name="l00262"></a>00262                 <span class="keywordflow">return</span>;
-<a name="l00263"></a>00263         }
-<a name="l00264"></a>00264         std::stringstream stream;
-<a name="l00265"></a>00265         stream &lt;&lt; <a class="code" href="classuserrec.html#sendq">sendq</a> &lt;&lt; data;
-<a name="l00266"></a>00266         <a class="code" href="classuserrec.html#sendq">sendq</a> = stream.str();
-<a name="l00267"></a>00267 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00275">275</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00206">sendq</a>, <a class="el" href="users_8h-source.html#l00220">sendqmax</a>, <a class="el" href="users_8cpp-source.html#l00317">SetWriteError()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.<div class="fragment"><pre class="fragment"><a name="l00276"></a>00276 {
+<a name="l00277"></a>00277         <span class="keywordflow">if</span> (this-&gt;GetWriteError() != <span class="stringliteral">""</span>)
+<a name="l00278"></a>00278                 <span class="keywordflow">return</span>;
+<a name="l00279"></a>00279         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>)
+<a name="l00280"></a>00280         {
+<a name="l00281"></a>00281                 <span class="comment">/* Fix by brain - Set the error text BEFORE calling writeopers, because</span>
+<a name="l00282"></a>00282 <span class="comment">                 * if we dont it'll recursively  call here over and over again trying</span>
+<a name="l00283"></a>00283 <span class="comment">                 * to repeatedly add the text to the sendq!</span>
+<a name="l00284"></a>00284 <span class="comment">                 */</span>
+<a name="l00285"></a>00285                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"SendQ exceeded"</span>);
+<a name="l00286"></a>00286                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s SendQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length(),this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>);
+<a name="l00287"></a>00287                 <span class="keywordflow">return</span>;
+<a name="l00288"></a>00288         }
+<a name="l00289"></a>00289         std::stringstream stream;
+<a name="l00290"></a>00290         stream &lt;&lt; <a class="code" href="classuserrec.html#sendq">sendq</a> &lt;&lt; data;
+<a name="l00291"></a>00291         <a class="code" href="classuserrec.html#sendq">sendq</a> = stream.str();
+<a name="l00292"></a>00292 }
 </pre></div>
 <p>
     </td>
@@ -382,14 +386,14 @@ This method returns true if the buffer contains at least one carriage return cha
 <p>
 one complete line may be read)
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00224">224</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00245">245</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00197">recvq</a>.<div class="fragment"><pre class="fragment"><a name="l00225"></a>00225 {
-<a name="l00226"></a>00226         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length(); i++)
-<a name="l00227"></a>00227                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i] == <span class="charliteral">'\n'</span>)
-<a name="l00228"></a>00228                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00229"></a>00229         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00230"></a>00230 }
+References <a class="el" href="users_8h-source.html#l00201">recvq</a>.<div class="fragment"><pre class="fragment"><a name="l00246"></a>00246 {
+<a name="l00247"></a>00247         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length(); i++)
+<a name="l00248"></a>00248                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i] == <span class="charliteral">'\n'</span>)
+<a name="l00249"></a>00249                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00250"></a>00250         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00251"></a>00251 }
 </pre></div>
 <p>
     </td>
@@ -423,13 +427,13 @@ This function clears the entire buffer by setting it to an empty string.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00232">232</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00253">253</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00197">recvq</a>.
+References <a class="el" href="users_8h-source.html#l00201">recvq</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00233"></a>00233 {
-<a name="l00234"></a>00234         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
-<a name="l00235"></a>00235 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.<div class="fragment"><pre class="fragment"><a name="l00254"></a>00254 {
+<a name="l00255"></a>00255         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
+<a name="l00256"></a>00256 }
 </pre></div>
 <p>
     </td>
@@ -463,10 +467,12 @@ Shuts down and closes the user's socket.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00066">66</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00067"></a>00067 {
-<a name="l00068"></a>00068         shutdown(this-&gt;fd,2);
-<a name="l00069"></a>00069         close(this-&gt;fd);
-<a name="l00070"></a>00070 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00093">93</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, and <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>.<div class="fragment"><pre class="fragment"><a name="l00094"></a>00094 {
+<a name="l00095"></a>00095         shutdown(this-&gt;fd,2);
+<a name="l00096"></a>00096         close(this-&gt;fd);
+<a name="l00097"></a>00097 }
 </pre></div>
 <p>
     </td>
@@ -500,28 +506,30 @@ Flushes as much of the user's buffer to the file descriptor as possible.
 <p>
 This function may not always flush the entire buffer, rather instead as much of it as it possibly can. If the send() call fails to send the entire buffer, the buffer position is advanced forwards and the rest of the data sent at the next call to this method.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00270">270</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00202">sendq</a>, and <a class="el" href="users_8cpp-source.html#l00292">SetWriteError()</a>.<div class="fragment"><pre class="fragment"><a name="l00271"></a>00271 {
-<a name="l00272"></a>00272         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length())
-<a name="l00273"></a>00273         {
-<a name="l00274"></a>00274                 <span class="keywordtype">char</span>* tb = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a>.c_str();
-<a name="l00275"></a>00275                 <span class="keywordtype">int</span> n_sent = write(this-&gt;fd,tb,this-&gt;sendq.length());
-<a name="l00276"></a>00276                 <span class="keywordflow">if</span> (n_sent == -1)
-<a name="l00277"></a>00277                 {
-<a name="l00278"></a>00278                         this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(strerror(errno));
-<a name="l00279"></a>00279                 }
-<a name="l00280"></a>00280                 <span class="keywordflow">else</span>
-<a name="l00281"></a>00281                 {
-<a name="l00282"></a>00282                         <span class="comment">// advance the queue</span>
-<a name="l00283"></a>00283                         tb += n_sent;
-<a name="l00284"></a>00284                         this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a> = tb;
-<a name="l00285"></a>00285                         <span class="comment">// update the user's stats counters</span>
-<a name="l00286"></a>00286                         this-&gt;<a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> += n_sent;
-<a name="l00287"></a>00287                         this-&gt;<a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a>++;
-<a name="l00288"></a>00288                 }
-<a name="l00289"></a>00289         }
-<a name="l00290"></a>00290 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00295">295</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="connection_8h-source.html#l00058">connection::bytes_out</a>, <a class="el" href="connection_8h-source.html#l00066">connection::cmds_out</a>, <a class="el" href="users_8h-source.html#l00206">sendq</a>, and <a class="el" href="users_8cpp-source.html#l00317">SetWriteError()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, and <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>.<div class="fragment"><pre class="fragment"><a name="l00296"></a>00296 {
+<a name="l00297"></a>00297         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length())
+<a name="l00298"></a>00298         {
+<a name="l00299"></a>00299                 <span class="keywordtype">char</span>* tb = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a>.c_str();
+<a name="l00300"></a>00300                 <span class="keywordtype">int</span> n_sent = write(this-&gt;fd,tb,this-&gt;sendq.length());
+<a name="l00301"></a>00301                 <span class="keywordflow">if</span> (n_sent == -1)
+<a name="l00302"></a>00302                 {
+<a name="l00303"></a>00303                         this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(strerror(errno));
+<a name="l00304"></a>00304                 }
+<a name="l00305"></a>00305                 <span class="keywordflow">else</span>
+<a name="l00306"></a>00306                 {
+<a name="l00307"></a>00307                         <span class="comment">// advance the queue</span>
+<a name="l00308"></a>00308                         tb += n_sent;
+<a name="l00309"></a>00309                         this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a> = tb;
+<a name="l00310"></a>00310                         <span class="comment">// update the user's stats counters</span>
+<a name="l00311"></a>00311                         this-&gt;<a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> += n_sent;
+<a name="l00312"></a>00312                         this-&gt;<a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a>++;
+<a name="l00313"></a>00313                 }
+<a name="l00314"></a>00314         }
+<a name="l00315"></a>00315 }
 </pre></div>
 <p>
     </td>
@@ -555,23 +563,23 @@ This method returns the first available string at the tail end of the buffer and
 <p>
 This means it is a one way operation in a similar way to strtok(), and multiple calls return multiple lines if they are available. The results of this function if there are no lines to be read are unknown, always use <a class="el" href="classuserrec.html#BufferIsReady_28_29">BufferIsReady()</a> to check if it is ok to read the buffer before calling <a class="el" href="classuserrec.html#GetBuffer_28_29">GetBuffer()</a>.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00237">237</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="users_8h-source.html#l00197">recvq</a>.<div class="fragment"><pre class="fragment"><a name="l00238"></a>00238 {
-<a name="l00239"></a>00239         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a> == <span class="stringliteral">""</span>)
-<a name="l00240"></a>00240                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00241"></a>00241         <span class="keywordtype">char</span>* line = (<span class="keywordtype">char</span>*)<a class="code" href="classuserrec.html#recvq">recvq</a>.c_str();
-<a name="l00242"></a>00242         <a class="code" href="namespaceirc.html#string">std::string</a> ret = <span class="stringliteral">""</span>;
-<a name="l00243"></a>00243         <span class="keywordflow">while</span> ((*line != <span class="charliteral">'\n'</span>) &amp;&amp; (strlen(line)))
-<a name="l00244"></a>00244         {
-<a name="l00245"></a>00245                 ret = ret + *line;
-<a name="l00246"></a>00246                 line++;
-<a name="l00247"></a>00247         }
-<a name="l00248"></a>00248         <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
-<a name="l00249"></a>00249                 line++;
-<a name="l00250"></a>00250         <a class="code" href="classuserrec.html#recvq">recvq</a> = line;
-<a name="l00251"></a>00251         <span class="keywordflow">return</span> ret;
-<a name="l00252"></a>00252 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00258">258</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00201">recvq</a>.<div class="fragment"><pre class="fragment"><a name="l00259"></a>00259 {
+<a name="l00260"></a>00260         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a> == <span class="stringliteral">""</span>)
+<a name="l00261"></a>00261                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00262"></a>00262         <span class="keywordtype">char</span>* line = (<span class="keywordtype">char</span>*)<a class="code" href="classuserrec.html#recvq">recvq</a>.c_str();
+<a name="l00263"></a>00263         <a class="code" href="namespaceirc.html#string">std::string</a> ret = <span class="stringliteral">""</span>;
+<a name="l00264"></a>00264         <span class="keywordflow">while</span> ((*line != <span class="charliteral">'\n'</span>) &amp;&amp; (strlen(line)))
+<a name="l00265"></a>00265         {
+<a name="l00266"></a>00266                 ret = ret + *line;
+<a name="l00267"></a>00267                 line++;
+<a name="l00268"></a>00268         }
+<a name="l00269"></a>00269         <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
+<a name="l00270"></a>00270                 line++;
+<a name="l00271"></a>00271         <a class="code" href="classuserrec.html#recvq">recvq</a> = line;
+<a name="l00272"></a>00272         <span class="keywordflow">return</span> ret;
+<a name="l00273"></a>00273 }
 </pre></div>
 <p>
     </td>
@@ -605,15 +613,15 @@ Returns the full displayed host of the user This member function returns the hos
 <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>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00099">99</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00134">dhost</a>, <a class="el" href="users_8h-source.html#l00129">ident</a>, and <a class="el" href="users_8h-source.html#l00124">nick</a>.
+References <a class="el" href="users_8h-source.html#l00138">dhost</a>, <a class="el" href="users_8h-source.html#l00133">ident</a>, and <a class="el" href="users_8h-source.html#l00128">nick</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00073"></a>00073 {
-<a name="l00074"></a>00074         <span class="keyword">static</span> <span class="keywordtype">char</span> result[MAXBUF];
-<a name="l00075"></a>00075         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>);
-<a name="l00076"></a>00076         <span class="keywordflow">return</span> result;
-<a name="l00077"></a>00077 }
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00100"></a>00100 {
+<a name="l00101"></a>00101         <span class="keyword">static</span> <span class="keywordtype">char</span> result[MAXBUF];
+<a name="l00102"></a>00102         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>);
+<a name="l00103"></a>00103         <span class="keywordflow">return</span> result;
+<a name="l00104"></a>00104 }
 </pre></div>
 <p>
     </td>
@@ -647,13 +655,13 @@ Returns the full real host of the user This member function returns the hostname
 <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#l00089">89</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00116">116</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00129">ident</a>, and <a class="el" href="users_8h-source.html#l00124">nick</a>.<div class="fragment"><pre class="fragment"><a name="l00090"></a>00090 {
-<a name="l00091"></a>00091         <span class="keyword">static</span> <span class="keywordtype">char</span> fresult[MAXBUF];
-<a name="l00092"></a>00092         snprintf(fresult,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
-<a name="l00093"></a>00093         <span class="keywordflow">return</span> fresult;
-<a name="l00094"></a>00094 }
+References <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">ident</a>, and <a class="el" href="users_8h-source.html#l00128">nick</a>.<div class="fragment"><pre class="fragment"><a name="l00117"></a>00117 {
+<a name="l00118"></a>00118         <span class="keyword">static</span> <span class="keywordtype">char</span> fresult[MAXBUF];
+<a name="l00119"></a>00119         snprintf(fresult,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00120"></a>00120         <span class="keywordflow">return</span> fresult;
+<a name="l00121"></a>00121 }
 </pre></div>
 <p>
     </td>
@@ -687,11 +695,11 @@ Returns the list of channels this user has been invited to but has not yet joine
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00110">110</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00136">136</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00117">invites</a>.<div class="fragment"><pre class="fragment"><a name="l00111"></a>00111 {
-<a name="l00112"></a>00112         <span class="keywordflow">return</span> &amp;<a class="code" href="classuserrec.html#invites">invites</a>;
-<a name="l00113"></a>00113 }
+References <a class="el" href="users_8h-source.html#l00121">invites</a>.<div class="fragment"><pre class="fragment"><a name="l00137"></a>00137 {
+<a name="l00138"></a>00138         <span class="keywordflow">return</span> &amp;<a class="code" href="classuserrec.html#invites">invites</a>;
+<a name="l00139"></a>00139 }
 </pre></div>
 <p>
     </td>
@@ -725,17 +733,17 @@ Returns the write error which last occured on this connection or an empty string
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00300">300</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00325">325</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00212">WriteError</a>.<div class="fragment"><pre class="fragment"><a name="l00301"></a>00301 {
-<a name="l00302"></a>00302         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a>;
-<a name="l00303"></a>00303 }
+References <a class="el" href="users_8h-source.html#l00216">WriteError</a>.<div class="fragment"><pre class="fragment"><a name="l00326"></a>00326 {
+<a name="l00327"></a>00327         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a>;
+<a name="l00328"></a>00328 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
-<a class="anchor" name="HasPermission_28char_20_2Acommand_29"></a><!-- doxytag: member="userrec::HasPermission" ref="HasPermission_28char_20_2Acommand_29" args="(char *command)" --><p>
+<a class="anchor" name="HasPermission_28std_3A_3Astring_20_26command_29"></a><!-- doxytag: member="userrec::HasPermission" ref="HasPermission_28std_3A_3Astring_20_26command_29" args="(std::string &amp;command)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -743,7 +751,7 @@ References <a class="el" href="users_8h-source.html#l00212">WriteError</a>.<div
         <tr>
           <td class="md" nowrap valign="top">bool userrec::HasPermission           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> &amp;&nbsp;</td>
           <td class="mdname1" valign="top" nowrap> <em>command</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
@@ -764,65 +772,65 @@ Returns true or false for if a user can execute a privilaged oper command.
 <p>
 This is done by looking up their oper type from <a class="el" href="classuserrec.html#oper_5BNICKMAX_5D">userrec::oper</a>, then referencing this to their oper classes and checking the commands they can execute.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00144">144</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00238">ServerConfig::config_f</a>, <a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ServerConfig::ConfValue()</a>, and <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
-<a name="l00146"></a>00146         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-<a name="l00147"></a>00147         <span class="keywordtype">char</span>* mycmd;
-<a name="l00148"></a>00148         <span class="keywordtype">char</span>* savept;
-<a name="l00149"></a>00149         <span class="keywordtype">char</span>* savept2;
-<a name="l00150"></a>00150         
-<a name="l00151"></a>00151         <span class="comment">// users on u-lined servers can completely bypass</span>
-<a name="l00152"></a>00152         <span class="comment">// all permissions based checks.</span>
-<a name="l00153"></a>00153         <span class="comment">//</span>
-<a name="l00154"></a>00154         <span class="comment">// of course, if this is sent to a remote server and this</span>
-<a name="l00155"></a>00155         <span class="comment">// server is not ulined there, then that other server</span>
-<a name="l00156"></a>00156         <span class="comment">// silently drops the command.</span>
-<a name="l00157"></a>00157         <span class="keywordflow">if</span> (<a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(this-&gt;server))
-<a name="l00158"></a>00158                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00159"></a>00159         
-<a name="l00160"></a>00160         <span class="comment">// are they even an oper at all?</span>
-<a name="l00161"></a>00161         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
-<a name="l00162"></a>00162         {
-<a name="l00163"></a>00163                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); j++)
-<a name="l00164"></a>00164                 {
-<a name="l00165"></a>00165                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00166"></a>00166                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
-<a name="l00167"></a>00167                         {
-<a name="l00168"></a>00168                                 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00169"></a>00169                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-<a name="l00170"></a>00170                                 <span class="keywordflow">while</span> (myclass)
-<a name="l00171"></a>00171                                 {
-<a name="l00172"></a>00172                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); k++)
-<a name="l00173"></a>00173                                         {
-<a name="l00174"></a>00174                                                 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00175"></a>00175                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-<a name="l00176"></a>00176                                                 {
-<a name="l00177"></a>00177                                                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00178"></a>00178                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-<a name="l00179"></a>00179                                                         <span class="keywordflow">while</span> (mycmd)
-<a name="l00180"></a>00180                                                         {
-<a name="l00181"></a>00181                                                                 <span class="keywordflow">if</span> ((!strcasecmp(mycmd,command)) || (*mycmd == <span class="charliteral">'*'</span>))
-<a name="l00182"></a>00182                                                                 {
-<a name="l00183"></a>00183                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00184"></a>00184                                                                 }
-<a name="l00185"></a>00185                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-<a name="l00186"></a>00186                                                         }
-<a name="l00187"></a>00187                                                 }
-<a name="l00188"></a>00188                                         }
-<a name="l00189"></a>00189                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-<a name="l00190"></a>00190                                 }
-<a name="l00191"></a>00191                         }
-<a name="l00192"></a>00192                 }
-<a name="l00193"></a>00193         }
-<a name="l00194"></a>00194         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00195"></a>00195 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00165">165</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00239">ServerConfig::config_f</a>, <a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ServerConfig::ConfValue()</a>, and <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline()</a>.<div class="fragment"><pre class="fragment"><a name="l00166"></a>00166 {
+<a name="l00167"></a>00167         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
+<a name="l00168"></a>00168         <span class="keywordtype">char</span>* mycmd;
+<a name="l00169"></a>00169         <span class="keywordtype">char</span>* savept;
+<a name="l00170"></a>00170         <span class="keywordtype">char</span>* savept2;
+<a name="l00171"></a>00171         
+<a name="l00172"></a>00172         <span class="comment">// users on u-lined servers can completely bypass</span>
+<a name="l00173"></a>00173         <span class="comment">// all permissions based checks.</span>
+<a name="l00174"></a>00174         <span class="comment">//</span>
+<a name="l00175"></a>00175         <span class="comment">// of course, if this is sent to a remote server and this</span>
+<a name="l00176"></a>00176         <span class="comment">// server is not ulined there, then that other server</span>
+<a name="l00177"></a>00177         <span class="comment">// silently drops the command.</span>
+<a name="l00178"></a>00178         <span class="keywordflow">if</span> (<a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(this-&gt;server))
+<a name="l00179"></a>00179                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00180"></a>00180         
+<a name="l00181"></a>00181         <span class="comment">// are they even an oper at all?</span>
+<a name="l00182"></a>00182         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
+<a name="l00183"></a>00183         {
+<a name="l00184"></a>00184                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); j++)
+<a name="l00185"></a>00185                 {
+<a name="l00186"></a>00186                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00187"></a>00187                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
+<a name="l00188"></a>00188                         {
+<a name="l00189"></a>00189                                 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00190"></a>00190                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
+<a name="l00191"></a>00191                                 <span class="keywordflow">while</span> (myclass)
+<a name="l00192"></a>00192                                 {
+<a name="l00193"></a>00193                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); k++)
+<a name="l00194"></a>00194                                         {
+<a name="l00195"></a>00195                                                 <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00196"></a>00196                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+<a name="l00197"></a>00197                                                 {
+<a name="l00198"></a>00198                                                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00199"></a>00199                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+<a name="l00200"></a>00200                                                         <span class="keywordflow">while</span> (mycmd)
+<a name="l00201"></a>00201                                                         {
+<a name="l00202"></a>00202                                                                 <span class="keywordflow">if</span> ((!strcasecmp(mycmd,command.c_str())) || (*mycmd == <span class="charliteral">'*'</span>))
+<a name="l00203"></a>00203                                                                 {
+<a name="l00204"></a>00204                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00205"></a>00205                                                                 }
+<a name="l00206"></a>00206                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+<a name="l00207"></a>00207                                                         }
+<a name="l00208"></a>00208                                                 }
+<a name="l00209"></a>00209                                         }
+<a name="l00210"></a>00210                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+<a name="l00211"></a>00211                                 }
+<a name="l00212"></a>00212                         }
+<a name="l00213"></a>00213                 }
+<a name="l00214"></a>00214         }
+<a name="l00215"></a>00215         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00216"></a>00216 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
-<a class="anchor" name="InviteTo_28char_20_2Achannel_29"></a><!-- doxytag: member="userrec::InviteTo" ref="InviteTo_28char_20_2Achannel_29" args="(char *channel)" --><p>
+<a class="anchor" name="InviteTo_28irc_3A_3Astring_20_26channel_29"></a><!-- doxytag: member="userrec::InviteTo" ref="InviteTo_28irc_3A_3Astring_20_26channel_29" args="(irc::string &amp;channel)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -830,7 +838,7 @@ References <a class="el" href="inspircd__io_8h-source.html#l00238">ServerConfig:
         <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="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">irc::string</a> &amp;&nbsp;</td>
           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap><code> [virtual]</code></td>
@@ -851,19 +859,19 @@ 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#l00115">115</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00141">141</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00042">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00117">invites</a>.<div class="fragment"><pre class="fragment"><a name="l00116"></a>00116 {
-<a name="l00117"></a>00117         <a class="code" href="classInvited.html">Invited</a> i;
-<a name="l00118"></a>00118         strlcpy(i.<a class="code" href="classInvited.html#channel_5BCHANMAX_5D">channel</a>,channel,CHANMAX);
-<a name="l00119"></a>00119         <a class="code" href="classuserrec.html#invites">invites</a>.push_back(i);
-<a name="l00120"></a>00120 }
+References <a class="el" href="users_8h-source.html#l00046">Invited::channel</a>, and <a class="el" href="users_8h-source.html#l00121">invites</a>.<div class="fragment"><pre class="fragment"><a name="l00142"></a>00142 {
+<a name="l00143"></a>00143         <a class="code" href="classInvited.html">Invited</a> i;
+<a name="l00144"></a>00144         i.<a class="code" href="classInvited.html#channel">channel</a> = channel;
+<a name="l00145"></a>00145         <a class="code" href="classuserrec.html#invites">invites</a>.push_back(i);
+<a name="l00146"></a>00146 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
-<a class="anchor" name="IsInvited_28char_20_2Achannel_29"></a><!-- doxytag: member="userrec::IsInvited" ref="IsInvited_28char_20_2Achannel_29" args="(char *channel)" --><p>
+<a class="anchor" name="IsInvited_28irc_3A_3Astring_20_26channel_29"></a><!-- doxytag: member="userrec::IsInvited" ref="IsInvited_28irc_3A_3Astring_20_26channel_29" args="(irc::string &amp;channel)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -871,7 +879,7 @@ References <a class="el" href="users_8h-source.html#l00042">Invited::channel</a>
         <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="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">irc::string</a> &amp;&nbsp;</td>
           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap><code> [virtual]</code></td>
@@ -892,22 +900,21 @@ Returns true if a user is invited to a channel.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00096">96</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00123">123</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="users_8h-source.html#l00117">invites</a>.
+References <a class="el" href="users_8h-source.html#l00121">invites</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00097"></a>00097 {
-<a name="l00098"></a>00098         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
-<a name="l00099"></a>00099         {
-<a name="l00100"></a>00100                 <span class="keywordflow">if</span> (i-&gt;channel) {
-<a name="l00101"></a>00101                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
-<a name="l00102"></a>00102                         {
-<a name="l00103"></a>00103                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00104"></a>00104                         }
-<a name="l00105"></a>00105                 }
-<a name="l00106"></a>00106         }
-<a name="l00107"></a>00107         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00108"></a>00108 }
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00124"></a>00124 {
+<a name="l00125"></a>00125         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
+<a name="l00126"></a>00126         {
+<a name="l00127"></a>00127                 <a class="code" href="namespaceirc.html#string">irc::string</a> compare = i-&gt;channel;
+<a name="l00128"></a>00128                 <span class="keywordflow">if</span> (compare == channel)
+<a name="l00129"></a>00129                 {
+<a name="l00130"></a>00130                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00131"></a>00131                 }
+<a name="l00132"></a>00132         }
+<a name="l00133"></a>00133         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00134"></a>00134 }
 </pre></div>
 <p>
     </td>
@@ -951,19 +958,19 @@ Calls read() to read some data for this user using their fd.
 <p>
 
 <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>.<div class="fragment"><pre class="fragment"><a name="l00080"></a>00080 {
-<a name="l00081"></a>00081         <span class="keywordflow">if</span> (this-&gt;fd &gt; -1)
-<a name="l00082"></a>00082         {
-<a name="l00083"></a>00083                 <span class="keywordflow">return</span> read(this-&gt;fd, buffer, size);
-<a name="l00084"></a>00084         }
-<a name="l00085"></a>00085         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00086"></a>00086 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00106">106</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00107"></a>00107 {
+<a name="l00108"></a>00108         <span class="keywordflow">if</span> (this-&gt;fd &gt; -1)
+<a name="l00109"></a>00109         {
+<a name="l00110"></a>00110                 <span class="keywordflow">return</span> read(this-&gt;fd, buffer, size);
+<a name="l00111"></a>00111         }
+<a name="l00112"></a>00112         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l00113"></a>00113 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
-<a class="anchor" name="RemoveInvite_28char_20_2Achannel_29"></a><!-- doxytag: member="userrec::RemoveInvite" ref="RemoveInvite_28char_20_2Achannel_29" args="(char *channel)" --><p>
+<a class="anchor" name="RemoveInvite_28irc_3A_3Astring_20_26channel_29"></a><!-- doxytag: member="userrec::RemoveInvite" ref="RemoveInvite_28irc_3A_3Astring_20_26channel_29" args="(irc::string &amp;channel)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -971,7 +978,7 @@ Definition at line <a class="el" href="users_8cpp-source.html#l00079">79</a> of
         <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="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">irc::string</a> &amp;&nbsp;</td>
           <td class="mdname1" valign="top" nowrap> <em>channel</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap><code> [virtual]</code></td>
@@ -992,30 +999,25 @@ 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#l00122">122</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
-<p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="users_8h-source.html#l00117">invites</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00123"></a>00123 {
-<a name="l00124"></a>00124         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>);
-<a name="l00125"></a>00125         <span class="keywordflow">if</span> (channel)
-<a name="l00126"></a>00126         {
-<a name="l00127"></a>00127                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#invites">invites</a>.size())
-<a name="l00128"></a>00128                 {
-<a name="l00129"></a>00129                         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
-<a name="l00130"></a>00130                         {
-<a name="l00131"></a>00131                                 <span class="keywordflow">if</span> (i-&gt;channel)
-<a name="l00132"></a>00132                                 {
-<a name="l00133"></a>00133                                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
-<a name="l00134"></a>00134                                         {
-<a name="l00135"></a>00135                                                 <a class="code" href="classuserrec.html#invites">invites</a>.erase(i);
-<a name="l00136"></a>00136                                                 <span class="keywordflow">return</span>;
-<a name="l00137"></a>00137                                         }
-<a name="l00138"></a>00138                                 }
-<a name="l00139"></a>00139                         }
-<a name="l00140"></a>00140                 }
-<a name="l00141"></a>00141         }
-<a name="l00142"></a>00142 }
+Definition at line <a class="el" href="users_8cpp-source.html#l00148">148</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="users_8h-source.html#l00121">invites</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00149"></a>00149 {
+<a name="l00150"></a>00150         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>);
+<a name="l00151"></a>00151         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#invites">invites</a>.size())
+<a name="l00152"></a>00152         {
+<a name="l00153"></a>00153                 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
+<a name="l00154"></a>00154                 {
+<a name="l00155"></a>00155                         <a class="code" href="namespaceirc.html#string">irc::string</a> compare = i-&gt;channel;
+<a name="l00156"></a>00156                         <span class="keywordflow">if</span> (compare == channel)
+<a name="l00157"></a>00157                         {
+<a name="l00158"></a>00158                                 <a class="code" href="classuserrec.html#invites">invites</a>.erase(i);
+<a name="l00159"></a>00159                                 <span class="keywordflow">return</span>;
+<a name="l00160"></a>00160                         }
+<a name="l00161"></a>00161                 }
+<a name="l00162"></a>00162         }
+<a name="l00163"></a>00163 }
 </pre></div>
 <p>
     </td>
@@ -1050,16 +1052,16 @@ Sets the write error for a connection.
 <p>
 This is done because the actual disconnect of a client may occur at an inopportune time such as half way through /LIST output. The WriteErrors of clients are checked at a more ideal time (in the mainloop) and errored clients purged.
 <p>
-Definition at line <a class="el" href="users_8cpp-source.html#l00292">292</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+Definition at line <a class="el" href="users_8cpp-source.html#l00317">317</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
 <p>
-References <a class="el" href="inspircd__io_8h-source.html#l00028">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="users_8h-source.html#l00212">WriteError</a>.
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="users_8h-source.html#l00216">WriteError</a>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00198">AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00254">AddWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00270">FlushWriteBuf()</a>.<div class="fragment"><pre class="fragment"><a name="l00293"></a>00293 {
-<a name="l00294"></a>00294         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Setting error string for %s to '%s'"</span>,this-&gt;nick,error.c_str());
-<a name="l00295"></a>00295         <span class="comment">// don't try to set the error twice, its already set take the first string.</span>
-<a name="l00296"></a>00296         <span class="keywordflow">if</span> (this-&gt;WriteError == <span class="stringliteral">""</span>)
-<a name="l00297"></a>00297                 this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a> = error;
-<a name="l00298"></a>00298 }
+Referenced by <a class="el" href="users_8cpp-source.html#l00219">AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00275">AddWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00295">FlushWriteBuf()</a>.<div class="fragment"><pre class="fragment"><a name="l00318"></a>00318 {
+<a name="l00319"></a>00319         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Setting error string for %s to '%s'"</span>,this-&gt;nick,error.c_str());
+<a name="l00320"></a>00320         <span class="comment">// don't try to set the error twice, its already set take the first string.</span>
+<a name="l00321"></a>00321         <span class="keywordflow">if</span> (this-&gt;WriteError == <span class="stringliteral">""</span>)
+<a name="l00322"></a>00322                 this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a> = error;
+<a name="l00323"></a>00323 }
 </pre></div>
 <p>
     </td>
@@ -1090,9 +1092,9 @@ 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#l00158">158</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00162">162</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="chans"></a><!-- doxytag: member="userrec::chans" ref="chans" args="" --><p>
@@ -1117,9 +1119,9 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00149">149</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="dhost_5B_31_36_30_5D"></a><!-- doxytag: member="userrec::dhost" ref="dhost_5B_31_36_30_5D" args="[160]" --><p>
@@ -1146,9 +1148,9 @@ The host displayed to non-opers (used for cloaking etc).
 <p>
 This usually matches the value of <a class="el" href="classconnection.html#host_5B_31_36_30_5D">userrec::host</a>.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00134">134</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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#l00072">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="users_8cpp-source.html#l00099">GetFullHost()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="dns_5Fdone"></a><!-- doxytag: member="userrec::dns_done" ref="dns_5Fdone" args="" --><p>
@@ -1175,9 +1177,9 @@ True when <a class="el" href="classDNS.html">DNS</a> lookups are completed.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00181">181</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00185">185</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00731">ConnectUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="flood"></a><!-- doxytag: member="userrec::flood" ref="flood" args="" --><p>
@@ -1204,9 +1206,9 @@ Number of lines the user can place into the buffer (up to the global NetBufferSi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00164">164</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00168">168</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="fullname_5BMAXGECOS_2B_31_5D"></a><!-- doxytag: member="userrec::fullname" ref="fullname_5BMAXGECOS_2B_31_5D" args="[MAXGECOS+1]" --><p>
@@ -1233,9 +1235,9 @@ The users full name.
 <p>
 
 <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>.
+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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ident_5BIDENTMAX_2B_32_5D"></a><!-- doxytag: member="userrec::ident" ref="ident_5BIDENTMAX_2B_32_5D" args="[IDENTMAX+2]" --><p>
@@ -1262,9 +1264,9 @@ The users ident reply.
 <p>
 Two characters are added to the user-defined limit to compensate for the tilde etc.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00129">129</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00133">133</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">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00099">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00116">GetFullRealHost()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="invites"></a><!-- doxytag: member="userrec::invites" ref="invites" args="" --><p>
@@ -1291,9 +1293,9 @@ A list of channels the user has a pending invite to.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00117">117</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00121">121</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#l00110">GetInviteList()</a>, <a class="el" href="users_8cpp-source.html#l00115">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00096">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00122">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00136">GetInviteList()</a>, <a class="el" href="users_8cpp-source.html#l00141">InviteTo()</a>, <a class="el" href="users_8cpp-source.html#l00123">IsInvited()</a>, <a class="el" href="users_8cpp-source.html#l00148">RemoveInvite()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="lines_5Fin"></a><!-- doxytag: member="userrec::lines_in" ref="lines_5Fin" args="" --><p>
@@ -1320,9 +1322,9 @@ Flood counters.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00206">206</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00210">210</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="modes_5B_35_34_5D"></a><!-- doxytag: member="userrec::modes" ref="modes_5B_35_34_5D" args="[54]" --><p>
@@ -1349,9 +1351,9 @@ 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. it is limited to length 54, as there can only be a maximum of 52 user modes (26 upper, 26 lower case) a null terminating char, and an optional + character.
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00151">151</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="nick_5BNICKMAX_5D"></a><!-- doxytag: member="userrec::nick" ref="nick_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -1378,9 +1380,9 @@ 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#l00124">124</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00128">128</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00072">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00089">GetFullRealHost()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00834">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00099">GetFullHost()</a>, <a class="el" href="users_8cpp-source.html#l00116">GetFullRealHost()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="oper_5BNICKMAX_5D"></a><!-- doxytag: member="userrec::oper" ref="oper_5BNICKMAX_5D" args="[NICKMAX]" --><p>
@@ -1407,9 +1409,9 @@ The oper type they logged in as, if they are an oper.
 <p>
 This is used to check permissions in operclasses, so that we can say 'yay' or 'nay' to any commands they issue. The value of this is the value of a valid 'type name=' tag.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00177">177</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00181">181</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="password_5BMAXBUF_5D"></a><!-- doxytag: member="userrec::password" ref="password_5BMAXBUF_5D" args="[MAXBUF]" --><p>
@@ -1436,7 +1438,7 @@ Password specified by the user when they registered.
 <p>
 This is stored even if the &lt;connect&gt; block doesnt need a password, so that modules may check it.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00191">191</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00195">195</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="pingmax"></a><!-- doxytag: member="userrec::pingmax" ref="pingmax" args="" --><p>
@@ -1463,7 +1465,7 @@ Number of seconds between PINGs for this user (set from &lt;connect:allow&gt; ta
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00185">185</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00189">189</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="recvq"></a><!-- doxytag: member="userrec::recvq" ref="recvq" args="" --><p>
@@ -1490,9 +1492,9 @@ User's receive queue.
 <p>
 Lines from the IRCd awaiting processing are stored here. Upgraded april 2005, old system a bit hairy.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00197">197</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00201">201</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#l00198">AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00224">BufferIsReady()</a>, <a class="el" href="users_8cpp-source.html#l00232">ClearBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00237">GetBuffer()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00219">AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00245">BufferIsReady()</a>, <a class="el" href="users_8cpp-source.html#l00253">ClearBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00258">GetBuffer()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="recvqmax"></a><!-- doxytag: member="userrec::recvqmax" ref="recvqmax" args="" --><p>
@@ -1519,9 +1521,9 @@ Maximum size this user's recvq can become.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00220">220</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00224">224</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#l00198">AddBuffer()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00219">AddBuffer()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="reset_5Fdue"></a><!-- doxytag: member="userrec::reset_due" ref="reset_5Fdue" args="" --><p>
@@ -1546,9 +1548,9 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00198">AddBuffer()</a>
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00207">207</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00211">211</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#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="sendq"></a><!-- doxytag: member="userrec::sendq" ref="sendq" args="" --><p>
@@ -1575,9 +1577,9 @@ User's send queue.
 <p>
 Lines waiting to be sent are stored here until their buffer is flushed.
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00202">202</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00206">206</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#l00254">AddWriteBuf()</a>, <a class="el" href="users_8cpp-source.html#l00270">FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00275">AddWriteBuf()</a>, <a class="el" href="users_8cpp-source.html#l00295">FlushWriteBuf()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="sendqmax"></a><!-- doxytag: member="userrec::sendqmax" ref="sendqmax" args="" --><p>
@@ -1604,9 +1606,9 @@ Maximum size this user's sendq can become.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00216">216</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00220">220</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#l00254">AddWriteBuf()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00275">AddWriteBuf()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="server"></a><!-- doxytag: member="userrec::server" ref="server" args="" --><p>
@@ -1633,9 +1635,9 @@ The server the user is connected to.
 <p>
 
 <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>.
+Definition at line <a class="el" href="users_8h-source.html#l00157">157</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="threshold"></a><!-- doxytag: member="userrec::threshold" ref="threshold" args="" --><p>
@@ -1660,7 +1662,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00208">208</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00212">212</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="timeout"></a><!-- doxytag: member="userrec::timeout" ref="timeout" args="" --><p>
@@ -1687,9 +1689,9 @@ Number of seconds this user is given to send USER/NICK If they do not send their
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00170">170</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00063">userrec()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteError"></a><!-- doxytag: member="userrec::WriteError" ref="WriteError" args="" --><p>
@@ -1714,14 +1716,14 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec()</a>.
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00212">212</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00216">216</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#l00300">GetWriteError()</a>, and <a class="el" href="users_8cpp-source.html#l00292">SetWriteError()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00325">GetWriteError()</a>, and <a class="el" href="users_8cpp-source.html#l00317">SetWriteError()</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 size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:16 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 463355e9f9eab97af38d52a7df9718972cdd252e..33fbaa71d0ef10def7eb1a3849e526c2dbe441c7 100644 (file)
@@ -11,7 +11,7 @@
 <a name="l00002"></a>00002 <span class="comment"> *       | Inspire Internet Relay Chat Daemon |</span>
 <a name="l00003"></a>00003 <span class="comment"> *       +------------------------------------+</span>
 <a name="l00004"></a>00004 <span class="comment"> *</span>
-<a name="l00005"></a>00005 <span class="comment"> *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
+<a name="l00005"></a>00005 <span class="comment"> *  Inspire is copyright (C) 2002-2005 ChatSpike-Dev.</span>
 <a name="l00006"></a>00006 <span class="comment"> *                       E-mail:</span>
 <a name="l00007"></a>00007 <span class="comment"> *                &lt;brain@chatspike.net&gt;</span>
 <a name="l00008"></a>00008 <span class="comment"> *                &lt;Craig@chatspike.net&gt;</span>
 <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
 <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
 <a name="l00030"></a>00030 
-<a name="l00031"></a>00031 
-<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_join</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00035"></a>00035 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_part</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00036"></a>00036 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kick</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00037"></a>00037 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_die</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00038"></a>00038 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_restart</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kill</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00040"></a>00040 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_summon</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00041"></a>00041 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_users</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00042"></a>00042 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_pass</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_invite</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00044"></a>00044 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_topic</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_names</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_privmsg</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_notice</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_info</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00049"></a>00049 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_time</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00050"></a>00050 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_whois</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_quit</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00052"></a>00052 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_who</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00053"></a>00053 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_wallops</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_list</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00055"></a>00055 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_rehash</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_lusers</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_admin</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_ping</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_pong</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_motd</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_rules</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00062"></a>00062 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_user</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_userhost</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_ison</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_away</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00066"></a>00066 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_whowas</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_trace</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00068"></a>00068 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_modules</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_stats</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_connect</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00071"></a>00071 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_squit</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_links</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00073"></a>00073 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_map</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00074"></a>00074 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_oper</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_nick</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kline</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_gline</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00078"></a>00078 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_zline</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_qline</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00080"></a>00080 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_eline</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00081"></a>00081 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_server</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00082"></a>00082 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_loadmodule</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_unloadmodule</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00084"></a>00084 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_commands</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00085"></a>00085 
-<a name="l00088"></a>00088 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* server);
-<a name="l00089"></a>00089 
-<a name="l00092"></a>00092 <span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">do_whois</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classuserrec.html">userrec</a>* dest,<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> signon, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> idle, <span class="keywordtype">char</span>* nick);
-<a name="l00095"></a>00095 
-<a name="l00096"></a>00096 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00031"></a>00031 <span class="keywordtype">char</span>* <a class="code" href="commands_8h.html#CleanFilename_28char_20_2Aname_29">CleanFilename</a>(<span class="keywordtype">char</span>* name);
+<a name="l00032"></a>00032 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* server);
+<a name="l00033"></a>00033 <span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);
+<a name="l00034"></a>00034 <span class="keywordtype">void</span> <a class="code" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">do_whois</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classuserrec.html">userrec</a>* dest,<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> signon, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> idle, <span class="keywordtype">char</span>* nick);
+<a name="l00035"></a>00035 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29">host_matches_everyone</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00036"></a>00036 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29">ip_matches_everyone</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ip, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00037"></a>00037 <span class="keywordtype">bool</span> <a class="code" href="commands_8h.html#nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29">nick_matches_everyone</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick, <a class="code" href="classuserrec.html">userrec</a>* user);    
+<a name="l00038"></a>00038 <span class="keywordtype">int</span> <a class="code" href="commands_8h.html#operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29">operstrcmp</a>(<span class="keywordtype">char</span>* data,<span class="keywordtype">char</span>* input);
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="comment">/*       XXX Serious WTFness XXX</span>
+<a name="l00041"></a>00041 <span class="comment"> *</span>
+<a name="l00042"></a>00042 <span class="comment"> * Well, unless someone invents a wildcard or</span>
+<a name="l00043"></a>00043 <span class="comment"> * regexp #include, and makes it a standard,</span>
+<a name="l00044"></a>00044 <span class="comment"> * we're stuck with this way of including all</span>
+<a name="l00045"></a>00045 <span class="comment"> * the commands.</span>
+<a name="l00046"></a>00046 <span class="comment"> */</span>
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 <span class="preprocessor">#include "cmd_admin.h"</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include "cmd_away.h"</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include "cmd_commands.h"</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include "cmd_connect.h"</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include "cmd_die.h"</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include "cmd_eline.h"</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include "cmd_gline.h"</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include "cmd_info.h"</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include "cmd_invite.h"</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include "cmd_ison.h"</span>
+<a name="l00058"></a>00058 <span class="preprocessor">#include "cmd_join.h"</span>
+<a name="l00059"></a>00059 <span class="preprocessor">#include "cmd_kick.h"</span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include "cmd_kill.h"</span>
+<a name="l00061"></a>00061 <span class="preprocessor">#include "cmd_kline.h"</span>
+<a name="l00062"></a>00062 <span class="preprocessor">#include "cmd_links.h"</span>
+<a name="l00063"></a>00063 <span class="preprocessor">#include "cmd_list.h"</span>
+<a name="l00064"></a>00064 <span class="preprocessor">#include "cmd_loadmodule.h"</span>
+<a name="l00065"></a>00065 <span class="preprocessor">#include "cmd_lusers.h"</span>
+<a name="l00066"></a>00066 <span class="preprocessor">#include "cmd_map.h"</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#include "cmd_modules.h"</span>
+<a name="l00068"></a>00068 <span class="preprocessor">#include "cmd_motd.h"</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#include "cmd_names.h"</span>
+<a name="l00070"></a>00070 <span class="preprocessor">#include "cmd_nick.h"</span>
+<a name="l00071"></a>00071 <span class="preprocessor">#include "cmd_notice.h"</span>
+<a name="l00072"></a>00072 <span class="preprocessor">#include "cmd_oper.h"</span>
+<a name="l00073"></a>00073 <span class="preprocessor">#include "cmd_part.h"</span>
+<a name="l00074"></a>00074 <span class="preprocessor">#include "cmd_pass.h"</span>
+<a name="l00075"></a>00075 <span class="preprocessor">#include "cmd_ping.h"</span>
+<a name="l00076"></a>00076 <span class="preprocessor">#include "cmd_pong.h"</span>
+<a name="l00077"></a>00077 <span class="preprocessor">#include "cmd_privmsg.h"</span>
+<a name="l00078"></a>00078 <span class="preprocessor">#include "cmd_qline.h"</span>
+<a name="l00079"></a>00079 <span class="preprocessor">#include "cmd_quit.h"</span>
+<a name="l00080"></a>00080 <span class="preprocessor">#include "cmd_rehash.h"</span>
+<a name="l00081"></a>00081 <span class="preprocessor">#include "cmd_restart.h"</span>
+<a name="l00082"></a>00082 <span class="preprocessor">#include "cmd_rules.h"</span>
+<a name="l00083"></a>00083 <span class="preprocessor">#include "cmd_server.h"</span>
+<a name="l00084"></a>00084 <span class="preprocessor">#include "cmd_squit.h"</span>
+<a name="l00085"></a>00085 <span class="preprocessor">#include "cmd_stats.h"</span>
+<a name="l00086"></a>00086 <span class="preprocessor">#include "cmd_summon.h"</span>
+<a name="l00087"></a>00087 <span class="preprocessor">#include "cmd_time.h"</span>
+<a name="l00088"></a>00088 <span class="preprocessor">#include "cmd_topic.h"</span>
+<a name="l00089"></a>00089 <span class="preprocessor">#include "cmd_trace.h"</span>
+<a name="l00090"></a>00090 <span class="preprocessor">#include "cmd_unloadmodule.h"</span>
+<a name="l00091"></a>00091 <span class="preprocessor">#include "cmd_user.h"</span>
+<a name="l00092"></a>00092 <span class="preprocessor">#include "cmd_userhost.h"</span>
+<a name="l00093"></a>00093 <span class="preprocessor">#include "cmd_users.h"</span>
+<a name="l00094"></a>00094 <span class="preprocessor">#include "cmd_version.h"</span>
+<a name="l00095"></a>00095 <span class="preprocessor">#include "cmd_wallops.h"</span>
+<a name="l00096"></a>00096 <span class="preprocessor">#include "cmd_who.h"</span>
+<a name="l00097"></a>00097 <span class="preprocessor">#include "cmd_whois.h"</span>
+<a name="l00098"></a>00098 <span class="preprocessor">#include "cmd_whowas.h"</span>
+<a name="l00099"></a>00099 <span class="preprocessor">#include "cmd_zline.h"</span>
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d34bebd334e274cb3f6feb020d06e0913222ec10..519a15ab42b5608d0080ae9142b8f3c55f3594b0 100644 (file)
 <code>#include &lt;vector&gt;</code><br>
 <code>#include &quot;<a class="el" href="users_8h-source.html">users.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="channels_8h-source.html">channels.h</a>&quot;</code><br>
+<code>#include &quot;cmd_admin.h&quot;</code><br>
+<code>#include &quot;cmd_away.h&quot;</code><br>
+<code>#include &quot;cmd_commands.h&quot;</code><br>
+<code>#include &quot;cmd_connect.h&quot;</code><br>
+<code>#include &quot;cmd_die.h&quot;</code><br>
+<code>#include &quot;cmd_eline.h&quot;</code><br>
+<code>#include &quot;cmd_gline.h&quot;</code><br>
+<code>#include &quot;cmd_info.h&quot;</code><br>
+<code>#include &quot;cmd_invite.h&quot;</code><br>
+<code>#include &quot;cmd_ison.h&quot;</code><br>
+<code>#include &quot;cmd_join.h&quot;</code><br>
+<code>#include &quot;cmd_kick.h&quot;</code><br>
+<code>#include &quot;cmd_kill.h&quot;</code><br>
+<code>#include &quot;cmd_kline.h&quot;</code><br>
+<code>#include &quot;cmd_links.h&quot;</code><br>
+<code>#include &quot;cmd_list.h&quot;</code><br>
+<code>#include &quot;cmd_loadmodule.h&quot;</code><br>
+<code>#include &quot;cmd_lusers.h&quot;</code><br>
+<code>#include &quot;cmd_map.h&quot;</code><br>
+<code>#include &quot;cmd_modules.h&quot;</code><br>
+<code>#include &quot;cmd_motd.h&quot;</code><br>
+<code>#include &quot;cmd_names.h&quot;</code><br>
+<code>#include &quot;cmd_nick.h&quot;</code><br>
+<code>#include &quot;cmd_notice.h&quot;</code><br>
+<code>#include &quot;cmd_oper.h&quot;</code><br>
+<code>#include &quot;cmd_part.h&quot;</code><br>
+<code>#include &quot;cmd_pass.h&quot;</code><br>
+<code>#include &quot;cmd_ping.h&quot;</code><br>
+<code>#include &quot;cmd_pong.h&quot;</code><br>
+<code>#include &quot;cmd_privmsg.h&quot;</code><br>
+<code>#include &quot;cmd_qline.h&quot;</code><br>
+<code>#include &quot;cmd_quit.h&quot;</code><br>
+<code>#include &quot;cmd_rehash.h&quot;</code><br>
+<code>#include &quot;cmd_restart.h&quot;</code><br>
+<code>#include &quot;cmd_rules.h&quot;</code><br>
+<code>#include &quot;cmd_server.h&quot;</code><br>
+<code>#include &quot;cmd_squit.h&quot;</code><br>
+<code>#include &quot;cmd_stats.h&quot;</code><br>
+<code>#include &quot;cmd_summon.h&quot;</code><br>
+<code>#include &quot;cmd_time.h&quot;</code><br>
+<code>#include &quot;cmd_topic.h&quot;</code><br>
+<code>#include &quot;cmd_trace.h&quot;</code><br>
+<code>#include &quot;cmd_unloadmodule.h&quot;</code><br>
+<code>#include &quot;cmd_user.h&quot;</code><br>
+<code>#include &quot;cmd_userhost.h&quot;</code><br>
+<code>#include &quot;cmd_users.h&quot;</code><br>
+<code>#include &quot;cmd_version.h&quot;</code><br>
+<code>#include &quot;cmd_wallops.h&quot;</code><br>
+<code>#include &quot;cmd_who.h&quot;</code><br>
+<code>#include &quot;cmd_whois.h&quot;</code><br>
+<code>#include &quot;cmd_whowas.h&quot;</code><br>
+<code>#include &quot;cmd_zline.h&quot;</code><br>
 
 <p>
 Include dependency graph for commands.h:<p><center><img src="commands_8h__incl.gif" border="0" usemap="#commands.h_map" alt=""></center>
 <map name="commands.h_map">
-<area href="users_8h-source.html" shape="rect" coords="159,260,223,287" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="283,210,368,236" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="276,362,375,388" alt="">
+<area href="users_8h-source.html" shape="rect" coords="198,260,262,287" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="355,311,440,337" alt="">
 </map>
 
 <p>
@@ -36,184 +87,34 @@ This graph shows which files directly or indirectly include this file:<p><center
 <a href="commands_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>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_join</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#CleanFilename_28char_20_2Aname_29">CleanFilename</a> (char *name)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">These are the handlers for user commands.  <a href="#handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_part</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kick</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_die</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_restart</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kill</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_summon</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_users</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_pass</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_invite</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_topic</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_names</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_privmsg</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_notice</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_info</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_time</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_whois</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_quit</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_who</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_wallops</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_list</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_rehash</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_lusers</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_admin</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_ping</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_pong</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_motd</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_rules</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_user</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_userhost</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_ison</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_away</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_whowas</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_trace</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_modules</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_stats</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_connect</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_squit</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_links</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_map</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_oper</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_nick</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_kline</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_gline</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_zline</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_qline</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_eline</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_server</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a> (const char *server)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_loadmodule</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a> (const char *str)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_unloadmodule</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">do_whois</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classuserrec.html">userrec</a> *dest, unsigned long signon, unsigned long idle, char *nick)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_commands</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29">host_matches_everyone</a> (<a class="el" href="namespaceirc.html#string">std::string</a> mask, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a> (const char *server)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29">ip_matches_everyone</a> (<a class="el" href="namespaceirc.html#string">std::string</a> ip, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Functions for u:lined servers.  <a href="#is_5Fuline_28const_20char_20_2Aserver_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a> (const char *str)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29">nick_matches_everyone</a> (<a class="el" href="namespaceirc.html#string">std::string</a> nick, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Other useful functions.  <a href="#duration_28const_20char_20_2Astr_29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">do_whois</a> (<a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classuserrec.html">userrec</a> *dest, unsigned long signon, unsigned long idle, char *nick)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="commands_8h.html#operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29">operstrcmp</a> (char *data, char *input)</td></tr>
 
 </table>
 <hr><h2>Function Documentation</h2>
-<a class="anchor" name="do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29"></a><!-- doxytag: member="commands.h::do_whois" ref="do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29" args="(userrec *user, userrec *dest, unsigned long signon, unsigned long idle, char *nick)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void do_whois           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>unsigned long&nbsp;</td>
-          <td class="mdname" nowrap> <em>signon</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>unsigned long&nbsp;</td>
-          <td class="mdname" nowrap> <em>idle</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>nick</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="duration_28const_20char_20_2Astr_29"></a><!-- doxytag: member="commands.h::duration" ref="duration_28const_20char_20_2Astr_29" args="(const char *str)" --><p>
+<a class="anchor" name="CleanFilename_28char_20_2Aname_29"></a><!-- doxytag: member="commands.h::CleanFilename" ref="CleanFilename_28char_20_2Aname_29" args="(char *name)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">long duration           </td>
+          <td class="md" nowrap valign="top">char* CleanFilename           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">const char *&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>str</em>          </td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
@@ -229,78 +130,43 @@ This graph shows which files directly or indirectly include this file:<p><center
     <td>
 
 <p>
-Other useful functions. 
-<p>
-
-<p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcDuration()</a>.    </td>
+    </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_admin" ref="handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29"></a><!-- doxytag: member="commands.h::do_whois" ref="do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29" args="(userrec *user, userrec *dest, unsigned long signon, unsigned long idle, char *nick)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_admin           </td>
+          <td class="md" nowrap valign="top">void do_whois           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
+          <td class="mdname" nowrap> <em>user</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
           <td class="md"></td>
           <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
+          <td class="mdname" nowrap> <em>dest</em>, </td>
         </tr>
         <tr>
+          <td class="md" nowrap align="right"></td>
           <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_away" ref="handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_away           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
+          <td class="md" nowrap>unsigned long&nbsp;</td>
+          <td class="mdname" nowrap> <em>signon</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
           <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap>unsigned long&nbsp;</td>
+          <td class="mdname" nowrap> <em>idle</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
           <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>nick</em></td>
         </tr>
         <tr>
           <td class="md"></td>
@@ -322,33 +188,18 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_commands" ref="handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="duration_28const_20char_20_2Astr_29"></a><!-- doxytag: member="commands.h::duration" ref="duration_28const_20char_20_2Astr_29" args="(const char *str)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_commands           </td>
+          <td class="md" nowrap valign="top">long duration           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>str</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
       </table>
     </td>
@@ -362,25 +213,21 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00689">Server::CalcDuration()</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_connect" ref="handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::host_matches_everyone" ref="host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29" args="(std::string mask, userrec *user)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_connect           </td>
+          <td class="md" nowrap valign="top">bool host_matches_everyone           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mask</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
@@ -408,22 +255,16 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_die" ref="handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::ip_matches_everyone" ref="ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29" args="(std::string ip, userrec *user)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_die           </td>
+          <td class="md" nowrap valign="top">bool ip_matches_everyone           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
+          <td class="mdname" nowrap> <em>ip</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
@@ -451,33 +292,18 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_eline" ref="handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="is_5Fuline_28const_20char_20_2Aserver_29"></a><!-- doxytag: member="commands.h::is_uline" ref="is_5Fuline_28const_20char_20_2Aserver_29" args="(const char *server)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_eline           </td>
+          <td class="md" nowrap valign="top">bool is_uline           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>server</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
       </table>
     </td>
@@ -491,25 +317,21 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00165">userrec::HasPermission()</a>, <a class="el" href="modules_8cpp-source.html#l00395">Server::IsUlined()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_gline" ref="handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::nick_matches_everyone" ref="nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29" args="(std::string nick, userrec *user)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_gline           </td>
+          <td class="md" nowrap valign="top">bool nick_matches_everyone           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
+          <td class="mdname" nowrap> <em>nick</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
@@ -537,28 +359,22 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_info" ref="handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
+<a class="anchor" name="operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29"></a><!-- doxytag: member="commands.h::operstrcmp" ref="operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29" args="(char *data, char *input)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void handle_info           </td>
+          <td class="md" nowrap valign="top">int operstrcmp           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>data</em>, </td>
         </tr>
         <tr>
           <td class="md" nowrap align="right"></td>
           <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>input</em></td>
         </tr>
         <tr>
           <td class="md"></td>
@@ -580,1890 +396,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00690">Server::CalcD
     </td>
   </tr>
 </table>
-<a class="anchor" name="handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_invite" ref="handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_invite           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_ison" ref="handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_ison           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_join" ref="handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_join           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-These are the handlers for user commands. 
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_kick" ref="handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_kick           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_kill" ref="handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_kill           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_kline" ref="handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_kline           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_links" ref="handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_links           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_list" ref="handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_list           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_loadmodule" ref="handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_loadmodule           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_lusers" ref="handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_lusers           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_map" ref="handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_map           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_modules" ref="handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_modules           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_motd" ref="handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_motd           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_names" ref="handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_names           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_nick" ref="handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_nick           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_notice" ref="handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_notice           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_oper" ref="handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_oper           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_part" ref="handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_part           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_pass" ref="handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_pass           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_ping" ref="handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_ping           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_pong" ref="handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_pong           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_privmsg" ref="handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_privmsg           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_qline" ref="handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_qline           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_quit" ref="handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_quit           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_rehash" ref="handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_rehash           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_restart" ref="handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_restart           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_rules" ref="handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_rules           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_server" ref="handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_server           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_squit" ref="handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_squit           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_stats" ref="handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_stats           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_summon" ref="handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_summon           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_time" ref="handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_time           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_topic" ref="handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_topic           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_trace" ref="handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_trace           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_unloadmodule" ref="handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_unloadmodule           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_user" ref="handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_user           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_userhost" ref="handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_userhost           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_users" ref="handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_users           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_wallops" ref="handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_wallops           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_who" ref="handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_who           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_whois" ref="handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_whois           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_whowas" ref="handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_whowas           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="commands.h::handle_zline" ref="handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_zline           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="is_5Fuline_28const_20char_20_2Aserver_29"></a><!-- doxytag: member="commands.h::is_uline" ref="is_5Fuline_28const_20char_20_2Aserver_29" args="(const char *server)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">bool is_uline           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">const char *&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>server</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-Functions for u:lined servers. 
-<p>
-
-<p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00144">userrec::HasPermission()</a>, <a class="el" href="modules_8cpp-source.html#l00396">Server::IsUlined()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
-  </tr>
-</table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:15 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c90c37759ac70ee4e91ee7dc457737410c6f5a12..3712e88fbae2935d9a00b575278258b6d3788017 100644 (file)
@@ -1,4 +1,3 @@
 base referer
-rect $users_8h-source.html 159,260 223,287
-rect $channels_8h-source.html 283,210 368,236
-rect $connection_8h-source.html 276,362 375,388
+rect $users_8h-source.html 198,260 262,287
+rect $channels_8h-source.html 355,311 440,337
index 75966de38be4b12748fca0e060bcf8167775fd14..cb82238d95a5c5b56ef1b49c67bc6310651d6eb5 100644 (file)
@@ -1 +1 @@
-0ab6434b364171922a16fbd69fe35c2b
\ No newline at end of file
+a53e792c40a1f2a94bc199e5679cfe9b
\ No newline at end of file
index be8560aa5220460c5daa6ea2ef2e74de390428bd..d0aa3eac359fccf2c14c8011ffd2020d0c2dd604 100644 (file)
@@ -82,7 +82,7 @@
 <a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
 <a name="l00108"></a>00108 <span class="preprocessor"></span>
 <a name="l00109"></a>00109 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d78e7e3ba5ac30b84e02232a1dfa052bc36db393..5b9315941e4509172e66b4847e4f105c7fae224b 100644 (file)
@@ -43,7 +43,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Please note: classes serverrec and userrec both inherit from class connection.  <a href="classconnection.html#_details">More...</a><br></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 107cf65bd8474436bf0a0c53ca9a98b251788a02..8057032489fadd34575abf5ec423facb341c2f5a 100644 (file)
@@ -1 +1 @@
-59ee32ffe8ea5904c6be653a9ecfd51c
\ No newline at end of file
+0e1861daaddbab4521f1d2933037aa81
\ No newline at end of file
index d5c1630ad9b8130cd5456680a3ae9d646e7410f4..e2d1ecb8bc01943fdabda7e08f7934bfff924fa6 100644 (file)
 <a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __CTABLES_H__</span>
 <a name="l00019"></a>00019 <span class="preprocessor"></span>
 <a name="l00020"></a>00020 <span class="preprocessor">#include "inspircd_config.h"</span>
-<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
-<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span>
-<a name="l00023"></a>00023 
-<a name="l00026"></a><a class="code" href="classcommand__t.html">00026</a> <span class="keyword">class </span><a class="code" href="classcommand__t.html">command_t</a> : <span class="keyword">public</span> <a class="code" href="classExtensible.html">Extensible</a>
-<a name="l00027"></a>00027 {
-<a name="l00028"></a>00028  <span class="keyword">public</span>:
-<a name="l00031"></a><a class="code" href="classcommand__t.html#command_5BMAXBUF_5D">00031</a>         <span class="keywordtype">char</span> <a class="code" href="classcommand__t.html#command_5BMAXBUF_5D">command</a>[MAXBUF];
-<a name="l00034"></a><a class="code" href="classcommand__t.html#handler_5Ffunction">00034</a>         <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> *<a class="code" href="classcommand__t.html#handler_5Ffunction">handler_function</a>; 
+<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;deque&gt;</span>
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a>;
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="comment">/*typedef void (handlerfunc) (char**, int, userrec*);*/</span>
+<a name="l00026"></a>00026 
+<a name="l00029"></a><a class="code" href="classcommand__t.html">00029</a> <span class="keyword">class </span><a class="code" href="classcommand__t.html">command_t</a>
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031  <span class="keyword">public</span>:
+<a name="l00034"></a><a class="code" href="classcommand__t.html#command">00034</a>          <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classcommand__t.html#command">command</a>;
 <a name="l00037"></a><a class="code" href="classcommand__t.html#flags_5Fneeded">00037</a>         <span class="keywordtype">char</span> <a class="code" href="classcommand__t.html#flags_5Fneeded">flags_needed</a>;
 <a name="l00040"></a><a class="code" href="classcommand__t.html#min_5Fparams">00040</a>         <span class="keywordtype">int</span> <a class="code" href="classcommand__t.html#min_5Fparams">min_params</a>;
 <a name="l00043"></a><a class="code" href="classcommand__t.html#use_5Fcount">00043</a>         <span class="keywordtype">long</span> <a class="code" href="classcommand__t.html#use_5Fcount">use_count</a>;
 <a name="l00046"></a><a class="code" href="classcommand__t.html#total_5Fbytes">00046</a>         <span class="keywordtype">long</span> <a class="code" href="classcommand__t.html#total_5Fbytes">total_bytes</a>;
-<a name="l00049"></a><a class="code" href="classcommand__t.html#source_5BMAXBUF_5D">00049</a>         <span class="keywordtype">char</span> <a class="code" href="classcommand__t.html#source_5BMAXBUF_5D">source</a>[MAXBUF];
-<a name="l00050"></a>00050 };
-<a name="l00051"></a>00051 
-<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
-<a name="l00053"></a>00053 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00049"></a><a class="code" href="classcommand__t.html#source">00049</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classcommand__t.html#source">source</a>;
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">00051</a>         <a class="code" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">command_t</a>(<a class="code" href="namespaceirc.html#string">std::string</a> cmd, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minpara) : <a class="code" href="classcommand__t.html#command">command</a>(cmd), <a class="code" href="classcommand__t.html#flags_5Fneeded">flags_needed</a>(flags), <a class="code" href="classcommand__t.html#min_5Fparams">min_params</a>(minpara)
+<a name="l00052"></a>00052         {
+<a name="l00053"></a>00053                 <a class="code" href="classcommand__t.html#use_5Fcount">use_count</a> = <a class="code" href="classcommand__t.html#total_5Fbytes">total_bytes</a> = 0;
+<a name="l00054"></a>00054                 <a class="code" href="classcommand__t.html#source">source</a> = <span class="stringliteral">"&lt;core&gt;"</span>;
+<a name="l00055"></a>00055         }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classcommand__t.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30">Handle</a>(<span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user) = 0;
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="classcommand__t.html#_7Ecommand_5Ft_28_29">00059</a>         <span class="keyword">virtual</span> <a class="code" href="classcommand__t.html#_7Ecommand_5Ft_28_29">~command_t</a>() {}
+<a name="l00060"></a>00060 };
+<a name="l00061"></a>00061 
+<a name="l00062"></a><a class="code" href="ctables_8h.html#command_5Ftable">00062</a> <span class="keyword">typedef</span> std::deque&lt;command_t*&gt; <a class="code" href="ctables_8h.html#command_5Ftable">command_table</a>;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="preprocessor">#endif</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 8c924681f7d0d6497af23cf857cce01ad07bfe72..42e44d330a44f7eeb0bb674e0cc27cd9f4a93643 100644 (file)
@@ -8,23 +8,19 @@
 <div class="nav">
 <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></div>
 <h1>ctables.h File Reference</h1><code>#include &quot;inspircd_config.h&quot;</code><br>
-<code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
-<code>#include &quot;<a class="el" href="base_8h-source.html">base.h</a>&quot;</code><br>
+<code>#include &lt;deque&gt;</code><br>
 
 <p>
 Include dependency graph for ctables.h:<p><center><img src="ctables_8h__incl.gif" border="0" usemap="#ctables.h_map" alt=""></center>
-<map name="ctables.h_map">
-<area href="inspircd_8h-source.html" shape="rect" coords="132,57,212,84" alt="">
-<area href="base_8h-source.html" shape="rect" coords="141,108,203,135" alt="">
-</map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="ctables_8h__dep__incl.gif" border="0" usemap="#ctables.hdep_map" alt=""></center>
 <map name="ctables.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="400,58,499,84" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="400,159,499,186" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="400,108,499,135" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="400,184,499,211" alt="">
 <area href="modules_8h-source.html" shape="rect" coords="134,108,216,135" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="266,58,351,84" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="266,159,351,185" alt="">
+<area href="mode_8h-source.html" shape="rect" coords="275,209,342,236" alt="">
 </map>
 
 <p>
@@ -34,8 +30,37 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcommand__t.html">command_t</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A structure that defines a command.  <a href="classcommand__t.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::deque&lt; <a class="el" href="classcommand__t.html">command_t</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="ctables_8h.html#command_5Ftable">command_table</a></td></tr>
+
+</table>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="command_5Ftable"></a><!-- doxytag: member="ctables.h::command_table" ref="command_5Ftable" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="classcommand__t.html">command_t</a>*&gt; <a class="el" href="ctables_8h.html#command_5Ftable">command_table</a>          </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="ctables_8h-source.html#l00062">62</a> of file <a class="el" href="ctables_8h-source.html">ctables.h</a>.    </td>
+  </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 87b8aefa4732bee5c0a393ea68b02f8285193278..23354987fe7bc3dc0c904e104dc6ba5ec08ccfe9 100644 (file)
@@ -1,5 +1,6 @@
 base referer
-rect $channels_8cpp-source.html 400,58 499,84
-rect $modules_8cpp-source.html 400,159 499,186
+rect $channels_8cpp-source.html 400,108 499,135
+rect $modules_8cpp-source.html 400,184 499,211
 rect $modules_8h-source.html 134,108 216,135
-rect $typedefs_8h-source.html 266,58 351,84
+rect $typedefs_8h-source.html 266,159 351,185
+rect $mode_8h-source.html 275,209 342,236
index 3307d14f625a2848b8fa9e14d71fe0d1964781af..c35f9be47ed4fecf976c28008c76f4f88d9a590d 100644 (file)
@@ -1 +1 @@
-6858a245b05b677af1e0f72cce2d967f
\ No newline at end of file
+1cb19b8d7a8ce1acf4cdb02da02f3f37
\ No newline at end of file
index 413e1a566df08bab559d9186e2c4866b1375a4e3..5a14779e786cc5692df9066f3524592c3e668189 100644 (file)
@@ -1,3 +1 @@
 base referer
-rect $inspircd_8h-source.html 132,57 212,84
-rect $base_8h-source.html 141,108 203,135
index 8cde4cbbaaa620aac4988c86058e711cc5462b56..cd96c12eab26306813e00fd093ad397dbe2e1ef6 100644 (file)
@@ -1 +1 @@
-4bac505726c8cdd742349b74377d3ac3
\ No newline at end of file
+40fd955ba897df932e17c7525207162b
\ No newline at end of file
index 0edd66e925a90d56d88033a8c10ad79e32e1e65c..83695c0e5f1d1e6969b591afc50a002c8dd1dae2 100644 (file)
@@ -60,7 +60,7 @@
 <a name="l00109"></a>00109 };
 <a name="l00110"></a>00110 
 <a name="l00111"></a>00111 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 3495b81d65fa176a19bf9a823f444b319568ce12..4e852de909703036150a5dccf30fc746593cb614 100644 (file)
@@ -20,8 +20,9 @@
 Include dependency graph for cull_list.h:<p><center><img src="cull__list_8h__incl.gif" border="0" usemap="#cull_list.h_map" alt=""></center>
 <map name="cull_list.h_map">
 <area href="users_8h-source.html" shape="rect" coords="138,260,202,287" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="262,210,347,236" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="255,362,354,388" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="262,209,347,236" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="255,412,354,439" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="258,311,351,337" alt="">
 </map>
 
 <p>
@@ -35,7 +36,7 @@ Include dependency graph for cull_list.h:<p><center><img src="cull__list_8h__inc
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The CullList class can be used by modules, and is used by the core, to compile large lists of users in preperation to quitting them all at once.  <a href="classCullList.html#_details">More...</a><br></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1308df18248bf4a527d939b7c524a0b84cf13f72..83585e216b82b244669cca43db9d36c26da6fb7b 100644 (file)
@@ -1,4 +1,5 @@
 base referer
 rect $users_8h-source.html 138,260 202,287
-rect $channels_8h-source.html 262,210 347,236
-rect $connection_8h-source.html 255,362 354,388
+rect $channels_8h-source.html 262,209 347,236
+rect $connection_8h-source.html 255,412 354,439
+rect $hashcomp_8h-source.html 258,311 351,337
index 0d58df24de282ee8a8b77722aed9355ba8cfb865..8e48434f90e51b69b1415219b476826f5764b32f 100644 (file)
@@ -1 +1 @@
-eba432fe5650ee3ba1491a9f1a296ae1
\ No newline at end of file
+15a1b582a0c3999d28743f4a72ab2570
\ No newline at end of file
index 1d1d8258943fe8a9fe1a7b508a1188760cc0b835..34e7729529dbf8eabf7e5e63c7c04a626406b64d 100644 (file)
@@ -20,7 +20,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000001.html">brain</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f2c3bcd44e336b6ed76a47c5e31dee449ad109d6..62bb6fe7e39d5968a6bb211b665886df4b488526 100644 (file)
Binary files a/docs/module-doc/dir_000000_dep.gif and b/docs/module-doc/dir_000000_dep.gif differ
index 5a5ae1ff056a60d6da9ea84a5376c2ff25f719d1..3ba6911ae41a716850903d0c87a64c3ac957fa85 100644 (file)
@@ -21,7 +21,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000002.html">inspircd-cvs</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a2748fee9d6bb704cf2d405074e91bb34cb921be..dcea55c5c17e04763b055397b4e4768f5ee51cbb 100644 (file)
Binary files a/docs/module-doc/dir_000001_dep.gif and b/docs/module-doc/dir_000001_dep.gif differ
index 9661f9726ddffdd56190fb892a08042c46aa353c..20d93c329bd06a43943ee7157acc3986cd5abdc6 100644 (file)
@@ -21,7 +21,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000003.html">inspircd</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index fb9a6f64acaa6670b3f04c2d21ef90e11129ffcc..370b51966d142b5775ea3c3442e5ed912a3d3675 100644 (file)
Binary files a/docs/module-doc/dir_000002_dep.gif and b/docs/module-doc/dir_000002_dep.gif differ
index bbc95ada8f31905a7d7e3af63ed56b986a7ba67d..2ac34368a6ad8cb7aec629b878d89a341aa389ea 100644 (file)
@@ -26,7 +26,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">directory &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000005.html">src</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 57efe33a665fdc7487146f0f5162109f35ab5741..b920a467f1d78bf9dc6cc2c3719da154e403c031 100644 (file)
Binary files a/docs/module-doc/dir_000003_dep.gif and b/docs/module-doc/dir_000003_dep.gif differ
index 9f9dfde98c86feda854fe3a22eb86602a48171ce..1cb43f2487bd8d7c746d4ba2349629c666dcaf3f 100644 (file)
@@ -17,6 +17,8 @@
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="aes_8h.html">aes.h</a> <a href="aes_8h-source.html">[code]</a></td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html">base.h</a> <a href="base_8h-source.html">[code]</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="channels_8h.html">channels.h</a> <a href="channels_8h-source.html">[code]</a></td></tr>
@@ -58,7 +60,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xline_8h.html">xline.h</a> <a href="xline_8h-source.html">[code]</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 069d80062e593320c71c088cc4b49888e144fd86..4db6c66d62f577c198f415074782ba91426e9008 100644 (file)
Binary files a/docs/module-doc/dir_000004_dep.gif and b/docs/module-doc/dir_000004_dep.gif differ
index f5c01a6e15f074b336641173250c789916bc09d9..7afa9451f718bef4dfd888ce26a74cd8fd842f10 100644 (file)
@@ -31,7 +31,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html">users.cpp</a> <a href="users_8cpp-source.html">[code]</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 028cea65ea9f943894d80c3ca2d3dbacaf9cd34e..700c77fbb4d48885acbffcafb6cf0b68a83959bf 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <div class="nav">
 <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></div>
-<h3>src &rarr; include Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></th><th class="dirtab">Includes file in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="hashcomp_8h.html">hashcomp.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="channels_8h.html">channels.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="connection_8h.html">connection.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<h3>src &rarr; include Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000005.html">src</a></th><th class="dirtab">Includes file in <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="channels_8cpp.html">channels.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="ctables_8h.html">ctables.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="hashcomp_8h.html">hashcomp.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="mode_8h.html">mode.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="modules_8h.html">modules.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="modules_8cpp.html">modules.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="inspircd__io_8h.html">inspircd_io.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socket_8h.html">socket.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socket_8cpp.html">socket.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="globals_8h.html">globals.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="socketengine_8cpp.html">socketengine.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="channels_8h.html">channels.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="commands_8h.html">commands.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="connection_8h.html">connection.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="hashcomp_8h.html">hashcomp.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="inspircd_8h.html">inspircd.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="message_8h.html">message.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="socketengine_8h.html">socketengine.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="typedefs_8h.html">typedefs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="users_8h.html">users.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="users_8cpp.html">users.cpp</a></td><td class="dirtab"><a class="el" href="xline_8h.html">xline.h</a></td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 946e6e401b5bc9fc73ed0c2084dfb90708ba05aa..b101b5fba415071e7356b691aac8c7098c4e8d9f 100644 (file)
Binary files a/docs/module-doc/dir_000005_dep.gif and b/docs/module-doc/dir_000005_dep.gif differ
index f4c283aefba992705dd4c99bd505d5ad8380f799..e195168bbe6259428d3868278c9d7171da167967 100644 (file)
@@ -21,7 +21,7 @@
 </ul>
 </ul>
 </ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 76c5466801f160f9a5ab96e8cffdd8dcc8c0ef43..197c36e8386db29fa519c8f39f8102a8185a838b 100644 (file)
 <a name="l00097"></a>00097         <span class="keywordtype">void</span> <a class="code" href="classDNS.html#SetNS_28std_3A_3Astring_20dnsserver_29">SetNS</a>(<a class="code" href="namespaceirc.html#string">std::string</a> dnsserver);
 <a name="l00098"></a>00098 };
 <a name="l00099"></a>00099 
-<a name="l00100"></a>00100 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00105"></a>00105 <span class="keywordtype">void</span>* <a class="code" href="dns_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns_task</a>(<span class="keywordtype">void</span>* arg);
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e243871101a09084a1f411c2e5e931c9234b176d..3b5c6dc4fe215d5ceeb0d68f620b5540f59794ba 100644 (file)
@@ -24,8 +24,43 @@ Include dependency graph for dns.h:<p><center><img src="dns_8h__incl.gif" border
 <tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDNS.html">DNS</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The DNS class allows fast nonblocking resolution of hostnames and ip addresses.  <a href="classDNS.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dns_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns_task</a> (void *arg)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the handler function for multi-threaded <a class="el" href="classDNS.html">DNS</a>.  <a href="#dns_5Ftask_28void_20_2Aarg_29"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="dns_5Ftask_28void_20_2Aarg_29"></a><!-- doxytag: member="dns.h::dns_task" ref="dns_5Ftask_28void_20_2Aarg_29" args="(void *arg)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void* dns_task           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>arg</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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>
+This is the handler function for multi-threaded <a class="el" href="classDNS.html">DNS</a>. 
+<p>
+It cannot be a class member as pthread will not let us create a thread whos handler function is a member of a class (ugh).    </td>
+  </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 32fe81008e7c5a39bb95681f42c576563af608e8..00a06dc0853759682be3fcffbd57c67dd147a9a5 100644 (file)
@@ -6,6 +6,7 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindexHL" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>InspIRCd File List</h1>Here is a list of all files with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="aes_8h.html">aes.h</a> <a href="aes_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="base_8h.html">base.h</a> <a href="base_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="channels_8cpp.html">channels.cpp</a> <a href="channels_8cpp-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <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>
@@ -32,7 +33,7 @@
   <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>
   <tr><td class="indexkey"><a class="el" href="xline_8h.html">xline.h</a> <a href="xline_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 63ec060eef5da388dfc0f93122ab934761c87633..95dd7167577ad3dc6c0c423272f6229950e0aa9b 100644 (file)
@@ -5,21 +5,24 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindexHL" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindexHL" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
-<li>AddBuffer()
+<li>a
+: <a class="el" href="classAES.html#a_5BMAX_5FBC_5D">AES</a><li>AddBan()
+: <a class="el" href="classModeParser.html#AddBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>AddBuffer()
 : <a class="el" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">userrec</a><li>AddCommand()
-: <a class="el" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">Server</a><li>AddELine()
+: <a class="el" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">Server</a><li>AddELine()
 : <a class="el" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddExtendedListMode()
 : <a class="el" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server</a><li>AddExtendedMode()
 : <a class="el" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server</a><li>AddFd()
 : <a class="el" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">SocketEngine</a><li>AddGLine()
-: <a class="el" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddItem()
+: <a class="el" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddIOHook()
+: <a class="el" href="classServerConfig.html#AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29">ServerConfig</a><li>AddItem()
 : <a class="el" href="classCullList.html#AddItem_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">CullList</a><li>AddKLine()
 : <a class="el" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddQLine()
 : <a class="el" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server</a><li>addr
@@ -33,12 +36,14 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a><li>AdminEmail
 : <a class="el" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">ServerConfig</a><li>AdminName
 : <a class="el" href="classServerConfig.html#AdminName_5BMAXBUF_5D">ServerConfig</a><li>AdminNick
-: <a class="el" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">ServerConfig</a><li>age
-: <a class="el" href="classclassbase.html#age">classbase</a><li>AllowHalfop
+: <a class="el" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">ServerConfig</a><li>AES()
+: <a class="el" href="classAES.html#AES_28_29">AES</a><li>age
+: <a class="el" href="classclassbase.html#age">classbase</a><li>AllowedUmode()
+: <a class="el" href="classModeParser.html#AllowedUmode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_2C_20bool_20serveroverride_29">ModeParser</a><li>AllowHalfop
 : <a class="el" href="classServerConfig.html#AllowHalfop">ServerConfig</a><li>Apply()
 : <a class="el" href="classCullList.html#Apply_28_29">CullList</a><li>awaymsg
 : <a class="el" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 736160f320a476a05a849505cc9e18e055d7ba92..bc155ce8ed763869cc794aa97cbd30e908660fa3 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindexHL" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindexHL" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -17,12 +17,14 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classchanrec.html#binarymodes">chanrec</a><li>binip
 : <a class="el" href="classDNS.html#binip">DNS</a><li>bits
 : <a class="el" href="classBoolSet.html#bits">BoolSet</a><li>BoolSet()
-: <a class="el" href="classBoolSet.html#BoolSet_28char_20bitmask_29">BoolSet</a><li>BufferIsReady()
+: <a class="el" href="classBoolSet.html#BoolSet_28char_20bitmask_29">BoolSet</a><li>BoundPortCount
+: <a class="el" href="classserverstats.html#BoundPortCount">serverstats</a><li>Buffer
+: <a class="el" href="classInspSocket.html#Buffer">InspSocket</a><li>BufferIsReady()
 : <a class="el" href="classuserrec.html#BufferIsReady_28_29">userrec</a><li>Build
 : <a class="el" href="classVersion.html#Build">Version</a><li>bytes_in
 : <a class="el" href="classconnection.html#bytes_5Fin">connection</a><li>bytes_out
 : <a class="el" href="classconnection.html#bytes_5Fout">connection</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0d8524325d8ea73f1a4af73c7bf29ea5c500e1ae..74818b3416cf79cb6dcda26c5d2e1498ff06cc70 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindexHL" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindexHL" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -15,12 +15,14 @@ Here is a list of all class members with links to the classes they belong to:
 <li>cache
 : <a class="el" href="classConfigReader.html#cache">ConfigReader</a><li>CalcDuration()
 : <a class="el" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server</a><li>CallCommandHandler()
-: <a class="el" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a><li>ChangeGECOS()
+: <a class="el" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a><li>CBC
+: <a class="el" href="classAES.html#_40_30CBC">AES</a><li>CFB
+: <a class="el" href="classAES.html#_40_30CFB">AES</a><li>ChangeGECOS()
 : <a class="el" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server</a><li>ChangeHost()
 : <a class="el" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server</a><li>ChangeUserNick()
 : <a class="el" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server</a><li>ChanMode()
 : <a class="el" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server</a><li>channel
-: <a class="el" href="classInvited.html#channel_5BCHANMAX_5D">Invited</a>, <a class="el" href="classucrec.html#channel">ucrec</a>, <a class="el" href="classModeParameter.html#channel_5BCHANMAX_5D">ModeParameter</a><li>chanrec()
+: <a class="el" href="classInvited.html#channel">Invited</a>, <a class="el" href="classucrec.html#channel">ucrec</a>, <a class="el" href="classModeParameter.html#channel_5BCHANMAX_5D">ModeParameter</a><li>chanrec()
 : <a class="el" href="classchanrec.html#chanrec_28_29">chanrec</a><li>chans
 : <a class="el" href="classuserrec.html#chans">userrec</a><li>classbase()
 : <a class="el" href="classclassbase.html#classbase_28_29">classbase</a><li>Classes
@@ -29,12 +31,15 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig</a><li>client
 : <a class="el" href="classInspSocket.html#client">InspSocket</a><li>Close()
 : <a class="el" href="classInspSocket.html#Close_28_29">InspSocket</a><li>CloseSocket()
-: <a class="el" href="classuserrec.html#CloseSocket_28_29">userrec</a><li>cmds_in
+: <a class="el" href="classuserrec.html#CloseSocket_28_29">userrec</a><li>cmd_mode()
+: <a class="el" href="classcmd__mode.html#cmd_5Fmode_28_29">cmd_mode</a><li>cmds_in
 : <a class="el" href="classconnection.html#cmds_5Fin">connection</a><li>cmds_out
 : <a class="el" href="classconnection.html#cmds_5Fout">connection</a><li>command
-: <a class="el" href="classcommand__t.html#command_5BMAXBUF_5D">command_t</a><li>CommonChannels()
+: <a class="el" href="classcommand__t.html#command">command_t</a><li>command_t()
+: <a class="el" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">command_t</a><li>CommonChannels()
 : <a class="el" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server</a><li>compare()
-: <a class="el" href="structirc_1_1irc__char__traits.html#compare_28const_20char_20_2Astr_31_2C_20const_20char_20_2Astr_32_2C_20size_5Ft_20n_29">irc::irc_char_traits</a><li>config_f
+: <a class="el" href="structirc_1_1irc__char__traits.html#compare_28const_20char_20_2Astr_31_2C_20const_20char_20_2Astr_32_2C_20size_5Ft_20n_29">irc::irc_char_traits</a><li>CompressModes()
+: <a class="el" href="classModeParser.html#CompressModes_28std_3A_3Astring_20modes_2C_20bool_20channelmodes_29">ModeParser</a><li>config_f
 : <a class="el" href="classServerConfig.html#config_5Ff">ServerConfig</a><li>ConfigReader()
 : <a class="el" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">ConfigReader</a><li>ConfProcess()
 : <a class="el" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ServerConfig</a><li>ConfValue()
@@ -48,7 +53,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classCullItem.html#CullItem_28userrec_20_2Au_2C_20std_3A_3Astring_20r_29">CullItem</a><li>CullList()
 : <a class="el" href="classCullList.html#CullList_28_29">CullList</a><li>custom_modes
 : <a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">chanrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0b78affb0fbcece335244ed50932852615c361fc..005209a84c00429db4c56ed17e87dabb18598eac 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindexHL" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindexHL" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -14,10 +14,16 @@ Here is a list of all class members with links to the classes they belong to:
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
 <li>data
 : <a class="el" href="classEvent.html#data">Event</a>, <a class="el" href="classRequest.html#data">Request</a>, <a class="el" href="classHostItem.html#data_5BMAXBUF_5D">HostItem</a><li>debugging
-: <a class="el" href="classServerConfig.html#debugging">ServerConfig</a><li>DelELine()
+: <a class="el" href="classServerConfig.html#debugging">ServerConfig</a><li>Decrypt()
+: <a class="el" href="classAES.html#Decrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">AES</a><li>DecryptBlock()
+: <a class="el" href="classAES.html#DecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DEFAULT_BLOCK_SIZE
+: <a class="el" href="classAES.html#_40_31DEFAULT_5FBLOCK_5FSIZE">AES</a><li>DefDecryptBlock()
+: <a class="el" href="classAES.html#DefDecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DefEncryptBlock()
+: <a class="el" href="classAES.html#DefEncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DelELine()
 : <a class="el" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelFd()
 : <a class="el" href="classSocketEngine.html#DelFd_28int_20fd_29">SocketEngine</a><li>DelGLine()
-: <a class="el" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelKLine()
+: <a class="el" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelIOHook()
+: <a class="el" href="classServerConfig.html#DelIOHook_28int_20port_29">ServerConfig</a><li>DelKLine()
 : <a class="el" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelQLine()
 : <a class="el" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server</a><li>DelSocket()
 : <a class="el" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server</a><li>DelUser()
@@ -49,7 +55,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">ServerConfig</a><li>DumpErrors()
 : <a class="el" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader</a><li>duration
 : <a class="el" href="classXLine.html#duration">XLine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b13a3179cf9552964208669a1af40438f7b4e1b3..0e48c9ad027528b199e088f63ba76fc28d556e06 100644 (file)
@@ -5,15 +5,18 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindexHL" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindexHL" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_e">- e -</a></h3><ul>
-<li>Email
-: <a class="el" href="classAdmin.html#Email">Admin</a><li>EngineHandle
+<li>ECB
+: <a class="el" href="classAES.html#_40_30ECB">AES</a><li>Email
+: <a class="el" href="classAdmin.html#Email">Admin</a><li>Encrypt()
+: <a class="el" href="classAES.html#Encrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">AES</a><li>EncryptBlock()
+: <a class="el" href="classAES.html#EncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>EngineHandle
 : <a class="el" href="classSocketEngine.html#EngineHandle">SocketEngine</a><li>EnumConf()
 : <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig</a><li>Enumerate()
 : <a class="el" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader</a><li>EnumerateValues()
@@ -30,7 +33,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classExtensible.html#Extend_28std_3A_3Astring_20key_2C_20char_20_2Ap_29">Extensible</a><li>Extension_Items
 : <a class="el" href="classExtensible.html#Extension_5FItems">Extensible</a><li>ExtMode()
 : <a class="el" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6943c877f7fff97db8b1053cc5cd662420dd2331..f29c77ed48fc035addb795cdc10f56332c980fe6 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindexHL" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindexHL" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -27,10 +27,11 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classVersion.html#Flags">Version</a><li>flags_needed
 : <a class="el" href="classcommand__t.html#flags_5Fneeded">command_t</a><li>flood
 : <a class="el" href="classuserrec.html#flood">userrec</a>, <a class="el" href="classConnectClass.html#flood">ConnectClass</a><li>FlushWriteBuf()
-: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>ForwardLookup()
+: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>FlushWriteBuffer()
+: <a class="el" href="classInspSocket.html#FlushWriteBuffer_28_29">InspSocket</a><li>ForwardLookup()
 : <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS</a><li>fullname
 : <a class="el" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index acc6bf592c0d345654c45d08d094e7c5427cacfe..eb9b310a7587a763445e09e002ebeb39e9daef16 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindexHL" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindexHL" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -14,7 +14,8 @@ Here is a list of all class members with links to the classes they belong to:
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>Get()
 : <a class="el" href="classBoolSet.html#Get_28int_20number_29">BoolSet</a><li>GetAdmin()
-: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBuffer()
+: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBlockSize()
+: <a class="el" href="classAES.html#GetBlockSize_28_29">AES</a><li>GetBuffer()
 : <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetConfig()
 : <a class="el" href="classServer.html#GetConfig_28_29">Server</a><li>GetData()
 : <a class="el" href="classEvent.html#GetData_28_29">Event</a>, <a class="el" href="classRequest.html#GetData_28_29">Request</a><li>GetDest()
@@ -27,8 +28,10 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classDNS.html#GetFD_28_29">DNS</a><li>GetFullHost()
 : <a class="el" href="classuserrec.html#GetFullHost_28_29">userrec</a><li>GetFullRealHost()
 : <a class="el" href="classuserrec.html#GetFullRealHost_28_29">userrec</a><li>GetInviteList()
-: <a class="el" href="classuserrec.html#GetInviteList_28_29">userrec</a><li>GetIP()
-: <a class="el" href="classInspSocket.html#GetIP_28_29">InspSocket</a><li>GetLine()
+: <a class="el" href="classuserrec.html#GetInviteList_28_29">userrec</a><li>GetIOHook()
+: <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig</a><li>GetIP()
+: <a class="el" href="classInspSocket.html#GetIP_28_29">InspSocket</a><li>GetKeyLength()
+: <a class="el" href="classAES.html#GetKeyLength_28_29">AES</a><li>GetLine()
 : <a class="el" href="classFileReader.html#GetLine_28int_20x_29">FileReader</a><li>GetModeParameter()
 : <a class="el" href="classchanrec.html#GetModeParameter_28char_20mode_29">chanrec</a><li>GetName()
 : <a class="el" href="classSocketEngine.html#GetName_28_29">SocketEngine</a><li>GetNetworkName()
@@ -36,7 +39,8 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classCullItem.html#GetReason_28_29">CullItem</a><li>GetResult()
 : <a class="el" href="classDNS.html#GetResult_28_29">DNS</a><li>GetResultIP()
 : <a class="el" href="classDNS.html#GetResultIP_28_29">DNS</a><li>GetRevision()
-: <a class="el" href="classInspIRCd.html#GetRevision_28_29">InspIRCd</a><li>GetServerDescription()
+: <a class="el" href="classInspIRCd.html#GetRevision_28_29">InspIRCd</a><li>GetRounds()
+: <a class="el" href="classAES.html#GetRounds_28_29">AES</a><li>GetServerDescription()
 : <a class="el" href="classServer.html#GetServerDescription_28_29">Server</a><li>GetServerName()
 : <a class="el" href="classServer.html#GetServerName_28_29">Server</a><li>GetSource()
 : <a class="el" href="classEvent.html#GetSource_28_29">Event</a>, <a class="el" href="classRequest.html#GetSource_28_29">Request</a><li>GetState()
@@ -47,8 +51,11 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server</a>, <a class="el" href="classchanrec.html#GetUsers_28_29">chanrec</a><li>GetVersion()
 : <a class="el" href="classServer.html#GetVersion_28_29">Server</a>, <a class="el" href="classModule.html#GetVersion_28_29">Module</a><li>GetVersionString()
 : <a class="el" href="classInspIRCd.html#GetVersionString_28_29">InspIRCd</a><li>GetWriteError()
-: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a><li>GiveHops()
+: <a class="el" href="classModeParser.html#GiveHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>GiveOps()
+: <a class="el" href="classModeParser.html#GiveOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>GiveVoice()
+: <a class="el" href="classModeParser.html#GiveVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 3250e4c58e62c0e70a862fd65a625246221368ab..863b6e1e4034d7ba4236b5b7a1ce9dfc64ae8fe9 100644 (file)
@@ -5,22 +5,22 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindexHL" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindexHL" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
-<li>handler_function
-: <a class="el" href="classcommand__t.html#handler_5Ffunction">command_t</a><li>haspassed
+<li>Handle()
+: <a class="el" href="classcmd__mode.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">cmd_mode</a>, <a class="el" href="classcommand__t.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30">command_t</a><li>haspassed
 : <a class="el" href="classconnection.html#haspassed">connection</a><li>HasPermission()
-: <a class="el" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">userrec</a><li>HasResult()
+: <a class="el" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">userrec</a><li>HasResult()
 : <a class="el" href="classDNS.html#HasResult_28int_20fd_29">DNS</a><li>host
 : <a class="el" href="classWhoWasUser.html#host_5B_31_36_30_5D">WhoWasUser</a>, <a class="el" href="classConnectClass.html#host_5BMAXBUF_5D">ConnectClass</a>, <a class="el" href="classInspSocket.html#host">InspSocket</a>, <a class="el" href="classconnection.html#host_5B_31_36_30_5D">connection</a><li>HostItem()
 : <a class="el" href="classHostItem.html#HostItem_28_29">HostItem</a><li>hostmask
 : <a class="el" href="classELine.html#hostmask_5B_32_30_30_5D">ELine</a>, <a class="el" href="classGLine.html#hostmask_5B_32_30_30_5D">GLine</a>, <a class="el" href="classKLine.html#hostmask_5B_32_30_30_5D">KLine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 00e894dc919cc71e63c82a34e665221ef7703822..5647c4c1196ef3ce277220da8d99aa6738f0c2c7 100644 (file)
@@ -5,15 +5,15 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindexHL" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindexHL" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
 <li>ibuf
-: <a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">InspSocket</a><li>id
+: <a class="el" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">InspSocket</a><li>id
 : <a class="el" href="classEvent.html#id">Event</a><li>ident
 : <a class="el" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">userrec</a><li>idle_lastmsg
 : <a class="el" href="classconnection.html#idle_5Flastmsg">connection</a><li>include_stack
@@ -23,19 +23,20 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classchanrec.html#internal_5Fuserlist">chanrec</a><li>Invert()
 : <a class="el" href="classBoolSet.html#Invert_28int_20number_29">BoolSet</a><li>invites
 : <a class="el" href="classuserrec.html#invites">userrec</a><li>InviteTo()
-: <a class="el" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">userrec</a><li>IP
-: <a class="el" href="classInspSocket.html#IP">InspSocket</a><li>ip
-: <a class="el" href="structdns__ip4list.html#ip">dns_ip4list</a>, <a class="el" href="classconnection.html#ip_5B_31_36_5D">connection</a><li>ipaddr
+: <a class="el" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">userrec</a><li>IOHookModule
+: <a class="el" href="classServerConfig.html#IOHookModule">ServerConfig</a><li>ip
+: <a class="el" href="structdns__ip4list.html#ip">dns_ip4list</a>, <a class="el" href="classconnection.html#ip_5B_31_36_5D">connection</a><li>IP
+: <a class="el" href="classInspSocket.html#IP">InspSocket</a><li>ipaddr
 : <a class="el" href="classZLine.html#ipaddr_5B_34_30_5D">ZLine</a><li>is_global
 : <a class="el" href="classQLine.html#is_5Fglobal">QLine</a>, <a class="el" href="classZLine.html#is_5Fglobal">ZLine</a><li>IsCustomModeSet()
 : <a class="el" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">chanrec</a><li>IsInvited()
-: <a class="el" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">userrec</a><li>IsNick()
+: <a class="el" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">userrec</a><li>IsNick()
 : <a class="el" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server</a><li>IsOnChannel()
 : <a class="el" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server</a><li>IsUlined()
 : <a class="el" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server</a><li>IsValidMask()
 : <a class="el" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server</a><li>IsValidModuleCommand()
 : <a class="el" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9ab823918d706142d17ef94053a3401d4a693434..2fd50b8bf2085583bdf5ed3cd00a8c3fcbb95e1b 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindexHL" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindexHL" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:
 <h3><a class="anchor" name="index_j">- j -</a></h3><ul>
 <li>JoinUserToChannel()
 : <a class="el" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b31f235c508367c34c1ebb7153b9809a97d9e7ee..0f93a0eb652b83e4ec8fa4cb286463db8d281e50 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindexHL" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindexHL" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
 <li>ke_list
 : <a class="el" href="classSocketEngine.html#ke_5Flist_5B_36_35_35_33_35_5D">SocketEngine</a><li>key
 : <a class="el" href="classchanrec.html#key_5B_33_32_5D">chanrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f61606efc10e73f94b090d563441b43f89c79938..2168c214178026863f5d3da74f638060edca1232 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindexHL" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindexHL" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -26,7 +26,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classServerConfig.html#log_5Ffile">ServerConfig</a><li>LogLevel
 : <a class="el" href="classServerConfig.html#LogLevel">ServerConfig</a><li>lt()
 : <a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 44a4138823dca8cb78dbd91d37c4919f3fc12a0b..6c662b1b8c78456a19f0d6843bd0fa4d7a81cc0b 100644 (file)
@@ -5,34 +5,51 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindexHL" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindexHL" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>Major
-: <a class="el" href="classVersion.html#Major">Version</a><li>MatchText()
-: <a class="el" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server</a><li>MaxConn
+<li>m_bKeyInit
+: <a class="el" href="classAES.html#m_5FbKeyInit">AES</a><li>m_blockSize
+: <a class="el" href="classAES.html#m_5FblockSize">AES</a><li>m_chain
+: <a class="el" href="classAES.html#m_5Fchain_5BMAX_5FBLOCK_5FSIZE_5D">AES</a><li>m_chain0
+: <a class="el" href="classAES.html#m_5Fchain_30_5BMAX_5FBLOCK_5FSIZE_5D">AES</a><li>m_iROUNDS
+: <a class="el" href="classAES.html#m_5FiROUNDS">AES</a><li>m_Kd
+: <a class="el" href="classAES.html#m_5FKd_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">AES</a><li>m_Ke
+: <a class="el" href="classAES.html#m_5FKe_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">AES</a><li>m_keylength
+: <a class="el" href="classAES.html#m_5Fkeylength">AES</a><li>Major
+: <a class="el" href="classVersion.html#Major">Version</a><li>MakeKey()
+: <a class="el" href="classAES.html#MakeKey_28char_20const_20_2Akey_2C_20char_20const_20_2Achain_2C_20int_20keylength_3DDEFAULT_5FBLOCK_5FSIZE_2C_20int_20blockSize_3DDEFAULT_5FBLOCK_5FSIZE_29">AES</a><li>MakeLowerMap()
+: <a class="el" href="classInspIRCd.html#MakeLowerMap_28_29">InspIRCd</a><li>MatchText()
+: <a class="el" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server</a><li>MAX_BC
+: <a class="el" href="classAES.html#_40_32MAX_5FBC">AES</a><li>MAX_BLOCK_SIZE
+: <a class="el" href="classAES.html#_40_32MAX_5FBLOCK_5FSIZE">AES</a><li>MAX_KC
+: <a class="el" href="classAES.html#_40_32MAX_5FKC">AES</a><li>MAX_ROUNDS
+: <a class="el" href="classAES.html#_40_32MAX_5FROUNDS">AES</a><li>MaxConn
 : <a class="el" href="classServerConfig.html#MaxConn">ServerConfig</a><li>MaxWhoResults
 : <a class="el" href="classServerConfig.html#MaxWhoResults">ServerConfig</a><li>min_params
 : <a class="el" href="classcommand__t.html#min_5Fparams">command_t</a><li>Minor
 : <a class="el" href="classVersion.html#Minor">Version</a><li>mode
 : <a class="el" href="classModeParameter.html#mode">ModeParameter</a><li>modechar
-: <a class="el" href="classExtMode.html#modechar">ExtMode</a><li>MODERR
+: <a class="el" href="classExtMode.html#modechar">ExtMode</a><li>ModeGrok
+: <a class="el" href="classInspIRCd.html#ModeGrok">InspIRCd</a><li>MODERR
 : <a class="el" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">InspIRCd</a><li>modes
 : <a class="el" href="classuserrec.html#modes_5B_35_34_5D">userrec</a><li>ModPath
 : <a class="el" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ServerConfig</a><li>Module()
 : <a class="el" href="classModule.html#Module_28Server_20_2AMe_29">Module</a><li>module_names
 : <a class="el" href="classServerConfig.html#module_5Fnames">ServerConfig</a><li>ModuleError()
 : <a class="el" href="classInspIRCd.html#ModuleError_28_29">InspIRCd</a><li>ModuleFactory()
-: <a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a><li>motd
-: <a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">ServerConfig</a><li>MOTD
-: <a class="el" href="classServerConfig.html#MOTD">ServerConfig</a><li>MyExecutable
+: <a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a><li>MOTD
+: <a class="el" href="classServerConfig.html#MOTD">ServerConfig</a><li>motd
+: <a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">ServerConfig</a><li>Mul()
+: <a class="el" href="classAES.html#Mul_28int_20a_2C_20int_20b_29">AES</a><li>Mul4()
+: <a class="el" href="classAES.html#Mul_34_28int_20a_2C_20char_20b_5B_5D_29">AES</a><li>MyExecutable
 : <a class="el" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">ServerConfig</a><li>myfd
 : <a class="el" href="classDNS.html#myfd">DNS</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 397d656be95a895d65a1a1a9f0da6378705db483..89d86504be6ba85cc3e5a3bfa3e24d08bb8e76a0 100644 (file)
@@ -5,27 +5,27 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindexHL" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindexHL" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
 <li>n_matches
-: <a class="el" href="classXLine.html#n_5Fmatches">XLine</a><li>name
-: <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec</a><li>Name
-: <a class="el" href="classAdmin.html#Name">Admin</a><li>ne()
+: <a class="el" href="classXLine.html#n_5Fmatches">XLine</a><li>Name
+: <a class="el" href="classAdmin.html#Name">Admin</a><li>name
+: <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec</a><li>ne()
 : <a class="el" href="structirc_1_1irc__char__traits.html#ne_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a><li>needsoper
 : <a class="el" href="classExtMode.html#needsoper">ExtMode</a><li>NetBufferSize
 : <a class="el" href="classServerConfig.html#NetBufferSize">ServerConfig</a><li>Network
 : <a class="el" href="classServerConfig.html#Network_5BMAXBUF_5D">ServerConfig</a><li>next
-: <a class="el" href="structdns__ip4list.html#next">dns_ip4list</a><li>nick
-: <a class="el" href="classQLine.html#nick_5B_36_34_5D">QLine</a>, <a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#nick_5BNICKMAX_5D">userrec</a><li>Nick
-: <a class="el" href="classAdmin.html#Nick">Admin</a><li>nofork
+: <a class="el" href="structdns__ip4list.html#next">dns_ip4list</a><li>Nick
+: <a class="el" href="classAdmin.html#Nick">Admin</a><li>nick
+: <a class="el" href="classQLine.html#nick_5B_36_34_5D">QLine</a>, <a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#nick_5BNICKMAX_5D">userrec</a><li>nofork
 : <a class="el" href="classServerConfig.html#nofork">ServerConfig</a><li>nping
 : <a class="el" href="classconnection.html#nping">connection</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f012bb45aa595c55a8b62b174047f6cd23a1fb72..db6082df54af281f87c6126d8cf3a41500fc410c 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindexHL" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindexHL" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -101,7 +101,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classBoolSet.html#operator_3D_28BoolSet_20other_29">BoolSet</a><li>operator==()
 : <a class="el" href="classBoolSet.html#operator_3D_3D_28BoolSet_20other_29">BoolSet</a><li>operator|()
 : <a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">BoolSet</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5d661350396755990bed600624546e9288f8590e..22b5ef20b66f1d363b1245fe36a0930728ba3648 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindexHL" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindexHL" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -15,7 +15,8 @@ Here is a list of all class members with links to the classes they belong to:
 <li>parameter
 : <a class="el" href="classModeParameter.html#parameter_5BMAXBUF_5D">ModeParameter</a><li>params_when_off
 : <a class="el" href="classExtMode.html#params_5Fwhen_5Foff">ExtMode</a><li>params_when_on
-: <a class="el" href="classExtMode.html#params_5Fwhen_5Fon">ExtMode</a><li>PartUserFromChannel()
+: <a class="el" href="classExtMode.html#params_5Fwhen_5Fon">ExtMode</a><li>Parser
+: <a class="el" href="classInspIRCd.html#Parser">InspIRCd</a><li>PartUserFromChannel()
 : <a class="el" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server</a><li>pass
 : <a class="el" href="classConnectClass.html#pass_5BMAXBUF_5D">ConnectClass</a><li>password
 : <a class="el" href="classuserrec.html#password_5BMAXBUF_5D">userrec</a><li>PID
@@ -25,11 +26,13 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classInspSocket.html#Poll_28_29">InspSocket</a><li>port
 : <a class="el" href="classInspSocket.html#port">InspSocket</a>, <a class="el" href="classconnection.html#port">connection</a><li>ports
 : <a class="el" href="classServerConfig.html#ports_5B_32_35_35_5D">ServerConfig</a><li>PrefixQuit
-: <a class="el" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">ServerConfig</a><li>ProtoSendMetaData()
+: <a class="el" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">ServerConfig</a><li>ProcessModes()
+: <a class="el" href="classModeParser.html#ProcessModes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">ModeParser</a><li>ProcessModuleUmode()
+: <a class="el" href="classModeParser.html#ProcessModuleUmode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">ModeParser</a><li>ProtoSendMetaData()
 : <a class="el" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module</a><li>ProtoSendMode()
 : <a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module</a><li>PseudoToUser()
 : <a class="el" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 7b4365cb614459381d37e63d0b3281a03af8a552..8e071e03273a553d13083a54ac118d8aac1c0daa 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindexHL" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindexHL" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:
 <h3><a class="anchor" name="index_q">- q -</a></h3><ul>
 <li>QuitUser()
 : <a class="el" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e89daa627e4dc52b410357f04da822b2cad0721b..4b19d3f792445c42ee845c0dfe256cc9470eac83 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindexHL" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindexHL" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -26,17 +26,18 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classconnection.html#registered">connection</a><li>registration_timeout
 : <a class="el" href="classConnectClass.html#registration_5Ftimeout">ConnectClass</a><li>RehashServer()
 : <a class="el" href="classServer.html#RehashServer_28_29">Server</a><li>RemoveInvite()
-: <a class="el" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">userrec</a><li>Request()
+: <a class="el" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">userrec</a><li>Request()
 : <a class="el" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a><li>reset_due
-: <a class="el" href="classuserrec.html#reset_5Fdue">userrec</a><li>restartpass
+: <a class="el" href="classuserrec.html#reset_5Fdue">userrec</a><li>ResetChain()
+: <a class="el" href="classAES.html#ResetChain_28_29">AES</a><li>restartpass
 : <a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">ServerConfig</a><li>result
 : <a class="el" href="classDNS.html#result">DNS</a><li>ReverseLookup()
 : <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS</a><li>Revision
-: <a class="el" href="classVersion.html#Revision">Version</a><li>rules
-: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a><li>RULES
-: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a><li>Run()
+: <a class="el" href="classVersion.html#Revision">Version</a><li>RULES
+: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a><li>rules
+: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a><li>Run()
 : <a class="el" href="classInspIRCd.html#Run_28_29">InspIRCd</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 12dbd6c493b2e43481a7c676c022b7cf41d7afab..154b57c317dcaceab6b74da9d203542746d38046 100644 (file)
@@ -5,14 +5,15 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindexHL" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindexHL" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
-<li>Send()
+<li>SE
+: <a class="el" href="classInspIRCd.html#SE">InspIRCd</a><li>Send()
 : <a class="el" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server</a>, <a class="el" href="classEvent.html#Send_28_29">Event</a>, <a class="el" href="classRequest.html#Send_28_29">Request</a>, <a class="el" href="classModuleMessage.html#Send_28_29_3D_30">ModuleMessage</a><li>SendChannel()
 : <a class="el" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server</a><li>SendChannelServerNotice()
 : <a class="el" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server</a><li>SendCommon()
@@ -29,7 +30,8 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#server">userrec</a>, <a class="el" href="classInspSocket.html#server">InspSocket</a><li>Server()
 : <a class="el" href="classServer.html#Server_28_29">Server</a><li>ServerConfig()
 : <a class="el" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a><li>ServerDesc
-: <a class="el" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerConfig</a><li>ServerName
+: <a class="el" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerConfig</a><li>ServerMode()
+: <a class="el" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ModeParser</a><li>ServerName
 : <a class="el" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerConfig</a><li>serverstats()
 : <a class="el" href="classserverstats.html#serverstats_28_29">serverstats</a><li>Set()
 : <a class="el" href="classBoolSet.html#Set_28int_20number_29">BoolSet</a><li>set_by
@@ -42,12 +44,32 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classInspSocket.html#SetState_28InspSocketState_20s_29">InspSocket</a><li>SetWriteError()
 : <a class="el" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">userrec</a><li>Shrink()
 : <a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Extensible</a><li>signon
-: <a class="el" href="classWhoWasUser.html#signon">WhoWasUser</a>, <a class="el" href="classconnection.html#signon">connection</a><li>SocketEngine()
+: <a class="el" href="classWhoWasUser.html#signon">WhoWasUser</a>, <a class="el" href="classconnection.html#signon">connection</a><li>sm_alog
+: <a class="el" href="classAES.html#sm_5Falog_5B_32_35_36_5D">AES</a><li>sm_chain0
+: <a class="el" href="classAES.html#sm_5Fchain_30">AES</a><li>sm_log
+: <a class="el" href="classAES.html#sm_5Flog_5B_32_35_36_5D">AES</a><li>sm_rcon
+: <a class="el" href="classAES.html#sm_5Frcon_5B_33_30_5D">AES</a><li>sm_S
+: <a class="el" href="classAES.html#sm_5FS_5B_32_35_36_5D">AES</a><li>sm_shifts
+: <a class="el" href="classAES.html#sm_5Fshifts_5B_33_5D_5B_34_5D_5B_32_5D">AES</a><li>sm_Si
+: <a class="el" href="classAES.html#sm_5FSi_5B_32_35_36_5D">AES</a><li>sm_T1
+: <a class="el" href="classAES.html#sm_5FT_31_5B_32_35_36_5D">AES</a><li>sm_T2
+: <a class="el" href="classAES.html#sm_5FT_32_5B_32_35_36_5D">AES</a><li>sm_T3
+: <a class="el" href="classAES.html#sm_5FT_33_5B_32_35_36_5D">AES</a><li>sm_T4
+: <a class="el" href="classAES.html#sm_5FT_34_5B_32_35_36_5D">AES</a><li>sm_T5
+: <a class="el" href="classAES.html#sm_5FT_35_5B_32_35_36_5D">AES</a><li>sm_T6
+: <a class="el" href="classAES.html#sm_5FT_36_5B_32_35_36_5D">AES</a><li>sm_T7
+: <a class="el" href="classAES.html#sm_5FT_37_5B_32_35_36_5D">AES</a><li>sm_T8
+: <a class="el" href="classAES.html#sm_5FT_38_5B_32_35_36_5D">AES</a><li>sm_U1
+: <a class="el" href="classAES.html#sm_5FU_31_5B_32_35_36_5D">AES</a><li>sm_U2
+: <a class="el" href="classAES.html#sm_5FU_32_5B_32_35_36_5D">AES</a><li>sm_U3
+: <a class="el" href="classAES.html#sm_5FU_33_5B_32_35_36_5D">AES</a><li>sm_U4
+: <a class="el" href="classAES.html#sm_5FU_34_5B_32_35_36_5D">AES</a><li>SocketEngine()
 : <a class="el" href="classSocketEngine.html#SocketEngine_28_29">SocketEngine</a><li>SoftLimit
 : <a class="el" href="classServerConfig.html#SoftLimit">ServerConfig</a><li>source
-: <a class="el" href="classXLine.html#source_5B_32_35_36_5D">XLine</a>, <a class="el" href="classEvent.html#source">Event</a>, <a class="el" href="classRequest.html#source">Request</a>, <a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">command_t</a><li>startup_time
+: <a class="el" href="classXLine.html#source_5B_32_35_36_5D">XLine</a>, <a class="el" href="classEvent.html#source">Event</a>, <a class="el" href="classRequest.html#source">Request</a>, <a class="el" href="classcommand__t.html#source">command_t</a><li>startup_time
 : <a class="el" href="classInspIRCd.html#startup_5Ftime">InspIRCd</a><li>state
-: <a class="el" href="classInspSocket.html#state">InspSocket</a><li>statsAccept
+: <a class="el" href="classInspSocket.html#state">InspSocket</a><li>stats
+: <a class="el" href="classInspIRCd.html#stats">InspIRCd</a><li>statsAccept
 : <a class="el" href="classserverstats.html#statsAccept">serverstats</a><li>statsCollisions
 : <a class="el" href="classserverstats.html#statsCollisions">serverstats</a><li>statsConnects
 : <a class="el" href="classserverstats.html#statsConnects">serverstats</a><li>statsDns
@@ -58,7 +80,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classserverstats.html#statsRefused">serverstats</a><li>statsSent
 : <a class="el" href="classserverstats.html#statsSent">serverstats</a><li>statsUnknown
 : <a class="el" href="classserverstats.html#statsUnknown">serverstats</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 79d5d82a79e3953bf8ad6b5702aa995f7014229c..9a538ab9ef84749fd77caf765bf71127ae2babd9 100644 (file)
@@ -5,25 +5,30 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindexHL" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindexHL" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>t
-: <a class="el" href="classDNS.html#t">DNS</a><li>threshold
+: <a class="el" href="classDNS.html#t">DNS</a>, <a class="el" href="classAES.html#t_5BMAX_5FBC_5D">AES</a><li>TakeBan()
+: <a class="el" href="classModeParser.html#TakeBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeHops()
+: <a class="el" href="classModeParser.html#TakeHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeOps()
+: <a class="el" href="classModeParser.html#TakeOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeVoice()
+: <a class="el" href="classModeParser.html#TakeVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>threshold
 : <a class="el" href="classuserrec.html#threshold">userrec</a>, <a class="el" href="classConnectClass.html#threshold">ConnectClass</a><li>Timeout()
 : <a class="el" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket</a><li>timeout
 : <a class="el" href="classuserrec.html#timeout">userrec</a>, <a class="el" href="classInspSocket.html#timeout">InspSocket</a><li>timeout_end
-: <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket</a><li>topic
+: <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket</a><li>tk
+: <a class="el" href="classAES.html#tk_5BMAX_5FKC_5D">AES</a><li>topic
 : <a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">chanrec</a><li>topicset
 : <a class="el" href="classchanrec.html#topicset">chanrec</a><li>total_bytes
 : <a class="el" href="classcommand__t.html#total_5Fbytes">command_t</a><li>ts
 : <a class="el" href="classSocketEngine.html#ts">SocketEngine</a><li>type
 : <a class="el" href="classConnectClass.html#type">ConnectClass</a>, <a class="el" href="classExtMode.html#type">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2867f70eed031103998e02c58e9964884ec818b4..9a5e271b437565a594c15526c4fdae9c1450a029 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindexHL" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindexHL" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -22,7 +22,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classCullItem.html#user">CullItem</a><li>userrec()
 : <a class="el" href="classuserrec.html#userrec_28_29">userrec</a><li>UserToPseudo()
 : <a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2bb6274dc3003308ff52392ab685ced142064e40..4c63ec8990358a23025a1236e075b56eefb1cc09 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindexHL" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindexHL" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
 <li>Verify()
 : <a class="el" href="classConfigReader.html#Verify_28_29">ConfigReader</a><li>Version()
 : <a class="el" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 3a959fe849bb18c7c3bbfbaef332c23af07d9ea5..3f205a5dc1ca2ba507c8f9d75356a37129029807 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindexHL" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindexHL" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindex" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
@@ -16,7 +16,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">SocketEngine</a><li>Write()
 : <a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket</a><li>WriteError
 : <a class="el" href="classuserrec.html#WriteError">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1845daa86823c5a2df16456964647ebfe0e60f61..70858c9c315065b334498fd487026fe4710afa36 100644 (file)
@@ -5,16 +5,18 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindexHL" href="functions_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions.html#index_a">a</a> | <a class="qindex" href="functions_0x62.html#index_b">b</a> | <a class="qindex" href="functions_0x63.html#index_c">c</a> | <a class="qindex" href="functions_0x64.html#index_d">d</a> | <a class="qindex" href="functions_0x65.html#index_e">e</a> | <a class="qindex" href="functions_0x66.html#index_f">f</a> | <a class="qindex" href="functions_0x67.html#index_g">g</a> | <a class="qindex" href="functions_0x68.html#index_h">h</a> | <a class="qindex" href="functions_0x69.html#index_i">i</a> | <a class="qindex" href="functions_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_0x6b.html#index_k">k</a> | <a class="qindex" href="functions_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_0x70.html#index_p">p</a> | <a class="qindex" href="functions_0x71.html#index_q">q</a> | <a class="qindex" href="functions_0x72.html#index_r">r</a> | <a class="qindex" href="functions_0x73.html#index_s">s</a> | <a class="qindex" href="functions_0x74.html#index_t">t</a> | <a class="qindex" href="functions_0x75.html#index_u">u</a> | <a class="qindex" href="functions_0x76.html#index_v">v</a> | <a class="qindex" href="functions_0x77.html#index_w">w</a> | <a class="qindex" href="functions_0x78.html#index_x">x</a> | <a class="qindexHL" href="functions_0x7e.html#index_~">~</a></div>
 
 <p>
 Here is a list of all class members with links to the classes they belong to:
 <p>
 <h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
-<li>~chanrec()
+<li>~AES()
+: <a class="el" href="classAES.html#_7EAES_28_29">AES</a><li>~chanrec()
 : <a class="el" href="classchanrec.html#_7Echanrec_28_29">chanrec</a><li>~classbase()
-: <a class="el" href="classclassbase.html#_7Eclassbase_28_29">classbase</a><li>~ConfigReader()
+: <a class="el" href="classclassbase.html#_7Eclassbase_28_29">classbase</a><li>~command_t()
+: <a class="el" href="classcommand__t.html#_7Ecommand_5Ft_28_29">command_t</a><li>~ConfigReader()
 : <a class="el" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader</a><li>~DNS()
 : <a class="el" href="classDNS.html#_7EDNS_28_29">DNS</a><li>~FileReader()
 : <a class="el" href="classFileReader.html#_7EFileReader_28_29">FileReader</a><li>~HostItem()
@@ -27,7 +29,7 @@ Here is a list of all class members with links to the classes they belong to:
 : <a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">SocketEngine</a><li>~ucrec()
 : <a class="el" href="classucrec.html#_7Eucrec_28_29">ucrec</a><li>~userrec()
 : <a class="el" href="classuserrec.html#_7Euserrec_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f9c400a64055b0c73e25454bd5bd39edaba4106e..eac6ec6d8d3581adc24b68ac3dda449f71aafd42 100644 (file)
@@ -5,21 +5,23 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindexHL" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindexHL" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
-<li>AddBuffer()
+<li>AddBan()
+: <a class="el" href="classModeParser.html#AddBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>AddBuffer()
 : <a class="el" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">userrec</a><li>AddCommand()
-: <a class="el" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">Server</a><li>AddELine()
+: <a class="el" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">Server</a><li>AddELine()
 : <a class="el" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddExtendedListMode()
 : <a class="el" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server</a><li>AddExtendedMode()
 : <a class="el" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server</a><li>AddFd()
 : <a class="el" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">SocketEngine</a><li>AddGLine()
-: <a class="el" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddItem()
+: <a class="el" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddIOHook()
+: <a class="el" href="classServerConfig.html#AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29">ServerConfig</a><li>AddItem()
 : <a class="el" href="classCullList.html#AddItem_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">CullList</a><li>AddKLine()
 : <a class="el" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server</a><li>AddQLine()
 : <a class="el" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server</a><li>AddSocket()
 : <a class="el" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">chanrec</a><li>AddWriteBuf()
 : <a class="el" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">userrec</a><li>AddZLine()
 : <a class="el" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server</a><li>Admin()
-: <a class="el" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a><li>Apply()
+: <a class="el" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a><li>AES()
+: <a class="el" href="classAES.html#AES_28_29">AES</a><li>AllowedUmode()
+: <a class="el" href="classModeParser.html#AllowedUmode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_2C_20bool_20serveroverride_29">ModeParser</a><li>Apply()
 : <a class="el" href="classCullList.html#Apply_28_29">CullList</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 4cc9242236d7d91d1b6e3b735459e156633261df..516e7fa7397111b516dac1cc1b354d7463675e14 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindexHL" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindexHL" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -15,7 +15,7 @@
 <li>BoolSet()
 : <a class="el" href="classBoolSet.html#BoolSet_28char_20bitmask_29">BoolSet</a><li>BufferIsReady()
 : <a class="el" href="classuserrec.html#BufferIsReady_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index dafc2bb246a12d0a0c98fd412185622e55089a6a..5c3e5327a5a2b62336e50a6dbe0c2ff8b5676b6d 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindexHL" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindexHL" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 : <a class="el" href="classuserrec.html#ClearBuffer_28_29">userrec</a><li>ClearStack()
 : <a class="el" href="classServerConfig.html#ClearStack_28_29">ServerConfig</a><li>Close()
 : <a class="el" href="classInspSocket.html#Close_28_29">InspSocket</a><li>CloseSocket()
-: <a class="el" href="classuserrec.html#CloseSocket_28_29">userrec</a><li>CommonChannels()
+: <a class="el" href="classuserrec.html#CloseSocket_28_29">userrec</a><li>cmd_mode()
+: <a class="el" href="classcmd__mode.html#cmd_5Fmode_28_29">cmd_mode</a><li>command_t()
+: <a class="el" href="classcommand__t.html#command_5Ft_28std_3A_3Astring_20cmd_2C_20char_20flags_2C_20int_20minpara_29">command_t</a><li>CommonChannels()
 : <a class="el" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server</a><li>compare()
-: <a class="el" href="structirc_1_1irc__char__traits.html#compare_28const_20char_20_2Astr_31_2C_20const_20char_20_2Astr_32_2C_20size_5Ft_20n_29">irc::irc_char_traits</a><li>ConfigReader()
+: <a class="el" href="structirc_1_1irc__char__traits.html#compare_28const_20char_20_2Astr_31_2C_20const_20char_20_2Astr_32_2C_20size_5Ft_20n_29">irc::irc_char_traits</a><li>CompressModes()
+: <a class="el" href="classModeParser.html#CompressModes_28std_3A_3Astring_20modes_2C_20bool_20channelmodes_29">ModeParser</a><li>ConfigReader()
 : <a class="el" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">ConfigReader</a><li>ConfProcess()
 : <a class="el" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ServerConfig</a><li>ConfValue()
 : <a class="el" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ServerConfig</a><li>ConfValueEnum()
@@ -37,7 +40,7 @@
 : <a class="el" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">ModuleFactory</a><li>CullItem()
 : <a class="el" href="classCullItem.html#CullItem_28userrec_20_2Au_2C_20std_3A_3Astring_20r_29">CullItem</a><li>CullList()
 : <a class="el" href="classCullList.html#CullList_28_29">CullList</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 354a939f7943aaabee705205f82bffdf56588d1c..4e43d8f0479d0af5a71f958be94729ddc62772b7 100644 (file)
@@ -5,17 +5,22 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindexHL" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindexHL" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
-<li>DelELine()
+<li>Decrypt()
+: <a class="el" href="classAES.html#Decrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">AES</a><li>DecryptBlock()
+: <a class="el" href="classAES.html#DecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DefDecryptBlock()
+: <a class="el" href="classAES.html#DefDecryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DefEncryptBlock()
+: <a class="el" href="classAES.html#DefEncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>DelELine()
 : <a class="el" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelFd()
 : <a class="el" href="classSocketEngine.html#DelFd_28int_20fd_29">SocketEngine</a><li>DelGLine()
-: <a class="el" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelKLine()
+: <a class="el" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelIOHook()
+: <a class="el" href="classServerConfig.html#DelIOHook_28int_20port_29">ServerConfig</a><li>DelKLine()
 : <a class="el" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server</a><li>DelQLine()
 : <a class="el" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server</a><li>DelSocket()
 : <a class="el" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server</a><li>DelUser()
@@ -37,7 +42,7 @@
 : <a class="el" href="classDNS.html#dns_5Fntoa_34_5Fr_28const_20in_5Faddr_20_2Aconst_20ip_29">DNS</a><li>dns_ntoa4_s()
 : <a class="el" href="classDNS.html#dns_5Fntoa_34_5Fs_28const_20in_5Faddr_20_2Aconst_20ip_2C_20char_20_2Aconst_20result_29">DNS</a><li>DumpErrors()
 : <a class="el" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6d3510385c4d0193516b49cc110913e65a20532d..8dac8fe1f8873d1a7db283eb4f3e5a7f50310372 100644 (file)
@@ -5,14 +5,16 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindexHL" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindexHL" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_e">- e -</a></h3><ul>
-<li>EnumConf()
+<li>Encrypt()
+: <a class="el" href="classAES.html#Encrypt_28char_20const_20_2Ain_2C_20char_20_2Aresult_2C_20size_5Ft_20n_2C_20int_20iMode_3DECB_29">AES</a><li>EncryptBlock()
+: <a class="el" href="classAES.html#EncryptBlock_28char_20const_20_2Ain_2C_20char_20_2Aresult_29">AES</a><li>EnumConf()
 : <a class="el" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">ServerConfig</a><li>Enumerate()
 : <a class="el" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader</a><li>EnumerateValues()
 : <a class="el" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader</a><li>EnumValues()
@@ -24,7 +26,7 @@
 : <a class="el" href="classFileReader.html#Exists_28_29">FileReader</a><li>Extend()
 : <a class="el" href="classExtensible.html#Extend_28std_3A_3Astring_20key_2C_20char_20_2Ap_29">Extensible</a><li>ExtMode()
 : <a class="el" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index fc943467c0a5fb3f0586b353429e35fe86440e5e..b8794425c2b085ee23d53351d7c7f6508fd93060 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindexHL" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindexHL" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 : <a class="el" href="classServer.html#FindDescriptor_28int_20socket_29">Server</a><li>FindModule()
 : <a class="el" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server</a><li>FindNick()
 : <a class="el" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server</a><li>FlushWriteBuf()
-: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>ForwardLookup()
+: <a class="el" href="classuserrec.html#FlushWriteBuf_28_29">userrec</a><li>FlushWriteBuffer()
+: <a class="el" href="classInspSocket.html#FlushWriteBuffer_28_29">InspSocket</a><li>ForwardLookup()
 : <a class="el" href="classDNS.html#ForwardLookup_28std_3A_3Astring_20host_29">DNS</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f9d8ee6a4405264077ae0d01e667705f36275dff..a72d3fa6dbcd4611986ea021502cdbf6890385e4 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindexHL" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindexHL" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -14,7 +14,8 @@
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>Get()
 : <a class="el" href="classBoolSet.html#Get_28int_20number_29">BoolSet</a><li>GetAdmin()
-: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBuffer()
+: <a class="el" href="classServer.html#GetAdmin_28_29">Server</a><li>GetBlockSize()
+: <a class="el" href="classAES.html#GetBlockSize_28_29">AES</a><li>GetBuffer()
 : <a class="el" href="classuserrec.html#GetBuffer_28_29">userrec</a><li>GetConfig()
 : <a class="el" href="classServer.html#GetConfig_28_29">Server</a><li>GetData()
 : <a class="el" href="classEvent.html#GetData_28_29">Event</a>, <a class="el" href="classRequest.html#GetData_28_29">Request</a><li>GetDest()
 : <a class="el" href="classDNS.html#GetFD_28_29">DNS</a><li>GetFullHost()
 : <a class="el" href="classuserrec.html#GetFullHost_28_29">userrec</a><li>GetFullRealHost()
 : <a class="el" href="classuserrec.html#GetFullRealHost_28_29">userrec</a><li>GetInviteList()
-: <a class="el" href="classuserrec.html#GetInviteList_28_29">userrec</a><li>GetIP()
-: <a class="el" href="classInspSocket.html#GetIP_28_29">InspSocket</a><li>GetLine()
+: <a class="el" href="classuserrec.html#GetInviteList_28_29">userrec</a><li>GetIOHook()
+: <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig</a><li>GetIP()
+: <a class="el" href="classInspSocket.html#GetIP_28_29">InspSocket</a><li>GetKeyLength()
+: <a class="el" href="classAES.html#GetKeyLength_28_29">AES</a><li>GetLine()
 : <a class="el" href="classFileReader.html#GetLine_28int_20x_29">FileReader</a><li>GetModeParameter()
 : <a class="el" href="classchanrec.html#GetModeParameter_28char_20mode_29">chanrec</a><li>GetName()
 : <a class="el" href="classSocketEngine.html#GetName_28_29">SocketEngine</a><li>GetNetworkName()
@@ -36,7 +39,8 @@
 : <a class="el" href="classCullItem.html#GetReason_28_29">CullItem</a><li>GetResult()
 : <a class="el" href="classDNS.html#GetResult_28_29">DNS</a><li>GetResultIP()
 : <a class="el" href="classDNS.html#GetResultIP_28_29">DNS</a><li>GetRevision()
-: <a class="el" href="classInspIRCd.html#GetRevision_28_29">InspIRCd</a><li>GetServerDescription()
+: <a class="el" href="classInspIRCd.html#GetRevision_28_29">InspIRCd</a><li>GetRounds()
+: <a class="el" href="classAES.html#GetRounds_28_29">AES</a><li>GetServerDescription()
 : <a class="el" href="classServer.html#GetServerDescription_28_29">Server</a><li>GetServerName()
 : <a class="el" href="classServer.html#GetServerName_28_29">Server</a><li>GetSource()
 : <a class="el" href="classEvent.html#GetSource_28_29">Event</a>, <a class="el" href="classRequest.html#GetSource_28_29">Request</a><li>GetState()
 : <a class="el" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server</a>, <a class="el" href="classchanrec.html#GetUsers_28_29">chanrec</a><li>GetVersion()
 : <a class="el" href="classServer.html#GetVersion_28_29">Server</a>, <a class="el" href="classModule.html#GetVersion_28_29">Module</a><li>GetVersionString()
 : <a class="el" href="classInspIRCd.html#GetVersionString_28_29">InspIRCd</a><li>GetWriteError()
-: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+: <a class="el" href="classuserrec.html#GetWriteError_28_29">userrec</a><li>GiveHops()
+: <a class="el" href="classModeParser.html#GiveHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>GiveOps()
+: <a class="el" href="classModeParser.html#GiveOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>GiveVoice()
+: <a class="el" href="classModeParser.html#GiveVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d1c2625281aa3af8547e9c84c306e70381326849..25a9c99e55917d93aca444a5ee911d88816e488b 100644 (file)
@@ -5,18 +5,19 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindexHL" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindexHL" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
-<li>HasPermission()
-: <a class="el" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">userrec</a><li>HasResult()
+<li>Handle()
+: <a class="el" href="classcmd__mode.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">cmd_mode</a>, <a class="el" href="classcommand__t.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29_3D_30">command_t</a><li>HasPermission()
+: <a class="el" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">userrec</a><li>HasResult()
 : <a class="el" href="classDNS.html#HasResult_28int_20fd_29">DNS</a><li>HostItem()
 : <a class="el" href="classHostItem.html#HostItem_28_29">HostItem</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 26bd00cd09cf97db18533d0d3b92b5a841d14a2a..1428ced291e6265edc308b488befe8d6372ca6c9 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindexHL" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindexHL" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 : <a class="el" href="classInspIRCd.html#InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29">InspIRCd</a><li>InspSocket()
 : <a class="el" href="classInspSocket.html#InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29">InspSocket</a><li>Invert()
 : <a class="el" href="classBoolSet.html#Invert_28int_20number_29">BoolSet</a><li>InviteTo()
-: <a class="el" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">userrec</a><li>IsCustomModeSet()
+: <a class="el" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">userrec</a><li>IsCustomModeSet()
 : <a class="el" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">chanrec</a><li>IsInvited()
-: <a class="el" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">userrec</a><li>IsNick()
+: <a class="el" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">userrec</a><li>IsNick()
 : <a class="el" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server</a><li>IsOnChannel()
 : <a class="el" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server</a><li>IsUlined()
 : <a class="el" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server</a><li>IsValidMask()
 : <a class="el" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server</a><li>IsValidModuleCommand()
 : <a class="el" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a7819edbfc536ad48c7bbd884d4510f9adcd03d2..093c8e29837b66f86bd7f1be97b52a24306d776f 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindexHL" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindexHL" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -14,7 +14,7 @@
 <h3><a class="anchor" name="index_j">- j -</a></h3><ul>
 <li>JoinUserToChannel()
 : <a class="el" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 972a68d09294497c39fd999e379fca2265abf504..43e752c47d64db42f21c12f9f9e73b0b00887146 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindexHL" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindexHL" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -18,7 +18,7 @@
 : <a class="el" href="classInspIRCd.html#LoadModule_28const_20char_20_2Afilename_29">InspIRCd</a><li>Log()
 : <a class="el" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server</a><li>lt()
 : <a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 423e5215417f7e61e70ef1b8288acc6372a19803..43f8eb9f05389e82ae70b0d8ac6ea115e878e925 100644 (file)
@@ -5,19 +5,23 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindexHL" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindexHL" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>MatchText()
+<li>MakeKey()
+: <a class="el" href="classAES.html#MakeKey_28char_20const_20_2Akey_2C_20char_20const_20_2Achain_2C_20int_20keylength_3DDEFAULT_5FBLOCK_5FSIZE_2C_20int_20blockSize_3DDEFAULT_5FBLOCK_5FSIZE_29">AES</a><li>MakeLowerMap()
+: <a class="el" href="classInspIRCd.html#MakeLowerMap_28_29">InspIRCd</a><li>MatchText()
 : <a class="el" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server</a><li>Module()
 : <a class="el" href="classModule.html#Module_28Server_20_2AMe_29">Module</a><li>ModuleError()
 : <a class="el" href="classInspIRCd.html#ModuleError_28_29">InspIRCd</a><li>ModuleFactory()
-: <a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+: <a class="el" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a><li>Mul()
+: <a class="el" href="classAES.html#Mul_28int_20a_2C_20int_20b_29">AES</a><li>Mul4()
+: <a class="el" href="classAES.html#Mul_34_28int_20a_2C_20char_20b_5B_5D_29">AES</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 976019c1b45050d6cef04d6ff3aaa00212252456..d99d928727dbb95ef294bcce96629900da3d5538 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindexHL" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindexHL" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -14,7 +14,7 @@
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
 <li>ne()
 : <a class="el" href="structirc_1_1irc__char__traits.html#ne_28char_20c_31st_2C_20char_20c_32nd_29">irc::irc_char_traits</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 4881460f45e293bda687f04b99179d3cd285ae80..d18bcfc4893a91d28d1fd5a1f363a2292aabc3cd 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindexHL" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindexHL" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 : <a class="el" href="classBoolSet.html#operator_3D_28BoolSet_20other_29">BoolSet</a><li>operator==()
 : <a class="el" href="classBoolSet.html#operator_3D_3D_28BoolSet_20other_29">BoolSet</a><li>operator|()
 : <a class="el" href="classBoolSet.html#operator_7C_28BoolSet_20other_29">BoolSet</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f641d497815ffcc2796e73d7f41724a0a772cc0b..695993316edd7acb195e150f79226fcda7ae8e24 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindexHL" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindexHL" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>PartUserFromChannel()
 : <a class="el" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server</a><li>Poll()
-: <a class="el" href="classInspSocket.html#Poll_28_29">InspSocket</a><li>ProtoSendMetaData()
+: <a class="el" href="classInspSocket.html#Poll_28_29">InspSocket</a><li>ProcessModes()
+: <a class="el" href="classModeParser.html#ProcessModes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">ModeParser</a><li>ProcessModuleUmode()
+: <a class="el" href="classModeParser.html#ProcessModuleUmode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">ModeParser</a><li>ProtoSendMetaData()
 : <a class="el" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module</a><li>ProtoSendMode()
 : <a class="el" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module</a><li>PseudoToUser()
 : <a class="el" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 611969743cbf1511b4c3996784ddef94d1dccddc..11ea7aa89bad5c0005617c94d019c399e2ee94e4 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindexHL" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindexHL" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -14,7 +14,7 @@
 <h3><a class="anchor" name="index_q">- q -</a></h3><ul>
 <li>QuitUser()
 : <a class="el" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2ba0aa88469a9b1b6eb3839019901307d62dd508..bcb7d49bb4f757e288601bb34ef20042ce9137df 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindexHL" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindexHL" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 : <a class="el" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader</a><li>ReadValue()
 : <a class="el" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader</a><li>RehashServer()
 : <a class="el" href="classServer.html#RehashServer_28_29">Server</a><li>RemoveInvite()
-: <a class="el" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">userrec</a><li>Request()
-: <a class="el" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a><li>ReverseLookup()
+: <a class="el" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">userrec</a><li>Request()
+: <a class="el" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a><li>ResetChain()
+: <a class="el" href="classAES.html#ResetChain_28_29">AES</a><li>ReverseLookup()
 : <a class="el" href="classDNS.html#ReverseLookup_28std_3A_3Astring_20ip_29">DNS</a><li>Run()
 : <a class="el" href="classInspIRCd.html#Run_28_29">InspIRCd</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 09cac519e0547eb866880691c55cb58d90b64906..c3a329511f401b8cfdaeb38cd73ad79d0404ed7d 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindexHL" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindexHL" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -25,7 +25,8 @@
 : <a class="el" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server</a><li>SendWallops()
 : <a class="el" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server</a><li>Server()
 : <a class="el" href="classServer.html#Server_28_29">Server</a><li>ServerConfig()
-: <a class="el" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a><li>serverstats()
+: <a class="el" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a><li>ServerMode()
+: <a class="el" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ModeParser</a><li>serverstats()
 : <a class="el" href="classserverstats.html#serverstats_28_29">serverstats</a><li>Set()
 : <a class="el" href="classBoolSet.html#Set_28int_20number_29">BoolSet</a><li>SetCustomMode()
 : <a class="el" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">chanrec</a><li>SetCustomModeParam()
@@ -35,7 +36,7 @@
 : <a class="el" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">userrec</a><li>Shrink()
 : <a class="el" href="classExtensible.html#Shrink_28std_3A_3Astring_20key_29">Extensible</a><li>SocketEngine()
 : <a class="el" href="classSocketEngine.html#SocketEngine_28_29">SocketEngine</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 141a71d81fd736f541a4c9e49a80339f470761c3..1efce41898789489571ba28972e527ece2943863 100644 (file)
@@ -5,16 +5,20 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindexHL" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindexHL" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
-<li>Timeout()
+<li>TakeBan()
+: <a class="el" href="classModeParser.html#TakeBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeHops()
+: <a class="el" href="classModeParser.html#TakeHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeOps()
+: <a class="el" href="classModeParser.html#TakeOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>TakeVoice()
+: <a class="el" href="classModeParser.html#TakeVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">ModeParser</a><li>Timeout()
 : <a class="el" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 20c0bba3c2acccd2c29aa23fdc60bf14139c6f6a..7725007ab92edd4cface868a715ed62e4ed2ad77 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindexHL" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindexHL" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -18,7 +18,7 @@
 : <a class="el" href="classBoolSet.html#Unset_28int_20number_29">BoolSet</a><li>userrec()
 : <a class="el" href="classuserrec.html#userrec_28_29">userrec</a><li>UserToPseudo()
 : <a class="el" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 4095d1e0a9c00f3e2c19c05a45bfb352fc32b880..30db7c9a98362feab19640c12b28215877424641 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindexHL" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindexHL" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -15,7 +15,7 @@
 <li>Verify()
 : <a class="el" href="classConfigReader.html#Verify_28_29">ConfigReader</a><li>Version()
 : <a class="el" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 8b01a4dd659b44348e867184e28b5b1a4ed86bbd..b0713720af33f04fca803d38b77d17384175495f 100644 (file)
@@ -5,8 +5,8 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindexHL" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindexHL" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindex" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
@@ -15,7 +15,7 @@
 <li>Wait()
 : <a class="el" href="classSocketEngine.html#Wait_28std_3A_3Avector_3C_20int_20_3E_20_26fdlist_29">SocketEngine</a><li>Write()
 : <a class="el" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 69bd5df591cbf9020cf89dfcf8022f490623f7f8..ba0048e08e386c49d8d459a8fbabfacc41fb3a40 100644 (file)
@@ -5,16 +5,18 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
-<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindexHL" href="functions_func_0x7e.html#index_~">~</a></div>
+<div class="qindex"> | <a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
+<div class="qindex"><a class="qindex" href="functions_func.html#index_a">a</a> | <a class="qindex" href="functions_func_0x62.html#index_b">b</a> | <a class="qindex" href="functions_func_0x63.html#index_c">c</a> | <a class="qindex" href="functions_func_0x64.html#index_d">d</a> | <a class="qindex" href="functions_func_0x65.html#index_e">e</a> | <a class="qindex" href="functions_func_0x66.html#index_f">f</a> | <a class="qindex" href="functions_func_0x67.html#index_g">g</a> | <a class="qindex" href="functions_func_0x68.html#index_h">h</a> | <a class="qindex" href="functions_func_0x69.html#index_i">i</a> | <a class="qindex" href="functions_func_0x6a.html#index_j">j</a> | <a class="qindex" href="functions_func_0x6c.html#index_l">l</a> | <a class="qindex" href="functions_func_0x6d.html#index_m">m</a> | <a class="qindex" href="functions_func_0x6e.html#index_n">n</a> | <a class="qindex" href="functions_func_0x6f.html#index_o">o</a> | <a class="qindex" href="functions_func_0x70.html#index_p">p</a> | <a class="qindex" href="functions_func_0x71.html#index_q">q</a> | <a class="qindex" href="functions_func_0x72.html#index_r">r</a> | <a class="qindex" href="functions_func_0x73.html#index_s">s</a> | <a class="qindex" href="functions_func_0x74.html#index_t">t</a> | <a class="qindex" href="functions_func_0x75.html#index_u">u</a> | <a class="qindex" href="functions_func_0x76.html#index_v">v</a> | <a class="qindex" href="functions_func_0x77.html#index_w">w</a> | <a class="qindex" href="functions_func_0x78.html#index_x">x</a> | <a class="qindexHL" href="functions_func_0x7e.html#index_~">~</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
-<li>~chanrec()
+<li>~AES()
+: <a class="el" href="classAES.html#_7EAES_28_29">AES</a><li>~chanrec()
 : <a class="el" href="classchanrec.html#_7Echanrec_28_29">chanrec</a><li>~classbase()
-: <a class="el" href="classclassbase.html#_7Eclassbase_28_29">classbase</a><li>~ConfigReader()
+: <a class="el" href="classclassbase.html#_7Eclassbase_28_29">classbase</a><li>~command_t()
+: <a class="el" href="classcommand__t.html#_7Ecommand_5Ft_28_29">command_t</a><li>~ConfigReader()
 : <a class="el" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader</a><li>~DNS()
 : <a class="el" href="classDNS.html#_7EDNS_28_29">DNS</a><li>~FileReader()
 : <a class="el" href="classFileReader.html#_7EFileReader_28_29">FileReader</a><li>~HostItem()
@@ -27,7 +29,7 @@
 : <a class="el" href="classSocketEngine.html#_7ESocketEngine_28_29">SocketEngine</a><li>~ucrec()
 : <a class="el" href="classucrec.html#_7Eucrec_28_29">ucrec</a><li>~userrec()
 : <a class="el" href="classuserrec.html#_7Euserrec_28_29">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c4ef6f30a892cd2b5755ecc91635d17b07516ce1..c01ba521b4ff6be65dc515e6c40937ae3cb6f3d9 100644 (file)
@@ -5,14 +5,15 @@
 </head><body>
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
-<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_vars.html">Variables</a></div>
+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_vars.html">Variables</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div>
 <div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_h">h</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_u">u</a> | <a class="qindex" href="#index_w">w</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
-<li>addr
+<li>a
+: <a class="el" href="classAES.html#a_5BMAX_5FBC_5D">AES</a><li>addr
 : <a class="el" href="classInspSocket.html#addr">InspSocket</a><li>addrs
 : <a class="el" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">ServerConfig</a><li>addy
 : <a class="el" href="classInspSocket.html#addy">InspSocket</a><li>AdminEmail
 : <a class="el" href="classchanrec.html#bans">chanrec</a><li>binarymodes
 : <a class="el" href="classchanrec.html#binarymodes">chanrec</a><li>binip
 : <a class="el" href="classDNS.html#binip">DNS</a><li>bits
-: <a class="el" href="classBoolSet.html#bits">BoolSet</a><li>Build
+: <a class="el" href="classBoolSet.html#bits">BoolSet</a><li>BoundPortCount
+: <a class="el" href="classserverstats.html#BoundPortCount">serverstats</a><li>Buffer
+: <a class="el" href="classInspSocket.html#Buffer">InspSocket</a><li>Build
 : <a class="el" href="classVersion.html#Build">Version</a><li>bytes_in
 : <a class="el" href="classconnection.html#bytes_5Fin">connection</a><li>bytes_out
 : <a class="el" href="classconnection.html#bytes_5Fout">connection</a></ul>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
 <li>cache
 : <a class="el" href="classConfigReader.html#cache">ConfigReader</a><li>channel
-: <a class="el" href="classInvited.html#channel_5BCHANMAX_5D">Invited</a>, <a class="el" href="classucrec.html#channel">ucrec</a>, <a class="el" href="classModeParameter.html#channel_5BCHANMAX_5D">ModeParameter</a><li>chans
+: <a class="el" href="classInvited.html#channel">Invited</a>, <a class="el" href="classucrec.html#channel">ucrec</a>, <a class="el" href="classModeParameter.html#channel_5BCHANMAX_5D">ModeParameter</a><li>chans
 : <a class="el" href="classuserrec.html#chans">userrec</a><li>Classes
 : <a class="el" href="classServerConfig.html#Classes">ServerConfig</a><li>client
 : <a class="el" href="classInspSocket.html#client">InspSocket</a><li>cmds_in
 : <a class="el" href="classconnection.html#cmds_5Fin">connection</a><li>cmds_out
 : <a class="el" href="classconnection.html#cmds_5Fout">connection</a><li>command
-: <a class="el" href="classcommand__t.html#command_5BMAXBUF_5D">command_t</a><li>config_f
+: <a class="el" href="classcommand__t.html#command">command_t</a><li>config_f
 : <a class="el" href="classServerConfig.html#config_5Ff">ServerConfig</a><li>created
 : <a class="el" href="classchanrec.html#created">chanrec</a><li>custom_modes
 : <a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">chanrec</a></ul>
 : <a class="el" href="classuserrec.html#flood">userrec</a>, <a class="el" href="classConnectClass.html#flood">ConnectClass</a><li>fullname
 : <a class="el" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">userrec</a></ul>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
-<li>handler_function
-: <a class="el" href="classcommand__t.html#handler_5Ffunction">command_t</a><li>haspassed
+<li>haspassed
 : <a class="el" href="classconnection.html#haspassed">connection</a><li>host
 : <a class="el" href="classWhoWasUser.html#host_5B_31_36_30_5D">WhoWasUser</a>, <a class="el" href="classConnectClass.html#host_5BMAXBUF_5D">ConnectClass</a>, <a class="el" href="classInspSocket.html#host">InspSocket</a>, <a class="el" href="classconnection.html#host_5B_31_36_30_5D">connection</a><li>hostmask
 : <a class="el" href="classELine.html#hostmask_5B_32_30_30_5D">ELine</a>, <a class="el" href="classGLine.html#hostmask_5B_32_30_30_5D">GLine</a>, <a class="el" href="classKLine.html#hostmask_5B_32_30_30_5D">KLine</a></ul>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
 <li>ibuf
-: <a class="el" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">InspSocket</a><li>id
+: <a class="el" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">InspSocket</a><li>id
 : <a class="el" href="classEvent.html#id">Event</a><li>ident
 : <a class="el" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">userrec</a><li>idle_lastmsg
 : <a class="el" href="classconnection.html#idle_5Flastmsg">connection</a><li>include_stack
 : <a class="el" href="classServerConfig.html#include_5Fstack">ServerConfig</a><li>internal_userlist
 : <a class="el" href="classchanrec.html#internal_5Fuserlist">chanrec</a><li>invites
-: <a class="el" href="classuserrec.html#invites">userrec</a><li>IP
-: <a class="el" href="classInspSocket.html#IP">InspSocket</a><li>ip
-: <a class="el" href="structdns__ip4list.html#ip">dns_ip4list</a>, <a class="el" href="classconnection.html#ip_5B_31_36_5D">connection</a><li>ipaddr
+: <a class="el" href="classuserrec.html#invites">userrec</a><li>IOHookModule
+: <a class="el" href="classServerConfig.html#IOHookModule">ServerConfig</a><li>ip
+: <a class="el" href="structdns__ip4list.html#ip">dns_ip4list</a>, <a class="el" href="classconnection.html#ip_5B_31_36_5D">connection</a><li>IP
+: <a class="el" href="classInspSocket.html#IP">InspSocket</a><li>ipaddr
 : <a class="el" href="classZLine.html#ipaddr_5B_34_30_5D">ZLine</a><li>is_global
 : <a class="el" href="classQLine.html#is_5Fglobal">QLine</a>, <a class="el" href="classZLine.html#is_5Fglobal">ZLine</a></ul>
 <h3><a class="anchor" name="index_k">- k -</a></h3><ul>
 : <a class="el" href="classServerConfig.html#log_5Ffile">ServerConfig</a><li>LogLevel
 : <a class="el" href="classServerConfig.html#LogLevel">ServerConfig</a></ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
-<li>Major
+<li>m_bKeyInit
+: <a class="el" href="classAES.html#m_5FbKeyInit">AES</a><li>m_blockSize
+: <a class="el" href="classAES.html#m_5FblockSize">AES</a><li>m_chain
+: <a class="el" href="classAES.html#m_5Fchain_5BMAX_5FBLOCK_5FSIZE_5D">AES</a><li>m_chain0
+: <a class="el" href="classAES.html#m_5Fchain_30_5BMAX_5FBLOCK_5FSIZE_5D">AES</a><li>m_iROUNDS
+: <a class="el" href="classAES.html#m_5FiROUNDS">AES</a><li>m_Kd
+: <a class="el" href="classAES.html#m_5FKd_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">AES</a><li>m_Ke
+: <a class="el" href="classAES.html#m_5FKe_5BMAX_5FROUNDS_2B_31_5D_5BMAX_5FBC_5D">AES</a><li>m_keylength
+: <a class="el" href="classAES.html#m_5Fkeylength">AES</a><li>Major
 : <a class="el" href="classVersion.html#Major">Version</a><li>MaxConn
 : <a class="el" href="classServerConfig.html#MaxConn">ServerConfig</a><li>MaxWhoResults
 : <a class="el" href="classServerConfig.html#MaxWhoResults">ServerConfig</a><li>min_params
 : <a class="el" href="classcommand__t.html#min_5Fparams">command_t</a><li>Minor
 : <a class="el" href="classVersion.html#Minor">Version</a><li>mode
 : <a class="el" href="classModeParameter.html#mode">ModeParameter</a><li>modechar
-: <a class="el" href="classExtMode.html#modechar">ExtMode</a><li>MODERR
+: <a class="el" href="classExtMode.html#modechar">ExtMode</a><li>ModeGrok
+: <a class="el" href="classInspIRCd.html#ModeGrok">InspIRCd</a><li>MODERR
 : <a class="el" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">InspIRCd</a><li>modes
 : <a class="el" href="classuserrec.html#modes_5B_35_34_5D">userrec</a><li>ModPath
 : <a class="el" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ServerConfig</a><li>module_names
-: <a class="el" href="classServerConfig.html#module_5Fnames">ServerConfig</a><li>motd
-: <a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">ServerConfig</a><li>MOTD
-: <a class="el" href="classServerConfig.html#MOTD">ServerConfig</a><li>MyExecutable
+: <a class="el" href="classServerConfig.html#module_5Fnames">ServerConfig</a><li>MOTD
+: <a class="el" href="classServerConfig.html#MOTD">ServerConfig</a><li>motd
+: <a class="el" href="classServerConfig.html#motd_5BMAXBUF_5D">ServerConfig</a><li>MyExecutable
 : <a class="el" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">ServerConfig</a><li>myfd
 : <a class="el" href="classDNS.html#myfd">DNS</a></ul>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
 <li>n_matches
-: <a class="el" href="classXLine.html#n_5Fmatches">XLine</a><li>name
-: <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec</a><li>Name
-: <a class="el" href="classAdmin.html#Name">Admin</a><li>needsoper
+: <a class="el" href="classXLine.html#n_5Fmatches">XLine</a><li>Name
+: <a class="el" href="classAdmin.html#Name">Admin</a><li>name
+: <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec</a><li>needsoper
 : <a class="el" href="classExtMode.html#needsoper">ExtMode</a><li>NetBufferSize
 : <a class="el" href="classServerConfig.html#NetBufferSize">ServerConfig</a><li>Network
 : <a class="el" href="classServerConfig.html#Network_5BMAXBUF_5D">ServerConfig</a><li>next
-: <a class="el" href="structdns__ip4list.html#next">dns_ip4list</a><li>nick
-: <a class="el" href="classQLine.html#nick_5B_36_34_5D">QLine</a>, <a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#nick_5BNICKMAX_5D">userrec</a><li>Nick
-: <a class="el" href="classAdmin.html#Nick">Admin</a><li>nofork
+: <a class="el" href="structdns__ip4list.html#next">dns_ip4list</a><li>Nick
+: <a class="el" href="classAdmin.html#Nick">Admin</a><li>nick
+: <a class="el" href="classQLine.html#nick_5B_36_34_5D">QLine</a>, <a class="el" href="classWhoWasUser.html#nick_5BNICKMAX_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#nick_5BNICKMAX_5D">userrec</a><li>nofork
 : <a class="el" href="classServerConfig.html#nofork">ServerConfig</a><li>nping
 : <a class="el" href="classconnection.html#nping">connection</a></ul>
 <h3><a class="anchor" name="index_o">- o -</a></h3><ul>
 <li>parameter
 : <a class="el" href="classModeParameter.html#parameter_5BMAXBUF_5D">ModeParameter</a><li>params_when_off
 : <a class="el" href="classExtMode.html#params_5Fwhen_5Foff">ExtMode</a><li>params_when_on
-: <a class="el" href="classExtMode.html#params_5Fwhen_5Fon">ExtMode</a><li>pass
+: <a class="el" href="classExtMode.html#params_5Fwhen_5Fon">ExtMode</a><li>Parser
+: <a class="el" href="classInspIRCd.html#Parser">InspIRCd</a><li>pass
 : <a class="el" href="classConnectClass.html#pass_5BMAXBUF_5D">ConnectClass</a><li>password
 : <a class="el" href="classuserrec.html#password_5BMAXBUF_5D">userrec</a><li>PID
 : <a class="el" href="classServerConfig.html#PID_5B_31_30_32_34_5D">ServerConfig</a><li>pingmax
 : <a class="el" href="classuserrec.html#reset_5Fdue">userrec</a><li>restartpass
 : <a class="el" href="classServerConfig.html#restartpass_5BMAXBUF_5D">ServerConfig</a><li>result
 : <a class="el" href="classDNS.html#result">DNS</a><li>Revision
-: <a class="el" href="classVersion.html#Revision">Version</a><li>rules
-: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a><li>RULES
-: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a></ul>
+: <a class="el" href="classVersion.html#Revision">Version</a><li>RULES
+: <a class="el" href="classServerConfig.html#RULES">ServerConfig</a><li>rules
+: <a class="el" href="classServerConfig.html#rules_5BMAXBUF_5D">ServerConfig</a></ul>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
-<li>sendq
+<li>SE
+: <a class="el" href="classInspIRCd.html#SE">InspIRCd</a><li>sendq
 : <a class="el" href="classuserrec.html#sendq">userrec</a><li>sendqmax
 : <a class="el" href="classuserrec.html#sendqmax">userrec</a>, <a class="el" href="classConnectClass.html#sendqmax">ConnectClass</a><li>server
 : <a class="el" href="classWhoWasUser.html#server_5B_32_35_36_5D">WhoWasUser</a>, <a class="el" href="classuserrec.html#server">userrec</a>, <a class="el" href="classInspSocket.html#server">InspSocket</a><li>ServerDesc
 : <a class="el" href="classHostItem.html#set_5Fby_5BNICKMAX_5D">HostItem</a><li>set_time
 : <a class="el" href="classXLine.html#set_5Ftime">XLine</a>, <a class="el" href="classHostItem.html#set_5Ftime">HostItem</a><li>setby
 : <a class="el" href="classchanrec.html#setby_5BNICKMAX_5D">chanrec</a><li>signon
-: <a class="el" href="classWhoWasUser.html#signon">WhoWasUser</a>, <a class="el" href="classconnection.html#signon">connection</a><li>SoftLimit
+: <a class="el" href="classWhoWasUser.html#signon">WhoWasUser</a>, <a class="el" href="classconnection.html#signon">connection</a><li>sm_alog
+: <a class="el" href="classAES.html#sm_5Falog_5B_32_35_36_5D">AES</a><li>sm_chain0
+: <a class="el" href="classAES.html#sm_5Fchain_30">AES</a><li>sm_log
+: <a class="el" href="classAES.html#sm_5Flog_5B_32_35_36_5D">AES</a><li>sm_rcon
+: <a class="el" href="classAES.html#sm_5Frcon_5B_33_30_5D">AES</a><li>sm_S
+: <a class="el" href="classAES.html#sm_5FS_5B_32_35_36_5D">AES</a><li>sm_shifts
+: <a class="el" href="classAES.html#sm_5Fshifts_5B_33_5D_5B_34_5D_5B_32_5D">AES</a><li>sm_Si
+: <a class="el" href="classAES.html#sm_5FSi_5B_32_35_36_5D">AES</a><li>sm_T1
+: <a class="el" href="classAES.html#sm_5FT_31_5B_32_35_36_5D">AES</a><li>sm_T2
+: <a class="el" href="classAES.html#sm_5FT_32_5B_32_35_36_5D">AES</a><li>sm_T3
+: <a class="el" href="classAES.html#sm_5FT_33_5B_32_35_36_5D">AES</a><li>sm_T4
+: <a class="el" href="classAES.html#sm_5FT_34_5B_32_35_36_5D">AES</a><li>sm_T5
+: <a class="el" href="classAES.html#sm_5FT_35_5B_32_35_36_5D">AES</a><li>sm_T6
+: <a class="el" href="classAES.html#sm_5FT_36_5B_32_35_36_5D">AES</a><li>sm_T7
+: <a class="el" href="classAES.html#sm_5FT_37_5B_32_35_36_5D">AES</a><li>sm_T8
+: <a class="el" href="classAES.html#sm_5FT_38_5B_32_35_36_5D">AES</a><li>sm_U1
+: <a class="el" href="classAES.html#sm_5FU_31_5B_32_35_36_5D">AES</a><li>sm_U2
+: <a class="el" href="classAES.html#sm_5FU_32_5B_32_35_36_5D">AES</a><li>sm_U3
+: <a class="el" href="classAES.html#sm_5FU_33_5B_32_35_36_5D">AES</a><li>sm_U4
+: <a class="el" href="classAES.html#sm_5FU_34_5B_32_35_36_5D">AES</a><li>SoftLimit
 : <a class="el" href="classServerConfig.html#SoftLimit">ServerConfig</a><li>source
-: <a class="el" href="classXLine.html#source_5B_32_35_36_5D">XLine</a>, <a class="el" href="classEvent.html#source">Event</a>, <a class="el" href="classRequest.html#source">Request</a>, <a class="el" href="classcommand__t.html#source_5BMAXBUF_5D">command_t</a><li>startup_time
+: <a class="el" href="classXLine.html#source_5B_32_35_36_5D">XLine</a>, <a class="el" href="classEvent.html#source">Event</a>, <a class="el" href="classRequest.html#source">Request</a>, <a class="el" href="classcommand__t.html#source">command_t</a><li>startup_time
 : <a class="el" href="classInspIRCd.html#startup_5Ftime">InspIRCd</a><li>state
-: <a class="el" href="classInspSocket.html#state">InspSocket</a><li>statsAccept
+: <a class="el" href="classInspSocket.html#state">InspSocket</a><li>stats
+: <a class="el" href="classInspIRCd.html#stats">InspIRCd</a><li>statsAccept
 : <a class="el" href="classserverstats.html#statsAccept">serverstats</a><li>statsCollisions
 : <a class="el" href="classserverstats.html#statsCollisions">serverstats</a><li>statsConnects
 : <a class="el" href="classserverstats.html#statsConnects">serverstats</a><li>statsDns
 : <a class="el" href="classserverstats.html#statsUnknown">serverstats</a></ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>t
-: <a class="el" href="classDNS.html#t">DNS</a><li>threshold
+: <a class="el" href="classDNS.html#t">DNS</a>, <a class="el" href="classAES.html#t_5BMAX_5FBC_5D">AES</a><li>threshold
 : <a class="el" href="classuserrec.html#threshold">userrec</a>, <a class="el" href="classConnectClass.html#threshold">ConnectClass</a><li>timeout
 : <a class="el" href="classuserrec.html#timeout">userrec</a>, <a class="el" href="classInspSocket.html#timeout">InspSocket</a><li>timeout_end
-: <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket</a><li>topic
+: <a class="el" href="classInspSocket.html#timeout_5Fend">InspSocket</a><li>tk
+: <a class="el" href="classAES.html#tk_5BMAX_5FKC_5D">AES</a><li>topic
 : <a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">chanrec</a><li>topicset
 : <a class="el" href="classchanrec.html#topicset">chanrec</a><li>total_bytes
 : <a class="el" href="classcommand__t.html#total_5Fbytes">command_t</a><li>ts
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
 <li>WriteError
 : <a class="el" href="classuserrec.html#WriteError">userrec</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9625909b5d1f2c3a5a3c6ea0bb12a602c72e0620..33bf34fbf6769352e435fd28cbc954a12eb7dbe4 100644 (file)
@@ -24,26 +24,26 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="modules_8h.html#AC_5FVOICE">modules.h</a><li>ACR_ALLOW
 : <a class="el" href="modules_8h.html#ACR_5FALLOW">modules.h</a><li>ACR_DEFAULT
 : <a class="el" href="modules_8h.html#ACR_5FDEFAULT">modules.h</a><li>ACR_DENY
-: <a class="el" href="modules_8h.html#ACR_5FDENY">modules.h</a><li>add_ban()
-: <a class="el" href="mode_8h.html#add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>add_channel()
+: <a class="el" href="modules_8h.html#ACR_5FDENY">modules.h</a><li>add_channel()
 : <a class="el" href="channels_8h.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">channels.h</a>, <a class="el" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">channels.cpp</a><li>add_eline()
 : <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_gline()
 : <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_kline()
 : <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_qline()
 : <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">xline.h</a><li>add_zline()
-: <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">xline.h</a><li>AddOper()
-: <a class="el" href="inspircd_8h.html#AddOper_28userrec_20_2Auser_29">inspircd.h</a><li>address_cache
+: <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">xline.h</a><li>AddClient()
+: <a class="el" href="users_8h.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">users.h</a>, <a class="el" href="users_8cpp.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">users.cpp</a><li>AddOper()
+: <a class="el" href="users_8h.html#AddOper_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#AddOper_28userrec_20_2Auser_29">users.cpp</a><li>address_cache
 : <a class="el" href="typedefs_8h.html#address_5Fcache">typedefs.h</a><li>AddServerName()
 : <a class="el" href="inspircd_8h.html#AddServerName_28std_3A_3Astring_20servername_29">inspircd.h</a><li>AddWhoWas()
-: <a class="el" href="inspircd_8h.html#AddWhoWas_28userrec_20_2Au_29">inspircd.h</a><li>allowed_umode()
-: <a class="el" href="mode_8h.html#allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29">mode.h</a><li>APPLY_ALL
+: <a class="el" href="users_8h.html#AddWhoWas_28userrec_20_2Au_29">users.h</a>, <a class="el" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">users.cpp</a><li>all_opers
+: <a class="el" href="users_8cpp.html#all_5Fopers">users.cpp</a><li>APPLY_ALL
 : <a class="el" href="xline_8h.html#APPLY_5FALL">xline.h</a><li>APPLY_GLINES
 : <a class="el" href="xline_8h.html#APPLY_5FGLINES">xline.h</a><li>APPLY_KLINES
 : <a class="el" href="xline_8h.html#APPLY_5FKLINES">xline.h</a><li>apply_lines()
 : <a class="el" href="xline_8h.html#apply_5Flines_28const_20int_20What_29">xline.h</a><li>APPLY_QLINES
 : <a class="el" href="xline_8h.html#APPLY_5FQLINES">xline.h</a><li>APPLY_ZLINES
 : <a class="el" href="xline_8h.html#APPLY_5FZLINES">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 919c022943a3585c3d10d25e3207dea98584e88d..7f8f96ae23d8fd0f2b7b69bac7c01102cf06dabd 100644 (file)
@@ -16,9 +16,8 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="channels_8h.html#BanList">channels.h</a><li>BindPorts()
 : <a class="el" href="inspircd__io_8h.html#BindPorts_28_29">inspircd_io.h</a><li>BindSocket()
 : <a class="el" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">inspircd_io.h</a><li>Blocking()
-: <a class="el" href="message_8h.html#Blocking_28int_20s_29">message.h</a><li>boundPortCount
-: <a class="el" href="socket_8cpp.html#boundPortCount">socket.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="message_8h.html#Blocking_28int_20s_29">message.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 765d32c91e83a2ec858b2f304a1244ff47a4f09e..9442872857a0e2ad4f36f7042bef21e26a4f2827 100644 (file)
@@ -13,8 +13,7 @@ Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
 <li>c_count()
-: <a class="el" href="message_8h.html#c_5Fcount_28userrec_20_2Au_29">message.h</a><li>call_handler()
-: <a class="el" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>CC_ALLOW
+: <a class="el" href="message_8h.html#c_5Fcount_28userrec_20_2Au_29">message.h</a><li>CC_ALLOW
 : <a class="el" href="users_8h.html#CC_5FALLOW">users.h</a><li>CC_DENY
 : <a class="el" href="users_8h.html#CC_5FDENY">users.h</a><li>chan_hash
 : <a class="el" href="typedefs_8h.html#chan_5Fhash">typedefs.h</a><li>ChanExceptSender()
@@ -28,8 +27,9 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="message_8h.html#chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29">message.h</a><li>chop()
 : <a class="el" href="message_8h.html#chop_28char_20_2Astr_29">message.h</a><li>ClassVector
 : <a class="el" href="users_8h.html#ClassVector">users.h</a><li>CleanAndResolve()
-: <a class="el" href="message_8h.html#CleanAndResolve_28char_20_2AresolvedHost_2C_20const_20char_20_2AunresolvedHost_29">message.h</a><li>clientlist
-: <a class="el" href="modules_8cpp.html#clientlist">modules.cpp</a><li>CM_INVITEONLY
+: <a class="el" href="message_8h.html#CleanAndResolve_28char_20_2AresolvedHost_2C_20const_20char_20_2AunresolvedHost_29">message.h</a><li>CleanFilename()
+: <a class="el" href="commands_8h.html#CleanFilename_28char_20_2Aname_29">commands.h</a><li>clientlist
+: <a class="el" href="users_8cpp.html#clientlist">users.cpp</a>, <a class="el" href="modules_8cpp.html#clientlist">modules.cpp</a><li>CM_INVITEONLY
 : <a class="el" href="channels_8h.html#CM_5FINVITEONLY">channels.h</a><li>CM_MODERATED
 : <a class="el" href="channels_8h.html#CM_5FMODERATED">channels.h</a><li>CM_NOEXTERNAL
 : <a class="el" href="channels_8h.html#CM_5FNOEXTERNAL">channels.h</a><li>CM_PRIVATE
@@ -38,18 +38,18 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="channels_8h.html#CM_5FTOPICLOCK">channels.h</a><li>cmdlist
 : <a class="el" href="modules_8cpp.html#cmdlist">modules.cpp</a><li>cmode()
 : <a class="el" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">message.h</a>, <a class="el" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">globals.h</a><li>command_table
-: <a class="el" href="typedefs_8h.html#command_5Ftable">typedefs.h</a><li>common_channels()
+: <a class="el" href="ctables_8h.html#command_5Ftable">ctables.h</a><li>common_channels()
 : <a class="el" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">message.h</a>, <a class="el" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">globals.h</a><li>CONF_FILE_NOT_FOUND
 : <a class="el" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">modules.h</a><li>CONF_NOT_A_NUMBER
 : <a class="el" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">modules.h</a><li>CONF_NOT_UNSIGNED
 : <a class="el" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">modules.h</a><li>CONF_VALUE_NOT_FOUND
 : <a class="el" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">modules.h</a><li>Config
 : <a class="el" href="users_8cpp.html#Config">users.cpp</a>, <a class="el" href="modules_8cpp.html#Config">modules.cpp</a>, <a class="el" href="channels_8cpp.html#Config">channels.cpp</a><li>ConnectUser()
-: <a class="el" href="inspircd_8h.html#ConnectUser_28userrec_20_2Auser_29">inspircd.h</a><li>createcommand()
-: <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">modules.h</a><li>cstatus()
+: <a class="el" href="users_8h.html#ConnectUser_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#ConnectUser_28userrec_20_2Auser_29">users.cpp</a><li>ConvToStr()
+: <a class="el" href="users_8h.html#ConvToStr_28const_20T_20_26in_29">users.h</a>, <a class="el" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">users.cpp</a><li>cstatus()
 : <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">message.h</a><li>custom_mode_params
 : <a class="el" href="channels_8cpp.html#custom_5Fmode_5Fparams">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c1cbda21e116c9046a8b8fb3d237fe8959b90ce3..e03404410a74f207b1e99bde29cbc7edf9f47197 100644 (file)
@@ -22,13 +22,13 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">xline.h</a><li>del_qline()
 : <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">xline.h</a><li>del_zline()
 : <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">xline.h</a><li>DeleteOper()
-: <a class="el" href="inspircd_8h.html#DeleteOper_28userrec_20_2Auser_29">inspircd.h</a><li>dns_task()
-: <a class="el" href="inspircd_8h.html#dns_5Ftask_28void_20_2Aarg_29">inspircd.h</a><li>do_whois()
+: <a class="el" href="users_8h.html#DeleteOper_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#DeleteOper_28userrec_20_2Auser_29">users.cpp</a><li>dns_task()
+: <a class="el" href="dns_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns.h</a><li>do_whois()
 : <a class="el" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">commands.h</a><li>DoAddExtendedMode()
 : <a class="el" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">modules.cpp</a><li>DoBackgroundUserStuff()
 : <a class="el" href="userprocess_8h.html#DoBackgroundUserStuff_28time_5Ft_20TIME_29">userprocess.h</a><li>duration()
 : <a class="el" href="commands_8h.html#duration_28const_20char_20_2Astr_29">commands.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d68d6edc369a3044dc523d840e7eb124c2da53d4..4d7f52f1b27ed711694f8d9bc90d0bc9d074c9fc 100644 (file)
@@ -21,7 +21,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="xline_8h.html#expire_5Flines_28_29">xline.h</a><li>ExtModeList
 : <a class="el" href="typedefs_8h.html#ExtModeList">typedefs.h</a><li>ExtModeListIter
 : <a class="el" href="typedefs_8h.html#ExtModeListIter">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d6190c77c1c0632cf4c7c89d02f8695467fbb913..8d00787b325c9ff915f78e5ed753d7cc3fb43151 100644 (file)
@@ -13,21 +13,22 @@ Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>factory
-: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>FALSE
+: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#factory">users.cpp</a>, <a class="el" href="modules_8cpp.html#factory">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>FALSE
 : <a class="el" href="inspircd_8h.html#FALSE">inspircd.h</a><li>FD_MAGIC_NUMBER
 : <a class="el" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">modules.h</a><li>fd_ref_table
-: <a class="el" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">modules.cpp</a><li>file_cache
+: <a class="el" href="users_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">users.cpp</a>, <a class="el" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">modules.cpp</a><li>file_cache
 : <a class="el" href="typedefs_8h.html#file_5Fcache">typedefs.h</a>, <a class="el" href="modules_8h.html#file_5Fcache">modules.h</a>, <a class="el" href="globals_8h.html#file_5Fcache">globals.h</a><li>FileExists()
 : <a class="el" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">inspircd_io.h</a><li>Find()
 : <a class="el" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">globals.h</a><li>FindChan()
 : <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">globals.h</a><li>FindServerNamePtr()
 : <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">inspircd.h</a><li>force_nickchange()
-: <a class="el" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">inspircd.h</a><li>ForceChan()
+: <a class="el" href="users_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">users.h</a>, <a class="el" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">users.cpp</a><li>ForceChan()
 : <a class="el" href="channels_8cpp.html#ForceChan_28chanrec_20_2APtr_2C_20ucrec_20_26a_2C_20userrec_20_2Auser_2C_20int_20created_29">channels.cpp</a><li>FOREACH_MOD
 : <a class="el" href="modules_8h.html#FOREACH_5FMOD">modules.h</a><li>FOREACH_RESULT
-: <a class="el" href="modules_8h.html#FOREACH_5FRESULT_28x_29">modules.h</a><li>FullConnectUser()
-: <a class="el" href="inspircd_8h.html#FullConnectUser_28userrec_20_2Auser_29">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="modules_8h.html#FOREACH_5FRESULT_28x_29">modules.h</a><li>from64tobits()
+: <a class="el" href="aes_8h.html#from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29">aes.h</a><li>FullConnectUser()
+: <a class="el" href="users_8h.html#FullConnectUser_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">users.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 248d9abe6cc154be9c666dc4f0bf56ef8b21bedf..60f8884d7654b86adc09669f55f0f188a1cd610f 100644 (file)
@@ -17,12 +17,9 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="globals_8h.html#getadminname_28_29">globals.h</a><li>getadminnick()
 : <a class="el" href="globals_8h.html#getadminnick_28_29">globals.h</a><li>getnetworkname()
 : <a class="el" href="globals_8h.html#getnetworkname_28_29">globals.h</a><li>getservername()
-: <a class="el" href="globals_8h.html#getservername_28_29">globals.h</a><li>give_hops()
-: <a class="el" href="mode_8h.html#give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>give_ops()
-: <a class="el" href="mode_8h.html#give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>give_voice()
-: <a class="el" href="mode_8h.html#give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>gline_set_creation_time()
+: <a class="el" href="globals_8h.html#getservername_28_29">globals.h</a><li>gline_set_creation_time()
 : <a class="el" href="xline_8h.html#gline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9cc8414fde52b551bf62c775fd62a9092cba46c7..98e360dd8a739dfa786721ddd1f1c23feecb8c6a 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
-<li>handle_admin()
-: <a class="el" href="commands_8h.html#handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_away()
-: <a class="el" href="commands_8h.html#handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_commands()
-: <a class="el" href="commands_8h.html#handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_connect()
-: <a class="el" href="commands_8h.html#handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_die()
-: <a class="el" href="commands_8h.html#handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_eline()
-: <a class="el" href="commands_8h.html#handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_gline()
-: <a class="el" href="commands_8h.html#handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_info()
-: <a class="el" href="commands_8h.html#handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_invite()
-: <a class="el" href="commands_8h.html#handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_ison()
-: <a class="el" href="commands_8h.html#handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_join()
-: <a class="el" href="commands_8h.html#handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kick()
-: <a class="el" href="commands_8h.html#handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kill()
-: <a class="el" href="commands_8h.html#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kline()
-: <a class="el" href="commands_8h.html#handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_links()
-: <a class="el" href="commands_8h.html#handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_list()
-: <a class="el" href="commands_8h.html#handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_loadmodule()
-: <a class="el" href="commands_8h.html#handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_lusers()
-: <a class="el" href="commands_8h.html#handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_map()
-: <a class="el" href="commands_8h.html#handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_mode()
-: <a class="el" href="mode_8h.html#handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>handle_modules()
-: <a class="el" href="commands_8h.html#handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_motd()
-: <a class="el" href="commands_8h.html#handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_names()
-: <a class="el" href="commands_8h.html#handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_nick()
-: <a class="el" href="commands_8h.html#handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_notice()
-: <a class="el" href="commands_8h.html#handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_oper()
-: <a class="el" href="commands_8h.html#handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_part()
-: <a class="el" href="commands_8h.html#handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_pass()
-: <a class="el" href="commands_8h.html#handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_ping()
-: <a class="el" href="commands_8h.html#handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_pong()
-: <a class="el" href="commands_8h.html#handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_privmsg()
-: <a class="el" href="commands_8h.html#handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_qline()
-: <a class="el" href="commands_8h.html#handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_quit()
-: <a class="el" href="commands_8h.html#handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_rehash()
-: <a class="el" href="commands_8h.html#handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_restart()
-: <a class="el" href="commands_8h.html#handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_rules()
-: <a class="el" href="commands_8h.html#handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_server()
-: <a class="el" href="commands_8h.html#handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_squit()
-: <a class="el" href="commands_8h.html#handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_stats()
-: <a class="el" href="commands_8h.html#handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_summon()
-: <a class="el" href="commands_8h.html#handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_time()
-: <a class="el" href="commands_8h.html#handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_topic()
-: <a class="el" href="commands_8h.html#handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_trace()
-: <a class="el" href="commands_8h.html#handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_unloadmodule()
-: <a class="el" href="commands_8h.html#handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_user()
-: <a class="el" href="commands_8h.html#handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_userhost()
-: <a class="el" href="commands_8h.html#handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_users()
-: <a class="el" href="commands_8h.html#handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_version()
-: <a class="el" href="inspircd_8h.html#handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>handle_wallops()
-: <a class="el" href="commands_8h.html#handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_who()
-: <a class="el" href="commands_8h.html#handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_whois()
-: <a class="el" href="commands_8h.html#handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_whowas()
-: <a class="el" href="commands_8h.html#handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_zline()
-: <a class="el" href="commands_8h.html#handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handlerfunc
-: <a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">inspircd.h</a><li>has_channel()
+<li>has_channel()
 : <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">message.h</a><li>hasumode()
-: <a class="el" href="message_8h.html#hasumode_28userrec_20_2Auser_2C_20char_20mode_29">message.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="message_8h.html#hasumode_28userrec_20_2Auser_2C_20char_20mode_29">message.h</a><li>host_matches_everyone()
+: <a class="el" href="commands_8h.html#host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29">commands.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 61d3cd1f7518151a01e65c747b678e6563be39c2..4fd62e7937f79f991f54d87af5a15d59e4847d5c 100644 (file)
@@ -25,16 +25,16 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="socket_8h.html#InspSocketError">socket.h</a><li>InspSocketState
 : <a class="el" href="socket_8h.html#InspSocketState">socket.h</a><li>InvitedList
 : <a class="el" href="users_8h.html#InvitedList">users.h</a><li>InviteList
-: <a class="el" href="channels_8h.html#InviteList">channels.h</a><li>ircd_module
+: <a class="el" href="channels_8h.html#InviteList">channels.h</a><li>ip_matches_everyone()
+: <a class="el" href="commands_8h.html#ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29">commands.h</a><li>ircd_module
 : <a class="el" href="modules_8h.html#ircd_5Fmodule">modules.h</a><li>IS_LOCAL
-: <a class="el" href="inspircd_8h.html#IS_5FLOCAL_28x_29">inspircd.h</a><li>IS_MODULE_CREATED
-: <a class="el" href="inspircd_8h.html#IS_5FMODULE_5FCREATED_28x_29">inspircd.h</a><li>IS_REMOTE
-: <a class="el" href="inspircd_8h.html#IS_5FREMOTE_28x_29">inspircd.h</a><li>is_uline()
-: <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">commands.h</a><li>is_valid_cmd()
-: <a class="el" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>isident()
+: <a class="el" href="modules_8h.html#IS_5FLOCAL_28x_29">modules.h</a><li>IS_MODULE_CREATED
+: <a class="el" href="modules_8h.html#IS_5FMODULE_5FCREATED_28x_29">modules.h</a><li>IS_REMOTE
+: <a class="el" href="modules_8h.html#IS_5FREMOTE_28x_29">modules.h</a><li>is_uline()
+: <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">commands.h</a><li>isident()
 : <a class="el" href="message_8h.html#isident_28const_20char_20_2An_29">message.h</a><li>isnick()
 : <a class="el" href="message_8h.html#isnick_28const_20char_20_2An_29">message.h</a>, <a class="el" href="globals_8h.html#isnick_28const_20char_20_2An_29">globals.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cf552cda47596c3913cd41a6ca221bca95a17c74..66783a85ab278aff6b23394d8142dac165fe28a1 100644 (file)
@@ -14,9 +14,9 @@ Here is a list of all file members with links to the files they belong to:
 <h3><a class="anchor" name="index_k">- k -</a></h3><ul>
 <li>kick_channel()
 : <a class="el" href="channels_8h.html#kick_5Fchannel_28userrec_20_2Asrc_2C_20userrec_20_2Auser_2C_20chanrec_20_2APtr_2C_20char_20_2Areason_29">channels.h</a>, <a class="el" href="channels_8cpp.html#kick_5Fchannel_28userrec_20_2Asrc_2C_20userrec_20_2Auser_2C_20chanrec_20_2APtr_2C_20char_20_2Areason_29">channels.cpp</a><li>kill_link()
-: <a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">inspircd.h</a><li>kill_link_silent()
-: <a class="el" href="inspircd_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="users_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.h</a>, <a class="el" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.cpp</a><li>kill_link_silent()
+: <a class="el" href="users_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.h</a>, <a class="el" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 36dbdfa089374158a7ff88592ba0de4b83696d6b..20b75d3e1355a2985bbafc4310c1799499e4db2b 100644 (file)
@@ -13,10 +13,10 @@ Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_l">- l -</a></h3><ul>
 <li>LoadAllModules()
-: <a class="el" href="userprocess_8h.html#LoadAllModules_28_29">userprocess.h</a><li>log()
-: <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>loop_call()
-: <a class="el" href="inspircd_8h.html#loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="userprocess_8h.html#LoadAllModules_28InspIRCd_20_2AServerInstance_29">userprocess.h</a><li>local_users
+: <a class="el" href="users_8cpp.html#local_5Fusers">users.cpp</a><li>log()
+: <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 83b5c4e489e606206c4dce60ee1926ebf8b5c318..7389dffd0f05f40363618b6cd9a46d1319a9204a 100644 (file)
@@ -19,10 +19,8 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">xline.h</a><li>matches_zline()
 : <a class="el" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">xline.h</a><li>MAXCOMMAND
 : <a class="el" href="inspircd_8h.html#MAXCOMMAND">inspircd.h</a><li>MAXSOCKS
-: <a class="el" href="inspircd_8h.html#MAXSOCKS">inspircd.h</a><li>merge_mode()
-: <a class="el" href="mode_8h.html#merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29">mode.h</a><li>merge_mode2()
-: <a class="el" href="mode_8h.html#merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>MODCOUNT
-: <a class="el" href="modules_8cpp.html#MODCOUNT">modules.cpp</a>, <a class="el" href="channels_8cpp.html#MODCOUNT">channels.cpp</a><li>ModeDefiend()
+: <a class="el" href="inspircd_8h.html#MAXSOCKS">inspircd.h</a><li>MODCOUNT
+: <a class="el" href="users_8cpp.html#MODCOUNT">users.cpp</a>, <a class="el" href="modules_8cpp.html#MODCOUNT">modules.cpp</a>, <a class="el" href="channels_8cpp.html#MODCOUNT">channels.cpp</a><li>ModeDefiend()
 : <a class="el" href="globals_8h.html#ModeDefiend_28char_20c_2C_20int_20i_29">globals.h</a><li>ModeDefined()
 : <a class="el" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeDefinedOff()
 : <a class="el" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeDefinedOn()
@@ -30,12 +28,12 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeIsListMode()
 : <a class="el" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeMakeList()
 : <a class="el" href="modules_8h.html#ModeMakeList_28char_20modechar_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">modules.cpp</a><li>module_sockets
-: <a class="el" href="modules_8cpp.html#module_5Fsockets">modules.cpp</a><li>modules
-: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a><li>MT_CHANNEL
+: <a class="el" href="users_8cpp.html#module_5Fsockets">users.cpp</a>, <a class="el" href="modules_8cpp.html#module_5Fsockets">modules.cpp</a><li>modules
+: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#modules">users.cpp</a>, <a class="el" href="modules_8cpp.html#modules">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a><li>MT_CHANNEL
 : <a class="el" href="modules_8h.html#MT_5FCHANNEL">modules.h</a><li>MT_CLIENT
 : <a class="el" href="modules_8h.html#MT_5FCLIENT">modules.h</a><li>MT_SERVER
 : <a class="el" href="modules_8h.html#MT_5FSERVER">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 62214b413066bc2cfc63937ad7ea2020618bc9c4..502d0b9ba17605a9906bcf7efd89bbdb303edc1f 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
-<li>NonBlocking()
+<li>nick_matches_everyone()
+: <a class="el" href="commands_8h.html#nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29">commands.h</a><li>NonBlocking()
 : <a class="el" href="message_8h.html#NonBlocking_28int_20s_29">message.h</a><li>NONE
 : <a class="el" href="modules_8h.html#NONE">modules.h</a>, <a class="el" href="inspircd__io_8h.html#NONE">inspircd_io.h</a><li>nspace
 : <a class="el" href="hashcomp_8h.html#nspace">hashcomp.h</a>, <a class="el" href="channels_8cpp.html#nspace">channels.cpp</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 3b76cd4e458212f0f50912ce4da60de1d147d825..e38c83b44caf3cc07b3be71e680ca0d132a16e41 100644 (file)
@@ -13,10 +13,10 @@ Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_o">- o -</a></h3><ul>
 <li>OpenLog()
-: <a class="el" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">userprocess.h</a><li>openSockfd
-: <a class="el" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">socket.cpp</a><li>OpenTCPSocket()
-: <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">inspircd_io.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">userprocess.h</a><li>OpenTCPSocket()
+: <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">inspircd_io.h</a><li>operstrcmp()
+: <a class="el" href="commands_8h.html#operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29">commands.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 659e2ca40439f3edd03e3b1dc8db392225b6e6d0..df26acd58a61b48dc611da44e4f8f7293961fb47 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
-<li>process_buffer()
-: <a class="el" href="inspircd_8h.html#process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29">inspircd.h</a><li>process_modes()
-: <a class="el" href="mode_8h.html#process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">mode.h</a><li>process_module_umode()
-: <a class="el" href="mode_8h.html#process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">mode.h</a><li>ProcessUser()
+<li>ProcessUser()
 : <a class="el" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">userprocess.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6722d954098e1e30432f120f0a78b2a8a099a70a..07226e2b306cd5c0474e41b39672495a2c3f2264 100644 (file)
@@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
 <li>qline_make_global()
 : <a class="el" href="xline_8h.html#qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29">xline.h</a><li>qline_set_creation_time()
 : <a class="el" href="xline_8h.html#qline_5Fset_5Fcreation_5Ftime_28char_20_2Anick_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cf0b43fe50b6fbe63cd0f7cd012d28e690639893..8a95f8c5b72314517db7b8cd0db322c2cfbaa72e 100644 (file)
@@ -16,8 +16,8 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="xline_8h.html#read_5Fxline_5Fdefaults_28_29">xline.h</a><li>readfile()
 : <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">globals.h</a><li>ref
 : <a class="el" href="socketengine_8cpp.html#ref_5B_36_35_35_33_35_5D">socketengine.cpp</a><li>ReHashNick()
-: <a class="el" href="inspircd_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="users_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">users.h</a>, <a class="el" href="users_8cpp.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">users.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 95a4f039164fe5001ad99e5f44976534b73f6ddd..282ac9644c6bc1f433b5bec71b279db4a146e2ce 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
-<li>SE
-: <a class="el" href="socket_8cpp.html#SE">socket.cpp</a>, <a class="el" href="modules_8cpp.html#SE">modules.cpp</a><li>send_network_quit()
-: <a class="el" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">message.h</a><li>server_mode()
-: <a class="el" href="modules_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">modules.h</a>, <a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>ServerInstance
-: <a class="el" href="modules_8cpp.html#ServerInstance">modules.cpp</a><li>servernamelist
+<li>send_network_quit()
+: <a class="el" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">message.h</a><li>ServerInstance
+: <a class="el" href="users_8cpp.html#ServerInstance">users.cpp</a>, <a class="el" href="socket_8cpp.html#ServerInstance">socket.cpp</a>, <a class="el" href="modules_8cpp.html#ServerInstance">modules.cpp</a><li>servernamelist
 : <a class="el" href="typedefs_8h.html#servernamelist">typedefs.h</a><li>socket_ref
-: <a class="el" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket.cpp</a><li>SPARSE
+: <a class="el" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">users.cpp</a>, <a class="el" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket.cpp</a><li>SPARSE
 : <a class="el" href="modules_8h.html#SPARSE">modules.h</a>, <a class="el" href="inspircd__io_8h.html#SPARSE">inspircd_io.h</a><li>Start()
 : <a class="el" href="inspircd__io_8h.html#Start_28void_29">inspircd_io.h</a><li>stats_e()
 : <a class="el" href="xline_8h.html#stats_5Fe_28userrec_20_2Auser_29">xline.h</a><li>stats_g()
@@ -32,7 +30,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="users_8h.html#STATUS_5FVOICE">users.h</a><li>string
 : <a class="el" href="namespaceirc.html#string">hashcomp.h</a><li>string_list
 : <a class="el" href="modules_8h.html#string_5Flist">modules.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index fa72e66fd12fa93dd7e88303b35ba19de7244bb2..5d754b3bda3fd0f2308c54d208bce491d82d73b8 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
-<li>take_ban()
-: <a class="el" href="mode_8h.html#take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_hops()
-: <a class="el" href="mode_8h.html#take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_ops()
-: <a class="el" href="mode_8h.html#take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_voice()
-: <a class="el" href="mode_8h.html#take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>TidyBan()
+<li>TidyBan()
 : <a class="el" href="message_8h.html#TidyBan_28char_20_2Aban_29">message.h</a><li>tidystring()
 : <a class="el" href="message_8h.html#tidystring_28char_20_2Astr_29">message.h</a><li>TIME
-: <a class="el" href="users_8cpp.html#TIME">users.cpp</a>, <a class="el" href="socket_8cpp.html#TIME">socket.cpp</a>, <a class="el" href="modules_8cpp.html#TIME">modules.cpp</a>, <a class="el" href="channels_8cpp.html#TIME">channels.cpp</a><li>TRUE
+: <a class="el" href="users_8cpp.html#TIME">users.cpp</a>, <a class="el" href="socket_8cpp.html#TIME">socket.cpp</a>, <a class="el" href="modules_8cpp.html#TIME">modules.cpp</a>, <a class="el" href="channels_8cpp.html#TIME">channels.cpp</a><li>to64frombits()
+: <a class="el" href="aes_8h.html#to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29">aes.h</a><li>TRUE
 : <a class="el" href="inspircd_8h.html#TRUE">inspircd.h</a><li>TYPE_CHANNEL
-: <a class="el" href="inspircd_8h.html#TYPE_5FCHANNEL">inspircd.h</a><li>TYPE_SERVER
-: <a class="el" href="inspircd_8h.html#TYPE_5FSERVER">inspircd.h</a><li>TYPE_USER
-: <a class="el" href="inspircd_8h.html#TYPE_5FUSER">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="modules_8h.html#TYPE_5FCHANNEL">modules.h</a><li>TYPE_SERVER
+: <a class="el" href="modules_8h.html#TYPE_5FSERVER">modules.h</a><li>TYPE_USER
+: <a class="el" href="modules_8h.html#TYPE_5FUSER">modules.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ba86fe49f2f4d4dce01cfcfdb973293570da395a..df26a85907eab345a6143fca1ef0f8b8d2f1ac9f 100644 (file)
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="channels_8h.html#UCMODE_5FPROTECT">channels.h</a><li>UCMODE_VOICE
 : <a class="el" href="channels_8h.html#UCMODE_5FVOICE">channels.h</a><li>user_hash
 : <a class="el" href="typedefs_8h.html#user_5Fhash">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d9a685da7df44bb88b90cfd00c21689072f3b019..3672989539d3f06c0cfa6b23656fe0ca60decb30 100644 (file)
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="modules_8h.html#VF_5FSTATIC">modules.h</a><li>VF_VENDOR
 : <a class="el" href="modules_8h.html#VF_5FVENDOR">modules.h</a><li>VoidPointer
 : <a class="el" href="base_8h.html#VoidPointer">base.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 03c173705fc4fe3f11ef59d66172848656cd43d0..74dc858114161e71ba3da4047da81906b5c3743b 100644 (file)
 Here is a list of all file members with links to the files they belong to:
 <p>
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
-<li>whowas_hash
+<li>whowas
+: <a class="el" href="users_8cpp.html#whowas">users.cpp</a><li>whowas_hash
 : <a class="el" href="typedefs_8h.html#whowas_5Fhash">typedefs.h</a><li>WHOWAS_MAX
-: <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">channels.cpp</a><li>WHOWAS_STALE
-: <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">channels.cpp</a><li>WM_AND
-: <a class="el" href="inspircd_8h.html#WM_5FAND">inspircd.h</a><li>WM_OR
-: <a class="el" href="inspircd_8h.html#WM_5FOR">inspircd.h</a><li>Write()
+: <a class="el" href="users_8cpp.html#WHOWAS_5FMAX">users.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">channels.cpp</a><li>WHOWAS_STALE
+: <a class="el" href="users_8cpp.html#WHOWAS_5FSTALE">users.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">channels.cpp</a><li>WM_AND
+: <a class="el" href="modules_8h.html#WM_5FAND">modules.h</a><li>WM_OR
+: <a class="el" href="modules_8h.html#WM_5FOR">modules.h</a><li>Write()
 : <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>WriteChannel()
 : <a class="el" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>WriteCommon()
 : <a class="el" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>WriteCommonExcept()
@@ -28,7 +29,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>WriteTo()
 : <a class="el" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">globals.h</a><li>WriteWallOps()
 : <a class="el" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0da0ab53ff56eeceb2090ac2ece0f3a67ef9654d..5ddaf3aedcd4c311ba2d40063241b2674fb50bc8 100644 (file)
@@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to:
 : <a class="el" href="socketengine_8h.html#X_5FESTAB_5FMODULE">socketengine.h</a><li>X_LISTEN
 : <a class="el" href="socketengine_8h.html#X_5FLISTEN">socketengine.h</a><li>X_READBIT
 : <a class="el" href="socketengine_8h.html#X_5FREADBIT">socketengine.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 04da695018202f68c5f762a08bd19f49f85d68bb..8fc3891c53f9bb22d6a64f5cea5a4431080a2726 100644 (file)
@@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
 <li>zline_make_global()
 : <a class="el" href="xline_8h.html#zline_5Fmake_5Fglobal_28const_20char_20_2Aipaddr_29">xline.h</a><li>zline_set_creation_time()
 : <a class="el" href="xline_8h.html#zline_5Fset_5Fcreation_5Ftime_28char_20_2Aip_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6ebac3264adcdc7c3eba1699908915f967646f30..57481c27f873290c6b1fb6b9382d689ef359ac79 100644 (file)
@@ -62,7 +62,7 @@
 <a name="l00053"></a>00053 <span class="keywordtype">int</span> <a class="code" href="globals_8h.html#ModeDefiend_28char_20c_2C_20int_20i_29">ModeDefiend</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
 <a name="l00054"></a>00054 
 <a name="l00055"></a>00055 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f84f545f280abe26284c3430b860bae2cf98b548..afae7a1a4cdaafa120438541aa3fd63a7f3c4d1a 100644 (file)
 <p>
 Include dependency graph for globals.h:<p><center><img src="globals_8h__incl.gif" border="0" usemap="#globals.h_map" alt=""></center>
 <map name="globals.h_map">
-<area href="users_8h-source.html" shape="rect" coords="138,235,202,261" alt="">
+<area href="users_8h-source.html" shape="rect" coords="138,260,202,287" alt="">
 <area href="channels_8h-source.html" shape="rect" coords="262,159,347,185" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="255,361,354,388" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="255,311,354,337" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="258,361,351,388" alt="">
 </map>
 
 <p>
@@ -162,7 +163,7 @@ Definition at line <a class="el" href="globals_8h-source.html#l00029">29</a> of
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00460">Server::SendChannel()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00459">Server::SendChannel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29"></a><!-- doxytag: member="globals.h::cmode" ref="cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29" args="(userrec *user, chanrec *chan)" --><p>
@@ -201,7 +202,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00460">Server::SendC
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00524">Server::ChanMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00523">Server::ChanMode()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29"></a><!-- doxytag: member="globals.h::common_channels" ref="common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29" args="(userrec *u, userrec *u2)" --><p>
@@ -240,7 +241,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00524">Server::ChanM
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00472">Server::CommonChannels()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00471">Server::CommonChannels()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Find_28std_3A_3Astring_20nick_29"></a><!-- doxytag: member="globals.h::Find" ref="Find_28std_3A_3Astring_20nick_29" args="(std::string nick)" --><p>
@@ -270,7 +271,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00472">Server::Commo
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00509">Server::FindNick()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00508">Server::FindNick()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="FindChan_28const_20char_20_2Achan_29"></a><!-- doxytag: member="globals.h::FindChan" ref="FindChan_28const_20char_20_2Achan_29" args="(const char *chan)" --><p>
@@ -300,7 +301,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00509">Server::FindN
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00519">Server::FindChannel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00518">Server::FindChannel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="getadminemail_28_29"></a><!-- doxytag: member="globals.h::getadminemail" ref="getadminemail_28_29" args="()" --><p>
@@ -465,7 +466,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00504">Server::IsNick()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00503">Server::IsNick()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::log" ref="log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(int level, char *text,...)" --><p>
@@ -510,7 +511,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00504">Server::IsNic
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00556">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="channels_8cpp-source.html#l00167">chanrec::AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00411">Server::Log()</a>, <a class="el" href="socket_8cpp-source.html#l00158">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00086">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00248">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00292">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="modules_8cpp-source.html#l00555">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="users_8cpp-source.html#l00330">AddOper()</a>, <a class="el" href="channels_8cpp-source.html#l00166">chanrec::AddUser()</a>, <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="users_8cpp-source.html#l00336">DeleteOper()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="socket_8cpp-source.html#l00059">InspSocket::InspSocket()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00410">Server::Log()</a>, <a class="el" href="socket_8cpp-source.html#l00155">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00743">ReHashNick()</a>, <a class="el" href="users_8cpp-source.html#l00148">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00085">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00247">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00317">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ModeDefiend_28char_20c_2C_20int_20i_29"></a><!-- doxytag: member="globals.h::ModeDefiend" ref="ModeDefiend_28char_20c_2C_20int_20i_29" args="(char c, int i)" --><p>
@@ -586,7 +587,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00884">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00895">FileReader::LoadFile()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00883">FileReader::FileReader()</a>, and <a class="el" href="modules_8cpp-source.html#l00894">FileReader::LoadFile()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::Write" ref="Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(int sock, char *text,...)" --><p>
@@ -631,7 +632,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00884">FileReader::F
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00426">Server::Send()</a>, <a class="el" href="modules_8cpp-source.html#l00441">Server::SendTo()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, <a class="el" href="modules_8cpp-source.html#l00425">Server::Send()</a>, <a class="el" href="modules_8cpp-source.html#l00440">Server::SendTo()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteChannel" ref="WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(chanrec *Ptr, userrec *user, char *text,...)" --><p>
@@ -682,7 +683,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::Pseud
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00460">Server::SendChannel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00459">Server::SendChannel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteCommon" ref="WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(userrec *u, char *text,...)" --><p>
@@ -727,7 +728,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel(
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00477">Server::SendCommon()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00476">Server::SendCommon()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteCommonExcept" ref="WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(userrec *u, char *text,...)" --><p>
@@ -772,7 +773,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00477">Server::SendC
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00477">Server::SendCommon()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, and <a class="el" href="modules_8cpp-source.html#l00476">Server::SendCommon()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteFrom" ref="WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(int sock, userrec *user, char *text,...)" --><p>
@@ -823,7 +824,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00477">Server::SendC
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00436">Server::SendFrom()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00435">Server::SendFrom()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteOpers" ref="WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29" args="(char *text,...)" --><p>
@@ -862,7 +863,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::Pseud
 <p>
 
 <p>
-Referenced by <a class="el" href="users_8cpp-source.html#l00198">userrec::AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00254">userrec::AddWriteBuf()</a>, <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader::DumpErrors()</a>, <a class="el" href="modules_8cpp-source.html#l00318">Server::RehashServer()</a>, and <a class="el" href="modules_8cpp-source.html#l00346">Server::SendOpers()</a>.    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00219">userrec::AddBuffer()</a>, <a class="el" href="users_8cpp-source.html#l00275">userrec::AddWriteBuf()</a>, <a class="el" href="modules_8cpp-source.html#l00834">ConfigReader::DumpErrors()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="modules_8cpp-source.html#l00317">Server::RehashServer()</a>, and <a class="el" href="modules_8cpp-source.html#l00345">Server::SendOpers()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteServ" ref="WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(int sock, char *text,...)" --><p>
@@ -907,7 +908,7 @@ Referenced by <a class="el" href="users_8cpp-source.html#l00198">userrec::AddBuf
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00835">ConfigReader::DumpErrors()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00431">Server::SendServ()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00834">ConfigReader::DumpErrors()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00430">Server::SendServ()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteTo" ref="WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29" args="(userrec *source, userrec *dest, char *data,...)" --><p>
@@ -958,7 +959,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00441">Server::SendTo()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00440">Server::SendTo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29"></a><!-- doxytag: member="globals.h::WriteWallOps" ref="WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29" args="(userrec *source, bool local_only, char *text,...)" --><p>
@@ -1009,10 +1010,10 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00441">Server::SendT
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00489">Server::SendWallops()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00488">Server::SendWallops()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c1e5ca4dde2c6cb3d521f7d3c3668baff62489bc..5b28fd8e66d209e1a39dadbce8e1bec585d84f7d 100644 (file)
@@ -1 +1 @@
-9d6f4bf521bab022edbf6a21bf5aa7ea
\ No newline at end of file
+1ef247aba7c18e92a4fa5c62345d5980
\ No newline at end of file
index 70f97a9084a7bca4c6598bdfa5dc9b9b68f447b8..8a8679da571d15439773f9ca888e0ad666bf59eb 100644 (file)
@@ -1,4 +1,5 @@
 base referer
-rect $users_8h-source.html 138,235 202,261
+rect $users_8h-source.html 138,260 202,287
 rect $channels_8h-source.html 262,159 347,185
-rect $connection_8h-source.html 255,361 354,388
+rect $connection_8h-source.html 255,311 354,337
+rect $hashcomp_8h-source.html 258,361 351,388
index b01db37e7ede55eded7e150c14b520e8c9e27422..29705f0bafb4088f5eb08d791901427e423fce80 100644 (file)
@@ -1 +1 @@
-a3b3469472caf7df1d6ac1729fa3eb57
\ No newline at end of file
+578c3aa06350d981bcd02180a126f6e8
\ No newline at end of file
index 64b1356536537bd823681c446fa70ab71f232179..b25cddde61cec8df35bc501e57f7b51c8bd7948c 100644 (file)
@@ -54,9 +54,9 @@
 : <a class="el" href="modules_8h.html#FOREACH_5FRESULT_28x_29">modules.h</a></ul>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
 <li>IS_LOCAL
-: <a class="el" href="inspircd_8h.html#IS_5FLOCAL_28x_29">inspircd.h</a><li>IS_MODULE_CREATED
-: <a class="el" href="inspircd_8h.html#IS_5FMODULE_5FCREATED_28x_29">inspircd.h</a><li>IS_REMOTE
-: <a class="el" href="inspircd_8h.html#IS_5FREMOTE_28x_29">inspircd.h</a></ul>
+: <a class="el" href="modules_8h.html#IS_5FLOCAL_28x_29">modules.h</a><li>IS_MODULE_CREATED
+: <a class="el" href="modules_8h.html#IS_5FMODULE_5FCREATED_28x_29">modules.h</a><li>IS_REMOTE
+: <a class="el" href="modules_8h.html#IS_5FREMOTE_28x_29">modules.h</a></ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
 <li>MAXCOMMAND
 : <a class="el" href="inspircd_8h.html#MAXCOMMAND">inspircd.h</a><li>MAXSOCKS
@@ -78,9 +78,9 @@
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>TRUE
 : <a class="el" href="inspircd_8h.html#TRUE">inspircd.h</a><li>TYPE_CHANNEL
-: <a class="el" href="inspircd_8h.html#TYPE_5FCHANNEL">inspircd.h</a><li>TYPE_SERVER
-: <a class="el" href="inspircd_8h.html#TYPE_5FSERVER">inspircd.h</a><li>TYPE_USER
-: <a class="el" href="inspircd_8h.html#TYPE_5FUSER">inspircd.h</a></ul>
+: <a class="el" href="modules_8h.html#TYPE_5FCHANNEL">modules.h</a><li>TYPE_SERVER
+: <a class="el" href="modules_8h.html#TYPE_5FSERVER">modules.h</a><li>TYPE_USER
+: <a class="el" href="modules_8h.html#TYPE_5FUSER">modules.h</a></ul>
 <h3><a class="anchor" name="index_u">- u -</a></h3><ul>
 <li>UCMODE_FOUNDER
 : <a class="el" href="channels_8h.html#UCMODE_5FFOUNDER">channels.h</a><li>UCMODE_HOP
@@ -97,9 +97,9 @@
 : <a class="el" href="modules_8h.html#VF_5FVENDOR">modules.h</a></ul>
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
 <li>WM_AND
-: <a class="el" href="inspircd_8h.html#WM_5FAND">inspircd.h</a><li>WM_OR
-: <a class="el" href="inspircd_8h.html#WM_5FOR">inspircd.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+: <a class="el" href="modules_8h.html#WM_5FAND">modules.h</a><li>WM_OR
+: <a class="el" href="modules_8h.html#WM_5FOR">modules.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ee4b21e4d8eafe2bfc28ae801cbfeb4285653428..8a2a5e2c0f25fde7e55589b35b48b8829e5fb228 100644 (file)
@@ -12,7 +12,7 @@
 <li>InspSocketError
 : <a class="el" href="socket_8h.html#InspSocketError">socket.h</a><li>InspSocketState
 : <a class="el" href="socket_8h.html#InspSocketState">socket.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 10f36b756bf8691a9f0bbc077c61a98250015a30..987b7fe79c72878d572986a54e1e21447e75009c 100644 (file)
@@ -19,7 +19,7 @@
 : <a class="el" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">socket.h</a><li>I_ERROR
 : <a class="el" href="socket_8h.html#InspSocketStateI_5FERROR">socket.h</a><li>I_LISTENING
 : <a class="el" href="socket_8h.html#InspSocketStateI_5FLISTENING">socket.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 309c0dc677226144715072943de5273c975ba672..f12e587a5934009448e8f57a0cd827354245343c 100644 (file)
 
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
-<li>add_ban()
-: <a class="el" href="mode_8h.html#add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>add_channel()
+<li>add_channel()
 : <a class="el" href="channels_8h.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">channels.h</a>, <a class="el" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">channels.cpp</a><li>add_eline()
 : <a class="el" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_gline()
 : <a class="el" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_kline()
 : <a class="el" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">xline.h</a><li>add_qline()
 : <a class="el" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">xline.h</a><li>add_zline()
-: <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">xline.h</a><li>AddOper()
-: <a class="el" href="inspircd_8h.html#AddOper_28userrec_20_2Auser_29">inspircd.h</a><li>AddServerName()
+: <a class="el" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">xline.h</a><li>AddClient()
+: <a class="el" href="users_8h.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">users.h</a>, <a class="el" href="users_8cpp.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">users.cpp</a><li>AddOper()
+: <a class="el" href="users_8h.html#AddOper_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#AddOper_28userrec_20_2Auser_29">users.cpp</a><li>AddServerName()
 : <a class="el" href="inspircd_8h.html#AddServerName_28std_3A_3Astring_20servername_29">inspircd.h</a><li>AddWhoWas()
-: <a class="el" href="inspircd_8h.html#AddWhoWas_28userrec_20_2Au_29">inspircd.h</a><li>allowed_umode()
-: <a class="el" href="mode_8h.html#allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29">mode.h</a><li>apply_lines()
+: <a class="el" href="users_8h.html#AddWhoWas_28userrec_20_2Au_29">users.h</a>, <a class="el" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">users.cpp</a><li>apply_lines()
 : <a class="el" href="xline_8h.html#apply_5Flines_28const_20int_20What_29">xline.h</a></ul>
 <h3><a class="anchor" name="index_b">- b -</a></h3><ul>
 <li>BindPorts()
@@ -32,8 +31,7 @@
 : <a class="el" href="message_8h.html#Blocking_28int_20s_29">message.h</a></ul>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
 <li>c_count()
-: <a class="el" href="message_8h.html#c_5Fcount_28userrec_20_2Au_29">message.h</a><li>call_handler()
-: <a class="el" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>ChanExceptSender()
+: <a class="el" href="message_8h.html#c_5Fcount_28userrec_20_2Au_29">message.h</a><li>ChanExceptSender()
 : <a class="el" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>ChangeDisplayedHost()
 : <a class="el" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">message.h</a><li>ChangeName()
 : <a class="el" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">message.h</a><li>CheckDie()
 : <a class="el" href="userprocess_8h.html#CheckRoot_28_29">userprocess.h</a><li>chlist()
 : <a class="el" href="message_8h.html#chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29">message.h</a><li>chop()
 : <a class="el" href="message_8h.html#chop_28char_20_2Astr_29">message.h</a><li>CleanAndResolve()
-: <a class="el" href="message_8h.html#CleanAndResolve_28char_20_2AresolvedHost_2C_20const_20char_20_2AunresolvedHost_29">message.h</a><li>cmode()
+: <a class="el" href="message_8h.html#CleanAndResolve_28char_20_2AresolvedHost_2C_20const_20char_20_2AunresolvedHost_29">message.h</a><li>CleanFilename()
+: <a class="el" href="commands_8h.html#CleanFilename_28char_20_2Aname_29">commands.h</a><li>cmode()
 : <a class="el" href="message_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">message.h</a>, <a class="el" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">globals.h</a><li>common_channels()
 : <a class="el" href="message_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">message.h</a>, <a class="el" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">globals.h</a><li>ConnectUser()
-: <a class="el" href="inspircd_8h.html#ConnectUser_28userrec_20_2Auser_29">inspircd.h</a><li>createcommand()
-: <a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">modules.h</a><li>cstatus()
+: <a class="el" href="users_8h.html#ConnectUser_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#ConnectUser_28userrec_20_2Auser_29">users.cpp</a><li>ConvToStr()
+: <a class="el" href="users_8h.html#ConvToStr_28const_20T_20_26in_29">users.h</a>, <a class="el" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">users.cpp</a><li>cstatus()
 : <a class="el" href="message_8h.html#cstatus_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">message.h</a></ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
 <li>DaemonSeed()
@@ -56,8 +55,8 @@
 : <a class="el" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">xline.h</a><li>del_qline()
 : <a class="el" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">xline.h</a><li>del_zline()
 : <a class="el" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">xline.h</a><li>DeleteOper()
-: <a class="el" href="inspircd_8h.html#DeleteOper_28userrec_20_2Auser_29">inspircd.h</a><li>dns_task()
-: <a class="el" href="inspircd_8h.html#dns_5Ftask_28void_20_2Aarg_29">inspircd.h</a><li>do_whois()
+: <a class="el" href="users_8h.html#DeleteOper_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#DeleteOper_28userrec_20_2Auser_29">users.cpp</a><li>dns_task()
+: <a class="el" href="dns_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns.h</a><li>do_whois()
 : <a class="el" href="commands_8h.html#do_5Fwhois_28userrec_20_2Auser_2C_20userrec_20_2Adest_2C_20unsigned_20long_20signon_2C_20unsigned_20long_20idle_2C_20char_20_2Anick_29">commands.h</a><li>DoAddExtendedMode()
 : <a class="el" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">modules.cpp</a><li>DoBackgroundUserStuff()
 : <a class="el" href="userprocess_8h.html#DoBackgroundUserStuff_28time_5Ft_20TIME_29">userprocess.h</a><li>duration()
 : <a class="el" href="xline_8h.html#expire_5Flines_28_29">xline.h</a></ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>factory()
-: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>FileExists()
+: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#factory">users.cpp</a>, <a class="el" href="modules_8cpp.html#factory">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>FileExists()
 : <a class="el" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">inspircd_io.h</a><li>Find()
 : <a class="el" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">globals.h</a><li>FindChan()
 : <a class="el" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">globals.h</a><li>FindServerNamePtr()
 : <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">inspircd.h</a><li>force_nickchange()
-: <a class="el" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">inspircd.h</a><li>ForceChan()
-: <a class="el" href="channels_8cpp.html#ForceChan_28chanrec_20_2APtr_2C_20ucrec_20_26a_2C_20userrec_20_2Auser_2C_20int_20created_29">channels.cpp</a><li>FullConnectUser()
-: <a class="el" href="inspircd_8h.html#FullConnectUser_28userrec_20_2Auser_29">inspircd.h</a></ul>
+: <a class="el" href="users_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">users.h</a>, <a class="el" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">users.cpp</a><li>ForceChan()
+: <a class="el" href="channels_8cpp.html#ForceChan_28chanrec_20_2APtr_2C_20ucrec_20_26a_2C_20userrec_20_2Auser_2C_20int_20created_29">channels.cpp</a><li>from64tobits()
+: <a class="el" href="aes_8h.html#from_36_34tobits_28char_20_2Aout_2C_20const_20char_20_2Ain_2C_20int_20maxlen_29">aes.h</a><li>FullConnectUser()
+: <a class="el" href="users_8h.html#FullConnectUser_28userrec_20_2Auser_29">users.h</a>, <a class="el" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">users.cpp</a></ul>
 <h3><a class="anchor" name="index_g">- g -</a></h3><ul>
 <li>getadminemail()
 : <a class="el" href="globals_8h.html#getadminemail_28_29">globals.h</a><li>getadminname()
 : <a class="el" href="globals_8h.html#getadminname_28_29">globals.h</a><li>getadminnick()
 : <a class="el" href="globals_8h.html#getadminnick_28_29">globals.h</a><li>getnetworkname()
 : <a class="el" href="globals_8h.html#getnetworkname_28_29">globals.h</a><li>getservername()
-: <a class="el" href="globals_8h.html#getservername_28_29">globals.h</a><li>give_hops()
-: <a class="el" href="mode_8h.html#give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>give_ops()
-: <a class="el" href="mode_8h.html#give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>give_voice()
-: <a class="el" href="mode_8h.html#give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>gline_set_creation_time()
+: <a class="el" href="globals_8h.html#getservername_28_29">globals.h</a><li>gline_set_creation_time()
 : <a class="el" href="xline_8h.html#gline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
 <h3><a class="anchor" name="index_h">- h -</a></h3><ul>
-<li>handle_admin()
-: <a class="el" href="commands_8h.html#handle_5Fadmin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_away()
-: <a class="el" href="commands_8h.html#handle_5Faway_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_commands()
-: <a class="el" href="commands_8h.html#handle_5Fcommands_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_connect()
-: <a class="el" href="commands_8h.html#handle_5Fconnect_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_die()
-: <a class="el" href="commands_8h.html#handle_5Fdie_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_eline()
-: <a class="el" href="commands_8h.html#handle_5Feline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_gline()
-: <a class="el" href="commands_8h.html#handle_5Fgline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_info()
-: <a class="el" href="commands_8h.html#handle_5Finfo_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_invite()
-: <a class="el" href="commands_8h.html#handle_5Finvite_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_ison()
-: <a class="el" href="commands_8h.html#handle_5Fison_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_join()
-: <a class="el" href="commands_8h.html#handle_5Fjoin_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kick()
-: <a class="el" href="commands_8h.html#handle_5Fkick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kill()
-: <a class="el" href="commands_8h.html#handle_5Fkill_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_kline()
-: <a class="el" href="commands_8h.html#handle_5Fkline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_links()
-: <a class="el" href="commands_8h.html#handle_5Flinks_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_list()
-: <a class="el" href="commands_8h.html#handle_5Flist_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_loadmodule()
-: <a class="el" href="commands_8h.html#handle_5Floadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_lusers()
-: <a class="el" href="commands_8h.html#handle_5Flusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_map()
-: <a class="el" href="commands_8h.html#handle_5Fmap_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_mode()
-: <a class="el" href="mode_8h.html#handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>handle_modules()
-: <a class="el" href="commands_8h.html#handle_5Fmodules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_motd()
-: <a class="el" href="commands_8h.html#handle_5Fmotd_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_names()
-: <a class="el" href="commands_8h.html#handle_5Fnames_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_nick()
-: <a class="el" href="commands_8h.html#handle_5Fnick_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_notice()
-: <a class="el" href="commands_8h.html#handle_5Fnotice_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_oper()
-: <a class="el" href="commands_8h.html#handle_5Foper_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_part()
-: <a class="el" href="commands_8h.html#handle_5Fpart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_pass()
-: <a class="el" href="commands_8h.html#handle_5Fpass_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_ping()
-: <a class="el" href="commands_8h.html#handle_5Fping_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_pong()
-: <a class="el" href="commands_8h.html#handle_5Fpong_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_privmsg()
-: <a class="el" href="commands_8h.html#handle_5Fprivmsg_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_qline()
-: <a class="el" href="commands_8h.html#handle_5Fqline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_quit()
-: <a class="el" href="commands_8h.html#handle_5Fquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_rehash()
-: <a class="el" href="commands_8h.html#handle_5Frehash_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_restart()
-: <a class="el" href="commands_8h.html#handle_5Frestart_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_rules()
-: <a class="el" href="commands_8h.html#handle_5Frules_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_server()
-: <a class="el" href="commands_8h.html#handle_5Fserver_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_squit()
-: <a class="el" href="commands_8h.html#handle_5Fsquit_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_stats()
-: <a class="el" href="commands_8h.html#handle_5Fstats_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_summon()
-: <a class="el" href="commands_8h.html#handle_5Fsummon_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_time()
-: <a class="el" href="commands_8h.html#handle_5Ftime_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_topic()
-: <a class="el" href="commands_8h.html#handle_5Ftopic_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_trace()
-: <a class="el" href="commands_8h.html#handle_5Ftrace_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_unloadmodule()
-: <a class="el" href="commands_8h.html#handle_5Funloadmodule_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_user()
-: <a class="el" href="commands_8h.html#handle_5Fuser_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_userhost()
-: <a class="el" href="commands_8h.html#handle_5Fuserhost_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_users()
-: <a class="el" href="commands_8h.html#handle_5Fusers_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_version()
-: <a class="el" href="inspircd_8h.html#handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>handle_wallops()
-: <a class="el" href="commands_8h.html#handle_5Fwallops_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_who()
-: <a class="el" href="commands_8h.html#handle_5Fwho_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_whois()
-: <a class="el" href="commands_8h.html#handle_5Fwhois_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_whowas()
-: <a class="el" href="commands_8h.html#handle_5Fwhowas_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>handle_zline()
-: <a class="el" href="commands_8h.html#handle_5Fzline_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">commands.h</a><li>has_channel()
+<li>has_channel()
 : <a class="el" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">message.h</a><li>hasumode()
-: <a class="el" href="message_8h.html#hasumode_28userrec_20_2Auser_2C_20char_20mode_29">message.h</a></ul>
+: <a class="el" href="message_8h.html#hasumode_28userrec_20_2Auser_2C_20char_20mode_29">message.h</a><li>host_matches_everyone()
+: <a class="el" href="commands_8h.html#host_5Fmatches_5Feveryone_28std_3A_3Astring_20mask_2C_20userrec_20_2Auser_29">commands.h</a></ul>
 <h3><a class="anchor" name="index_i">- i -</a></h3><ul>
-<li>is_uline()
-: <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">commands.h</a><li>is_valid_cmd()
-: <a class="el" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">inspircd.h</a><li>isident()
+<li>ip_matches_everyone()
+: <a class="el" href="commands_8h.html#ip_5Fmatches_5Feveryone_28std_3A_3Astring_20ip_2C_20userrec_20_2Auser_29">commands.h</a><li>is_uline()
+: <a class="el" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">commands.h</a><li>isident()
 : <a class="el" href="message_8h.html#isident_28const_20char_20_2An_29">message.h</a><li>isnick()
 : <a class="el" href="message_8h.html#isnick_28const_20char_20_2An_29">message.h</a>, <a class="el" href="globals_8h.html#isnick_28const_20char_20_2An_29">globals.h</a></ul>
 <h3><a class="anchor" name="index_k">- k -</a></h3><ul>
 <li>kick_channel()
 : <a class="el" href="channels_8h.html#kick_5Fchannel_28userrec_20_2Asrc_2C_20userrec_20_2Auser_2C_20chanrec_20_2APtr_2C_20char_20_2Areason_29">channels.h</a>, <a class="el" href="channels_8cpp.html#kick_5Fchannel_28userrec_20_2Asrc_2C_20userrec_20_2Auser_2C_20chanrec_20_2APtr_2C_20char_20_2Areason_29">channels.cpp</a><li>kill_link()
-: <a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">inspircd.h</a><li>kill_link_silent()
-: <a class="el" href="inspircd_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">inspircd.h</a></ul>
+: <a class="el" href="users_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.h</a>, <a class="el" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.cpp</a><li>kill_link_silent()
+: <a class="el" href="users_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.h</a>, <a class="el" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">users.cpp</a></ul>
 <h3><a class="anchor" name="index_l">- l -</a></h3><ul>
 <li>LoadAllModules()
-: <a class="el" href="userprocess_8h.html#LoadAllModules_28_29">userprocess.h</a><li>log()
-: <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>loop_call()
-: <a class="el" href="inspircd_8h.html#loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29">inspircd.h</a></ul>
+: <a class="el" href="userprocess_8h.html#LoadAllModules_28InspIRCd_20_2AServerInstance_29">userprocess.h</a><li>log()
+: <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a></ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
 <li>matches_exception()
 : <a class="el" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">xline.h</a><li>matches_gline()
 : <a class="el" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">xline.h</a><li>matches_kline()
 : <a class="el" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">xline.h</a><li>matches_qline()
 : <a class="el" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">xline.h</a><li>matches_zline()
-: <a class="el" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">xline.h</a><li>merge_mode()
-: <a class="el" href="mode_8h.html#merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29">mode.h</a><li>merge_mode2()
-: <a class="el" href="mode_8h.html#merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>ModeDefiend()
+: <a class="el" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">xline.h</a><li>ModeDefiend()
 : <a class="el" href="globals_8h.html#ModeDefiend_28char_20c_2C_20int_20i_29">globals.h</a><li>ModeDefined()
 : <a class="el" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeDefinedOff()
 : <a class="el" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeDefinedOn()
 : <a class="el" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeIsListMode()
 : <a class="el" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">modules.cpp</a><li>ModeMakeList()
 : <a class="el" href="modules_8h.html#ModeMakeList_28char_20modechar_29">modules.h</a>, <a class="el" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">modules.cpp</a><li>modules()
-: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a></ul>
+: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#modules">users.cpp</a>, <a class="el" href="modules_8cpp.html#modules">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a></ul>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
-<li>NonBlocking()
+<li>nick_matches_everyone()
+: <a class="el" href="commands_8h.html#nick_5Fmatches_5Feveryone_28std_3A_3Astring_20nick_2C_20userrec_20_2Auser_29">commands.h</a><li>NonBlocking()
 : <a class="el" href="message_8h.html#NonBlocking_28int_20s_29">message.h</a></ul>
 <h3><a class="anchor" name="index_o">- o -</a></h3><ul>
 <li>OpenLog()
 : <a class="el" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">userprocess.h</a><li>OpenTCPSocket()
-: <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">inspircd_io.h</a></ul>
+: <a class="el" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">inspircd_io.h</a><li>operstrcmp()
+: <a class="el" href="commands_8h.html#operstrcmp_28char_20_2Adata_2C_20char_20_2Ainput_29">commands.h</a></ul>
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
-<li>process_buffer()
-: <a class="el" href="inspircd_8h.html#process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29">inspircd.h</a><li>process_modes()
-: <a class="el" href="mode_8h.html#process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">mode.h</a><li>process_module_umode()
-: <a class="el" href="mode_8h.html#process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">mode.h</a><li>ProcessUser()
+<li>ProcessUser()
 : <a class="el" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">userprocess.h</a></ul>
 <h3><a class="anchor" name="index_q">- q -</a></h3><ul>
 <li>qline_make_global()
 <li>read_xline_defaults()
 : <a class="el" href="xline_8h.html#read_5Fxline_5Fdefaults_28_29">xline.h</a><li>readfile()
 : <a class="el" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">globals.h</a><li>ReHashNick()
-: <a class="el" href="inspircd_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">inspircd.h</a></ul>
+: <a class="el" href="users_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">users.h</a>, <a class="el" href="users_8cpp.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">users.cpp</a></ul>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>send_network_quit()
-: <a class="el" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">message.h</a><li>server_mode()
-: <a class="el" href="modules_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">modules.h</a>, <a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">mode.h</a><li>Start()
+: <a class="el" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">message.h</a><li>Start()
 : <a class="el" href="inspircd__io_8h.html#Start_28void_29">inspircd_io.h</a><li>stats_e()
 : <a class="el" href="xline_8h.html#stats_5Fe_28userrec_20_2Auser_29">xline.h</a><li>stats_g()
 : <a class="el" href="xline_8h.html#stats_5Fg_28userrec_20_2Auser_29">xline.h</a><li>stats_k()
 : <a class="el" href="xline_8h.html#stats_5Fq_28userrec_20_2Auser_29">xline.h</a><li>stats_z()
 : <a class="el" href="xline_8h.html#stats_5Fz_28userrec_20_2Auser_29">xline.h</a></ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
-<li>take_ban()
-: <a class="el" href="mode_8h.html#take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_hops()
-: <a class="el" href="mode_8h.html#take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_ops()
-: <a class="el" href="mode_8h.html#take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>take_voice()
-: <a class="el" href="mode_8h.html#take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">mode.h</a><li>TidyBan()
+<li>TidyBan()
 : <a class="el" href="message_8h.html#TidyBan_28char_20_2Aban_29">message.h</a><li>tidystring()
-: <a class="el" href="message_8h.html#tidystring_28char_20_2Astr_29">message.h</a></ul>
+: <a class="el" href="message_8h.html#tidystring_28char_20_2Astr_29">message.h</a><li>to64frombits()
+: <a class="el" href="aes_8h.html#to_36_34frombits_28unsigned_20char_20_2Aout_2C_20const_20unsigned_20char_20_2Ain_2C_20int_20inlen_29">aes.h</a></ul>
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
 <li>Write()
 : <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">globals.h</a><li>WriteChannel()
 <li>zline_make_global()
 : <a class="el" href="xline_8h.html#zline_5Fmake_5Fglobal_28const_20char_20_2Aipaddr_29">xline.h</a><li>zline_set_creation_time()
 : <a class="el" href="xline_8h.html#zline_5Fset_5Fcreation_5Ftime_28char_20_2Aip_2C_20time_5Ft_20create_5Ftime_29">xline.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6f465a8e49309a7969db778c84ea330c8ae5b5b3..629ba26a871dccced5d7c2ac2b9014c776dadd41 100644 (file)
 : <a class="el" href="typedefs_8h.html#chan_5Fhash">typedefs.h</a><li>chanuserlist
 : <a class="el" href="modules_8h.html#chanuserlist">modules.h</a><li>ClassVector
 : <a class="el" href="users_8h.html#ClassVector">users.h</a><li>command_table
-: <a class="el" href="typedefs_8h.html#command_5Ftable">typedefs.h</a><li>ExemptList
+: <a class="el" href="ctables_8h.html#command_5Ftable">ctables.h</a><li>ExemptList
 : <a class="el" href="channels_8h.html#ExemptList">channels.h</a><li>ExtModeList
 : <a class="el" href="typedefs_8h.html#ExtModeList">typedefs.h</a><li>ExtModeListIter
 : <a class="el" href="typedefs_8h.html#ExtModeListIter">typedefs.h</a><li>file_cache
-: <a class="el" href="typedefs_8h.html#file_5Fcache">typedefs.h</a>, <a class="el" href="modules_8h.html#file_5Fcache">modules.h</a>, <a class="el" href="globals_8h.html#file_5Fcache">globals.h</a><li>handlerfunc
-: <a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">inspircd.h</a><li>InvitedList
+: <a class="el" href="typedefs_8h.html#file_5Fcache">typedefs.h</a>, <a class="el" href="modules_8h.html#file_5Fcache">modules.h</a>, <a class="el" href="globals_8h.html#file_5Fcache">globals.h</a><li>InvitedList
 : <a class="el" href="users_8h.html#InvitedList">users.h</a><li>InviteList
 : <a class="el" href="channels_8h.html#InviteList">channels.h</a><li>ircd_module
 : <a class="el" href="modules_8h.html#ircd_5Fmodule">modules.h</a><li>servernamelist
@@ -30,7 +29,7 @@
 : <a class="el" href="typedefs_8h.html#user_5Fhash">typedefs.h</a><li>VoidPointer
 : <a class="el" href="base_8h.html#VoidPointer">base.h</a><li>whowas_hash
 : <a class="el" href="typedefs_8h.html#whowas_5Fhash">typedefs.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5d938142c0bbf89e65c0f42156c15b257626c111..bfe69f2dceaba03452c3aa7100977e0efd8849c7 100644 (file)
@@ -6,25 +6,23 @@
 <!-- Generated by Doxygen 1.4.4-20050815 -->
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindexHL" href="globals.html">File&nbsp;Members</a></div>
 <div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_type.html">Typedefs</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumerator</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
-<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_w">w</a> | <a class="qindex" href="#index_x">x</a></div>
+<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_w">w</a> | <a class="qindex" href="#index_x">x</a></div>
 
 <p>
 
 <p>
 <h3><a class="anchor" name="index_a">- a -</a></h3><ul>
-<li>APPLY_ALL
+<li>all_opers
+: <a class="el" href="users_8cpp.html#all_5Fopers">users.cpp</a><li>APPLY_ALL
 : <a class="el" href="xline_8h.html#APPLY_5FALL">xline.h</a><li>APPLY_GLINES
 : <a class="el" href="xline_8h.html#APPLY_5FGLINES">xline.h</a><li>APPLY_KLINES
 : <a class="el" href="xline_8h.html#APPLY_5FKLINES">xline.h</a><li>APPLY_QLINES
 : <a class="el" href="xline_8h.html#APPLY_5FQLINES">xline.h</a><li>APPLY_ZLINES
 : <a class="el" href="xline_8h.html#APPLY_5FZLINES">xline.h</a></ul>
-<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
-<li>boundPortCount
-: <a class="el" href="socket_8cpp.html#boundPortCount">socket.cpp</a></ul>
 <h3><a class="anchor" name="index_c">- c -</a></h3><ul>
 <li>chanlist
 : <a class="el" href="modules_8cpp.html#chanlist">modules.cpp</a>, <a class="el" href="channels_8cpp.html#chanlist">channels.cpp</a><li>clientlist
-: <a class="el" href="modules_8cpp.html#clientlist">modules.cpp</a><li>cmdlist
+: <a class="el" href="users_8cpp.html#clientlist">users.cpp</a>, <a class="el" href="modules_8cpp.html#clientlist">modules.cpp</a><li>cmdlist
 : <a class="el" href="modules_8cpp.html#cmdlist">modules.cpp</a><li>Config
 : <a class="el" href="users_8cpp.html#Config">users.cpp</a>, <a class="el" href="modules_8cpp.html#Config">modules.cpp</a>, <a class="el" href="channels_8cpp.html#Config">channels.cpp</a><li>custom_mode_params
 : <a class="el" href="channels_8cpp.html#custom_5Fmode_5Fparams">channels.cpp</a></ul>
 : <a class="el" href="modules_8cpp.html#EMode">modules.cpp</a></ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>factory
-: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>fd_ref_table
-: <a class="el" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">modules.cpp</a></ul>
+: <a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#factory">users.cpp</a>, <a class="el" href="modules_8cpp.html#factory">modules.cpp</a>, <a class="el" href="channels_8cpp.html#factory">channels.cpp</a><li>fd_ref_table
+: <a class="el" href="users_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">users.cpp</a>, <a class="el" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">modules.cpp</a></ul>
+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+<li>local_users
+: <a class="el" href="users_8cpp.html#local_5Fusers">users.cpp</a></ul>
 <h3><a class="anchor" name="index_m">- m -</a></h3><ul>
 <li>MODCOUNT
-: <a class="el" href="modules_8cpp.html#MODCOUNT">modules.cpp</a>, <a class="el" href="channels_8cpp.html#MODCOUNT">channels.cpp</a><li>module_sockets
-: <a class="el" href="modules_8cpp.html#module_5Fsockets">modules.cpp</a><li>modules
-: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a></ul>
-<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
-<li>openSockfd
-: <a class="el" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">socket.cpp</a></ul>
+: <a class="el" href="users_8cpp.html#MODCOUNT">users.cpp</a>, <a class="el" href="modules_8cpp.html#MODCOUNT">modules.cpp</a>, <a class="el" href="channels_8cpp.html#MODCOUNT">channels.cpp</a><li>module_sockets
+: <a class="el" href="users_8cpp.html#module_5Fsockets">users.cpp</a>, <a class="el" href="modules_8cpp.html#module_5Fsockets">modules.cpp</a><li>modules
+: <a class="el" href="modules_8cpp.html#modules_28_32_35_35_29">modules.cpp</a>, <a class="el" href="users_8cpp.html#modules">users.cpp</a>, <a class="el" href="modules_8cpp.html#modules">modules.cpp</a>, <a class="el" href="channels_8cpp.html#modules">channels.cpp</a></ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>ref
 : <a class="el" href="socketengine_8cpp.html#ref_5B_36_35_35_33_35_5D">socketengine.cpp</a></ul>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
-<li>SE
-: <a class="el" href="socket_8cpp.html#SE">socket.cpp</a>, <a class="el" href="modules_8cpp.html#SE">modules.cpp</a><li>ServerInstance
-: <a class="el" href="modules_8cpp.html#ServerInstance">modules.cpp</a><li>socket_ref
-: <a class="el" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket.cpp</a></ul>
+<li>ServerInstance
+: <a class="el" href="users_8cpp.html#ServerInstance">users.cpp</a>, <a class="el" href="socket_8cpp.html#ServerInstance">socket.cpp</a>, <a class="el" href="modules_8cpp.html#ServerInstance">modules.cpp</a><li>socket_ref
+: <a class="el" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">users.cpp</a>, <a class="el" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket.cpp</a></ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>TIME
 : <a class="el" href="users_8cpp.html#TIME">users.cpp</a>, <a class="el" href="socket_8cpp.html#TIME">socket.cpp</a>, <a class="el" href="modules_8cpp.html#TIME">modules.cpp</a>, <a class="el" href="channels_8cpp.html#TIME">channels.cpp</a></ul>
 <h3><a class="anchor" name="index_w">- w -</a></h3><ul>
-<li>WHOWAS_MAX
-: <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">channels.cpp</a><li>WHOWAS_STALE
-: <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">channels.cpp</a></ul>
+<li>whowas
+: <a class="el" href="users_8cpp.html#whowas">users.cpp</a><li>WHOWAS_MAX
+: <a class="el" href="users_8cpp.html#WHOWAS_5FMAX">users.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">channels.cpp</a><li>WHOWAS_STALE
+: <a class="el" href="users_8cpp.html#WHOWAS_5FSTALE">users.cpp</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">channels.cpp</a></ul>
 <h3><a class="anchor" name="index_x">- x -</a></h3><ul>
 <li>X_EMPTY_SLOT
 : <a class="el" href="socketengine_8h.html#X_5FEMPTY_5FSLOT">socketengine.h</a><li>X_ESTAB_CLIENT
@@ -66,7 +64,7 @@
 : <a class="el" href="socketengine_8h.html#X_5FESTAB_5FMODULE">socketengine.h</a><li>X_LISTEN
 : <a class="el" href="socketengine_8h.html#X_5FLISTEN">socketengine.h</a><li>X_READBIT
 : <a class="el" href="socketengine_8h.html#X_5FREADBIT">socketengine.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f3adc6e304dc220e9625e1469a5aeaf7a485a137..865472e8c0b160960a7d29b5a131fa87b45db3d0 100644 (file)
Binary files a/docs/module-doc/graph_legend.gif and b/docs/module-doc/graph_legend.gif differ
index 706afb308a2c3d480193cacdedb1b09ffbffc109..bbe0ebefd3b783983065df89de07e028d65cccdf 100644 (file)
@@ -67,7 +67,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
 <li>
 A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
 </ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 08d0abcc0aaa7948bd5b911ba4f1724a7d9e2b30..4fbdf8d155755e23b29e5f6ab2e3763c7f48a59d 100644 (file)
 <a name="l00130"></a>00130 }
 <a name="l00131"></a>00131 
 <a name="l00132"></a>00132 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d9399a264dc9747dda14859b42a46d768511f991..44ba296ac62dcd93a1d961a73a989522a6a1c71a 100644 (file)
@@ -16,9 +16,10 @@ Include dependency graph for hashcomp.h:<p><center><img src="hashcomp_8h__incl.g
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="hashcomp_8h__dep__incl.gif" border="0" usemap="#hashcomp.hdep_map" alt=""></center>
 <map name="hashcomp.hdep_map">
-<area href="modules_8cpp-source.html" shape="rect" coords="285,7,384,34" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="151,58,236,84" alt="">
-<area href="channels_8cpp-source.html" shape="rect" coords="285,58,384,84" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="399,58,497,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="408,159,488,186" alt="">
+<area href="users_8h-source.html" shape="rect" coords="152,108,216,135" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="265,58,351,84" alt="">
 </map>
 
 <p>
@@ -79,7 +80,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 Definition at line <a class="el" href="hashcomp_8h-source.html#l00044">44</a> of file <a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 52c40f1fcacdff5b7b9658ae2ab10ead2c97d752..8e8539c8298017b8123c7c8aa4167414c0b950d4 100644 (file)
@@ -1,4 +1,5 @@
 base referer
-rect $modules_8cpp-source.html 285,7 384,34
-rect $typedefs_8h-source.html 151,58 236,84
-rect $channels_8cpp-source.html 285,58 384,84
+rect $modules_8cpp-source.html 399,58 497,84
+rect $users_8cpp-source.html 408,159 488,186
+rect $users_8h-source.html 152,108 216,135
+rect $typedefs_8h-source.html 265,58 351,84
index 6be4611c36fd7db6a0dab36318aedc9351eab2c4..cad960de245bbeb2cac3a593267a901c4f21fc95 100644 (file)
@@ -1 +1 @@
-6a6c46b821cf3dc5d3cadf06a3a1391b
\ No newline at end of file
+5670628fe56960fde1c1a397ce860733
\ No newline at end of file
index c65994f69ca428216573f888fb5ba5e001f4e727..b58db2482e8e813016986f159d4379eb58f7b1cb 100644 (file)
@@ -8,6 +8,7 @@
 <h1>InspIRCd Class Hierarchy</h1><a href="inherits.html">Go to the graphical class hierarchy</a>
 <p>
 This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="classAES.html">AES</a>
 <li><a class="el" href="classBoolSet.html">BoolSet</a>
 <li><a class="el" href="classstd_1_1char__traits.html">char_traits</a>
 <ul>
@@ -21,7 +22,6 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
 <li><a class="el" href="classExtensible.html">Extensible</a>
 <ul>
 <li><a class="el" href="classchanrec.html">chanrec</a>
-<li><a class="el" href="classcommand__t.html">command_t</a>
 <li><a class="el" href="classconnection.html">connection</a>
 <ul>
 <li><a class="el" href="classuserrec.html">userrec</a>
@@ -57,6 +57,10 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
 <li><a class="el" href="classZLine.html">ZLine</a>
 </ul>
 </ul>
+<li><a class="el" href="classcommand__t.html">command_t</a>
+<ul>
+<li><a class="el" href="classcmd__mode.html">cmd_mode</a>
+</ul>
 <li><a class="el" href="classCullItem.html">CullItem</a>
 <li><a class="el" href="classCullList.html">CullList</a>
 <li><a class="el" href="classDNS.html">DNS</a>
@@ -66,12 +70,13 @@ This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
 <li><a class="el" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a>
 <li><a class="el" href="classInspIRCd.html">InspIRCd</a>
 <li><a class="el" href="classInspSocket.html">InspSocket</a>
+<li><a class="el" href="classModeParser.html">ModeParser</a>
 <li><a class="el" href="classserverstats.html">serverstats</a>
 <li><a class="el" href="classSocketEngine.html">SocketEngine</a>
 <li><a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>
 <li><a class="el" href="classWhoWasUser.html">WhoWasUser</a>
 </ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 09d914feda79593d84ad465e853007829614eec5..360388e46f17c18a0c3ed34f52d62baeb9994510 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classBoolSet.html 7,7 76,33
+rect $classAES.html 7,7 57,33
index 0d55dc8ff5e82ba5896311ebfebc867253ebf470..0da62c0cdd79ddad0b426f0faa01ca3522fbfe46 100644 (file)
@@ -1 +1 @@
-93d9e4fbc2d3cddda9a76d7441754f2b
\ No newline at end of file
+4c1910dbd53656eee7c5c84fc773f193
\ No newline at end of file
index 2fef6e5edcf711638e4be9c58cf1e6a75371f27c..09d914feda79593d84ad465e853007829614eec5 100644 (file)
@@ -1,3 +1,2 @@
 base referer
-rect $classstd_1_1char__traits.html 8,7 91,33
-rect $structirc_1_1irc__char__traits.html 140,7 268,33
+rect $classBoolSet.html 7,7 76,33
index 9dc9f695d5fde6473cb4ebfa7eba1ffe45dcb575..0d55dc8ff5e82ba5896311ebfebc867253ebf470 100644 (file)
@@ -1 +1 @@
-9b6f095874e1ac542b37f925a223adb0
\ No newline at end of file
+93d9e4fbc2d3cddda9a76d7441754f2b
\ No newline at end of file
index 8c67f4a72f1173cdeda54687b26cecba3ecf1fbc..9f8c7b021c6ee884602b9f0955d6276cee2d67d7 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $structirc_1_1StrHashComp.html 7,7 135,33
+rect $classInspSocket.html 7,7 95,33
index b62920d1d7f93b8ee3edae306178cc5bc387caf8..d2ac3e742ee44c3f54c15a6fc4b8b37239028df8 100644 (file)
@@ -1 +1 @@
-d94ccc9245ee31c76282e2c8ed0c0bb2
\ No newline at end of file
+866431d87448beeff03effa477cb0785
\ No newline at end of file
index e9156462057751912b6ce9f68f99627ac938c1f6..dad9d9fcd2d602c157ca88e32a98a3bd9d0b0b8f 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $structnspace_1_1hash_3_01in__addr_01_4.html 8,7 176,33
+rect $structirc_1_1InAddr__HashComp.html 7,7 164,33
index 9c5f939fcf09f46fa41dbc4cdaf0667d67529d64..9496775c78a9eb0816ad3e943b5c34b8572a3884 100644 (file)
@@ -1 +1 @@
-40e92872c26375b92021bb12d46d2211
\ No newline at end of file
+3c2c67e0c9a15d3aaf7860ffcd39768e
\ No newline at end of file
index cf6c39bc65abb728a01d489f43094f253871ddf9..8c67f4a72f1173cdeda54687b26cecba3ecf1fbc 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $structnspace_1_1hash_3_01string_01_4.html 7,7 164,33
+rect $structirc_1_1StrHashComp.html 7,7 135,33
index 35447884365b03233858518c32bba6d61db511a8..b62920d1d7f93b8ee3edae306178cc5bc387caf8 100644 (file)
@@ -1 +1 @@
-317e8030ba500855ca30d38cc6449d34
\ No newline at end of file
+d94ccc9245ee31c76282e2c8ed0c0bb2
\ No newline at end of file
index 8390fc6188ca0284a4cc09255ca81d9a421e39ff..d4722becd2854b4c09f6915ec08eaa24d2b25ee1 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classserverstats.html 7,7 95,33
+rect $classModeParser.html 8,7 101,33
index 2d37de06bbf76b6ecb4f1857a51d2eb5f71c3c23..5703aac8a6480f14a759f22d00ac7e7563872192 100644 (file)
@@ -1 +1 @@
-cf48882e944fddb7efa2fe6a320e8c63
\ No newline at end of file
+f8e776a077ef5ca7f74ae7545b260b83
\ No newline at end of file
index cb5e685032914e6ec4dceff396fabfb8a20d5d45..e9156462057751912b6ce9f68f99627ac938c1f6 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classSocketEngine.html 8,7 112,33
+rect $structnspace_1_1hash_3_01in__addr_01_4.html 8,7 176,33
index 6349253e08d50f8c44e95560d16f21f9cf73eb78..9c5f939fcf09f46fa41dbc4cdaf0667d67529d64 100644 (file)
@@ -1 +1 @@
-949dcc70479b42522977703d4bb0a709
\ No newline at end of file
+40e92872c26375b92021bb12d46d2211
\ No newline at end of file
index f4dc152fc62a58992fd29c8381dad3830f240188..cf6c39bc65abb728a01d489f43094f253871ddf9 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classWhoWasUser.html 8,7 112,33
+rect $structnspace_1_1hash_3_01string_01_4.html 7,7 164,33
index 49ded545f9f415d3620ef31ff908f9b1aa13627a..35447884365b03233858518c32bba6d61db511a8 100644 (file)
@@ -1 +1 @@
-5bff511d62c6faa81cdb63b1f78f6cd8
\ No newline at end of file
+317e8030ba500855ca30d38cc6449d34
\ No newline at end of file
index 089be13aa5c52f0879d26cef31441bb349334633..2fef6e5edcf711638e4be9c58cf1e6a75371f27c 100644 (file)
@@ -1,33 +1,3 @@
 base referer
-rect $classclassbase.html 8,412 88,439
-rect $classAdmin.html 167,7 228,33
-rect $classConfigReader.html 146,57 250,84
-rect $classConnectClass.html 146,108 250,135
-rect $classExtensible.html 156,159 239,185
-rect $classExtMode.html 160,209 235,236
-rect $classFileReader.html 154,260 242,287
-rect $classHostItem.html 160,311 235,337
-rect $classInvited.html 167,361 228,388
-rect $classModeParameter.html 139,412 256,439
-rect $classModule.html 164,463 231,489
-rect $classModuleFactory.html 143,513 252,540
-rect $classModuleMessage.html 138,564 258,591
-rect $classServer.html 167,615 228,641
-rect $classServerConfig.html 147,665 248,692
-rect $classucrec.html 171,716 224,743
-rect $classVersion.html 164,767 231,793
-rect $classXLine.html 170,817 226,844
-rect $classchanrec.html 319,108 388,135
-rect $classcommand__t.html 308,159 399,185
-rect $classconnection.html 311,209 396,236
-rect $classuserrec.html 450,209 516,236
-rect $classBanItem.html 318,260 390,287
-rect $classExemptItem.html 307,311 400,337
-rect $classInviteItem.html 314,361 394,388
-rect $classEvent.html 326,539 382,565
-rect $classRequest.html 318,589 390,616
-rect $classELine.html 326,716 382,743
-rect $classGLine.html 324,767 383,793
-rect $classKLine.html 326,817 382,844
-rect $classQLine.html 324,868 383,895
-rect $classZLine.html 326,919 382,945
+rect $classstd_1_1char__traits.html 8,7 91,33
+rect $structirc_1_1irc__char__traits.html 140,7 268,33
index c52b8028e67179406d3d48aeca53c06fd5fc2d11..9dc9f695d5fde6473cb4ebfa7eba1ffe45dcb575 100644 (file)
@@ -1 +1 @@
-6d4274482c5e5284d113f8910d688065
\ No newline at end of file
+9b6f095874e1ac542b37f925a223adb0
\ No newline at end of file
index 286852f67e35c42473bd24f72a421c31e5c623ff..750f8121b595a8a3d13d83c6c8c025acda5f62f6 100644 (file)
@@ -1,2 +1,32 @@
 base referer
-rect $classCullItem.html 7,7 79,33
+rect $classclassbase.html 8,412 88,439
+rect $classAdmin.html 167,7 228,33
+rect $classConfigReader.html 146,57 250,84
+rect $classConnectClass.html 146,108 250,135
+rect $classExtensible.html 156,159 239,185
+rect $classExtMode.html 160,209 235,236
+rect $classFileReader.html 154,260 242,287
+rect $classHostItem.html 160,311 235,337
+rect $classInvited.html 167,361 228,388
+rect $classModeParameter.html 139,412 256,439
+rect $classModule.html 164,463 231,489
+rect $classModuleFactory.html 143,513 252,540
+rect $classModuleMessage.html 138,564 258,591
+rect $classServer.html 167,615 228,641
+rect $classServerConfig.html 147,665 248,692
+rect $classucrec.html 171,716 224,743
+rect $classVersion.html 164,767 231,793
+rect $classXLine.html 170,817 226,844
+rect $classchanrec.html 319,133 388,160
+rect $classconnection.html 311,184 396,211
+rect $classuserrec.html 450,184 516,211
+rect $classBanItem.html 318,260 390,287
+rect $classExemptItem.html 307,311 400,337
+rect $classInviteItem.html 314,361 394,388
+rect $classEvent.html 326,539 382,565
+rect $classRequest.html 318,589 390,616
+rect $classELine.html 326,716 382,743
+rect $classGLine.html 324,767 383,793
+rect $classKLine.html 326,817 382,844
+rect $classQLine.html 324,868 383,895
+rect $classZLine.html 326,919 382,945
index c6ff1cc7d83a1eb7f6bb7a5e492dcbc9238c8d98..2b3aa861f6fbac65eea26e0fdf966585e8ba5516 100644 (file)
@@ -1 +1 @@
-04d1a5175492509e76bb27f8c708e6ac
\ No newline at end of file
+8b70355902672fcff82486b7fba0d379
\ No newline at end of file
index 1b2802457370c227fa6b8f03a25706b66db1c5a0..0d7b60b2bb489d6aea14601a861c864a08538f2c 100644 (file)
@@ -1,2 +1,3 @@
 base referer
-rect $classCullList.html 7,7 73,33
+rect $classcommand__t.html 8,7 99,33
+rect $classcmd__mode.html 149,7 237,33
index df7340bb186b76712003de470d2d841188df1b64..97c80f0e21c58e00430ba59f444880b3e0f2070a 100644 (file)
@@ -1 +1 @@
-fc7a10efd1ef64cd67f77b97165cd78b
\ No newline at end of file
+3dde6dbafbcda9e1b64a7ed5d68e5a93
\ No newline at end of file
index 56a3b770374849bae54312324740c25146bf2e70..286852f67e35c42473bd24f72a421c31e5c623ff 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classDNS.html 7,7 57,33
+rect $classCullItem.html 7,7 79,33
index 3644e817ac8dd115ae932709fdcb3666ddae0505..c6ff1cc7d83a1eb7f6bb7a5e492dcbc9238c8d98 100644 (file)
@@ -1 +1 @@
-d39d1604b95cefdfc240566a784bc1e0
\ No newline at end of file
+04d1a5175492509e76bb27f8c708e6ac
\ No newline at end of file
index 37bcc604813e7558ab0943195c650534de730a73..1b2802457370c227fa6b8f03a25706b66db1c5a0 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $structdns__ip4list.html 7,7 92,33
+rect $classCullList.html 7,7 73,33
index a570a57e1c0afc3d51f71c69e89eb942b5f33ab5..df7340bb186b76712003de470d2d841188df1b64 100644 (file)
@@ -1 +1 @@
-f91f9b746cbe9764b077e0f96e3d53c0
\ No newline at end of file
+fc7a10efd1ef64cd67f77b97165cd78b
\ No newline at end of file
index ac2c9ebe99f2b3654905c58eb71afb4fcf33c1c1..56a3b770374849bae54312324740c25146bf2e70 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classInspIRCd.html 7,7 84,33
+rect $classDNS.html 7,7 57,33
index d6b0d6c87760f0fcd9e743f345acdf654f2174dd..3644e817ac8dd115ae932709fdcb3666ddae0505 100644 (file)
@@ -1 +1 @@
-027440a4e7d81cbfbc813d6bda090a43
\ No newline at end of file
+d39d1604b95cefdfc240566a784bc1e0
\ No newline at end of file
index 9f8c7b021c6ee884602b9f0955d6276cee2d67d7..37bcc604813e7558ab0943195c650534de730a73 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $classInspSocket.html 7,7 95,33
+rect $structdns__ip4list.html 7,7 92,33
index d2ac3e742ee44c3f54c15a6fc4b8b37239028df8..a570a57e1c0afc3d51f71c69e89eb942b5f33ab5 100644 (file)
@@ -1 +1 @@
-866431d87448beeff03effa477cb0785
\ No newline at end of file
+f91f9b746cbe9764b077e0f96e3d53c0
\ No newline at end of file
index dad9d9fcd2d602c157ca88e32a98a3bd9d0b0b8f..ac2c9ebe99f2b3654905c58eb71afb4fcf33c1c1 100644 (file)
@@ -1,2 +1,2 @@
 base referer
-rect $structirc_1_1InAddr__HashComp.html 7,7 164,33
+rect $classInspIRCd.html 7,7 84,33
index 9496775c78a9eb0816ad3e943b5c34b8572a3884..d6b0d6c87760f0fcd9e743f345acdf654f2174dd 100644 (file)
@@ -1 +1 @@
-3c2c67e0c9a15d3aaf7860ffcd39768e
\ No newline at end of file
+027440a4e7d81cbfbc813d6bda090a43
\ No newline at end of file
index 6a21e9c14ad28202daf84d2e806ed34f787127c6..7a931df22209c49984e43c13235f23133ab92381 100644 (file)
@@ -8,16 +8,20 @@
 <h1>InspIRCd Graphical Class Hierarchy</h1><a href="hierarchy.html">Go to the textual class hierarchy</a>
 <p>
 <table border="0" cellspacing="10" cellpadding="0">
-<tr><td><img src="inherit__graph__0.gif" border="0" alt="" usemap="#BoolSet_map">
+<tr><td><img src="inherit__graph__0.gif" border="0" alt="" usemap="#AES_map">
+<map name="AES_map">
+<area href="classAES.html" shape="rect" coords="7,7,57,33" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__1.gif" border="0" alt="" usemap="#BoolSet_map">
 <map name="BoolSet_map">
 <area href="classBoolSet.html" shape="rect" coords="7,7,76,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__1.gif" border="0" alt="" usemap="#char__traits_map">
+<tr><td><img src="inherit__graph__2.gif" border="0" alt="" usemap="#char__traits_map">
 <map name="char__traits_map">
 <area href="classstd_1_1char__traits.html" shape="rect" coords="8,7,91,33" alt="">
 <area href="structirc_1_1irc__char__traits.html" shape="rect" coords="140,7,268,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__2.gif" border="0" alt="" usemap="#classbase_map">
+<tr><td><img src="inherit__graph__3.gif" border="0" alt="" usemap="#classbase_map">
 <map name="classbase_map">
 <area href="classclassbase.html" shape="rect" coords="8,412,88,439" alt="">
 <area href="classAdmin.html" shape="rect" coords="167,7,228,33" alt="">
 <area href="classucrec.html" shape="rect" coords="171,716,224,743" alt="">
 <area href="classVersion.html" shape="rect" coords="164,767,231,793" alt="">
 <area href="classXLine.html" shape="rect" coords="170,817,226,844" alt="">
-<area href="classchanrec.html" shape="rect" coords="319,108,388,135" alt="">
-<area href="classcommand__t.html" shape="rect" coords="308,159,399,185" alt="">
-<area href="classconnection.html" shape="rect" coords="311,209,396,236" alt="">
-<area href="classuserrec.html" shape="rect" coords="450,209,516,236" alt="">
+<area href="classchanrec.html" shape="rect" coords="319,133,388,160" alt="">
+<area href="classconnection.html" shape="rect" coords="311,184,396,211" alt="">
+<area href="classuserrec.html" shape="rect" coords="450,184,516,211" alt="">
 <area href="classBanItem.html" shape="rect" coords="318,260,390,287" alt="">
 <area href="classExemptItem.html" shape="rect" coords="307,311,400,337" alt="">
 <area href="classInviteItem.html" shape="rect" coords="314,361,394,388" alt="">
 <area href="classQLine.html" shape="rect" coords="324,868,383,895" alt="">
 <area href="classZLine.html" shape="rect" coords="326,919,382,945" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__3.gif" border="0" alt="" usemap="#CullItem_map">
+<tr><td><img src="inherit__graph__4.gif" border="0" alt="" usemap="#command__t_map">
+<map name="command__t_map">
+<area href="classcommand__t.html" shape="rect" coords="8,7,99,33" alt="">
+<area href="classcmd__mode.html" shape="rect" coords="149,7,237,33" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__5.gif" border="0" alt="" usemap="#CullItem_map">
 <map name="CullItem_map">
 <area href="classCullItem.html" shape="rect" coords="7,7,79,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__4.gif" border="0" alt="" usemap="#CullList_map">
+<tr><td><img src="inherit__graph__6.gif" border="0" alt="" usemap="#CullList_map">
 <map name="CullList_map">
 <area href="classCullList.html" shape="rect" coords="7,7,73,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__5.gif" border="0" alt="" usemap="#DNS_map">
+<tr><td><img src="inherit__graph__7.gif" border="0" alt="" usemap="#DNS_map">
 <map name="DNS_map">
 <area href="classDNS.html" shape="rect" coords="7,7,57,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__6.gif" border="0" alt="" usemap="#dns__ip4list_map">
+<tr><td><img src="inherit__graph__8.gif" border="0" alt="" usemap="#dns__ip4list_map">
 <map name="dns__ip4list_map">
 <area href="structdns__ip4list.html" shape="rect" coords="7,7,92,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__7.gif" border="0" alt="" usemap="#InspIRCd_map">
+<tr><td><img src="inherit__graph__9.gif" border="0" alt="" usemap="#InspIRCd_map">
 <map name="InspIRCd_map">
 <area href="classInspIRCd.html" shape="rect" coords="7,7,84,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__8.gif" border="0" alt="" usemap="#InspSocket_map">
+<tr><td><img src="inherit__graph__10.gif" border="0" alt="" usemap="#InspSocket_map">
 <map name="InspSocket_map">
 <area href="classInspSocket.html" shape="rect" coords="7,7,95,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__9.gif" border="0" alt="" usemap="#irc_1_1InAddr__HashComp_map">
+<tr><td><img src="inherit__graph__11.gif" border="0" alt="" usemap="#irc_1_1InAddr__HashComp_map">
 <map name="irc_1_1InAddr__HashComp_map">
 <area href="structirc_1_1InAddr__HashComp.html" shape="rect" coords="7,7,164,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__10.gif" border="0" alt="" usemap="#irc_1_1StrHashComp_map">
+<tr><td><img src="inherit__graph__12.gif" border="0" alt="" usemap="#irc_1_1StrHashComp_map">
 <map name="irc_1_1StrHashComp_map">
 <area href="structirc_1_1StrHashComp.html" shape="rect" coords="7,7,135,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__11.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01in__addr_01_4_map">
+<tr><td><img src="inherit__graph__13.gif" border="0" alt="" usemap="#ModeParser_map">
+<map name="ModeParser_map">
+<area href="classModeParser.html" shape="rect" coords="8,7,101,33" alt="">
+</map></td></tr>
+<tr><td><img src="inherit__graph__14.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01in__addr_01_4_map">
 <map name="nspace_1_1hash_3_01in__addr_01_4_map">
 <area href="structnspace_1_1hash_3_01in__addr_01_4.html" shape="rect" coords="8,7,176,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__12.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01string_01_4_map">
+<tr><td><img src="inherit__graph__15.gif" border="0" alt="" usemap="#nspace_1_1hash_3_01string_01_4_map">
 <map name="nspace_1_1hash_3_01string_01_4_map">
 <area href="structnspace_1_1hash_3_01string_01_4.html" shape="rect" coords="7,7,164,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__13.gif" border="0" alt="" usemap="#serverstats_map">
+<tr><td><img src="inherit__graph__16.gif" border="0" alt="" usemap="#serverstats_map">
 <map name="serverstats_map">
 <area href="classserverstats.html" shape="rect" coords="7,7,95,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__14.gif" border="0" alt="" usemap="#SocketEngine_map">
+<tr><td><img src="inherit__graph__17.gif" border="0" alt="" usemap="#SocketEngine_map">
 <map name="SocketEngine_map">
 <area href="classSocketEngine.html" shape="rect" coords="8,7,112,33" alt="">
 </map></td></tr>
-<tr><td><img src="inherit__graph__15.gif" border="0" alt="" usemap="#WhoWasUser_map">
+<tr><td><img src="inherit__graph__18.gif" border="0" alt="" usemap="#WhoWasUser_map">
 <map name="WhoWasUser_map">
 <area href="classWhoWasUser.html" shape="rect" coords="8,7,112,33" alt="">
 </map></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:21 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b2c1f49a85ff029975d4d277617402e4f2474beb..7dab7e04ae60c093d8d64f632f296590d9fb9997 100644 (file)
 <a name="l00039"></a>00039 <span class="preprocessor">#include &lt;deque&gt;</span>
 <a name="l00040"></a>00040 
 <a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="inspircd__io_8h.html">inspircd_io.h</a>"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "inspircd_util.h"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047 <span class="comment">// some misc defines</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "command_parse.h"</span>
 <a name="l00048"></a>00048 
-<a name="l00049"></a><a class="code" href="inspircd_8h.html#ERROR">00049</a> <span class="preprocessor">#define ERROR -1</span>
-<a name="l00050"></a><a class="code" href="inspircd_8h.html#TRUE">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define TRUE 1</span>
-<a name="l00051"></a><a class="code" href="inspircd_8h.html#FALSE">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define FALSE 0</span>
-<a name="l00052"></a><a class="code" href="inspircd_8h.html#MAXSOCKS">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXSOCKS 64</span>
-<a name="l00053"></a><a class="code" href="inspircd_8h.html#MAXCOMMAND">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXCOMMAND 32</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00055"></a>00055 <span class="comment">// flags for use with WriteMode</span>
-<a name="l00056"></a>00056 
-<a name="l00057"></a><a class="code" href="inspircd_8h.html#WM_5FAND">00057</a> <span class="preprocessor">#define WM_AND 1</span>
-<a name="l00058"></a><a class="code" href="inspircd_8h.html#WM_5FOR">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define WM_OR 2</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span>
-<a name="l00060"></a>00060 <span class="comment">// flags for use with OnUserPreMessage and OnUserPreNotice</span>
-<a name="l00061"></a>00061 
-<a name="l00062"></a><a class="code" href="inspircd_8h.html#TYPE_5FUSER">00062</a> <span class="preprocessor">#define TYPE_USER 1</span>
-<a name="l00063"></a><a class="code" href="inspircd_8h.html#TYPE_5FCHANNEL">00063</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_CHANNEL 2</span>
-<a name="l00064"></a><a class="code" href="inspircd_8h.html#TYPE_5FSERVER">00064</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_SERVER 3</span>
-<a name="l00065"></a>00065 <span class="preprocessor"></span>
-<a name="l00066"></a><a class="code" href="inspircd_8h.html#IS_5FLOCAL_28x_29">00066</a> <span class="preprocessor">#define IS_LOCAL(x) (x-&gt;fd &gt; -1)</span>
-<a name="l00067"></a><a class="code" href="inspircd_8h.html#IS_5FREMOTE_28x_29">00067</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_REMOTE(x) (x-&gt;fd &lt; 0)</span>
-<a name="l00068"></a><a class="code" href="inspircd_8h.html#IS_5FMODULE_5FCREATED_28x_29">00068</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_MODULE_CREATED(x) (x-&gt;fd == FD_MAGIC_NUMBER)</span>
-<a name="l00069"></a>00069 <span class="preprocessor"></span>
-<a name="l00070"></a><a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">00070</a> <span class="keyword">typedef</span> void (<a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>) (<span class="keywordtype">char</span>**, int, <a class="code" href="classuserrec.html">userrec</a>*);
-<a name="l00071"></a>00071 
-<a name="l00072"></a><a class="code" href="classserverstats.html">00072</a> <span class="keyword">class </span><a class="code" href="classserverstats.html">serverstats</a>
-<a name="l00073"></a>00073 {
-<a name="l00074"></a>00074   <span class="keyword">public</span>:
-<a name="l00075"></a><a class="code" href="classserverstats.html#statsAccept">00075</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsAccept">statsAccept</a>;
-<a name="l00076"></a><a class="code" href="classserverstats.html#statsRefused">00076</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsRefused">statsRefused</a>;
-<a name="l00077"></a><a class="code" href="classserverstats.html#statsUnknown">00077</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a>;
-<a name="l00078"></a><a class="code" href="classserverstats.html#statsCollisions">00078</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>;
-<a name="l00079"></a><a class="code" href="classserverstats.html#statsDns">00079</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDns">statsDns</a>;
-<a name="l00080"></a><a class="code" href="classserverstats.html#statsDnsGood">00080</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a>;
-<a name="l00081"></a><a class="code" href="classserverstats.html#statsDnsBad">00081</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a>;
-<a name="l00082"></a><a class="code" href="classserverstats.html#statsConnects">00082</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsConnects">statsConnects</a>;
-<a name="l00083"></a><a class="code" href="classserverstats.html#statsSent">00083</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsSent">statsSent</a>;
-<a name="l00084"></a><a class="code" href="classserverstats.html#statsRecv">00084</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsRecv">statsRecv</a>;
-<a name="l00085"></a>00085 
-<a name="l00086"></a><a class="code" href="classserverstats.html#serverstats_28_29">00086</a>         <a class="code" href="classserverstats.html#serverstats_28_29">serverstats</a>()
-<a name="l00087"></a>00087         {
-<a name="l00088"></a>00088                 <a class="code" href="classserverstats.html#statsAccept">statsAccept</a> = <a class="code" href="classserverstats.html#statsRefused">statsRefused</a> = <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a> = 0;
-<a name="l00089"></a>00089                 <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a> = <a class="code" href="classserverstats.html#statsDns">statsDns</a> = <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a> = 0;
-<a name="l00090"></a>00090                 <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a> = <a class="code" href="classserverstats.html#statsConnects">statsConnects</a> = <a class="code" href="classserverstats.html#statsSent">statsSent</a> = <a class="code" href="classserverstats.html#statsRecv">statsRecv</a> = 0;
-<a name="l00091"></a>00091         }
-<a name="l00092"></a>00092 };
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 
-<a name="l00095"></a><a class="code" href="classInspIRCd.html">00095</a> <span class="keyword">class </span><a class="code" href="classInspIRCd.html">InspIRCd</a>
-<a name="l00096"></a>00096 {
+<a name="l00049"></a>00049 <span class="comment">// some misc defines</span>
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="inspircd_8h.html#ERROR">00051</a> <span class="preprocessor">#define ERROR -1</span>
+<a name="l00052"></a><a class="code" href="inspircd_8h.html#TRUE">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define TRUE 1</span>
+<a name="l00053"></a><a class="code" href="inspircd_8h.html#FALSE">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define FALSE 0</span>
+<a name="l00054"></a><a class="code" href="inspircd_8h.html#MAXSOCKS">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXSOCKS 64</span>
+<a name="l00055"></a><a class="code" href="inspircd_8h.html#MAXCOMMAND">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define MAXCOMMAND 32</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span>
+<a name="l00057"></a>00057 <span class="comment">/*</span>
+<a name="l00058"></a>00058 <span class="comment">flags for use with WriteMode</span>
+<a name="l00059"></a>00059 <span class="comment"></span>
+<a name="l00060"></a>00060 <span class="comment">#define WM_AND 1</span>
+<a name="l00061"></a>00061 <span class="comment">#define WM_OR 2</span>
+<a name="l00062"></a>00062 <span class="comment"></span>
+<a name="l00063"></a>00063 <span class="comment">flags for use with OnUserPreMessage and OnUserPreNotice</span>
+<a name="l00064"></a>00064 <span class="comment"></span>
+<a name="l00065"></a>00065 <span class="comment">#define TYPE_USER 1</span>
+<a name="l00066"></a>00066 <span class="comment">#define TYPE_CHANNEL 2</span>
+<a name="l00067"></a>00067 <span class="comment">#define TYPE_SERVER 3</span>
+<a name="l00068"></a>00068 <span class="comment"></span>
+<a name="l00069"></a>00069 <span class="comment">#define IS_LOCAL(x) (x-&gt;fd &gt; -1)</span>
+<a name="l00070"></a>00070 <span class="comment">#define IS_REMOTE(x) (x-&gt;fd &lt; 0)</span>
+<a name="l00071"></a>00071 <span class="comment">#define IS_MODULE_CREATED(x) (x-&gt;fd == FD_MAGIC_NUMBER)</span>
+<a name="l00072"></a>00072 <span class="comment">*/</span>
+<a name="l00073"></a>00073 
+<a name="l00074"></a><a class="code" href="classserverstats.html">00074</a> <span class="keyword">class </span><a class="code" href="classserverstats.html">serverstats</a>
+<a name="l00075"></a>00075 {
+<a name="l00076"></a>00076   <span class="keyword">public</span>:
+<a name="l00077"></a><a class="code" href="classserverstats.html#statsAccept">00077</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsAccept">statsAccept</a>;
+<a name="l00078"></a><a class="code" href="classserverstats.html#statsRefused">00078</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsRefused">statsRefused</a>;
+<a name="l00079"></a><a class="code" href="classserverstats.html#statsUnknown">00079</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a>;
+<a name="l00080"></a><a class="code" href="classserverstats.html#statsCollisions">00080</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>;
+<a name="l00081"></a><a class="code" href="classserverstats.html#statsDns">00081</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDns">statsDns</a>;
+<a name="l00082"></a><a class="code" href="classserverstats.html#statsDnsGood">00082</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a>;
+<a name="l00083"></a><a class="code" href="classserverstats.html#statsDnsBad">00083</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a>;
+<a name="l00084"></a><a class="code" href="classserverstats.html#statsConnects">00084</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsConnects">statsConnects</a>;
+<a name="l00085"></a><a class="code" href="classserverstats.html#statsSent">00085</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsSent">statsSent</a>;
+<a name="l00086"></a><a class="code" href="classserverstats.html#statsRecv">00086</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#statsRecv">statsRecv</a>;
+<a name="l00087"></a><a class="code" href="classserverstats.html#BoundPortCount">00087</a>         <span class="keywordtype">int</span> <a class="code" href="classserverstats.html#BoundPortCount">BoundPortCount</a>;
+<a name="l00088"></a>00088 
+<a name="l00089"></a><a class="code" href="classserverstats.html#serverstats_28_29">00089</a>         <a class="code" href="classserverstats.html#serverstats_28_29">serverstats</a>()
+<a name="l00090"></a>00090         {
+<a name="l00091"></a>00091                 <a class="code" href="classserverstats.html#statsAccept">statsAccept</a> = <a class="code" href="classserverstats.html#statsRefused">statsRefused</a> = <a class="code" href="classserverstats.html#statsUnknown">statsUnknown</a> = 0;
+<a name="l00092"></a>00092                 <a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a> = <a class="code" href="classserverstats.html#statsDns">statsDns</a> = <a class="code" href="classserverstats.html#statsDnsGood">statsDnsGood</a> = 0;
+<a name="l00093"></a>00093                 <a class="code" href="classserverstats.html#statsDnsBad">statsDnsBad</a> = <a class="code" href="classserverstats.html#statsConnects">statsConnects</a> = <a class="code" href="classserverstats.html#statsSent">statsSent</a> = <a class="code" href="classserverstats.html#statsRecv">statsRecv</a> = 0;
+<a name="l00094"></a>00094                 <a class="code" href="classserverstats.html#BoundPortCount">BoundPortCount</a> = 0;
+<a name="l00095"></a>00095         }
+<a name="l00096"></a>00096 };
 <a name="l00097"></a>00097 
-<a name="l00098"></a>00098  <span class="keyword">private</span>:
-<a name="l00099"></a><a class="code" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">00099</a>         <span class="keywordtype">char</span> <a class="code" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">MODERR</a>[MAXBUF];
-<a name="l00100"></a>00100         <span class="keywordtype">void</span> <a class="code" href="classInspIRCd.html#erase_5Ffactory_28int_20j_29">erase_factory</a>(<span class="keywordtype">int</span> j);
-<a name="l00101"></a>00101         <span class="keywordtype">void</span> <a class="code" href="classInspIRCd.html#erase_5Fmodule_28int_20j_29">erase_module</a>(<span class="keywordtype">int</span> j);       
-<a name="l00102"></a>00102 
-<a name="l00103"></a>00103  <span class="keyword">public</span>:
-<a name="l00104"></a><a class="code" href="classInspIRCd.html#startup_5Ftime">00104</a>         time_t <a class="code" href="classInspIRCd.html#startup_5Ftime">startup_time</a>;
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspIRCd.html#GetRevision_28_29">GetRevision</a>();
-<a name="l00107"></a>00107         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
-<a name="l00108"></a>00108         <span class="keywordtype">char</span>* <a class="code" href="classInspIRCd.html#ModuleError_28_29">ModuleError</a>();
-<a name="l00109"></a>00109         <span class="keywordtype">bool</span> <a class="code" href="classInspIRCd.html#LoadModule_28const_20char_20_2Afilename_29">LoadModule</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);
-<a name="l00110"></a>00110         <span class="keywordtype">bool</span> <a class="code" href="classInspIRCd.html#UnloadModule_28const_20char_20_2Afilename_29">UnloadModule</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);
-<a name="l00111"></a>00111         <a class="code" href="classInspIRCd.html#InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29">InspIRCd</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);
-<a name="l00112"></a>00112         <span class="keywordtype">int</span> <a class="code" href="classInspIRCd.html#Run_28_29">Run</a>();
+<a name="l00098"></a>00098 
+<a name="l00099"></a><a class="code" href="classInspIRCd.html">00099</a> <span class="keyword">class </span><a class="code" href="classInspIRCd.html">InspIRCd</a>
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101 
+<a name="l00102"></a>00102  <span class="keyword">private</span>:
+<a name="l00103"></a><a class="code" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">00103</a>         <span class="keywordtype">char</span> <a class="code" href="classInspIRCd.html#MODERR_5BMAXBUF_5D">MODERR</a>[MAXBUF];
+<a name="l00104"></a>00104         <span class="keywordtype">void</span> <a class="code" href="classInspIRCd.html#erase_5Ffactory_28int_20j_29">erase_factory</a>(<span class="keywordtype">int</span> j);
+<a name="l00105"></a>00105         <span class="keywordtype">void</span> <a class="code" href="classInspIRCd.html#erase_5Fmodule_28int_20j_29">erase_module</a>(<span class="keywordtype">int</span> j);       
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107  <span class="keyword">public</span>:
+<a name="l00108"></a><a class="code" href="classInspIRCd.html#startup_5Ftime">00108</a>         time_t <a class="code" href="classInspIRCd.html#startup_5Ftime">startup_time</a>;
+<a name="l00109"></a><a class="code" href="classInspIRCd.html#ModeGrok">00109</a>         <a class="code" href="classModeParser.html">ModeParser</a>* <a class="code" href="classInspIRCd.html#ModeGrok">ModeGrok</a>;
+<a name="l00110"></a><a class="code" href="classInspIRCd.html#Parser">00110</a>         CommandParser* <a class="code" href="classInspIRCd.html#Parser">Parser</a>;
+<a name="l00111"></a><a class="code" href="classInspIRCd.html#SE">00111</a>         <a class="code" href="classSocketEngine.html">SocketEngine</a>* <a class="code" href="classInspIRCd.html#SE">SE</a>;
+<a name="l00112"></a><a class="code" href="classInspIRCd.html#stats">00112</a>         <a class="code" href="classserverstats.html">serverstats</a>* <a class="code" href="classInspIRCd.html#stats">stats</a>;
 <a name="l00113"></a>00113 
-<a name="l00114"></a>00114 };
-<a name="l00115"></a>00115 
-<a name="l00116"></a>00116 <span class="comment">/* prototypes */</span>
-<a name="l00117"></a>00117 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keyword">const</span> <span class="keywordtype">char</span>* newnick);
-<a name="l00118"></a>00118 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r);
-<a name="l00119"></a>00119 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r);
-<a name="l00120"></a>00120 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* commandname,<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00121"></a>00121 <span class="keywordtype">bool</span> <a class="code" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> * user);
-<a name="l00122"></a>00122 <span class="keywordtype">int</span> <a class="code" href="inspircd_8h.html#loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29">loop_call</a>(<a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> fn, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *u, <span class="keywordtype">int</span> start, <span class="keywordtype">int</span> end, <span class="keywordtype">int</span> joins);
-<a name="l00123"></a>00123 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(<a class="code" href="classuserrec.html">userrec</a>* u);
-<a name="l00124"></a>00124 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00125"></a>00125 <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="inspircd_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a>(<span class="keywordtype">char</span>* Old, <span class="keywordtype">char</span>* New);
-<a name="l00126"></a>00126 <span class="comment">/* optimization tricks to save us walking the user hash */</span>
-<a name="l00127"></a>00127 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#AddOper_28userrec_20_2Auser_29">AddOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00128"></a>00128 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00129"></a>00129 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_version</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00130"></a>00130 <span class="comment">/* userrec optimization stuff */</span>
-<a name="l00131"></a>00131 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#AddServerName_28std_3A_3Astring_20servername_29">AddServerName</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername);
-<a name="l00132"></a>00132 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername);
-<a name="l00133"></a>00133 <span class="keywordtype">void</span>* <a class="code" href="inspircd_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns_task</a>(<span class="keywordtype">void</span>* arg);
-<a name="l00134"></a>00134 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29">process_buffer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* cmdbuf,<a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00136"></a>00136 
-<a name="l00137"></a>00137 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00114"></a>00114         <span class="keywordtype">void</span> <a class="code" href="classInspIRCd.html#MakeLowerMap_28_29">MakeLowerMap</a>();
+<a name="l00115"></a>00115         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspIRCd.html#GetRevision_28_29">GetRevision</a>();
+<a name="l00116"></a>00116         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
+<a name="l00117"></a>00117         <span class="keywordtype">char</span>* <a class="code" href="classInspIRCd.html#ModuleError_28_29">ModuleError</a>();
+<a name="l00118"></a>00118         <span class="keywordtype">bool</span> <a class="code" href="classInspIRCd.html#LoadModule_28const_20char_20_2Afilename_29">LoadModule</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);
+<a name="l00119"></a>00119         <span class="keywordtype">bool</span> <a class="code" href="classInspIRCd.html#UnloadModule_28const_20char_20_2Afilename_29">UnloadModule</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename);
+<a name="l00120"></a>00120         <a class="code" href="classInspIRCd.html#InspIRCd_28int_20argc_2C_20char_20_2A_2Aargv_29">InspIRCd</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);
+<a name="l00121"></a>00121         <span class="keywordtype">int</span> <a class="code" href="classInspIRCd.html#Run_28_29">Run</a>();
+<a name="l00122"></a>00122 
+<a name="l00123"></a>00123 };
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 <span class="comment">/* userrec optimization stuff */</span>
+<a name="l00126"></a>00126 <span class="keywordtype">void</span> <a class="code" href="inspircd_8h.html#AddServerName_28std_3A_3Astring_20servername_29">AddServerName</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername);
+<a name="l00127"></a>00127 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername);
+<a name="l00128"></a>00128 
+<a name="l00129"></a>00129 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 73e37bc9421c70db995208e7b0681b100eca91e4..196378c4bf95752c32ff50fc5ec2f2f95dd6dfec 100644 (file)
 <code>#include &lt;arpa/inet.h&gt;</code><br>
 <code>#include &lt;deque&gt;</code><br>
 <code>#include &quot;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&quot;</code><br>
-<code>#include &quot;inspircd_util.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="users_8h-source.html">users.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="channels_8h-source.html">channels.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="socket_8h-source.html">socket.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="mode_8h-source.html">mode.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="socketengine_8h-source.html">socketengine.h</a>&quot;</code><br>
+<code>#include &quot;command_parse.h&quot;</code><br>
 
 <p>
 Include dependency graph for inspircd.h:<p><center><img src="inspircd_8h__incl.gif" border="0" usemap="#inspircd.h_map" alt=""></center>
 <map name="inspircd.h_map">
-<area href="inspircd__io_8h-source.html" shape="rect" coords="139,615,235,642" alt="">
-<area href="users_8h-source.html" shape="rect" coords="155,868,219,895" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="292,868,377,895" alt="">
-<area href="socket_8h-source.html" shape="rect" coords="151,463,223,490" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="153,442,249,468" alt="">
+<area href="users_8h-source.html" shape="rect" coords="332,290,396,316" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="461,188,547,215" alt="">
+<area href="socket_8h-source.html" shape="rect" coords="165,644,237,671" alt="">
+<area href="mode_8h-source.html" shape="rect" coords="168,290,235,316" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="145,492,257,519" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="inspircd_8h__dep__incl.gif" border="0" usemap="#inspircd.hdep_map" alt=""></center>
 <map name="inspircd.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="469,83,568,110" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="469,260,568,287" alt="">
-<area href="socket_8cpp-source.html" shape="rect" coords="315,362,400,388" alt="">
-<area href="socketengine_8cpp-source.html" shape="rect" coords="295,463,420,490" alt="">
-<area href="users_8cpp-source.html" shape="rect" coords="151,514,231,540" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="153,159,228,186" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="315,108,400,135" alt="">
-<area href="inspircd__io_8h-source.html" shape="rect" coords="143,260,239,287" alt="">
-<area href="socketengine_8h-source.html" shape="rect" coords="135,412,247,439" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="308,57,407,84" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="308,133,407,160" alt="">
+<area href="socket_8cpp-source.html" shape="rect" coords="315,209,400,236" alt="">
+<area href="socketengine_8cpp-source.html" shape="rect" coords="295,336,420,363" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="318,260,398,287" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="143,57,239,84" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="135,260,247,287" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="148,108,234,135" alt="">
+<area href="userprocess_8h-source.html" shape="rect" coords="139,412,243,439" alt="">
 </map>
 
 <p>
@@ -70,60 +74,11 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#MAXCOMMAND">MAXCOMMAND</a>&nbsp;&nbsp;&nbsp;32</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#WM_5FAND">WM_AND</a>&nbsp;&nbsp;&nbsp;1</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#WM_5FOR">WM_OR</a>&nbsp;&nbsp;&nbsp;2</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#TYPE_5FUSER">TYPE_USER</a>&nbsp;&nbsp;&nbsp;1</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#TYPE_5FCHANNEL">TYPE_CHANNEL</a>&nbsp;&nbsp;&nbsp;2</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#TYPE_5FSERVER">TYPE_SERVER</a>&nbsp;&nbsp;&nbsp;3</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#IS_5FLOCAL_28x_29">IS_LOCAL</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd &gt; -1)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#IS_5FREMOTE_28x_29">IS_REMOTE</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd &lt; 0)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#IS_5FMODULE_5FCREATED_28x_29">IS_MODULE_CREATED</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd == FD_MAGIC_NUMBER)</td></tr>
-
-<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> )(char **, int, <a class="el" href="classuserrec.html">userrec</a> *)</td></tr>
-
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *newnick)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler</a> (const char *commandname, char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd</a> (const char *commandname, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29">loop_call</a> (<a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> fn, char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *u, int start, int end, int joins)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a> (<a class="el" href="classuserrec.html">userrec</a> *u)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a> (char *Old, char *New)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#AddOper_28userrec_20_2Auser_29">AddOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_version</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#AddServerName_28std_3A_3Astring_20servername_29">AddServerName</a> (<a class="el" href="namespaceirc.html#string">std::string</a> servername)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a> (<a class="el" href="namespaceirc.html#string">std::string</a> servername)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#dns_5Ftask_28void_20_2Aarg_29">dns_task</a> (void *arg)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29">process_buffer</a> (const char *cmdbuf, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="inspircd_8h.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
 </table>
 <hr><h2>Define Documentation</h2>
 <a class="anchor" name="ERROR"></a><!-- doxytag: member="inspircd.h::ERROR" ref="ERROR" args="" --><p>
@@ -148,9 +103,9 @@ This graph shows which files directly or indirectly include this file:<p><center
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00049">49</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
+Definition at line <a class="el" href="inspircd_8h-source.html#l00051">51</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket::InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="FALSE"></a><!-- doxytag: member="inspircd.h::FALSE" ref="FALSE" args="" --><p>
@@ -175,97 +130,7 @@ Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::In
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00051">51</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="IS_5FLOCAL_28x_29"></a><!-- doxytag: member="inspircd.h::IS_LOCAL" ref="IS_5FLOCAL_28x_29" args="(x)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define IS_LOCAL          </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">x&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd &gt; -1)</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="inspircd_8h-source.html#l00066">66</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="IS_5FMODULE_5FCREATED_28x_29"></a><!-- doxytag: member="inspircd.h::IS_MODULE_CREATED" ref="IS_5FMODULE_5FCREATED_28x_29" args="(x)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define IS_MODULE_CREATED          </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">x&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd == FD_MAGIC_NUMBER)</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="inspircd_8h-source.html#l00068">68</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="IS_5FREMOTE_28x_29"></a><!-- doxytag: member="inspircd.h::IS_REMOTE" ref="IS_5FREMOTE_28x_29" args="(x)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define IS_REMOTE          </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">x&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd &lt; 0)</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="inspircd_8h-source.html#l00067">67</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00053">53</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MAXCOMMAND"></a><!-- doxytag: member="inspircd.h::MAXCOMMAND" ref="MAXCOMMAND" args="" --><p>
@@ -290,7 +155,7 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00067">67</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00053">53</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00055">55</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MAXSOCKS"></a><!-- doxytag: member="inspircd.h::MAXSOCKS" ref="MAXSOCKS" args="" --><p>
@@ -315,7 +180,7 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00053">53</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00052">52</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00054">54</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="TRUE"></a><!-- doxytag: member="inspircd.h::TRUE" ref="TRUE" args="" --><p>
@@ -340,171 +205,20 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00052">52</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd_8h-source.html#l00050">50</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="TYPE_5FCHANNEL"></a><!-- doxytag: member="inspircd.h::TYPE_CHANNEL" ref="TYPE_5FCHANNEL" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define TYPE_CHANNEL&nbsp;&nbsp;&nbsp;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="inspircd_8h-source.html#l00063">63</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="TYPE_5FSERVER"></a><!-- doxytag: member="inspircd.h::TYPE_SERVER" ref="TYPE_5FSERVER" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define TYPE_SERVER&nbsp;&nbsp;&nbsp;3          </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="inspircd_8h-source.html#l00064">64</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="TYPE_5FUSER"></a><!-- doxytag: member="inspircd.h::TYPE_USER" ref="TYPE_5FUSER" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define TYPE_USER&nbsp;&nbsp;&nbsp;1          </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="inspircd_8h-source.html#l00062">62</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="WM_5FAND"></a><!-- doxytag: member="inspircd.h::WM_AND" ref="WM_5FAND" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define WM_AND&nbsp;&nbsp;&nbsp;1          </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="inspircd_8h-source.html#l00057">57</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="WM_5FOR"></a><!-- doxytag: member="inspircd.h::WM_OR" ref="WM_5FOR" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">#define WM_OR&nbsp;&nbsp;&nbsp;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="inspircd_8h-source.html#l00058">58</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
-  </tr>
-</table>
-<hr><h2>Typedef Documentation</h2>
-<a class="anchor" name="handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29"></a><!-- doxytag: member="inspircd.h::handlerfunc" ref="handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29" args=")(char **, int, userrec *)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">typedef void( <a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>)(char **, int, <a class="el" href="classuserrec.html">userrec</a> *)          </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="inspircd_8h-source.html#l00070">70</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
+Definition at line <a class="el" href="inspircd_8h-source.html#l00052">52</a> of file <a class="el" href="inspircd_8h-source.html">inspircd.h</a>.    </td>
   </tr>
 </table>
 <hr><h2>Function Documentation</h2>
-<a class="anchor" name="AddOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::AddOper" ref="AddOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<a class="anchor" name="AddServerName_28std_3A_3Astring_20servername_29"></a><!-- doxytag: member="inspircd.h::AddServerName" ref="AddServerName_28std_3A_3Astring_20servername_29" args="(std::string servername)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void AddOper           </td>
+          <td class="md" nowrap valign="top">void AddServerName           </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> <em>user</em>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>servername</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
@@ -523,13 +237,13 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00070">70</a> of
     </td>
   </tr>
 </table>
-<a class="anchor" name="AddServerName_28std_3A_3Astring_20servername_29"></a><!-- doxytag: member="inspircd.h::AddServerName" ref="AddServerName_28std_3A_3Astring_20servername_29" args="(std::string servername)" --><p>
+<a class="anchor" name="FindServerNamePtr_28std_3A_3Astring_20servername_29"></a><!-- doxytag: member="inspircd.h::FindServerNamePtr" ref="FindServerNamePtr_28std_3A_3Astring_20servername_29" args="(std::string servername)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void AddServerName           </td>
+          <td class="md" nowrap valign="top">const char* FindServerNamePtr           </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
           <td class="mdname1" valign="top" nowrap> <em>servername</em>          </td>
@@ -548,575 +262,12 @@ Definition at line <a class="el" href="inspircd_8h-source.html#l00070">70</a> of
     <td>
 
 <p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="AddWhoWas_28userrec_20_2Au_29"></a><!-- doxytag: member="inspircd.h::AddWhoWas" ref="AddWhoWas_28userrec_20_2Au_29" args="(userrec *u)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void AddWhoWas           </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> <em>u</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::call_handler" ref="call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(const char *commandname, char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void call_handler           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>commandname</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00401">Server::CallCommandHandler()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="ConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::ConnectUser" ref="ConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void ConnectUser           </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> <em>user</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="DeleteOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::DeleteOper" ref="DeleteOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void DeleteOper           </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> <em>user</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="dns_5Ftask_28void_20_2Aarg_29"></a><!-- doxytag: member="inspircd.h::dns_task" ref="dns_5Ftask_28void_20_2Aarg_29" args="(void *arg)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void* dns_task           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">void *&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>arg</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="FindServerNamePtr_28std_3A_3Astring_20servername_29"></a><!-- doxytag: member="inspircd.h::FindServerNamePtr" ref="FindServerNamePtr_28std_3A_3Astring_20servername_29" args="(std::string servername)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">const char* FindServerNamePtr           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>servername</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-Referenced by <a class="el" href="users_8cpp-source.html#l00036">userrec::userrec()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29"></a><!-- doxytag: member="inspircd.h::force_nickchange" ref="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29" args="(userrec *user, const char *newnick)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void force_nickchange           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>newnick</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00386">Server::ChangeUserNick()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="FullConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::FullConnectUser" ref="FullConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void FullConnectUser           </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> <em>user</em>          </td>
-          <td class="md" valign="top">&nbsp;)&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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::handle_version" ref="handle_5Fversion_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_version           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::is_valid_cmd" ref="is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(const char *commandname, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">bool is_valid_cmd           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>commandname</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00406">Server::IsValidModuleCommand()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="inspircd.h::kill_link" ref="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void kill_link           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>r</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00391">Server::QuitUser()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="inspircd.h::kill_link_silent" ref="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void kill_link_silent           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>r</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29"></a><!-- doxytag: member="inspircd.h::loop_call" ref="loop_5Fcall_28handlerfunc_20fn_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Au_2C_20int_20start_2C_20int_20end_2C_20int_20joins_29" args="(handlerfunc fn, char **parameters, int pcnt, userrec *u, int start, int end, int joins)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">int loop_call           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top"><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>&nbsp;</td>
-          <td class="mdname" nowrap> <em>fn</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>u</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>start</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>end</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>joins</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="inspircd.h::process_buffer" ref="process_5Fbuffer_28const_20char_20_2Acmdbuf_2C_20userrec_20_2Auser_29" args="(const char *cmdbuf, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void process_buffer           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">const char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>cmdbuf</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29"></a><!-- doxytag: member="inspircd.h::ReHashNick" ref="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29" args="(char *Old, char *New)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* ReHashNick           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>Old</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>New</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, and <a class="el" href="users_8cpp-source.html#l00063">userrec::userrec()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 280811f38b2873509cc309f1d682628c54eef72c..178f5356d8263159f0f654d056e400d9f11250ca 100644 (file)
@@ -1,10 +1,10 @@
 base referer
-rect $channels_8cpp-source.html 469,83 568,110
-rect $modules_8cpp-source.html 469,260 568,287
-rect $socket_8cpp-source.html 315,362 400,388
-rect $socketengine_8cpp-source.html 295,463 420,490
-rect $users_8cpp-source.html 151,514 231,540
-rect $ctables_8h-source.html 153,159 228,186
-rect $typedefs_8h-source.html 315,108 400,135
-rect $inspircd__io_8h-source.html 143,260 239,287
-rect $socketengine_8h-source.html 135,412 247,439
+rect $channels_8cpp-source.html 308,57 407,84
+rect $modules_8cpp-source.html 308,133 407,160
+rect $socket_8cpp-source.html 315,209 400,236
+rect $socketengine_8cpp-source.html 295,336 420,363
+rect $users_8cpp-source.html 318,260 398,287
+rect $inspircd__io_8h-source.html 143,57 239,84
+rect $socketengine_8h-source.html 135,260 247,287
+rect $typedefs_8h-source.html 148,108 234,135
+rect $userprocess_8h-source.html 139,412 243,439
index 5361c877a87e6a312581650b97f20f0b8e9c46f8..adcc670cbd48d7311e7c14db4b8d58582511f637 100644 (file)
@@ -1 +1 @@
-782bd90da01c2446bdc3773deda660d0
\ No newline at end of file
+ad3d11c83e25465927be164f7731df76
\ No newline at end of file
index c32bf91d7077c361466268331148c7464deaa656..94b220b6775597b2ba735e455c67efff328802c6 100644 (file)
@@ -1,5 +1,7 @@
 base referer
-rect $inspircd__io_8h-source.html 139,615 235,642
-rect $users_8h-source.html 155,868 219,895
-rect $channels_8h-source.html 292,868 377,895
-rect $socket_8h-source.html 151,463 223,490
+rect $inspircd__io_8h-source.html 153,442 249,468
+rect $users_8h-source.html 332,290 396,316
+rect $channels_8h-source.html 461,188 547,215
+rect $socket_8h-source.html 165,644 237,671
+rect $mode_8h-source.html 168,290 235,316
+rect $socketengine_8h-source.html 145,492 257,519
index 00acfb0a84e813181a835ecca58d18e1f43fd039..7aeb9ace0526449c8a54e1e66eb71020eda71868 100644 (file)
@@ -1 +1 @@
-8358cd32839305504555325b345eb8ff
\ No newline at end of file
+c78ac143e7cad9df2d2ae01b74f98cc9
\ No newline at end of file
index 0ffcac95f77a15a2cf83218e2783d8299ea87350..15217e72cfbc854628743ea12666def3b3c78cc0 100644 (file)
 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;vector&gt;</span>
 <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
 <a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span>
-<a name="l00025"></a>00025 
-<a name="l00028"></a><a class="code" href="inspircd__io_8h.html#DEBUG">00028</a> <span class="preprocessor">#define DEBUG 10</span>
-<a name="l00029"></a><a class="code" href="inspircd__io_8h.html#VERBOSE">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
-<a name="l00030"></a><a class="code" href="inspircd__io_8h.html#DEFAULT">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
-<a name="l00031"></a><a class="code" href="inspircd__io_8h.html#SPARSE">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
-<a name="l00032"></a><a class="code" href="inspircd__io_8h.html#NONE">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
-<a name="l00033"></a>00033 <span class="preprocessor"></span>
-<a name="l00039"></a><a class="code" href="classServerConfig.html">00039</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00040"></a>00040 {
-<a name="l00041"></a>00041   <span class="keyword">private</span>:
-<a name="l00047"></a><a class="code" href="classServerConfig.html#include_5Fstack">00047</a>         std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#include_5Fstack">include_stack</a>;
-<a name="l00048"></a>00048 
-<a name="l00055"></a>00055         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a>(<span class="keywordtype">char</span>* buffer, size_t maxsize, FILE* &amp;file);
-<a name="l00056"></a>00056 
-<a name="l00061"></a>00061         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ConfProcess</a>(<span class="keywordtype">char</span>* buffer, <span class="keywordtype">long</span> linenumber, std::stringstream* errorstream, <span class="keywordtype">bool</span> &amp;error, <a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l00062"></a>00062 
-<a name="l00063"></a>00063   <span class="keyword">public</span>:
-<a name="l00064"></a>00064 
-<a name="l00068"></a><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">00068</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>[MAXBUF];
-<a name="l00069"></a>00069         
-<a name="l00070"></a>00070         <span class="comment">/* Holds the network name the local server</span>
-<a name="l00071"></a>00071 <span class="comment">         * belongs to. This is an arbitary field defined</span>
-<a name="l00072"></a>00072 <span class="comment">         * by the administrator.</span>
-<a name="l00073"></a>00073 <span class="comment">         */</span>
-<a name="l00074"></a><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">00074</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>[MAXBUF];
-<a name="l00075"></a>00075 
-<a name="l00079"></a><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">00079</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>[MAXBUF];
-<a name="l00080"></a>00080 
-<a name="l00084"></a><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">00084</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>[MAXBUF];
-<a name="l00085"></a>00085 
-<a name="l00089"></a><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">00089</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>[MAXBUF];
-<a name="l00090"></a>00090 
-<a name="l00094"></a><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">00094</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>[MAXBUF];
-<a name="l00095"></a>00095 
-<a name="l00098"></a><a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">00098</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a>[MAXBUF];
-<a name="l00099"></a>00099 
-<a name="l00102"></a><a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">00102</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a>[MAXBUF];
-<a name="l00103"></a>00103 
-<a name="l00107"></a><a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">00107</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">motd</a>[MAXBUF];
-<a name="l00108"></a>00108 
-<a name="l00112"></a><a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">00112</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a>[MAXBUF];
-<a name="l00113"></a>00113 
-<a name="l00116"></a><a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">00116</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">PrefixQuit</a>[MAXBUF];
-<a name="l00117"></a>00117 
-<a name="l00121"></a><a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">00121</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a>[MAXBUF];
-<a name="l00122"></a>00122 
-<a name="l00125"></a><a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">00125</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">DNSServer</a>[MAXBUF];
-<a name="l00126"></a>00126 
-<a name="l00131"></a><a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">00131</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">DisabledCommands</a>[MAXBUF];
-<a name="l00132"></a>00132 
-<a name="l00138"></a><a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">00138</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ModPath</a>[1024];
-<a name="l00139"></a>00139 
-<a name="l00143"></a><a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">00143</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">MyExecutable</a>[1024];
-<a name="l00144"></a>00144 
-<a name="l00151"></a><a class="code" href="classServerConfig.html#log_5Ffile">00151</a>         FILE *<a class="code" href="classServerConfig.html#log_5Ffile">log_file</a>;
-<a name="l00152"></a>00152 
-<a name="l00158"></a><a class="code" href="classServerConfig.html#nofork">00158</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#nofork">nofork</a>;
-<a name="l00159"></a>00159 
-<a name="l00166"></a><a class="code" href="classServerConfig.html#unlimitcore">00166</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#unlimitcore">unlimitcore</a>;
-<a name="l00167"></a>00167 
-<a name="l00171"></a><a class="code" href="classServerConfig.html#AllowHalfop">00171</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#AllowHalfop">AllowHalfop</a>;
-<a name="l00172"></a>00172 
-<a name="l00176"></a><a class="code" href="classServerConfig.html#dns_5Ftimeout">00176</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
-<a name="l00177"></a>00177 
-<a name="l00182"></a><a class="code" href="classServerConfig.html#NetBufferSize">00182</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#NetBufferSize">NetBufferSize</a>;
-<a name="l00183"></a>00183 
-<a name="l00187"></a><a class="code" href="classServerConfig.html#MaxConn">00187</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxConn">MaxConn</a>;
-<a name="l00188"></a>00188 
-<a name="l00193"></a><a class="code" href="classServerConfig.html#SoftLimit">00193</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>;
-<a name="l00194"></a>00194 
-<a name="l00198"></a><a class="code" href="classServerConfig.html#MaxWhoResults">00198</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxWhoResults">MaxWhoResults</a>;
-<a name="l00199"></a>00199 
-<a name="l00202"></a><a class="code" href="classServerConfig.html#debugging">00202</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#debugging">debugging</a>;
-<a name="l00203"></a>00203 
-<a name="l00206"></a><a class="code" href="classServerConfig.html#LogLevel">00206</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#LogLevel">LogLevel</a>;
-<a name="l00207"></a>00207 
-<a name="l00211"></a><a class="code" href="classServerConfig.html#DieDelay">00211</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#DieDelay">DieDelay</a>;
-<a name="l00212"></a>00212 
-<a name="l00216"></a><a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">00216</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a>[MAXBUF][255];
-<a name="l00217"></a>00217 
-<a name="l00220"></a><a class="code" href="classServerConfig.html#MOTD">00220</a>         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#MOTD">MOTD</a>;
-<a name="l00221"></a>00221 
-<a name="l00224"></a><a class="code" href="classServerConfig.html#RULES">00224</a>         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#RULES">RULES</a>;
-<a name="l00225"></a>00225 
-<a name="l00229"></a><a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">00229</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">PID</a>[1024];
-<a name="l00230"></a>00230 
-<a name="l00238"></a><a class="code" href="classServerConfig.html#config_5Ff">00238</a>         std::stringstream <a class="code" href="classServerConfig.html#config_5Ff">config_f</a>;
-<a name="l00239"></a>00239 
-<a name="l00242"></a><a class="code" href="classServerConfig.html#Classes">00242</a>         <a class="code" href="users_8h.html#ClassVector">ClassVector</a> <a class="code" href="classServerConfig.html#Classes">Classes</a>;
-<a name="l00243"></a>00243 
-<a name="l00247"></a><a class="code" href="classServerConfig.html#module_5Fnames">00247</a>         std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>;
-<a name="l00248"></a>00248 
-<a name="l00251"></a><a class="code" href="classServerConfig.html#ports_5B_32_35_35_5D">00251</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ports_5B_32_35_35_5D">ports</a>[255];
-<a name="l00252"></a>00252 
-<a name="l00253"></a>00253         <a class="code" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a>();
-<a name="l00254"></a>00254 
-<a name="l00258"></a>00258         <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+<a name="l00026"></a>00026 
+<a name="l00029"></a><a class="code" href="inspircd__io_8h.html#DEBUG">00029</a> <span class="preprocessor">#define DEBUG 10</span>
+<a name="l00030"></a><a class="code" href="inspircd__io_8h.html#VERBOSE">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
+<a name="l00031"></a><a class="code" href="inspircd__io_8h.html#DEFAULT">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
+<a name="l00032"></a><a class="code" href="inspircd__io_8h.html#SPARSE">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
+<a name="l00033"></a><a class="code" href="inspircd__io_8h.html#NONE">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
+<a name="l00034"></a>00034 <span class="preprocessor"></span>
+<a name="l00040"></a><a class="code" href="classServerConfig.html">00040</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00041"></a>00041 {
+<a name="l00042"></a>00042   <span class="keyword">private</span>:
+<a name="l00048"></a><a class="code" href="classServerConfig.html#include_5Fstack">00048</a>         std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#include_5Fstack">include_stack</a>;
+<a name="l00049"></a>00049 
+<a name="l00056"></a>00056         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#fgets_5Fsafe_28char_20_2Abuffer_2C_20size_5Ft_20maxsize_2C_20FILE_20_2A_26file_29">fgets_safe</a>(<span class="keywordtype">char</span>* buffer, size_t maxsize, FILE* &amp;file);
+<a name="l00057"></a>00057 
+<a name="l00062"></a>00062         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServerConfig.html#ConfProcess_28char_20_2Abuffer_2C_20long_20linenumber_2C_20std_3A_3Astringstream_20_2Aerrorstream_2C_20bool_20_26error_2C_20std_3A_3Astring_20filename_29">ConfProcess</a>(<span class="keywordtype">char</span>* buffer, <span class="keywordtype">long</span> linenumber, std::stringstream* errorstream, <span class="keywordtype">bool</span> &amp;error, <a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064   <span class="keyword">public</span>:
+<a name="l00065"></a>00065 
+<a name="l00069"></a><a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">00069</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>[MAXBUF];
+<a name="l00070"></a>00070         
+<a name="l00071"></a>00071         <span class="comment">/* Holds the network name the local server</span>
+<a name="l00072"></a>00072 <span class="comment">         * belongs to. This is an arbitary field defined</span>
+<a name="l00073"></a>00073 <span class="comment">         * by the administrator.</span>
+<a name="l00074"></a>00074 <span class="comment">         */</span>
+<a name="l00075"></a><a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">00075</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>[MAXBUF];
+<a name="l00076"></a>00076 
+<a name="l00080"></a><a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">00080</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>[MAXBUF];
+<a name="l00081"></a>00081 
+<a name="l00085"></a><a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">00085</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>[MAXBUF];
+<a name="l00086"></a>00086 
+<a name="l00090"></a><a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">00090</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>[MAXBUF];
+<a name="l00091"></a>00091 
+<a name="l00095"></a><a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">00095</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>[MAXBUF];
+<a name="l00096"></a>00096 
+<a name="l00099"></a><a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">00099</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#diepass_5BMAXBUF_5D">diepass</a>[MAXBUF];
+<a name="l00100"></a>00100 
+<a name="l00103"></a><a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">00103</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#restartpass_5BMAXBUF_5D">restartpass</a>[MAXBUF];
+<a name="l00104"></a>00104 
+<a name="l00108"></a><a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">00108</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#motd_5BMAXBUF_5D">motd</a>[MAXBUF];
+<a name="l00109"></a>00109 
+<a name="l00113"></a><a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">00113</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#rules_5BMAXBUF_5D">rules</a>[MAXBUF];
+<a name="l00114"></a>00114 
+<a name="l00117"></a><a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">00117</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PrefixQuit_5BMAXBUF_5D">PrefixQuit</a>[MAXBUF];
+<a name="l00118"></a>00118 
+<a name="l00122"></a><a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">00122</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DieValue_5BMAXBUF_5D">DieValue</a>[MAXBUF];
+<a name="l00123"></a>00123 
+<a name="l00126"></a><a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">00126</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DNSServer_5BMAXBUF_5D">DNSServer</a>[MAXBUF];
+<a name="l00127"></a>00127 
+<a name="l00132"></a><a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">00132</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#DisabledCommands_5BMAXBUF_5D">DisabledCommands</a>[MAXBUF];
+<a name="l00133"></a>00133 
+<a name="l00139"></a><a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">00139</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#ModPath_5B_31_30_32_34_5D">ModPath</a>[1024];
+<a name="l00140"></a>00140 
+<a name="l00144"></a><a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">00144</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#MyExecutable_5B_31_30_32_34_5D">MyExecutable</a>[1024];
+<a name="l00145"></a>00145 
+<a name="l00152"></a><a class="code" href="classServerConfig.html#log_5Ffile">00152</a>         FILE *<a class="code" href="classServerConfig.html#log_5Ffile">log_file</a>;
+<a name="l00153"></a>00153 
+<a name="l00159"></a><a class="code" href="classServerConfig.html#nofork">00159</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#nofork">nofork</a>;
+<a name="l00160"></a>00160 
+<a name="l00167"></a><a class="code" href="classServerConfig.html#unlimitcore">00167</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#unlimitcore">unlimitcore</a>;
+<a name="l00168"></a>00168 
+<a name="l00172"></a><a class="code" href="classServerConfig.html#AllowHalfop">00172</a>         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#AllowHalfop">AllowHalfop</a>;
+<a name="l00173"></a>00173 
+<a name="l00177"></a><a class="code" href="classServerConfig.html#dns_5Ftimeout">00177</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00178"></a>00178 
+<a name="l00183"></a><a class="code" href="classServerConfig.html#NetBufferSize">00183</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#NetBufferSize">NetBufferSize</a>;
+<a name="l00184"></a>00184 
+<a name="l00188"></a><a class="code" href="classServerConfig.html#MaxConn">00188</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxConn">MaxConn</a>;
+<a name="l00189"></a>00189 
+<a name="l00194"></a><a class="code" href="classServerConfig.html#SoftLimit">00194</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>;
+<a name="l00195"></a>00195 
+<a name="l00199"></a><a class="code" href="classServerConfig.html#MaxWhoResults">00199</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#MaxWhoResults">MaxWhoResults</a>;
+<a name="l00200"></a>00200 
+<a name="l00203"></a><a class="code" href="classServerConfig.html#debugging">00203</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#debugging">debugging</a>;
+<a name="l00204"></a>00204 
+<a name="l00207"></a><a class="code" href="classServerConfig.html#LogLevel">00207</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#LogLevel">LogLevel</a>;
+<a name="l00208"></a>00208 
+<a name="l00212"></a><a class="code" href="classServerConfig.html#DieDelay">00212</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#DieDelay">DieDelay</a>;
+<a name="l00213"></a>00213 
+<a name="l00217"></a><a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">00217</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#addrs_5BMAXBUF_5D_5B_32_35_35_5D">addrs</a>[MAXBUF][255];
+<a name="l00218"></a>00218 
+<a name="l00221"></a><a class="code" href="classServerConfig.html#MOTD">00221</a>         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#MOTD">MOTD</a>;
+<a name="l00222"></a>00222 
+<a name="l00225"></a><a class="code" href="classServerConfig.html#RULES">00225</a>         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classServerConfig.html#RULES">RULES</a>;
+<a name="l00226"></a>00226 
+<a name="l00230"></a><a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">00230</a>         <span class="keywordtype">char</span> <a class="code" href="classServerConfig.html#PID_5B_31_30_32_34_5D">PID</a>[1024];
+<a name="l00231"></a>00231 
+<a name="l00239"></a><a class="code" href="classServerConfig.html#config_5Ff">00239</a>         std::stringstream <a class="code" href="classServerConfig.html#config_5Ff">config_f</a>;
+<a name="l00240"></a>00240 
+<a name="l00243"></a><a class="code" href="classServerConfig.html#Classes">00243</a>         <a class="code" href="users_8h.html#ClassVector">ClassVector</a> <a class="code" href="classServerConfig.html#Classes">Classes</a>;
+<a name="l00244"></a>00244 
+<a name="l00248"></a><a class="code" href="classServerConfig.html#module_5Fnames">00248</a>         std::vector&lt;std::string&gt; <a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>;
+<a name="l00249"></a>00249 
+<a name="l00252"></a><a class="code" href="classServerConfig.html#ports_5B_32_35_35_5D">00252</a>         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ports_5B_32_35_35_5D">ports</a>[255];
+<a name="l00253"></a>00253 
+<a name="l00256"></a><a class="code" href="classServerConfig.html#IOHookModule">00256</a>         std::map&lt;int,Module*&gt; <a class="code" href="classServerConfig.html#IOHookModule">IOHookModule</a>;
+<a name="l00257"></a>00257 
+<a name="l00258"></a>00258         <a class="code" href="classServerConfig.html#ServerConfig_28_29">ServerConfig</a>();
 <a name="l00259"></a>00259 
-<a name="l00264"></a>00264         <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00265"></a>00265 
-<a name="l00266"></a>00266         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, std::stringstream *target, std::stringstream* errorstream);
-<a name="l00267"></a>00267         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="keywordtype">char</span>* tag, <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result, std::stringstream *config);
-<a name="l00268"></a>00268         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result);
-<a name="l00269"></a>00269         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValueEnum</a>(<span class="keywordtype">char</span>* tag,std::stringstream *config);
-<a name="l00270"></a>00270         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag);
-<a name="l00271"></a>00271         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(std::stringstream *config, <span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keywordtype">int</span> index);
-<a name="l00272"></a>00272 };
-<a name="l00273"></a>00273 
-<a name="l00274"></a>00274 
-<a name="l00275"></a>00275 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Exit_28int_29">Exit</a> (<span class="keywordtype">int</span>); 
-<a name="l00276"></a>00276 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Start_28void_29">Start</a> (<span class="keywordtype">void</span>); 
-<a name="l00277"></a>00277 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#DaemonSeed_28void_29">DaemonSeed</a> (<span class="keywordtype">void</span>); 
-<a name="l00278"></a>00278 <span class="keywordtype">bool</span> <a class="code" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">FileExists</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* file);
-<a name="l00279"></a>00279 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a> (<span class="keywordtype">void</span>); 
-<a name="l00280"></a>00280 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a> (<span class="keywordtype">int</span> sockfd, <span class="keyword">struct</span> sockaddr_in client, <span class="keyword">struct</span> sockaddr_in server, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* addr);
-<a name="l00281"></a>00281 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#WritePID_28std_3A_3Astring_20filename_29">WritePID</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l00282"></a>00282 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindPorts_28_29">BindPorts</a>();
-<a name="l00283"></a>00283 
-<a name="l00284"></a>00284 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00263"></a>00263         <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00264"></a>00264 
+<a name="l00269"></a>00269         <span class="keywordtype">void</span> <a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00270"></a>00270 
+<a name="l00271"></a>00271         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, std::stringstream *target, std::stringstream* errorstream);
+<a name="l00272"></a>00272         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="keywordtype">char</span>* tag, <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result, std::stringstream *config);
+<a name="l00273"></a>00273         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <span class="keywordtype">char</span>* var, <span class="keywordtype">int</span> index, <span class="keywordtype">char</span> *result);
+<a name="l00274"></a>00274         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#ConfValueEnum_28char_20_2Atag_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValueEnum</a>(<span class="keywordtype">char</span>* tag,std::stringstream *config);
+<a name="l00275"></a>00275         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(std::stringstream *<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>,<span class="keyword">const</span> <span class="keywordtype">char</span>* tag);
+<a name="l00276"></a>00276         <span class="keywordtype">int</span> <a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(std::stringstream *config, <span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keywordtype">int</span> index);
+<a name="l00277"></a>00277         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(<span class="keywordtype">int</span> port);
+<a name="l00278"></a>00278         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#AddIOHook_28int_20port_2C_20Module_20_2Aiomod_29">AddIOHook</a>(<span class="keywordtype">int</span> port, <a class="code" href="classModule.html">Module</a>* iomod);
+<a name="l00279"></a>00279         <span class="keywordtype">bool</span> <a class="code" href="classServerConfig.html#DelIOHook_28int_20port_29">DelIOHook</a>(<span class="keywordtype">int</span> port);
+<a name="l00280"></a>00280 };
+<a name="l00281"></a>00281 
+<a name="l00282"></a>00282 
+<a name="l00283"></a>00283 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Exit_28int_29">Exit</a> (<span class="keywordtype">int</span>); 
+<a name="l00284"></a>00284 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#Start_28void_29">Start</a> (<span class="keywordtype">void</span>); 
+<a name="l00285"></a>00285 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#DaemonSeed_28void_29">DaemonSeed</a> (<span class="keywordtype">void</span>); 
+<a name="l00286"></a>00286 <span class="keywordtype">bool</span> <a class="code" href="inspircd__io_8h.html#FileExists_28const_20char_20_2Afile_29">FileExists</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* file);
+<a name="l00287"></a>00287 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a> (<span class="keywordtype">void</span>); 
+<a name="l00288"></a>00288 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a> (<span class="keywordtype">int</span> sockfd, <span class="keyword">struct</span> sockaddr_in client, <span class="keyword">struct</span> sockaddr_in server, <span class="keywordtype">int</span> port, <span class="keywordtype">char</span>* addr);
+<a name="l00289"></a>00289 <span class="keywordtype">void</span> <a class="code" href="inspircd__io_8h.html#WritePID_28std_3A_3Astring_20filename_29">WritePID</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l00290"></a>00290 <span class="keywordtype">int</span> <a class="code" href="inspircd__io_8h.html#BindPorts_28_29">BindPorts</a>();
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0a4cb293e99e9593b84c25d25b8a0fa299d7b479..25d103c38ab7c3101bbb0911fae93902d023f92c 100644 (file)
 <code>#include &lt;vector&gt;</code><br>
 <code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="globals_8h-source.html">globals.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="modules_8h-source.html">modules.h</a>&quot;</code><br>
 
 <p>
 Include dependency graph for inspircd_io.h:<p><center><img src="inspircd__io_8h__incl.gif" border="0" usemap="#inspircd_io.h_map" alt=""></center>
 <map name="inspircd_io.h_map">
-<area href="inspircd_8h-source.html" shape="rect" coords="153,159,233,186" alt="">
-<area href="globals_8h-source.html" shape="rect" coords="156,210,231,236" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="156,209,236,236" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="159,159,234,185" alt="">
+<area href="modules_8h-source.html" shape="rect" coords="155,57,238,84" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="inspircd__io_8h__dep__incl.gif" border="0" usemap="#inspircd_io.hdep_map" alt=""></center>
 <map name="inspircd_io.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="283,20,381,47" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="283,96,381,123" alt="">
-<area href="socket_8cpp-source.html" shape="rect" coords="289,147,375,173" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="153,57,233,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="455,58,553,84" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="455,235,553,262" alt="">
+<area href="socket_8cpp-source.html" shape="rect" coords="461,463,547,490" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="153,286,233,312" alt="">
+<area href="socketengine_8cpp-source.html" shape="rect" coords="441,387,567,414" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="464,311,544,338" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="281,362,393,388" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="295,260,380,287" alt="">
+<area href="userprocess_8h-source.html" shape="rect" coords="285,159,389,186" alt="">
 </map>
 
 <p>
@@ -91,9 +98,9 @@ Flags for use with <a class="el" href="globals_8h.html#log_28int_20level_2C_20ch
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00028">28</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00029">29</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00556">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="channels_8cpp-source.html#l00167">chanrec::AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00173">chanrec::DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="socket_8cpp-source.html#l00158">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00122">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00086">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00111">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00248">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00292">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="modules_8cpp-source.html#l00555">Server::AddExtendedMode()</a>, <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="users_8cpp-source.html#l00330">AddOper()</a>, <a class="el" href="channels_8cpp-source.html#l00166">chanrec::AddUser()</a>, <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="users_8cpp-source.html#l00336">DeleteOper()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="channels_8cpp-source.html#l00172">chanrec::DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="socket_8cpp-source.html#l00059">InspSocket::InspSocket()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="socket_8cpp-source.html#l00155">InspSocket::Read()</a>, <a class="el" href="users_8cpp-source.html#l00743">ReHashNick()</a>, <a class="el" href="users_8cpp-source.html#l00148">userrec::RemoveInvite()</a>, <a class="el" href="channels_8cpp-source.html#l00085">chanrec::SetCustomMode()</a>, <a class="el" href="channels_8cpp-source.html#l00110">chanrec::SetCustomModeParam()</a>, <a class="el" href="socket_8cpp-source.html#l00247">InspSocket::SetState()</a>, <a class="el" href="users_8cpp-source.html#l00317">userrec::SetWriteError()</a>, <a class="el" href="socketengine_8cpp-source.html#l00035">SocketEngine::SocketEngine()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00046">SocketEngine::~SocketEngine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DEFAULT"></a><!-- doxytag: member="inspircd_io.h::DEFAULT" ref="DEFAULT" args="" --><p>
@@ -118,9 +125,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00030">30</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00031">31</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="NONE"></a><!-- doxytag: member="inspircd_io.h::NONE" ref="NONE" args="" --><p>
@@ -145,7 +152,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00032">32</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00033">33</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="SPARSE"></a><!-- doxytag: member="inspircd_io.h::SPARSE" ref="SPARSE" args="" --><p>
@@ -170,7 +177,7 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00032">32</a
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00031">31</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00032">32</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="VERBOSE"></a><!-- doxytag: member="inspircd_io.h::VERBOSE" ref="VERBOSE" args="" --><p>
@@ -195,7 +202,7 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00031">31</a
 <p>
 
 <p>
-Definition at line <a class="el" href="inspircd__io_8h-source.html#l00029">29</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
+Definition at line <a class="el" href="inspircd__io_8h-source.html#l00030">30</a> of file <a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>.    </td>
   </tr>
 </table>
 <hr><h2>Function Documentation</h2>
@@ -280,7 +287,7 @@ Definition at line <a class="el" href="inspircd__io_8h-source.html#l00029">29</a
 <p>
 
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket::InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DaemonSeed_28void_29"></a><!-- doxytag: member="inspircd_io.h::DaemonSeed" ref="DaemonSeed_28void_29" args="(void)" --><p>
@@ -394,7 +401,7 @@ Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::In
 <p>
 
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::InspSocket()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00059">InspSocket::InspSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="Start_28void_29"></a><!-- doxytag: member="inspircd_io.h::Start" ref="Start_28void_29" args="(void)" --><p>
@@ -453,7 +460,7 @@ Referenced by <a class="el" href="socket_8cpp-source.html#l00062">InspSocket::In
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 1b2fd55bcdedfa20468647a098441a1e5dba0bf7..5f7a6c3f7474b7a9634152f5c19957da255d9d3d 100644 (file)
@@ -1,5 +1,10 @@
 base referer
-rect $channels_8cpp-source.html 283,20 381,47
-rect $modules_8cpp-source.html 283,96 381,123
-rect $socket_8cpp-source.html 289,147 375,173
-rect $inspircd_8h-source.html 153,57 233,84
+rect $channels_8cpp-source.html 455,58 553,84
+rect $modules_8cpp-source.html 455,235 553,262
+rect $socket_8cpp-source.html 461,463 547,490
+rect $inspircd_8h-source.html 153,286 233,312
+rect $socketengine_8cpp-source.html 441,387 567,414
+rect $users_8cpp-source.html 464,311 544,338
+rect $socketengine_8h-source.html 281,362 393,388
+rect $typedefs_8h-source.html 295,260 380,287
+rect $userprocess_8h-source.html 285,159 389,186
index dcdb730b7bfa46ecd237fea9d28ce697e5285d86..d32608fc2c0171ee36fd535c4304e1595feb218a 100644 (file)
@@ -1 +1 @@
-722bc875f4773acca578188c1eaafc53
\ No newline at end of file
+f69ba85152f09a6ee03d3d86a8d8993d
\ No newline at end of file
index 51ab7577f49f25b8b6e0d53e3093efba91a5e013..37dd7fbc289640866c704900dbb11838d621008f 100644 (file)
@@ -1,3 +1,4 @@
 base referer
-rect $inspircd_8h-source.html 153,159 233,186
-rect $globals_8h-source.html 156,210 231,236
+rect $inspircd_8h-source.html 156,209 236,236
+rect $globals_8h-source.html 159,159 234,185
+rect $modules_8h-source.html 155,57 238,84
index 8a137bb78b96ce809ae66ff1c705ce3275436dc2..ba3286ffc60abf1e413392b98b15e48e1f2578a3 100644 (file)
@@ -1 +1 @@
-a89903b24a07224b6560b828285cf5bb
\ No newline at end of file
+c18e01279feebe46cef6ba0a08a63a37
\ No newline at end of file
index daa5e6b364a677b7535b94d2d6312b96c3e32493..6ebc47e66271ae70fee23f9cef789fd084aea712 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindexHL" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>InspIRCd Documentation</h1>
 <p>
-<h3 align="center">1.0Betareleases </h3><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<h3 align="center">1.0Betareleases </h3><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b4747be45dd3e1fce84aef1363bd66eaa80a18ff..bfcb5e8acf71d9ea2fb37c338e4770f5be263232 100644 (file)
@@ -57,7 +57,7 @@
 <a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="message_8h.html#send_5Fnetwork_5Fquit_28const_20char_20_2Anick_2C_20const_20char_20_2Areason_29">send_network_quit</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nick, <span class="keyword">const</span> <span class="keywordtype">char</span>* reason);
 <a name="l00049"></a>00049 
 <a name="l00050"></a>00050 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 0faeacf225f3e9177c087e07cac5bbb0465cd601..e28cd9bcc7d15af3f03b3d24047932dc65ac078f 100644 (file)
 Include dependency graph for message.h:<p><center><img src="message_8h__incl.gif" border="0" usemap="#message.h_map" alt=""></center>
 <map name="message.h_map">
 <area href="users_8h-source.html" shape="rect" coords="148,260,212,287" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="272,210,357,236" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="265,362,364,388" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="272,209,357,236" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="265,412,364,439" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="268,311,361,337" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="message_8h__dep__incl.gif" border="0" usemap="#message.hdep_map" alt=""></center>
 <map name="message.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="144,7,243,34" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="144,58,243,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="144,7,243,33" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="144,57,243,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="154,108,234,135" alt="">
 </map>
 
 <p>
@@ -165,7 +167,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00494">Server::ChangeHost()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00493">Server::ChangeHost()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29"></a><!-- doxytag: member="message.h::ChangeName" ref="ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29" args="(userrec *user, const char *gecos)" --><p>
@@ -204,7 +206,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00494">Server::Chang
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00499">Server::ChangeGECOS()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00498">Server::ChangeGECOS()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29"></a><!-- doxytag: member="message.h::chlist" ref="chlist_28userrec_20_2Auser_2C_20userrec_20_2Asource_29" args="(userrec *user, userrec *source)" --><p>
@@ -458,7 +460,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel
 <p>
 
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00529">Server::IsOnChannel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="modules_8cpp-source.html#l00528">Server::IsOnChannel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="hasumode_28userrec_20_2Auser_2C_20char_20mode_29"></a><!-- doxytag: member="message.h::hasumode" ref="hasumode_28userrec_20_2Auser_2C_20char_20mode_29" args="(userrec *user, char mode)" --><p>
@@ -675,7 +677,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel(
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e26cc9746cc7326db8137c10aa3019a71a09468c..cdf27ce97d4d297f31726bb6eb2427d5811616d5 100644 (file)
@@ -1,3 +1,4 @@
 base referer
-rect $channels_8cpp-source.html 144,7 243,34
-rect $modules_8cpp-source.html 144,58 243,84
+rect $channels_8cpp-source.html 144,7 243,33
+rect $modules_8cpp-source.html 144,57 243,84
+rect $users_8cpp-source.html 154,108 234,135
index ea427afd150ff9ebf2fabf681aa95922633468c6..9677d7a7c45b3c312b53e71179762bd8b5578907 100644 (file)
@@ -1 +1 @@
-5798528055639d3c9fa4c0dd420993b1
\ No newline at end of file
+2920c49d06760a3a8744ed87304dc5db
\ No newline at end of file
index 38478091087ef8890dd33002d7990afcfefabb94..5e825e450ae47bed2cd3a8184858991d83990478 100644 (file)
@@ -1,4 +1,5 @@
 base referer
 rect $users_8h-source.html 148,260 212,287
-rect $channels_8h-source.html 272,210 357,236
-rect $connection_8h-source.html 265,362 364,388
+rect $channels_8h-source.html 272,209 357,236
+rect $connection_8h-source.html 265,412 364,439
+rect $hashcomp_8h-source.html 268,311 361,337
index 724dbb7128876e478bae1888f4e7b582edd8efc5..2d2990c8f3543a576345af1d6b059e31a5ad4ce3 100644 (file)
@@ -1 +1 @@
-3a2c4208881b372cdcae2d492b4dfb49
\ No newline at end of file
+ea36c3bc5c3e318c0edcaea3bd1ee778
\ No newline at end of file
index d82d7b6b3fe761a720fc428e4f9ce1b3295001e1..ac7034b692ffda2e2057d2fe6a4ef7603a62a812 100644 (file)
 <a name="l00027"></a>00027 <span class="preprocessor">#include &lt;vector&gt;</span>
 <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
 <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_ops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00032"></a>00032 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_hops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00033"></a>00033 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_voice</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00034"></a>00034 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_ops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00035"></a>00035 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_hops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00036"></a>00036 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_voice</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00037"></a>00037 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">add_ban</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00038"></a>00038 <span class="keywordtype">char</span>* <a class="code" href="mode_8h.html#take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_ban</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
-<a name="l00039"></a>00039 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">process_modes</a>(<span class="keywordtype">char</span> **parameters,<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status, <span class="keywordtype">int</span> pcnt, <span class="keywordtype">bool</span> servermode, <span class="keywordtype">bool</span> silent, <span class="keywordtype">bool</span> local);
-<a name="l00040"></a>00040 <span class="keywordtype">bool</span> <a class="code" href="mode_8h.html#allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29">allowed_umode</a>(<span class="keywordtype">char</span> umode, <span class="keywordtype">char</span>* sourcemodes,<span class="keywordtype">bool</span> adding);
-<a name="l00041"></a>00041 <span class="keywordtype">bool</span> <a class="code" href="mode_8h.html#process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">process_module_umode</a>(<span class="keywordtype">char</span> umode, <a class="code" href="classuserrec.html">userrec</a>* source, <span class="keywordtype">void</span>* dest, <span class="keywordtype">bool</span> adding);
-<a name="l00042"></a>00042 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00044"></a>00044 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29">merge_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt);
-<a name="l00045"></a>00045 <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">merge_mode2</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00046"></a>00046 
-<a name="l00047"></a>00047 
-<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+<a name="l00031"></a>00031 
+<a name="l00032"></a><a class="code" href="classModeParser.html">00032</a> <span class="keyword">class </span><a class="code" href="classModeParser.html">ModeParser</a>
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034  <span class="keyword">private</span>:
+<a name="l00035"></a>00035         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#GiveOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">GiveOps</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00036"></a>00036         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#GiveHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">GiveHops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00037"></a>00037         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#GiveVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">GiveVoice</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00038"></a>00038         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#TakeOps_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">TakeOps</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00039"></a>00039         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#TakeHops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">TakeHops</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00040"></a>00040         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#TakeVoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">TakeVoice</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00041"></a>00041         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#AddBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">AddBan</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00042"></a>00042         <span class="keywordtype">char</span>* <a class="code" href="classModeParser.html#TakeBan_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">TakeBan</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keywordtype">char</span> *dest,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status);
+<a name="l00043"></a>00043  <span class="keyword">public</span>:
+<a name="l00044"></a>00044         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classModeParser.html#CompressModes_28std_3A_3Astring_20modes_2C_20bool_20channelmodes_29">CompressModes</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes,<span class="keywordtype">bool</span> channelmodes);
+<a name="l00045"></a>00045         <span class="keywordtype">void</span> <a class="code" href="classModeParser.html#ProcessModes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">ProcessModes</a>(<span class="keywordtype">char</span> **parameters,<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="classchanrec.html">chanrec</a> *chan,<span class="keywordtype">int</span> status, <span class="keywordtype">int</span> pcnt, <span class="keywordtype">bool</span> servermode, <span class="keywordtype">bool</span> silent, <span class="keywordtype">bool</span> local);
+<a name="l00046"></a>00046         <span class="keywordtype">bool</span> <a class="code" href="classModeParser.html#AllowedUmode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_2C_20bool_20serveroverride_29">AllowedUmode</a>(<span class="keywordtype">char</span> umode, <span class="keywordtype">char</span>* sourcemodes,<span class="keywordtype">bool</span> adding,<span class="keywordtype">bool</span> serveroverride);
+<a name="l00047"></a>00047         <span class="keywordtype">bool</span> <a class="code" href="classModeParser.html#ProcessModuleUmode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">ProcessModuleUmode</a>(<span class="keywordtype">char</span> umode, <a class="code" href="classuserrec.html">userrec</a>* source, <span class="keywordtype">void</span>* dest, <span class="keywordtype">bool</span> adding);
+<a name="l00048"></a>00048         <span class="keywordtype">void</span> <a class="code" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ServerMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l00049"></a>00049 };
+<a name="l00050"></a>00050 
+<a name="l00051"></a><a class="code" href="classcmd__mode.html">00051</a> <span class="keyword">class </span><a class="code" href="classcmd__mode.html">cmd_mode</a> : <span class="keyword">public</span> <a class="code" href="classcommand__t.html">command_t</a>
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053  <span class="keyword">public</span>:
+<a name="l00054"></a><a class="code" href="classcmd__mode.html#cmd_5Fmode_28_29">00054</a>         <a class="code" href="classcmd__mode.html#cmd_5Fmode_28_29">cmd_mode</a> () : <a class="code" href="classcommand__t.html">command_t</a>(<span class="stringliteral">"MODE"</span>,0,1) { }
+<a name="l00055"></a>00055         <span class="keywordtype">void</span> <a class="code" href="classcmd__mode.html#Handle_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Handle</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l00056"></a>00056 };
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index abfd7bab83e3dcf8c6f452981fa20ac26203f114..cb57105a5e4812dbd0f49b55fbd92a57caa27b3b 100644 (file)
 <code>#include &lt;vector&gt;</code><br>
 <code>#include &quot;<a class="el" href="users_8h-source.html">users.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="channels_8h-source.html">channels.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="ctables_8h-source.html">ctables.h</a>&quot;</code><br>
 
 <p>
 Include dependency graph for mode.h:<p><center><img src="mode_8h__incl.gif" border="0" usemap="#mode.h_map" alt=""></center>
 <map name="mode.h_map">
-<area href="users_8h-source.html" shape="rect" coords="127,260,191,287" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="251,210,336,236" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="244,362,343,388" alt="">
+<area href="users_8h-source.html" shape="rect" coords="128,311,192,337" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="248,361,333,388" alt="">
+<area href="ctables_8h-source.html" shape="rect" coords="123,108,197,135" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="mode_8h__dep__incl.gif" border="0" usemap="#mode.hdep_map" alt=""></center>
 <map name="mode.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="123,7,221,34" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="123,58,221,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="423,108,521,135" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="423,210,521,236" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="121,286,201,312" alt="">
+<area href="socket_8cpp-source.html" shape="rect" coords="429,311,515,338" alt="">
+<area href="socketengine_8cpp-source.html" shape="rect" coords="409,438,535,464" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="432,362,512,388" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="257,159,353,186" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="249,362,361,388" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="263,210,348,236" alt="">
+<area href="userprocess_8h-source.html" shape="rect" coords="253,514,357,540" alt="">
 </map>
 
 <p>
 <a href="mode_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>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_ops</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classModeParser.html">ModeParser</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_hops</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcmd__mode.html">cmd_mode</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">give_voice</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_ops</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_hops</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_voice</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">add_ban</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29">take_ban</a> (<a class="el" href="classuserrec.html">userrec</a> *user, char *dest, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29">process_modes</a> (char **parameters, <a class="el" href="classuserrec.html">userrec</a> *user, <a class="el" href="classchanrec.html">chanrec</a> *chan, int status, int pcnt, bool servermode, bool silent, bool local)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29">allowed_umode</a> (char umode, char *sourcemodes, bool adding)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29">process_module_umode</a> (char umode, <a class="el" href="classuserrec.html">userrec</a> *source, void *dest, bool adding)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">handle_mode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29">merge_mode</a> (char **parameters, int pcnt)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mode_8h.html#merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">merge_mode2</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
-</table>
-<hr><h2>Function Documentation</h2>
-<a class="anchor" name="add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::add_ban" ref="add_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* add_ban           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29"></a><!-- doxytag: member="mode.h::allowed_umode" ref="allowed_5Fumode_28char_20umode_2C_20char_20_2Asourcemodes_2C_20bool_20adding_29" args="(char umode, char *sourcemodes, bool adding)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">bool allowed_umode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap> <em>umode</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>sourcemodes</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap> <em>adding</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::give_hops" ref="give_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* give_hops           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::give_ops" ref="give_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* give_ops           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::give_voice" ref="give_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* give_voice           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="mode.h::handle_mode" ref="handle_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void handle_mode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29"></a><!-- doxytag: member="mode.h::merge_mode" ref="merge_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_29" args="(char **parameters, int pcnt)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void merge_mode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="mode.h::merge_mode2" ref="merge_5Fmode_32_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void merge_mode2           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29"></a><!-- doxytag: member="mode.h::process_modes" ref="process_5Fmodes_28char_20_2A_2Aparameters_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20int_20status_2C_20int_20pcnt_2C_20bool_20servermode_2C_20bool_20silent_2C_20bool_20local_29" args="(char **parameters, userrec *user, chanrec *chan, int status, int pcnt, bool servermode, bool silent, bool local)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void process_modes           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap> <em>servermode</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap> <em>silent</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap> <em>local</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29"></a><!-- doxytag: member="mode.h::process_module_umode" ref="process_5Fmodule_5Fumode_28char_20umode_2C_20userrec_20_2Asource_2C_20void_20_2Adest_2C_20bool_20adding_29" args="(char umode, userrec *source, void *dest, bool adding)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">bool process_module_umode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap> <em>umode</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>source</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>void *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap> <em>adding</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="mode.h::server_mode" ref="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void server_mode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00421">Server::SendMode()</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::take_ban" ref="take_5Fban_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* take_ban           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::take_hops" ref="take_5Fhops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* take_hops           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::take_ops" ref="take_5Fops_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* take_ops           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29"></a><!-- doxytag: member="mode.h::take_voice" ref="take_5Fvoice_28userrec_20_2Auser_2C_20char_20_2Adest_2C_20chanrec_20_2Achan_2C_20int_20status_29" args="(userrec *user, char *dest, chanrec *chan, int status)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">char* take_voice           </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> <em>user</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>dest</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classchanrec.html">chanrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>chan</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>status</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 5d61f5f981d3fec21b5bbd6a07c5b28326ef6138..0fbb163701c101d985a4c6ec987fae3cdb04a355 100644 (file)
@@ -1,3 +1,11 @@
 base referer
-rect $channels_8cpp-source.html 123,7 221,34
-rect $modules_8cpp-source.html 123,58 221,84
+rect $channels_8cpp-source.html 423,108 521,135
+rect $modules_8cpp-source.html 423,210 521,236
+rect $inspircd_8h-source.html 121,286 201,312
+rect $socket_8cpp-source.html 429,311 515,338
+rect $socketengine_8cpp-source.html 409,438 535,464
+rect $users_8cpp-source.html 432,362 512,388
+rect $inspircd__io_8h-source.html 257,159 353,186
+rect $socketengine_8h-source.html 249,362 361,388
+rect $typedefs_8h-source.html 263,210 348,236
+rect $userprocess_8h-source.html 253,514 357,540
index e98ddad9169d6a207989e9be904e8aa66ff01035..7141d356766515a0dabd78a24fce5908859c8f5b 100644 (file)
@@ -1 +1 @@
-fd59f64e403f74c533d4d585052df75c
\ No newline at end of file
+a468254eb82a333e8e171f75c5a95c2c
\ No newline at end of file
index c4bd501fa0f69945b045724907fb23113961f4e2..5891ea4c1b2cd37b9da04070b4ec321075b55bdb 100644 (file)
@@ -1,4 +1,4 @@
 base referer
-rect $users_8h-source.html 127,260 191,287
-rect $channels_8h-source.html 251,210 336,236
-rect $connection_8h-source.html 244,362 343,388
+rect $users_8h-source.html 128,311 192,337
+rect $channels_8h-source.html 248,361 333,388
+rect $ctables_8h-source.html 123,108 197,135
index 6d7d31d181fbd100f0ea6e953b3c77ce372d1236..e109361fcfe4d1deeb73637da25f9a35acd9684b 100644 (file)
@@ -1 +1 @@
-3d060c191165c8107d912ed1383b6923
\ No newline at end of file
+65cc27648a712202e38cf2a89d5cde55
\ No newline at end of file
index a13d4ac10ee44e14f14f0e622cc9baf51719565e..ac2ff009eb44e2a2d159ec24e72e57ce8e419432 100644 (file)
 <a name="l00019"></a>00019 <span class="preprocessor">#include "inspircd_config.h"</span>
 <a name="l00020"></a>00020 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
 <a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="inspircd__io_8h.html">inspircd_io.h</a>"</span>
-<a name="l00022"></a>00022 <span class="preprocessor">#include "inspircd_util.h"</span>
-<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
-<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
-<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;time.h&gt;</span>
-<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00027"></a>00027 <span class="preprocessor">#ifdef GCC3</span>
-<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
-<a name="l00029"></a>00029 <span class="preprocessor">#else</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
-<a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
-<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;sstream&gt;</span>
-<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;deque&gt;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "dynamic.h"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "wildcard.h"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include "inspstring.h"</span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include "helperfuncs.h"</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span>
-<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span>
-<a name="l00052"></a>00052 
-<a name="l00053"></a>00053 <span class="keyword">extern</span> <a class="code" href="classSocketEngine.html">SocketEngine</a>* <a class="code" href="modules_8cpp.html#SE">SE</a>;
+<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
+<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;sys/errno.h&gt;</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#include &lt;time.h&gt;</span>
+<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#ifdef GCC3</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ext/hash_map&gt;</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#else</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include &lt;hash_map&gt;</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#include &lt;map&gt;</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;deque&gt;</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="globals_8h.html">globals.h</a>"</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include "dynamic.h"</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include "wildcard.h"</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="mode_8h.html">mode.h</a>"</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include "inspstring.h"</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include "helperfuncs.h"</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="modules_8h.html">modules.h</a>"</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include "command_parse.h"</span>
+<a name="l00053"></a>00053 
 <a name="l00054"></a>00054 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a> *<a class="code" href="channels_8cpp.html#Config">Config</a>;
 <a name="l00055"></a>00055 <span class="keyword">extern</span> <a class="code" href="classInspIRCd.html">InspIRCd</a>* <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>;
 <a name="l00056"></a>00056 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>;
 <a name="l00057"></a>00057 <span class="keyword">extern</span> std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>;
 <a name="l00058"></a>00058 <span class="keyword">extern</span> std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>;
 <a name="l00059"></a>00059 <span class="keyword">extern</span> std::vector&lt;InspSocket*&gt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>;
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00062"></a>00062 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
-<a name="l00063"></a>00063 <span class="keyword">extern</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536];
-<a name="l00064"></a>00064 
-<a name="l00065"></a>00065 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>;
-<a name="l00066"></a>00066 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>;
-<a name="l00067"></a>00067 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#command_5Ftable">command_table</a> <a class="code" href="modules_8cpp.html#cmdlist">cmdlist</a>;
-<a name="l00068"></a><a class="code" href="modules_8cpp.html#EMode">00068</a> <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a> <a class="code" href="modules_8cpp.html#EMode">EMode</a>;
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00071"></a><a class="code" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">00071</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-<a name="l00072"></a>00072 {
-<a name="l00073"></a>00073         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00074"></a>00074         {
-<a name="l00075"></a>00075                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00076"></a>00076                 {
-<a name="l00077"></a>00077                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00078"></a>00078                 }
-<a name="l00079"></a>00079         }
-<a name="l00080"></a>00080         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00081"></a>00081 }
-<a name="l00082"></a>00082 
-<a name="l00083"></a><a class="code" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">00083</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-<a name="l00084"></a>00084 {
-<a name="l00085"></a>00085         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00086"></a>00086         {
-<a name="l00087"></a>00087                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
-<a name="l00088"></a>00088                 {
-<a name="l00089"></a>00089                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00090"></a>00090                 }
-<a name="l00091"></a>00091         }
-<a name="l00092"></a>00092         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00093"></a>00093 }
-<a name="l00094"></a>00094 
-<a name="l00095"></a><a class="code" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">00095</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-<a name="l00096"></a>00096 {
-<a name="l00097"></a>00097         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00098"></a>00098         {
-<a name="l00099"></a>00099                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
-<a name="l00100"></a>00100                 {
-<a name="l00101"></a>00101                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00102"></a>00102                 }
-<a name="l00103"></a>00103         }
-<a name="l00104"></a>00104         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00105"></a>00105 }
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00108"></a><a class="code" href="modules_8h.html#ModeDefinedOn_28char_20c_2C_20int_20i_29">00108</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-<a name="l00109"></a>00109 {
-<a name="l00110"></a>00110         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00111"></a>00111         {
-<a name="l00112"></a>00112                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00113"></a>00113                 {
-<a name="l00114"></a>00114                         <span class="keywordflow">return</span> i-&gt;params_when_on;
-<a name="l00115"></a>00115                 }
-<a name="l00116"></a>00116         }
-<a name="l00117"></a>00117         <span class="keywordflow">return</span> 0;
-<a name="l00118"></a>00118 }
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
-<a name="l00121"></a><a class="code" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">00121</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
-<a name="l00122"></a>00122 {
-<a name="l00123"></a>00123         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00124"></a>00124         {
-<a name="l00125"></a>00125                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00126"></a>00126                 {
-<a name="l00127"></a>00127                         <span class="keywordflow">return</span> i-&gt;params_when_off;
-<a name="l00128"></a>00128                 }
-<a name="l00129"></a>00129         }
-<a name="l00130"></a>00130         <span class="keywordflow">return</span> 0;
-<a name="l00131"></a>00131 }
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133 <span class="comment">// returns true if an extended mode character is in use</span>
-<a name="l00134"></a><a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">00134</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_on, <span class="keywordtype">int</span> params_off)
-<a name="l00135"></a>00135 {
-<a name="l00136"></a>00136         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) {
-<a name="l00137"></a>00137                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00138"></a>00138         }
-<a name="l00139"></a>00139         <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
-<a name="l00140"></a>00140         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142 
-<a name="l00143"></a>00143 <span class="comment">// turns a mode into a listmode</span>
-<a name="l00144"></a><a class="code" href="modules_8h.html#ModeMakeList_28char_20modechar_29">00144</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar)
-<a name="l00145"></a>00145 {
-<a name="l00146"></a>00146         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00147"></a>00147         {
-<a name="l00148"></a>00148                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
-<a name="l00149"></a>00149                 {
-<a name="l00150"></a>00150                         i-&gt;list = <span class="keyword">true</span>;
-<a name="l00151"></a>00151                         <span class="keywordflow">return</span>;
-<a name="l00152"></a>00152                 }
-<a name="l00153"></a>00153         }
-<a name="l00154"></a>00154         <span class="keywordflow">return</span>;
-<a name="l00155"></a>00155 }
-<a name="l00156"></a>00156 
-<a name="l00157"></a>00157 <span class="comment">// version is a simple class for holding a modules version number</span>
-<a name="l00158"></a>00158 
-<a name="l00159"></a><a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">00159</a> <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags) : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { };
-<a name="l00160"></a>00160 
-<a name="l00161"></a>00161 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
-<a name="l00162"></a>00162 
-<a name="l00163"></a><a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">00163</a> <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin::Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick) : Name(name), Email(email), Nick(nick) { };
-<a name="l00164"></a>00164 
-<a name="l00165"></a><a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">00165</a> <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request::Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst) : data(anydata), source(src), dest(dst) { };
-<a name="l00166"></a>00166 
-<a name="l00167"></a><a class="code" href="classRequest.html#GetData_28_29">00167</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">Request::GetData</a>()
-<a name="l00168"></a>00168 {
-<a name="l00169"></a>00169         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#data">data</a>;
-<a name="l00170"></a>00170 }
-<a name="l00171"></a>00171 
-<a name="l00172"></a><a class="code" href="classRequest.html#GetSource_28_29">00172</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">Request::GetSource</a>()
-<a name="l00173"></a>00173 {
-<a name="l00174"></a>00174         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#source">source</a>;
-<a name="l00175"></a>00175 }
-<a name="l00176"></a>00176 
-<a name="l00177"></a><a class="code" href="classRequest.html#GetDest_28_29">00177</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">Request::GetDest</a>()
-<a name="l00178"></a>00178 {
-<a name="l00179"></a>00179         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#dest">dest</a>;
-<a name="l00180"></a>00180 }
-<a name="l00181"></a>00181 
-<a name="l00182"></a><a class="code" href="classRequest.html#Send_28_29">00182</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Request::Send</a>()
-<a name="l00183"></a>00183 {
-<a name="l00184"></a>00184         <span class="keywordflow">if</span> (this-&gt;dest)
-<a name="l00185"></a>00185         {
-<a name="l00186"></a>00186                 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-&gt;<a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>);
-<a name="l00187"></a>00187         }
-<a name="l00188"></a>00188         <span class="keywordflow">else</span>
-<a name="l00189"></a>00189         {
-<a name="l00190"></a>00190                 <span class="keywordflow">return</span> NULL;
-<a name="l00191"></a>00191         }
-<a name="l00192"></a>00192 }
-<a name="l00193"></a>00193 
-<a name="l00194"></a><a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">00194</a> <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event::Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid) : data(anydata), source(src), id(eventid) { };
-<a name="l00195"></a>00195 
-<a name="l00196"></a><a class="code" href="classEvent.html#GetData_28_29">00196</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">Event::GetData</a>()
-<a name="l00197"></a>00197 {
-<a name="l00198"></a>00198         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#data">data</a>;
-<a name="l00199"></a>00199 }
-<a name="l00200"></a>00200 
-<a name="l00201"></a><a class="code" href="classEvent.html#GetSource_28_29">00201</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">Event::GetSource</a>()
-<a name="l00202"></a>00202 {
-<a name="l00203"></a>00203         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#source">source</a>;
-<a name="l00204"></a>00204 }
-<a name="l00205"></a>00205 
-<a name="l00206"></a><a class="code" href="classEvent.html#Send_28_29">00206</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Event::Send</a>()
-<a name="l00207"></a>00207 {
-<a name="l00208"></a>00208         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>);
-<a name="l00209"></a>00209         <span class="keywordflow">return</span> NULL;
-<a name="l00210"></a>00210 }
-<a name="l00211"></a>00211 
-<a name="l00212"></a><a class="code" href="classEvent.html#GetEventID_28_29">00212</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">Event::GetEventID</a>()
-<a name="l00213"></a>00213 {
-<a name="l00214"></a>00214         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#id">id</a>;
-<a name="l00215"></a>00215 }
+<a name="l00060"></a>00060 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00061"></a>00061 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
+<a name="l00062"></a>00062 <span class="keyword">extern</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536];
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>;
+<a name="l00065"></a>00065 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a> <a class="code" href="channels_8cpp.html#chanlist">chanlist</a>;
+<a name="l00066"></a>00066 <span class="keyword">extern</span> <a class="code" href="ctables_8h.html#command_5Ftable">command_table</a> <a class="code" href="modules_8cpp.html#cmdlist">cmdlist</a>;
+<a name="l00067"></a><a class="code" href="modules_8cpp.html#EMode">00067</a> <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a> <a class="code" href="modules_8cpp.html#EMode">EMode</a>;
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069 <span class="comment">// returns true if an extended mode character is in use</span>
+<a name="l00070"></a><a class="code" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">00070</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<a name="l00071"></a>00071 {
+<a name="l00072"></a>00072         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00073"></a>00073         {
+<a name="l00074"></a>00074                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00075"></a>00075                 {
+<a name="l00076"></a>00076                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00077"></a>00077                 }
+<a name="l00078"></a>00078         }
+<a name="l00079"></a>00079         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081 
+<a name="l00082"></a><a class="code" href="modules_8h.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">00082</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<a name="l00083"></a>00083 {
+<a name="l00084"></a>00084         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00085"></a>00085         {
+<a name="l00086"></a>00086                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
+<a name="l00087"></a>00087                 {
+<a name="l00088"></a>00088                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00089"></a>00089                 }
+<a name="l00090"></a>00090         }
+<a name="l00091"></a>00091         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093 
+<a name="l00094"></a><a class="code" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">00094</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00097"></a>00097         {
+<a name="l00098"></a>00098                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
+<a name="l00099"></a>00099                 {
+<a name="l00100"></a>00100                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00101"></a>00101                 }
+<a name="l00102"></a>00102         }
+<a name="l00103"></a>00103         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00106"></a>00106 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
+<a name="l00107"></a><a class="code" href="modules_8h.html#ModeDefinedOn_28char_20c_2C_20int_20i_29">00107</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00110"></a>00110         {
+<a name="l00111"></a>00111                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00112"></a>00112                 {
+<a name="l00113"></a>00113                         <span class="keywordflow">return</span> i-&gt;params_when_on;
+<a name="l00114"></a>00114                 }
+<a name="l00115"></a>00115         }
+<a name="l00116"></a>00116         <span class="keywordflow">return</span> 0;
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119 <span class="comment">// returns number of parameters for a custom mode when it is switched on</span>
+<a name="l00120"></a><a class="code" href="modules_8h.html#ModeDefinedOff_28char_20c_2C_20int_20i_29">00120</a> <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type)
+<a name="l00121"></a>00121 {
+<a name="l00122"></a>00122         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00123"></a>00123         {
+<a name="l00124"></a>00124                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00125"></a>00125                 {
+<a name="l00126"></a>00126                         <span class="keywordflow">return</span> i-&gt;params_when_off;
+<a name="l00127"></a>00127                 }
+<a name="l00128"></a>00128         }
+<a name="l00129"></a>00129         <span class="keywordflow">return</span> 0;
+<a name="l00130"></a>00130 }
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132 <span class="comment">// returns true if an extended mode character is in use</span>
+<a name="l00133"></a><a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">00133</a> <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_on, <span class="keywordtype">int</span> params_off)
+<a name="l00134"></a>00134 {
+<a name="l00135"></a>00135         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) {
+<a name="l00136"></a>00136                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00137"></a>00137         }
+<a name="l00138"></a>00138         <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
+<a name="l00139"></a>00139         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00140"></a>00140 }
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142 <span class="comment">// turns a mode into a listmode</span>
+<a name="l00143"></a><a class="code" href="modules_8h.html#ModeMakeList_28char_20modechar_29">00143</a> <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar)
+<a name="l00144"></a>00144 {
+<a name="l00145"></a>00145         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00146"></a>00146         {
+<a name="l00147"></a>00147                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
+<a name="l00148"></a>00148                 {
+<a name="l00149"></a>00149                         i-&gt;list = <span class="keyword">true</span>;
+<a name="l00150"></a>00150                         <span class="keywordflow">return</span>;
+<a name="l00151"></a>00151                 }
+<a name="l00152"></a>00152         }
+<a name="l00153"></a>00153         <span class="keywordflow">return</span>;
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156 <span class="comment">// version is a simple class for holding a modules version number</span>
+<a name="l00157"></a>00157 
+<a name="l00158"></a><a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">00158</a> <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags) : Major(major), Minor(minor), Revision(revision), Build(build), Flags(flags) { };
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160 <span class="comment">// admin is a simple class for holding a server's administrative info</span>
+<a name="l00161"></a>00161 
+<a name="l00162"></a><a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">00162</a> <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin::Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick) : Name(name), Email(email), Nick(nick) { };
+<a name="l00163"></a>00163 
+<a name="l00164"></a><a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">00164</a> <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request::Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst) : data(anydata), source(src), dest(dst) { };
+<a name="l00165"></a>00165 
+<a name="l00166"></a><a class="code" href="classRequest.html#GetData_28_29">00166</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">Request::GetData</a>()
+<a name="l00167"></a>00167 {
+<a name="l00168"></a>00168         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#data">data</a>;
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170 
+<a name="l00171"></a><a class="code" href="classRequest.html#GetSource_28_29">00171</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">Request::GetSource</a>()
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#source">source</a>;
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175 
+<a name="l00176"></a><a class="code" href="classRequest.html#GetDest_28_29">00176</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">Request::GetDest</a>()
+<a name="l00177"></a>00177 {
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classRequest.html#dest">dest</a>;
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a><a class="code" href="classRequest.html#Send_28_29">00181</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Request::Send</a>()
+<a name="l00182"></a>00182 {
+<a name="l00183"></a>00183         <span class="keywordflow">if</span> (this-&gt;dest)
+<a name="l00184"></a>00184         {
+<a name="l00185"></a>00185                 <span class="keywordflow">return</span> <a class="code" href="classRequest.html#dest">dest</a>-&gt;<a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<span class="keyword">this</span>);
+<a name="l00186"></a>00186         }
+<a name="l00187"></a>00187         <span class="keywordflow">else</span>
+<a name="l00188"></a>00188         {
+<a name="l00189"></a>00189                 <span class="keywordflow">return</span> NULL;
+<a name="l00190"></a>00190         }
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192 
+<a name="l00193"></a><a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">00193</a> <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event::Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid) : data(anydata), source(src), id(eventid) { };
+<a name="l00194"></a>00194 
+<a name="l00195"></a><a class="code" href="classEvent.html#GetData_28_29">00195</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">Event::GetData</a>()
+<a name="l00196"></a>00196 {
+<a name="l00197"></a>00197         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#data">data</a>;
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199 
+<a name="l00200"></a><a class="code" href="classEvent.html#GetSource_28_29">00200</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">Event::GetSource</a>()
+<a name="l00201"></a>00201 {
+<a name="l00202"></a>00202         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#source">source</a>;
+<a name="l00203"></a>00203 }
+<a name="l00204"></a>00204 
+<a name="l00205"></a><a class="code" href="classEvent.html#Send_28_29">00205</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Event::Send</a>()
+<a name="l00206"></a>00206 {
+<a name="l00207"></a>00207         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnEvent(<span class="keyword">this</span>);
+<a name="l00208"></a>00208         <span class="keywordflow">return</span> NULL;
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210 
+<a name="l00211"></a><a class="code" href="classEvent.html#GetEventID_28_29">00211</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">Event::GetEventID</a>()
+<a name="l00212"></a>00212 {
+<a name="l00213"></a>00213         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classEvent.html#id">id</a>;
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215 
 <a name="l00216"></a>00216 
-<a name="l00217"></a>00217 
-<a name="l00218"></a>00218 <span class="comment">// These declarations define the behavours of the base class Module (which does nothing at all)</span>
-<a name="l00219"></a>00219 
-<a name="l00220"></a><a class="code" href="classModule.html#Module_28Server_20_2AMe_29">00220</a>                 <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module::Module</a>(<a class="code" href="classServer.html">Server</a>* Me) { }
-<a name="l00221"></a><a class="code" href="classModule.html#_7EModule_28_29">00221</a>                 <a class="code" href="classModule.html#_7EModule_28_29">Module::~Module</a>() { }
-<a name="l00222"></a><a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">00222</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
-<a name="l00223"></a><a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00223</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message) { }
-<a name="l00224"></a><a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">00224</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">Module::OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
-<a name="l00225"></a><a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00225</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
-<a name="l00226"></a><a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00226</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
-<a name="l00227"></a><a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">00227</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">Module::OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter) { }
-<a name="l00228"></a><a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">00228</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">Module::OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { }
-<a name="l00229"></a><a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">00229</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">Module::OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname) { <span class="keywordflow">return</span> 0; }
-<a name="l00230"></a><a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">00230</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">Module::OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &amp;params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
-<a name="l00231"></a><a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00231</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
-<a name="l00232"></a><a class="code" href="classModule.html#GetVersion_28_29">00232</a> <a class="code" href="classVersion.html">Version</a>         <a class="code" href="classModule.html#GetVersion_28_29">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); }
-<a name="l00233"></a><a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">00233</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype) { };
-<a name="l00234"></a><a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">00234</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00235"></a><a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">00235</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { };
-<a name="l00236"></a><a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00236</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel) { <span class="keywordflow">return</span> 0; };
-<a name="l00237"></a><a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00237</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">Module::OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text) { <span class="keywordflow">return</span> 0; };
-<a name="l00238"></a><a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00238</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">Module::OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text) { <span class="keywordflow">return</span> 0; };
-<a name="l00239"></a><a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">00239</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick) { <span class="keywordflow">return</span> 0; };
-<a name="l00240"></a><a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">00240</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">Module::OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick) { };
-<a name="l00241"></a><a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">00241</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">Module::OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type) { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#ACR_5FDEFAULT">ACR_DEFAULT</a>; };
-<a name="l00242"></a><a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">00242</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">Module::On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;output) { };
-<a name="l00243"></a><a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00243</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; };
-<a name="l00244"></a><a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00244</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { };
-<a name="l00245"></a><a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00245</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { };
-<a name="l00246"></a><a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">00246</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">Module::OnBackgroundTimer</a>(time_t curtime) { };
-<a name="l00247"></a><a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">00247</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">Module::OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode) { };
-<a name="l00248"></a><a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00248</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Module::OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) { <span class="keywordflow">return</span> 0; };
-<a name="l00249"></a><a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">00249</a> <span class="keywordtype">bool</span>            <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">Module::OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
-<a name="l00250"></a><a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">00250</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">Module::OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00251"></a><a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00251</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; };
-<a name="l00252"></a><a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00252</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { };
-<a name="l00253"></a><a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">00253</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">Module::OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt) { <span class="keywordflow">return</span> 0; };
-<a name="l00254"></a><a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00254</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
-<a name="l00255"></a><a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">00255</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">Module::OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven) { <span class="keywordflow">return</span> 0; };
-<a name="l00256"></a><a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00256</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
-<a name="l00257"></a><a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00257</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
-<a name="l00258"></a><a class="code" href="classModule.html#OnStats_28char_20symbol_29">00258</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnStats_28char_20symbol_29">Module::OnStats</a>(<span class="keywordtype">char</span> symbol) { };
-<a name="l00259"></a><a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00259</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; };
-<a name="l00260"></a><a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00260</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; };
-<a name="l00261"></a><a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00261</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { <span class="keywordflow">return</span> 0; };
-<a name="l00262"></a><a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">00262</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">Module::OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event) { <span class="keywordflow">return</span>; };
-<a name="l00263"></a><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">00263</a> <span class="keywordtype">char</span>*           <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">Module::OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request) { <span class="keywordflow">return</span> NULL; };
-<a name="l00264"></a><a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">00264</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">Module::OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input) { <span class="keywordflow">return</span> 0; };
-<a name="l00265"></a><a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">00265</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">Module::OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00266"></a><a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">00266</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">Module::OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
-<a name="l00267"></a><a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00267</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; };
-<a name="l00268"></a><a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00268</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; };
-<a name="l00269"></a><a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">00269</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">Module::OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport) { };
-<a name="l00270"></a><a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">00270</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">Module::OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count) { <span class="keywordflow">return</span> 0; };
-<a name="l00271"></a><a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">00271</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">Module::OnRawSocketClose</a>(<span class="keywordtype">int</span> fd) { };
-<a name="l00272"></a><a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">00272</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">Module::OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &amp;readresult) { <span class="keywordflow">return</span> 0; };
-<a name="l00273"></a><a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00273</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
-<a name="l00274"></a><a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00274</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
-<a name="l00275"></a><a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00275</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { };
-<a name="l00276"></a><a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00276</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel) { };
-<a name="l00277"></a><a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00277</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { };
-<a name="l00278"></a><a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">00278</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">Module::OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description) { };
-<a name="l00279"></a><a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00279</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { };
-<a name="l00280"></a><a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00280</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { };
-<a name="l00281"></a><a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">00281</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module::ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline) { };
-<a name="l00282"></a><a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00282</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { };
-<a name="l00283"></a><a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00283</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { };
-<a name="l00284"></a><a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00284</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { };
-<a name="l00285"></a><a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00285</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { };
-<a name="l00286"></a><a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">00286</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">Module::OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
-<a name="l00287"></a><a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00287</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { };
-<a name="l00288"></a><a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00288</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Module::OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) { };
-<a name="l00289"></a><a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00289</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00290"></a><a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">00290</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">Module::OnAddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { };
-<a name="l00291"></a><a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00291</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00292"></a><a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">00292</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">Module::OnAddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { };
-<a name="l00293"></a><a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00293</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00294"></a><a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00294</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00295"></a><a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">00295</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">Module::OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { };
-<a name="l00296"></a><a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00296</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00297"></a><a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">00297</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">Module::OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { };
-<a name="l00298"></a><a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00298</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
-<a name="l00299"></a><a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">00299</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">Module::OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item) { };
-<a name="l00300"></a>00300 
-<a name="l00301"></a>00301 <span class="comment">/* server is a wrapper class that provides methods to all of the C-style</span>
-<a name="l00302"></a>00302 <span class="comment"> * exports in the core</span>
-<a name="l00303"></a>00303 <span class="comment"> */</span>
-<a name="l00304"></a>00304 
-<a name="l00305"></a><a class="code" href="classServer.html#Server_28_29">00305</a> <a class="code" href="classServer.html#Server_28_29">Server::Server</a>()
-<a name="l00306"></a>00306 {
-<a name="l00307"></a>00307 }
-<a name="l00308"></a>00308 
-<a name="l00309"></a><a class="code" href="classServer.html#_7EServer_28_29">00309</a> <a class="code" href="classServer.html#_7EServer_28_29">Server::~Server</a>()
-<a name="l00310"></a>00310 {
-<a name="l00311"></a>00311 }
-<a name="l00312"></a>00312 
-<a name="l00313"></a><a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">00313</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">Server::AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
-<a name="l00314"></a>00314 {
-<a name="l00315"></a>00315         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock);
-<a name="l00316"></a>00316 }
-<a name="l00317"></a>00317 
-<a name="l00318"></a><a class="code" href="classServer.html#RehashServer_28_29">00318</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">Server::RehashServer</a>()
-<a name="l00319"></a>00319 {
-<a name="l00320"></a>00320         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>);
-<a name="l00321"></a>00321         Config-&gt;<a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL);
-<a name="l00322"></a>00322 }
-<a name="l00323"></a>00323 
-<a name="l00324"></a><a class="code" href="classServer.html#GetConfig_28_29">00324</a> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">Server::GetConfig</a>()
-<a name="l00325"></a>00325 {
-<a name="l00326"></a>00326         <span class="keywordflow">return</span> Config;
-<a name="l00327"></a>00327 }
-<a name="l00328"></a>00328 
-<a name="l00329"></a><a class="code" href="classServer.html#GetVersion_28_29">00329</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">Server::GetVersion</a>()
-<a name="l00330"></a>00330 {
-<a name="l00331"></a>00331         <span class="keywordflow">return</span> ServerInstance-&gt;<a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
-<a name="l00332"></a>00332 }
-<a name="l00333"></a>00333 
-<a name="l00334"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00334</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
-<a name="l00335"></a>00335 {
-<a name="l00336"></a>00336         <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
-<a name="l00337"></a>00337         {
-<a name="l00338"></a>00338                 <span class="keywordflow">if</span> (*a == sock)
-<a name="l00339"></a>00339                 {
-<a name="l00340"></a>00340                         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
-<a name="l00341"></a>00341                         <span class="keywordflow">return</span>;
-<a name="l00342"></a>00342                 }
-<a name="l00343"></a>00343         }
-<a name="l00344"></a>00344 }
-<a name="l00345"></a>00345 
-<a name="l00346"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00346</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00347"></a>00347 {
-<a name="l00348"></a>00348         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00349"></a>00349 }
-<a name="l00350"></a>00350 
-<a name="l00351"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00351</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern)
-<a name="l00352"></a>00352 {
-<a name="l00353"></a>00353         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
-<a name="l00354"></a>00354         strlcpy(literal,sliteral.c_str(),MAXBUF);
-<a name="l00355"></a>00355         strlcpy(pattern,spattern.c_str(),MAXBUF);
-<a name="l00356"></a>00356         <span class="keywordflow">return</span> match(literal,pattern);
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358 
-<a name="l00359"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00359</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00360"></a>00360 {
-<a name="l00361"></a>00361         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00362"></a>00362 }
-<a name="l00363"></a>00363 
-<a name="l00364"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00364</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key)
-<a name="l00365"></a>00365 {
-<a name="l00366"></a>00366         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
-<a name="l00367"></a>00367 }
-<a name="l00368"></a>00368 
-<a name="l00369"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00369</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
-<a name="l00370"></a>00370 {
-<a name="l00371"></a>00371         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
-<a name="l00372"></a>00372 }
-<a name="l00373"></a>00373 
-<a name="l00374"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00374</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
-<a name="l00375"></a>00375 {
-<a name="l00376"></a>00376         <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
-<a name="l00377"></a>00377         userl.clear();
-<a name="l00378"></a>00378         std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
-<a name="l00379"></a>00379         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
-<a name="l00380"></a>00380         {
-<a name="l00381"></a>00381                 <span class="keywordtype">char</span>* o = *i;
-<a name="l00382"></a>00382                 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
-<a name="l00383"></a>00383         }
-<a name="l00384"></a>00384         <span class="keywordflow">return</span> userl;
-<a name="l00385"></a>00385 }
-<a name="l00386"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00386</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
-<a name="l00387"></a>00387 {
-<a name="l00388"></a>00388         <a class="code" href="inspircd_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str());
-<a name="l00389"></a>00389 }
-<a name="l00390"></a>00390 
-<a name="l00391"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00391</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
-<a name="l00392"></a>00392 {
-<a name="l00393"></a>00393         <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str());
-<a name="l00394"></a>00394 }
-<a name="l00395"></a>00395 
-<a name="l00396"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00396</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server)
-<a name="l00397"></a>00397 {
-<a name="l00398"></a>00398         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
-<a name="l00399"></a>00399 }
-<a name="l00400"></a>00400 
-<a name="l00401"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00401</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
-<a name="l00402"></a>00402 {
-<a name="l00403"></a>00403         <a class="code" href="inspircd_8h.html#call_5Fhandler_28const_20char_20_2Acommandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">call_handler</a>(commandname.c_str(),parameters,pcnt,user);
-<a name="l00404"></a>00404 }
-<a name="l00405"></a>00405 
-<a name="l00406"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00406</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
-<a name="l00407"></a>00407 {
-<a name="l00408"></a>00408         <span class="keywordflow">return</span> <a class="code" href="inspircd_8h.html#is_5Fvalid_5Fcmd_28const_20char_20_2Acommandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">is_valid_cmd</a>(commandname.c_str(), pcnt, user);
-<a name="l00409"></a>00409 }
-<a name="l00410"></a>00410 
-<a name="l00411"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00411</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00412"></a>00412 {
-<a name="l00413"></a>00413         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00414"></a>00414 }
-<a name="l00415"></a>00415 
-<a name="l00416"></a><a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">00416</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">Server::AddCommand</a>(<span class="keywordtype">char</span>* cmd, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source)
-<a name="l00417"></a>00417 {
-<a name="l00418"></a>00418         <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(cmd,f,flags,minparams,source);
-<a name="l00419"></a>00419 }
-<a name="l00420"></a>00420 
-<a name="l00421"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00421</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
-<a name="l00422"></a>00422 {
-<a name="l00423"></a>00423         <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(parameters,pcnt,user);
-<a name="l00424"></a>00424 }
-<a name="l00425"></a>00425 
-<a name="l00426"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00426</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00427"></a>00427 {
-<a name="l00428"></a>00428         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00429"></a>00429 }
-<a name="l00430"></a>00430 
-<a name="l00431"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00431</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00432"></a>00432 {
-<a name="l00433"></a>00433         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00434"></a>00434 }
-<a name="l00435"></a>00435 
-<a name="l00436"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00436</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00437"></a>00437 {
-<a name="l00438"></a>00438         <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00439"></a>00439 }
-<a name="l00440"></a>00440 
-<a name="l00441"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00441</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s)
-<a name="l00442"></a>00442 {
-<a name="l00443"></a>00443         <span class="keywordflow">if</span> (!Source)
-<a name="l00444"></a>00444         {
-<a name="l00445"></a>00445                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
-<a name="l00446"></a>00446                 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
-<a name="l00447"></a>00447         }
-<a name="l00448"></a>00448         <span class="keywordflow">else</span>
-<a name="l00449"></a>00449         {
-<a name="l00450"></a>00450                 <span class="comment">// otherwise it comes from the user specified</span>
-<a name="l00451"></a>00451                 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00452"></a>00452         }
-<a name="l00453"></a>00453 }
-<a name="l00454"></a>00454 
-<a name="l00455"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00455</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00456"></a>00456 {
-<a name="l00457"></a>00457         WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
-<a name="l00458"></a>00458 }
-<a name="l00459"></a>00459 
-<a name="l00460"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00460</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender)
-<a name="l00461"></a>00461 {
-<a name="l00462"></a>00462         <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00463"></a>00463         {
-<a name="l00464"></a>00464                 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00465"></a>00465         }
-<a name="l00466"></a>00466         <span class="keywordflow">else</span>
-<a name="l00467"></a>00467         {
-<a name="l00468"></a>00468                 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
-<a name="l00469"></a>00469         }
-<a name="l00470"></a>00470 }
-<a name="l00471"></a>00471 
-<a name="l00472"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00472</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
-<a name="l00473"></a>00473 {
-<a name="l00474"></a>00474         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
-<a name="l00475"></a>00475 }
-<a name="l00476"></a>00476 
-<a name="l00477"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00477</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender)
-<a name="l00478"></a>00478 {
-<a name="l00479"></a>00479         <span class="keywordflow">if</span> (IncludeSender)
-<a name="l00480"></a>00480         {
-<a name="l00481"></a>00481                 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00482"></a>00482         }
-<a name="l00483"></a>00483         <span class="keywordflow">else</span>
-<a name="l00484"></a>00484         {
-<a name="l00485"></a>00485                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00486"></a>00486         }
-<a name="l00487"></a>00487 }
-<a name="l00488"></a>00488 
-<a name="l00489"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00489</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text)
-<a name="l00490"></a>00490 {
-<a name="l00491"></a>00491         <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
-<a name="l00492"></a>00492 }
-<a name="l00493"></a>00493 
-<a name="l00494"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00494</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host)
-<a name="l00495"></a>00495 {
-<a name="l00496"></a>00496         <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
-<a name="l00497"></a>00497 }
-<a name="l00498"></a>00498 
-<a name="l00499"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00499</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos)
-<a name="l00500"></a>00500 {
-<a name="l00501"></a>00501         <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
-<a name="l00502"></a>00502 }
-<a name="l00503"></a>00503 
-<a name="l00504"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00504</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
-<a name="l00505"></a>00505 {
-<a name="l00506"></a>00506         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
-<a name="l00507"></a>00507 }
-<a name="l00508"></a>00508 
-<a name="l00509"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00509</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
-<a name="l00510"></a>00510 {
-<a name="l00511"></a>00511         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick);
-<a name="l00512"></a>00512 }
-<a name="l00513"></a>00513 
-<a name="l00514"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00514</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket)
-<a name="l00515"></a>00515 {
-<a name="l00516"></a>00516         <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
-<a name="l00517"></a>00517 }
-<a name="l00518"></a>00518 
-<a name="l00519"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00519</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel)
-<a name="l00520"></a>00520 {
-<a name="l00521"></a>00521         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str());
-<a name="l00522"></a>00522 }
-<a name="l00523"></a>00523 
-<a name="l00524"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00524</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-<a name="l00525"></a>00525 {
-<a name="l00526"></a>00526         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
-<a name="l00527"></a>00527 }
-<a name="l00528"></a>00528 
-<a name="l00529"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00529</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
-<a name="l00530"></a>00530 {
-<a name="l00531"></a>00531         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
-<a name="l00532"></a>00532 }
-<a name="l00533"></a>00533 
-<a name="l00534"></a><a class="code" href="classServer.html#GetServerName_28_29">00534</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>()
-<a name="l00535"></a>00535 {
-<a name="l00536"></a>00536         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>;
-<a name="l00537"></a>00537 }
-<a name="l00538"></a>00538 
-<a name="l00539"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00539</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>()
-<a name="l00540"></a>00540 {
-<a name="l00541"></a>00541         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
-<a name="l00542"></a>00542 }
-<a name="l00543"></a>00543 
-<a name="l00544"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00544</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>()
-<a name="l00545"></a>00545 {
-<a name="l00546"></a>00546         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>;
-<a name="l00547"></a>00547 }
-<a name="l00548"></a>00548 
-<a name="l00549"></a><a class="code" href="classServer.html#GetAdmin_28_29">00549</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>()
-<a name="l00550"></a>00550 {
-<a name="l00551"></a>00551         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(Config-&gt;<a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,Config-&gt;<a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,Config-&gt;<a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>);
-<a name="l00552"></a>00552 }
+<a name="l00217"></a>00217 <span class="comment">// These declarations define the behavours of the base class Module (which does nothing at all)</span>
+<a name="l00218"></a>00218 
+<a name="l00219"></a><a class="code" href="classModule.html#Module_28Server_20_2AMe_29">00219</a>                 <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module::Module</a>(<a class="code" href="classServer.html">Server</a>* Me) { }
+<a name="l00220"></a><a class="code" href="classModule.html#_7EModule_28_29">00220</a>                 <a class="code" href="classModule.html#_7EModule_28_29">Module::~Module</a>() { }
+<a name="l00221"></a><a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">00221</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">Module::OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00222"></a><a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00222</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Module::OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message) { }
+<a name="l00223"></a><a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">00223</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">Module::OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00224"></a><a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00224</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00225"></a><a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">00225</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">Module::OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel) { }
+<a name="l00226"></a><a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">00226</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">Module::OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter) { }
+<a name="l00227"></a><a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">00227</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">Module::OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user) { }
+<a name="l00228"></a><a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">00228</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">Module::OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname) { <span class="keywordflow">return</span> 0; }
+<a name="l00229"></a><a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">00229</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">Module::OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &amp;params) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00230"></a><a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00230</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
+<a name="l00231"></a><a class="code" href="classModule.html#GetVersion_28_29">00231</a> <a class="code" href="classVersion.html">Version</a>         <a class="code" href="classModule.html#GetVersion_28_29">Module::GetVersion</a>() { <span class="keywordflow">return</span> <a class="code" href="classVersion.html">Version</a>(1,0,0,0,<a class="code" href="modules_8h.html#VF_5FVENDOR">VF_VENDOR</a>); }
+<a name="l00232"></a><a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">00232</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">Module::OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype) { };
+<a name="l00233"></a><a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">00233</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">Module::OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00234"></a><a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">00234</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">Module::OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest) { };
+<a name="l00235"></a><a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00235</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel) { <span class="keywordflow">return</span> 0; };
+<a name="l00236"></a><a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00236</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">Module::OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text) { <span class="keywordflow">return</span> 0; };
+<a name="l00237"></a><a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">00237</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">Module::OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text) { <span class="keywordflow">return</span> 0; };
+<a name="l00238"></a><a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">00238</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">Module::OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick) { <span class="keywordflow">return</span> 0; };
+<a name="l00239"></a><a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">00239</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">Module::OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick) { };
+<a name="l00240"></a><a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">00240</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">Module::OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type) { <span class="keywordflow">return</span> <a class="code" href="modules_8h.html#ACR_5FDEFAULT">ACR_DEFAULT</a>; };
+<a name="l00241"></a><a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">00241</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">Module::On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;output) { };
+<a name="l00242"></a><a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00242</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; };
+<a name="l00243"></a><a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00243</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { };
+<a name="l00244"></a><a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">00244</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">Module::OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name) { };
+<a name="l00245"></a><a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">00245</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">Module::OnBackgroundTimer</a>(time_t curtime) { };
+<a name="l00246"></a><a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">00246</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">Module::OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode) { };
+<a name="l00247"></a><a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00247</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Module::OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user) { <span class="keywordflow">return</span> 0; };
+<a name="l00248"></a><a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">00248</a> <span class="keywordtype">bool</span>            <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">Module::OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { <span class="keywordflow">return</span> <span class="keyword">true</span>; };
+<a name="l00249"></a><a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">00249</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">Module::OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00250"></a><a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00250</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { <span class="keywordflow">return</span> 0; };
+<a name="l00251"></a><a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">00251</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">Module::OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { };
+<a name="l00252"></a><a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">00252</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">Module::OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt) { <span class="keywordflow">return</span> 0; };
+<a name="l00253"></a><a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00253</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
+<a name="l00254"></a><a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">00254</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">Module::OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven) { <span class="keywordflow">return</span> 0; };
+<a name="l00255"></a><a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00255</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
+<a name="l00256"></a><a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">00256</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">Module::OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan) { <span class="keywordflow">return</span> 0; };
+<a name="l00257"></a><a class="code" href="classModule.html#OnStats_28char_20symbol_29">00257</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnStats_28char_20symbol_29">Module::OnStats</a>(<span class="keywordtype">char</span> symbol) { };
+<a name="l00258"></a><a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00258</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; };
+<a name="l00259"></a><a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00259</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { <span class="keywordflow">return</span> 0; };
+<a name="l00260"></a><a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00260</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { <span class="keywordflow">return</span> 0; };
+<a name="l00261"></a><a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">00261</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">Module::OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event) { <span class="keywordflow">return</span>; };
+<a name="l00262"></a><a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">00262</a> <span class="keywordtype">char</span>*           <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">Module::OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request) { <span class="keywordflow">return</span> NULL; };
+<a name="l00263"></a><a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">00263</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">Module::OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input) { <span class="keywordflow">return</span> 0; };
+<a name="l00264"></a><a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">00264</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">Module::OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00265"></a><a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">00265</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">Module::OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user) { };
+<a name="l00266"></a><a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00266</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; };
+<a name="l00267"></a><a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">00267</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">Module::OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask) { <span class="keywordflow">return</span> 0; };
+<a name="l00268"></a><a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">00268</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">Module::OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport) { };
+<a name="l00269"></a><a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">00269</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">Module::OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count) { <span class="keywordflow">return</span> 0; };
+<a name="l00270"></a><a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">00270</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">Module::OnRawSocketClose</a>(<span class="keywordtype">int</span> fd) { };
+<a name="l00271"></a><a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">00271</a> <span class="keywordtype">int</span>             <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">Module::OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &amp;readresult) { <span class="keywordflow">return</span> 0; };
+<a name="l00272"></a><a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00272</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
+<a name="l00273"></a><a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">00273</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">Module::OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
+<a name="l00274"></a><a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">00274</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">Module::OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason) { };
+<a name="l00275"></a><a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">00275</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">Module::OnUserInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel) { };
+<a name="l00276"></a><a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">00276</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">Module::OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic) { };
+<a name="l00277"></a><a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">00277</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">Module::OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description) { };
+<a name="l00278"></a><a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00278</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { };
+<a name="l00279"></a><a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">00279</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">Module::OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque) { };
+<a name="l00280"></a><a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">00280</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">Module::ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline) { };
+<a name="l00281"></a><a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00281</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { };
+<a name="l00282"></a><a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">00282</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">Module::OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname) { };
+<a name="l00283"></a><a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00283</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { };
+<a name="l00284"></a><a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">00284</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">Module::ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata) { };
+<a name="l00285"></a><a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">00285</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">Module::OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text) { };
+<a name="l00286"></a><a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">00286</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">Module::OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost) { };
+<a name="l00287"></a><a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00287</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Module::OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos) { };
+<a name="l00288"></a><a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00288</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00289"></a><a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">00289</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">Module::OnAddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { };
+<a name="l00290"></a><a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00290</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00291"></a><a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">00291</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">Module::OnAddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { };
+<a name="l00292"></a><a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00292</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Module::OnAddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00293"></a><a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00293</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00294"></a><a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">00294</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">Module::OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask) { };
+<a name="l00295"></a><a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00295</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00296"></a><a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">00296</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">Module::OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask) { };
+<a name="l00297"></a><a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">00297</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">Module::OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask) { };
+<a name="l00298"></a><a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">00298</a> <span class="keywordtype">void</span>            <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">Module::OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item) { };
+<a name="l00299"></a>00299 
+<a name="l00300"></a>00300 <span class="comment">/* server is a wrapper class that provides methods to all of the C-style</span>
+<a name="l00301"></a>00301 <span class="comment"> * exports in the core</span>
+<a name="l00302"></a>00302 <span class="comment"> */</span>
+<a name="l00303"></a>00303 
+<a name="l00304"></a><a class="code" href="classServer.html#Server_28_29">00304</a> <a class="code" href="classServer.html#Server_28_29">Server::Server</a>()
+<a name="l00305"></a>00305 {
+<a name="l00306"></a>00306 }
+<a name="l00307"></a>00307 
+<a name="l00308"></a><a class="code" href="classServer.html#_7EServer_28_29">00308</a> <a class="code" href="classServer.html#_7EServer_28_29">Server::~Server</a>()
+<a name="l00309"></a>00309 {
+<a name="l00310"></a>00310 }
+<a name="l00311"></a>00311 
+<a name="l00312"></a><a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">00312</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">Server::AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
+<a name="l00313"></a>00313 {
+<a name="l00314"></a>00314         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.push_back(sock);
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316 
+<a name="l00317"></a><a class="code" href="classServer.html#RehashServer_28_29">00317</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">Server::RehashServer</a>()
+<a name="l00318"></a>00318 {
+<a name="l00319"></a>00319         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Rehashing config file"</span>);
+<a name="l00320"></a>00320         Config-&gt;<a class="code" href="classServerConfig.html#Read_28bool_20bail_2C_20userrec_20_2Auser_29">Read</a>(<span class="keyword">false</span>,NULL);
+<a name="l00321"></a>00321 }
+<a name="l00322"></a>00322 
+<a name="l00323"></a><a class="code" href="classServer.html#GetConfig_28_29">00323</a> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">Server::GetConfig</a>()
+<a name="l00324"></a>00324 {
+<a name="l00325"></a>00325         <span class="keywordflow">return</span> Config;
+<a name="l00326"></a>00326 }
+<a name="l00327"></a>00327 
+<a name="l00328"></a><a class="code" href="classServer.html#GetVersion_28_29">00328</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">Server::GetVersion</a>()
+<a name="l00329"></a>00329 {
+<a name="l00330"></a>00330         <span class="keywordflow">return</span> ServerInstance-&gt;<a class="code" href="classInspIRCd.html#GetVersionString_28_29">GetVersionString</a>();
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 
+<a name="l00333"></a><a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">00333</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">Server::DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock)
+<a name="l00334"></a>00334 {
+<a name="l00335"></a>00335         <span class="keywordflow">for</span> (std::vector&lt;InspSocket*&gt;::iterator a = <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.begin(); a &lt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.end(); a++)
+<a name="l00336"></a>00336         {
+<a name="l00337"></a>00337                 <span class="keywordflow">if</span> (*a == sock)
+<a name="l00338"></a>00338                 {
+<a name="l00339"></a>00339                         <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>.erase(a);
+<a name="l00340"></a>00340                         <span class="keywordflow">return</span>;
+<a name="l00341"></a>00341                 }
+<a name="l00342"></a>00342         }
+<a name="l00343"></a>00343 }
+<a name="l00344"></a>00344 
+<a name="l00345"></a><a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">00345</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">Server::SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00346"></a>00346 {
+<a name="l00347"></a>00347         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00348"></a>00348 }
+<a name="l00349"></a>00349 
+<a name="l00350"></a><a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">00350</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">Server::MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern)
+<a name="l00351"></a>00351 {
+<a name="l00352"></a>00352         <span class="keywordtype">char</span> literal[MAXBUF],pattern[MAXBUF];
+<a name="l00353"></a>00353         strlcpy(literal,sliteral.c_str(),MAXBUF);
+<a name="l00354"></a>00354         strlcpy(pattern,spattern.c_str(),MAXBUF);
+<a name="l00355"></a>00355         <span class="keywordflow">return</span> match(literal,pattern);
+<a name="l00356"></a>00356 }
+<a name="l00357"></a>00357 
+<a name="l00358"></a><a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">00358</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">Server::SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text)
+<a name="l00359"></a>00359 {
+<a name="l00360"></a>00360         WriteMode(modes.c_str(),flags,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00361"></a>00361 }
+<a name="l00362"></a>00362 
+<a name="l00363"></a><a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">00363</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">Server::JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key)
+<a name="l00364"></a>00364 {
+<a name="l00365"></a>00365         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#add_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acn_2C_20const_20char_20_2Akey_2C_20bool_20override_29">add_channel</a>(user,cname.c_str(),key.c_str(),<span class="keyword">false</span>);
+<a name="l00366"></a>00366 }
+<a name="l00367"></a>00367 
+<a name="l00368"></a><a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">00368</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">Server::PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
+<a name="l00369"></a>00369 {
+<a name="l00370"></a>00370         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#del_5Fchannel_28userrec_20_2Auser_2C_20const_20char_20_2Acname_2C_20const_20char_20_2Areason_2C_20bool_20local_29">del_channel</a>(user,cname.c_str(),reason.c_str(),<span class="keyword">false</span>);
+<a name="l00371"></a>00371 }
+<a name="l00372"></a>00372 
+<a name="l00373"></a><a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">00373</a> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">Server::GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan)
+<a name="l00374"></a>00374 {
+<a name="l00375"></a>00375         <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> userl;
+<a name="l00376"></a>00376         userl.clear();
+<a name="l00377"></a>00377         std::vector&lt;char*&gt; *list = chan-&gt;<a class="code" href="classchanrec.html#GetUsers_28_29">GetUsers</a>();
+<a name="l00378"></a>00378         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator i = list-&gt;begin(); i != list-&gt;end(); i++)
+<a name="l00379"></a>00379         {
+<a name="l00380"></a>00380                 <span class="keywordtype">char</span>* o = *i;
+<a name="l00381"></a>00381                 userl.push_back((<a class="code" href="classuserrec.html">userrec</a>*)o);
+<a name="l00382"></a>00382         }
+<a name="l00383"></a>00383         <span class="keywordflow">return</span> userl;
+<a name="l00384"></a>00384 }
+<a name="l00385"></a><a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">00385</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">Server::ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
+<a name="l00386"></a>00386 {
+<a name="l00387"></a>00387         <a class="code" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(user,nickname.c_str());
+<a name="l00388"></a>00388 }
+<a name="l00389"></a>00389 
+<a name="l00390"></a><a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">00390</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">Server::QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason)
+<a name="l00391"></a>00391 {
+<a name="l00392"></a>00392         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,reason.c_str());
+<a name="l00393"></a>00393 }
+<a name="l00394"></a>00394 
+<a name="l00395"></a><a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">00395</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">Server::IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server)
+<a name="l00396"></a>00396 {
+<a name="l00397"></a>00397         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(server.c_str());
+<a name="l00398"></a>00398 }
+<a name="l00399"></a>00399 
+<a name="l00400"></a><a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00400</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00401"></a>00401 {
+<a name="l00402"></a>00402         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CallHandler(commandname,parameters,pcnt,user);
+<a name="l00403"></a>00403 }
+<a name="l00404"></a>00404 
+<a name="l00405"></a><a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00405</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00406"></a>00406 {
+<a name="l00407"></a>00407         <span class="keywordflow">return</span> ServerInstance-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;IsValidCommand(commandname, pcnt, user);
+<a name="l00408"></a>00408 }
+<a name="l00409"></a>00409 
+<a name="l00410"></a><a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">00410</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Server::Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00411"></a>00411 {
+<a name="l00412"></a>00412         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(level,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00413"></a>00413 }
+<a name="l00414"></a>00414 
+<a name="l00415"></a><a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">00415</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">Server::AddCommand</a>(<a class="code" href="classcommand__t.html">command_t</a> *f)
+<a name="l00416"></a>00416 {
+<a name="l00417"></a>00417         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CreateCommand(f);
+<a name="l00418"></a>00418 }
+<a name="l00419"></a>00419 
+<a name="l00420"></a><a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">00420</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">Server::SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user)
+<a name="l00421"></a>00421 {
+<a name="l00422"></a>00422         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#ModeGrok">ModeGrok</a>-&gt;<a class="code" href="classModeParser.html#ServerMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">ServerMode</a>(parameters,pcnt,user);
+<a name="l00423"></a>00423 }
+<a name="l00424"></a>00424 
+<a name="l00425"></a><a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">00425</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00426"></a>00426 {
+<a name="l00427"></a>00427         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00428"></a>00428 }
+<a name="l00429"></a>00429 
+<a name="l00430"></a><a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">00430</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">Server::SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00431"></a>00431 {
+<a name="l00432"></a>00432         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(Socket,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434 
+<a name="l00435"></a><a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">00435</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">Server::SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00436"></a>00436 {
+<a name="l00437"></a>00437         <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(Socket,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00438"></a>00438 }
+<a name="l00439"></a>00439 
+<a name="l00440"></a><a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">00440</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">Server::SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s)
+<a name="l00441"></a>00441 {
+<a name="l00442"></a>00442         <span class="keywordflow">if</span> (!Source)
+<a name="l00443"></a>00443         {
+<a name="l00444"></a>00444                 <span class="comment">// if source is NULL, then the message originates from the local server</span>
+<a name="l00445"></a>00445                 <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(Dest-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s %s"</span>,this-&gt;GetServerName().c_str(),s.c_str());
+<a name="l00446"></a>00446         }
+<a name="l00447"></a>00447         <span class="keywordflow">else</span>
+<a name="l00448"></a>00448         {
+<a name="l00449"></a>00449                 <span class="comment">// otherwise it comes from the user specified</span>
+<a name="l00450"></a>00450                 <a class="code" href="globals_8h.html#WriteTo_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20char_20_2Adata_2C_2E_2E_2E_29">WriteTo</a>(Source,Dest,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00451"></a>00451         }
+<a name="l00452"></a>00452 }
+<a name="l00453"></a>00453 
+<a name="l00454"></a><a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">00454</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">Server::SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text)
+<a name="l00455"></a>00455 {
+<a name="l00456"></a>00456         WriteChannelWithServ((<span class="keywordtype">char</span>*)ServName.c_str(), Channel, <span class="stringliteral">"%s"</span>, text.c_str());
+<a name="l00457"></a>00457 }
+<a name="l00458"></a>00458 
+<a name="l00459"></a><a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">00459</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">Server::SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00460"></a>00460 {
+<a name="l00461"></a>00461         <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00462"></a>00462         {
+<a name="l00463"></a>00463                 <a class="code" href="globals_8h.html#WriteChannel_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteChannel</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00464"></a>00464         }
+<a name="l00465"></a>00465         <span class="keywordflow">else</span>
+<a name="l00466"></a>00466         {
+<a name="l00467"></a>00467                 <a class="code" href="globals_8h.html#ChanExceptSender_28chanrec_20_2APtr_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">ChanExceptSender</a>(Channel,User,<span class="stringliteral">"%s"</span>,s.c_str());
+<a name="l00468"></a>00468         }
+<a name="l00469"></a>00469 }
+<a name="l00470"></a>00470 
+<a name="l00471"></a><a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">00471</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">Server::CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2)
+<a name="l00472"></a>00472 {
+<a name="l00473"></a>00473         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#common_5Fchannels_28userrec_20_2Au_2C_20userrec_20_2Au_32_29">common_channels</a>(u1,u2) != 0);
+<a name="l00474"></a>00474 }
+<a name="l00475"></a>00475 
+<a name="l00476"></a><a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">00476</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">Server::SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender)
+<a name="l00477"></a>00477 {
+<a name="l00478"></a>00478         <span class="keywordflow">if</span> (IncludeSender)
+<a name="l00479"></a>00479         {
+<a name="l00480"></a>00480                 <a class="code" href="globals_8h.html#WriteCommon_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommon</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00481"></a>00481         }
+<a name="l00482"></a>00482         <span class="keywordflow">else</span>
+<a name="l00483"></a>00483         {
+<a name="l00484"></a>00484                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(User,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00485"></a>00485         }
+<a name="l00486"></a>00486 }
+<a name="l00487"></a>00487 
+<a name="l00488"></a><a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">00488</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">Server::SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text)
+<a name="l00489"></a>00489 {
+<a name="l00490"></a>00490         <a class="code" href="globals_8h.html#WriteWallOps_28userrec_20_2Asource_2C_20bool_20local_5Fonly_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteWallOps</a>(User,<span class="keyword">false</span>,<span class="stringliteral">"%s"</span>,text.c_str());
+<a name="l00491"></a>00491 }
+<a name="l00492"></a>00492 
+<a name="l00493"></a><a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">00493</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">Server::ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host)
+<a name="l00494"></a>00494 {
+<a name="l00495"></a>00495         <a class="code" href="message_8h.html#ChangeDisplayedHost_28userrec_20_2Auser_2C_20const_20char_20_2Ahost_29">ChangeDisplayedHost</a>(user,host.c_str());
+<a name="l00496"></a>00496 }
+<a name="l00497"></a>00497 
+<a name="l00498"></a><a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">00498</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">Server::ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos)
+<a name="l00499"></a>00499 {
+<a name="l00500"></a>00500         <a class="code" href="message_8h.html#ChangeName_28userrec_20_2Auser_2C_20const_20char_20_2Agecos_29">ChangeName</a>(user,gecos.c_str());
+<a name="l00501"></a>00501 }
+<a name="l00502"></a>00502 
+<a name="l00503"></a><a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">00503</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">Server::IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
+<a name="l00504"></a>00504 {
+<a name="l00505"></a>00505         <span class="keywordflow">return</span> (<a class="code" href="globals_8h.html#isnick_28const_20char_20_2An_29">isnick</a>(nick.c_str()) != 0);
+<a name="l00506"></a>00506 }
+<a name="l00507"></a>00507 
+<a name="l00508"></a><a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">00508</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">Server::FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick)
+<a name="l00509"></a>00509 {
+<a name="l00510"></a>00510         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#Find_28std_3A_3Astring_20nick_29">Find</a>(nick);
+<a name="l00511"></a>00511 }
+<a name="l00512"></a>00512 
+<a name="l00513"></a><a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">00513</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">Server::FindDescriptor</a>(<span class="keywordtype">int</span> socket)
+<a name="l00514"></a>00514 {
+<a name="l00515"></a>00515         <span class="keywordflow">return</span> (socket &lt; 65536 ? fd_ref_table[socket] : NULL);
+<a name="l00516"></a>00516 }
+<a name="l00517"></a>00517 
+<a name="l00518"></a><a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">00518</a> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">Server::FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel)
+<a name="l00519"></a>00519 {
+<a name="l00520"></a>00520         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#FindChan_28const_20char_20_2Achan_29">FindChan</a>(channel.c_str());
+<a name="l00521"></a>00521 }
+<a name="l00522"></a>00522 
+<a name="l00523"></a><a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00523</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+<a name="l00524"></a>00524 {
+<a name="l00525"></a>00525         <span class="keywordflow">return</span> <a class="code" href="globals_8h.html#cmode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">cmode</a>(User,Chan);
+<a name="l00526"></a>00526 }
+<a name="l00527"></a>00527 
+<a name="l00528"></a><a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">00528</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">Server::IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan)
+<a name="l00529"></a>00529 {
+<a name="l00530"></a>00530         <span class="keywordflow">return</span> <a class="code" href="message_8h.html#has_5Fchannel_28userrec_20_2Au_2C_20chanrec_20_2Ac_29">has_channel</a>(User,Chan);
+<a name="l00531"></a>00531 }
+<a name="l00532"></a>00532 
+<a name="l00533"></a><a class="code" href="classServer.html#GetServerName_28_29">00533</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">Server::GetServerName</a>()
+<a name="l00534"></a>00534 {
+<a name="l00535"></a>00535         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>;
+<a name="l00536"></a>00536 }
+<a name="l00537"></a>00537 
+<a name="l00538"></a><a class="code" href="classServer.html#GetNetworkName_28_29">00538</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">Server::GetNetworkName</a>()
+<a name="l00539"></a>00539 {
+<a name="l00540"></a>00540         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
+<a name="l00541"></a>00541 }
+<a name="l00542"></a>00542 
+<a name="l00543"></a><a class="code" href="classServer.html#GetServerDescription_28_29">00543</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">Server::GetServerDescription</a>()
+<a name="l00544"></a>00544 {
+<a name="l00545"></a>00545         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#ServerDesc_5BMAXBUF_5D">ServerDesc</a>;
+<a name="l00546"></a>00546 }
+<a name="l00547"></a>00547 
+<a name="l00548"></a><a class="code" href="classServer.html#GetAdmin_28_29">00548</a> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">Server::GetAdmin</a>()
+<a name="l00549"></a>00549 {
+<a name="l00550"></a>00550         <span class="keywordflow">return</span> <a class="code" href="classAdmin.html">Admin</a>(Config-&gt;<a class="code" href="classServerConfig.html#AdminName_5BMAXBUF_5D">AdminName</a>,Config-&gt;<a class="code" href="classServerConfig.html#AdminEmail_5BMAXBUF_5D">AdminEmail</a>,Config-&gt;<a class="code" href="classServerConfig.html#AdminNick_5BMAXBUF_5D">AdminNick</a>);
+<a name="l00551"></a>00551 }
+<a name="l00552"></a>00552 
 <a name="l00553"></a>00553 
 <a name="l00554"></a>00554 
-<a name="l00555"></a>00555 
-<a name="l00556"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00556</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
-<a name="l00557"></a>00557 {
-<a name="l00558"></a>00558         <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
-<a name="l00559"></a>00559         {
-<a name="l00560"></a>00560                 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
-<a name="l00561"></a>00561                 {
-<a name="l00562"></a>00562                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
-<a name="l00563"></a>00563                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00564"></a>00564                 }
-<a name="l00565"></a>00565                 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>))
-<a name="l00566"></a>00566                 {
-<a name="l00567"></a>00567                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
-<a name="l00568"></a>00568                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00569"></a>00569                 }
-<a name="l00570"></a>00570                 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
-<a name="l00571"></a>00571                 {
-<a name="l00572"></a>00572                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
-<a name="l00573"></a>00573                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00574"></a>00574                 }
-<a name="l00575"></a>00575                 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
-<a name="l00576"></a>00576         }
-<a name="l00577"></a>00577         <span class="keywordflow">else</span>
-<a name="l00578"></a>00578         {
-<a name="l00579"></a>00579                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
-<a name="l00580"></a>00580         }
-<a name="l00581"></a>00581         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00582"></a>00582 }
-<a name="l00583"></a>00583 
-<a name="l00584"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00584</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
-<a name="l00585"></a>00585 {
-<a name="l00586"></a>00586         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
-<a name="l00587"></a>00587         <span class="keywordflow">if</span> (res)
-<a name="l00588"></a>00588                 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
-<a name="l00589"></a>00589         <span class="keywordflow">return</span> res;
-<a name="l00590"></a>00590 }
-<a name="l00591"></a>00591 
-<a name="l00592"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00592</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
-<a name="l00593"></a>00593 {
-<a name="l00594"></a>00594         <span class="keywordflow">return</span> usercount(c);
-<a name="l00595"></a>00595 }
+<a name="l00555"></a><a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">00555</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">Server::AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off)
+<a name="l00556"></a>00556 {
+<a name="l00557"></a>00557         <span class="keywordflow">if</span> (((modechar &gt;= <span class="charliteral">'A'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'Z'</span>)) || ((modechar &gt;= <span class="charliteral">'a'</span>) &amp;&amp; (modechar &lt;= <span class="charliteral">'z'</span>)))
+<a name="l00558"></a>00558         {
+<a name="l00559"></a>00559                 <span class="keywordflow">if</span> (type == <a class="code" href="modules_8h.html#MT_5FSERVER">MT_SERVER</a>)
+<a name="l00560"></a>00560                 {
+<a name="l00561"></a>00561                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"</span>);
+<a name="l00562"></a>00562                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00563"></a>00563                 }
+<a name="l00564"></a>00564                 <span class="keywordflow">if</span> (((params_when_on&gt;0) || (params_when_off&gt;0)) &amp;&amp; (type == <a class="code" href="modules_8h.html#MT_5FCLIENT">MT_CLIENT</a>))
+<a name="l00565"></a>00565                 {
+<a name="l00566"></a>00566                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"</span>);
+<a name="l00567"></a>00567                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00568"></a>00568                 }
+<a name="l00569"></a>00569                 <span class="keywordflow">if</span> ((params_when_on&gt;1) || (params_when_off&gt;1))
+<a name="l00570"></a>00570                 {
+<a name="l00571"></a>00571                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"</span>);
+<a name="l00572"></a>00572                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00573"></a>00573                 }
+<a name="l00574"></a>00574                 <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,type,requires_oper,params_when_on,params_when_off);
+<a name="l00575"></a>00575         }
+<a name="l00576"></a>00576         <span class="keywordflow">else</span>
+<a name="l00577"></a>00577         {
+<a name="l00578"></a>00578                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** API ERROR *** Muppet modechar detected."</span>);
+<a name="l00579"></a>00579         }
+<a name="l00580"></a>00580         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00581"></a>00581 }
+<a name="l00582"></a>00582 
+<a name="l00583"></a><a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">00583</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">Server::AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar)
+<a name="l00584"></a>00584 {
+<a name="l00585"></a>00585         <span class="keywordtype">bool</span> res = <a class="code" href="modules_8cpp.html#DoAddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fon_2C_20int_20params_5Foff_29">DoAddExtendedMode</a>(modechar,<a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>,<span class="keyword">false</span>,1,1);
+<a name="l00586"></a>00586         <span class="keywordflow">if</span> (res)
+<a name="l00587"></a>00587                 <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(modechar);
+<a name="l00588"></a>00588         <span class="keywordflow">return</span> res;
+<a name="l00589"></a>00589 }
+<a name="l00590"></a>00590 
+<a name="l00591"></a><a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">00591</a> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">Server::CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c)
+<a name="l00592"></a>00592 {
+<a name="l00593"></a>00593         <span class="keywordflow">return</span> usercount(c);
+<a name="l00594"></a>00594 }
+<a name="l00595"></a>00595 
 <a name="l00596"></a>00596 
-<a name="l00597"></a>00597 
-<a name="l00598"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00598</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message)
-<a name="l00599"></a>00599 {
-<a name="l00600"></a>00600         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00601"></a>00601         user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00602"></a>00602         user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00603"></a>00603         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
-<a name="l00604"></a>00604         SE-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
-<a name="l00605"></a>00605         shutdown(old_fd,2);
-<a name="l00606"></a>00606         close(old_fd);
-<a name="l00607"></a>00607         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00608"></a>00608 }
-<a name="l00609"></a>00609 
-<a name="l00610"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00610</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message)
-<a name="l00611"></a>00611 {
-<a name="l00612"></a>00612         zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
-<a name="l00613"></a>00613         alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
-<a name="l00614"></a>00614         alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
-<a name="l00615"></a>00615         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00616"></a>00616         <a class="code" href="inspircd_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str());
-<a name="l00617"></a>00617         fd_ref_table[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
-<a name="l00618"></a>00618         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
-<a name="l00619"></a>00619         {
-<a name="l00620"></a>00620                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
-<a name="l00621"></a>00621                 {
-<a name="l00622"></a>00622                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
-<a name="l00623"></a>00623                         {
-<a name="l00624"></a>00624                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
-<a name="l00625"></a>00625                                 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00626"></a>00626                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
-<a name="l00627"></a>00627                                 {
-<a name="l00628"></a>00628                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
-<a name="l00629"></a>00629                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
-<a name="l00630"></a>00630                                 }
-<a name="l00631"></a>00631                                 userlist(zombie,Ptr);
-<a name="l00632"></a>00632                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
-<a name="l00633"></a>00633 
-<a name="l00634"></a>00634                         }
-<a name="l00635"></a>00635                 }
-<a name="l00636"></a>00636         }
-<a name="l00637"></a>00637         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00638"></a>00638 }
-<a name="l00639"></a>00639 
-<a name="l00640"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00640</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00641"></a>00641 {
-<a name="l00642"></a>00642         <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00643"></a>00643 }
-<a name="l00644"></a>00644 
-<a name="l00645"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00645</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
-<a name="l00646"></a>00646 {
-<a name="l00647"></a>00647         <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
-<a name="l00648"></a>00648 }
-<a name="l00649"></a>00649 
-<a name="l00650"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00650</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
-<a name="l00651"></a>00651 {
-<a name="l00652"></a>00652         <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-<a name="l00653"></a>00653 }
-<a name="l00654"></a>00654 
-<a name="l00655"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00655</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00656"></a>00656 {
-<a name="l00657"></a>00657         <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00658"></a>00658 }
-<a name="l00659"></a>00659 
-<a name="l00660"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00660</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00661"></a>00661 {
-<a name="l00662"></a>00662         <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-<a name="l00663"></a>00663 }
-<a name="l00664"></a>00664 
-<a name="l00665"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00665</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00666"></a>00666 {
-<a name="l00667"></a>00667         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
-<a name="l00668"></a>00668 }
-<a name="l00669"></a>00669 
-<a name="l00670"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00670</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname)
-<a name="l00671"></a>00671 {
-<a name="l00672"></a>00672         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
-<a name="l00673"></a>00673 }
-<a name="l00674"></a>00674 
-<a name="l00675"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00675</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
-<a name="l00676"></a>00676 {
-<a name="l00677"></a>00677         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
-<a name="l00678"></a>00678 }
-<a name="l00679"></a>00679 
-<a name="l00680"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00680</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00681"></a>00681 {
-<a name="l00682"></a>00682         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
-<a name="l00683"></a>00683 }
-<a name="l00684"></a>00684 
-<a name="l00685"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00685</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
-<a name="l00686"></a>00686 {
-<a name="l00687"></a>00687         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
-<a name="l00688"></a>00688 }
-<a name="l00689"></a>00689 
-<a name="l00690"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00690</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta)
-<a name="l00691"></a>00691 {
-<a name="l00692"></a>00692         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
-<a name="l00693"></a>00693 }
-<a name="l00694"></a>00694 
-<a name="l00695"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00695</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask)
-<a name="l00696"></a>00696 {
-<a name="l00697"></a>00697         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
-<a name="l00698"></a>00698         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
-<a name="l00699"></a>00699                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00700"></a>00700         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
-<a name="l00701"></a>00701                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00702"></a>00702         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00703"></a>00703                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
-<a name="l00704"></a>00704                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00705"></a>00705         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00706"></a>00706                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
-<a name="l00707"></a>00707                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00708"></a>00708         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
-<a name="l00709"></a>00709         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00710"></a>00710                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
-<a name="l00711"></a>00711                         c++;
-<a name="l00712"></a>00712         <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00713"></a>00713                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00714"></a>00714         c = 0;
-<a name="l00715"></a>00715         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
-<a name="l00716"></a>00716                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
-<a name="l00717"></a>00717                         c++;
-<a name="l00718"></a>00718         <span class="keywordflow">if</span> (c&gt;1)
-<a name="l00719"></a>00719                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00720"></a>00720 
-<a name="l00721"></a>00721         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00722"></a>00722 }
-<a name="l00723"></a>00723 
-<a name="l00724"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00724</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name)
-<a name="l00725"></a>00725 {
-<a name="l00726"></a>00726         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
-<a name="l00727"></a>00727         {
-<a name="l00728"></a>00728                 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
-<a name="l00729"></a>00729                 {
-<a name="l00730"></a>00730                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
-<a name="l00731"></a>00731                 }
-<a name="l00732"></a>00732         }
-<a name="l00733"></a>00733         <span class="keywordflow">return</span> NULL;
-<a name="l00734"></a>00734 }
-<a name="l00735"></a>00735 
-<a name="l00736"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00736</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>()
-<a name="l00737"></a>00737 {
-<a name="l00738"></a>00738         Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00739"></a>00739         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00740"></a>00740         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00741"></a>00741         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
-<a name="l00742"></a>00742         <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00743"></a>00743                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00744"></a>00744 }
+<a name="l00597"></a><a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">00597</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">Server::UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message)
+<a name="l00598"></a>00598 {
+<a name="l00599"></a>00599         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> old_fd = user-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00600"></a>00600         user-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00601"></a>00601         user-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00602"></a>00602         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(old_fd,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,message.c_str());
+<a name="l00603"></a>00603         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(old_fd);
+<a name="l00604"></a>00604         shutdown(old_fd,2);
+<a name="l00605"></a>00605         close(old_fd);
+<a name="l00606"></a>00606         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00607"></a>00607 }
+<a name="l00608"></a>00608 
+<a name="l00609"></a><a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">00609</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">Server::PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message)
+<a name="l00610"></a>00610 {
+<a name="l00611"></a>00611         zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a> = alive-&gt;<a class="code" href="classconnection.html#fd">fd</a>;
+<a name="l00612"></a>00612         alive-&gt;<a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>;
+<a name="l00613"></a>00613         alive-&gt;<a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00614"></a>00614         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">":%s!%s@%s NICK %s"</span>,alive-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,alive-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,alive-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00615"></a>00615         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(alive,message.c_str());
+<a name="l00616"></a>00616         fd_ref_table[zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = zombie;
+<a name="l00617"></a>00617         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; zombie-&gt;chans.size(); i++)
+<a name="l00618"></a>00618         {
+<a name="l00619"></a>00619                 <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel != NULL)
+<a name="l00620"></a>00620                 {
+<a name="l00621"></a>00621                         <span class="keywordflow">if</span> (zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel-&gt;name)
+<a name="l00622"></a>00622                         {
+<a name="l00623"></a>00623                                 <a class="code" href="classchanrec.html">chanrec</a>* Ptr = zombie-&gt;<a class="code" href="classuserrec.html#chans">chans</a>[i].channel;
+<a name="l00624"></a>00624                                 <a class="code" href="globals_8h.html#WriteFrom_28int_20sock_2C_20userrec_20_2Auser_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteFrom</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,zombie,<span class="stringliteral">"JOIN %s"</span>,Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00625"></a>00625                                 <span class="keywordflow">if</span> (Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>)
+<a name="l00626"></a>00626                                 {
+<a name="l00627"></a>00627                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"332 %s %s :%s"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>);
+<a name="l00628"></a>00628                                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"333 %s %s %s %d"</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>, Ptr-&gt;<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>, Ptr-&gt;<a class="code" href="classchanrec.html#topicset">topicset</a>);
+<a name="l00629"></a>00629                                 }
+<a name="l00630"></a>00630                                 userlist(zombie,Ptr);
+<a name="l00631"></a>00631                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(zombie-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"366 %s %s :End of /NAMES list."</span>, zombie-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>, Ptr-&gt;<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
+<a name="l00632"></a>00632 
+<a name="l00633"></a>00633                         }
+<a name="l00634"></a>00634                 }
+<a name="l00635"></a>00635         }
+<a name="l00636"></a>00636         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 
+<a name="l00639"></a><a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00639</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00640"></a>00640 {
+<a name="l00641"></a>00641         <a class="code" href="xline_8h.html#add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_gline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00642"></a>00642 }
+<a name="l00643"></a>00643 
+<a name="l00644"></a><a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">00644</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">Server::AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname)
+<a name="l00645"></a>00645 {
+<a name="l00646"></a>00646         <a class="code" href="xline_8h.html#add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29">add_qline</a>(duration, source.c_str(), reason.c_str(), nickname.c_str());
+<a name="l00647"></a>00647 }
+<a name="l00648"></a>00648 
+<a name="l00649"></a><a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">00649</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">Server::AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
+<a name="l00650"></a>00650 {
+<a name="l00651"></a>00651         <a class="code" href="xline_8h.html#add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29">add_zline</a>(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+<a name="l00652"></a>00652 }
+<a name="l00653"></a>00653 
+<a name="l00654"></a><a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00654</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00655"></a>00655 {
+<a name="l00656"></a>00656         <a class="code" href="xline_8h.html#add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_kline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00657"></a>00657 }
+<a name="l00658"></a>00658 
+<a name="l00659"></a><a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">00659</a> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">Server::AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00660"></a>00660 {
+<a name="l00661"></a>00661         <a class="code" href="xline_8h.html#add_5Feline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29">add_eline</a>(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+<a name="l00662"></a>00662 }
+<a name="l00663"></a>00663 
+<a name="l00664"></a><a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">00664</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">Server::DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00665"></a>00665 {
+<a name="l00666"></a>00666         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fgline_28const_20char_20_2Ahostmask_29">del_gline</a>(hostmask.c_str());
+<a name="l00667"></a>00667 }
+<a name="l00668"></a>00668 
+<a name="l00669"></a><a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">00669</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">Server::DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname)
+<a name="l00670"></a>00670 {
+<a name="l00671"></a>00671         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fqline_28const_20char_20_2Anickname_29">del_qline</a>(nickname.c_str());
+<a name="l00672"></a>00672 }
+<a name="l00673"></a>00673 
+<a name="l00674"></a><a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">00674</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">Server::DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr)
+<a name="l00675"></a>00675 {
+<a name="l00676"></a>00676         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fzline_28const_20char_20_2Aipaddr_29">del_zline</a>(ipaddr.c_str());
+<a name="l00677"></a>00677 }
+<a name="l00678"></a>00678 
+<a name="l00679"></a><a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">00679</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">Server::DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00680"></a>00680 {
+<a name="l00681"></a>00681         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Fkline_28const_20char_20_2Ahostmask_29">del_kline</a>(hostmask.c_str());
+<a name="l00682"></a>00682 }
+<a name="l00683"></a>00683 
+<a name="l00684"></a><a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">00684</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">Server::DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask)
+<a name="l00685"></a>00685 {
+<a name="l00686"></a>00686         <span class="keywordflow">return</span> <a class="code" href="xline_8h.html#del_5Feline_28const_20char_20_2Ahostmask_29">del_eline</a>(hostmask.c_str());
+<a name="l00687"></a>00687 }
+<a name="l00688"></a>00688 
+<a name="l00689"></a><a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">00689</a> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">Server::CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> delta)
+<a name="l00690"></a>00690 {
+<a name="l00691"></a>00691         <span class="keywordflow">return</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>(delta.c_str());
+<a name="l00692"></a>00692 }
+<a name="l00693"></a>00693 
+<a name="l00694"></a><a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">00694</a> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">Server::IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask)
+<a name="l00695"></a>00695 {
+<a name="l00696"></a>00696         <span class="keyword">const</span> <span class="keywordtype">char</span>* dest = mask.c_str();
+<a name="l00697"></a>00697         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'!'</span>)==0)
+<a name="l00698"></a>00698                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00699"></a>00699         <span class="keywordflow">if</span> (strchr(dest,<span class="charliteral">'@'</span>)==0)
+<a name="l00700"></a>00700                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00701"></a>00701         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00702"></a>00702                 <span class="keywordflow">if</span> (dest[i] &lt; 32)
+<a name="l00703"></a>00703                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00704"></a>00704         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00705"></a>00705                 <span class="keywordflow">if</span> (dest[i] &gt; 126)
+<a name="l00706"></a>00706                         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00707"></a>00707         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> c = 0;
+<a name="l00708"></a>00708         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00709"></a>00709                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'!'</span>)
+<a name="l00710"></a>00710                         c++;
+<a name="l00711"></a>00711         <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00712"></a>00712                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00713"></a>00713         c = 0;
+<a name="l00714"></a>00714         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(dest); i++)
+<a name="l00715"></a>00715                 <span class="keywordflow">if</span> (dest[i] == <span class="charliteral">'@'</span>)
+<a name="l00716"></a>00716                         c++;
+<a name="l00717"></a>00717         <span class="keywordflow">if</span> (c&gt;1)
+<a name="l00718"></a>00718                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00719"></a>00719 
+<a name="l00720"></a>00720         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00721"></a>00721 }
+<a name="l00722"></a>00722 
+<a name="l00723"></a><a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">00723</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">Server::FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name)
+<a name="l00724"></a>00724 {
+<a name="l00725"></a>00725         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>; i++)
+<a name="l00726"></a>00726         {
+<a name="l00727"></a>00727                 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#module_5Fnames">module_names</a>[i] == name)
+<a name="l00728"></a>00728                 {
+<a name="l00729"></a>00729                         <span class="keywordflow">return</span> <a class="code" href="channels_8cpp.html#modules">modules</a>[i];
+<a name="l00730"></a>00730                 }
+<a name="l00731"></a>00731         }
+<a name="l00732"></a>00732         <span class="keywordflow">return</span> NULL;
+<a name="l00733"></a>00733 }
+<a name="l00734"></a>00734 
+<a name="l00735"></a><a class="code" href="classConfigReader.html#ConfigReader_28_29">00735</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>()
+<a name="l00736"></a>00736 {
+<a name="l00737"></a>00737         Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00738"></a>00738         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00739"></a>00739         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00740"></a>00740         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(CONFIG_FILE,this-&gt;cache,this-&gt;errorlog);
+<a name="l00741"></a>00741         <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00742"></a>00742                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00743"></a>00743 }
+<a name="l00744"></a>00744 
 <a name="l00745"></a>00745 
-<a name="l00746"></a>00746 
-<a name="l00747"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00747</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>()
-<a name="l00748"></a>00748 {
-<a name="l00749"></a>00749         <span class="keywordflow">if</span> (this-&gt;cache)
-<a name="l00750"></a>00750                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l00751"></a>00751         <span class="keywordflow">if</span> (this-&gt;errorlog)
-<a name="l00752"></a>00752                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l00753"></a>00753 }
+<a name="l00746"></a><a class="code" href="classConfigReader.html#_7EConfigReader_28_29">00746</a> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">ConfigReader::~ConfigReader</a>()
+<a name="l00747"></a>00747 {
+<a name="l00748"></a>00748         <span class="keywordflow">if</span> (this-&gt;cache)
+<a name="l00749"></a>00749                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l00750"></a>00750         <span class="keywordflow">if</span> (this-&gt;errorlog)
+<a name="l00751"></a>00751                 <span class="keyword">delete</span> this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l00752"></a>00752 }
+<a name="l00753"></a>00753 
 <a name="l00754"></a>00754 
-<a name="l00755"></a>00755 
-<a name="l00756"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00756</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00757"></a>00757 {
-<a name="l00758"></a>00758         Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
-<a name="l00759"></a>00759         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00760"></a>00760         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
-<a name="l00761"></a>00761         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
-<a name="l00762"></a>00762         <span class="keywordflow">if</span> (!this-&gt;readerror)
-<a name="l00763"></a>00763                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
-<a name="l00764"></a>00764 };
-<a name="l00765"></a>00765 
-<a name="l00766"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00766</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
-<a name="l00767"></a>00767 {
-<a name="l00768"></a>00768         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00769"></a>00769         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00770"></a>00770         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00771"></a>00771         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00772"></a>00772         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00773"></a>00773         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00774"></a>00774         <span class="keywordflow">if</span> (!res)
-<a name="l00775"></a>00775         {
-<a name="l00776"></a>00776                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00777"></a>00777                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00778"></a>00778         }
-<a name="l00779"></a>00779         <span class="keywordflow">return</span> val;
-<a name="l00780"></a>00780 }
-<a name="l00781"></a>00781 
-<a name="l00782"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00782</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
-<a name="l00783"></a>00783 {
-<a name="l00784"></a>00784         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00785"></a>00785         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00786"></a>00786         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00787"></a>00787         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00788"></a>00788         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00789"></a>00789         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00790"></a>00790         <span class="keywordflow">if</span> (!res)
-<a name="l00791"></a>00791         {
-<a name="l00792"></a>00792                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00793"></a>00793                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00794"></a>00794         }
-<a name="l00795"></a>00795         <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
-<a name="l00796"></a>00796         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
-<a name="l00797"></a>00797 }
-<a name="l00798"></a>00798 
-<a name="l00799"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00799</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
-<a name="l00800"></a>00800 {
-<a name="l00801"></a>00801         <span class="keywordtype">char</span> val[MAXBUF];
-<a name="l00802"></a>00802         <span class="keywordtype">char</span> t[MAXBUF];
-<a name="l00803"></a>00803         <span class="keywordtype">char</span> n[MAXBUF];
-<a name="l00804"></a>00804         strlcpy(t,tag.c_str(),MAXBUF);
-<a name="l00805"></a>00805         strlcpy(n,name.c_str(),MAXBUF);
-<a name="l00806"></a>00806         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
-<a name="l00807"></a>00807         <span class="keywordflow">if</span> (!res)
-<a name="l00808"></a>00808         {
-<a name="l00809"></a>00809                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
-<a name="l00810"></a>00810                 <span class="keywordflow">return</span> 0;
-<a name="l00811"></a>00811         }
-<a name="l00812"></a>00812         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
-<a name="l00813"></a>00813         {
-<a name="l00814"></a>00814                 <span class="keywordflow">if</span> (!isdigit(val[i]))
-<a name="l00815"></a>00815                 {
-<a name="l00816"></a>00816                         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
-<a name="l00817"></a>00817                         <span class="keywordflow">return</span> 0;
-<a name="l00818"></a>00818                 }
-<a name="l00819"></a>00819         }
-<a name="l00820"></a>00820         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
-<a name="l00821"></a>00821         {
-<a name="l00822"></a>00822                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
-<a name="l00823"></a>00823                 <span class="keywordflow">return</span> 0;
-<a name="l00824"></a>00824         }
-<a name="l00825"></a>00825         <span class="keywordflow">return</span> atoi(val);
-<a name="l00826"></a>00826 }
-<a name="l00827"></a>00827 
-<a name="l00828"></a><a class="code" href="classConfigReader.html#GetError_28_29">00828</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>()
-<a name="l00829"></a>00829 {
-<a name="l00830"></a>00830         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l00831"></a>00831         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
-<a name="l00832"></a>00832         <span class="keywordflow">return</span> olderr;
-<a name="l00833"></a>00833 }
-<a name="l00834"></a>00834 
-<a name="l00835"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00835</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
-<a name="l00836"></a>00836 {
-<a name="l00837"></a>00837         <span class="keywordflow">if</span> (bail)
-<a name="l00838"></a>00838         {
-<a name="l00839"></a>00839                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
-<a name="l00840"></a>00840                 exit(0);
-<a name="l00841"></a>00841         }
-<a name="l00842"></a>00842         <span class="keywordflow">else</span>
-<a name="l00843"></a>00843         {
-<a name="l00844"></a>00844                 <span class="keywordtype">char</span> dataline[1024];
-<a name="l00845"></a>00845                 <span class="keywordflow">if</span> (user)
-<a name="l00846"></a>00846                 {
-<a name="l00847"></a>00847                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00848"></a>00848                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00849"></a>00849                         {
-<a name="l00850"></a>00850                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00851"></a>00851                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
-<a name="l00852"></a>00852                         }
-<a name="l00853"></a>00853                 }
-<a name="l00854"></a>00854                 <span class="keywordflow">else</span>
-<a name="l00855"></a>00855                 {
-<a name="l00856"></a>00856                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
-<a name="l00857"></a>00857                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
-<a name="l00858"></a>00858                         {
-<a name="l00859"></a>00859                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
-<a name="l00860"></a>00860                                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline);
-<a name="l00861"></a>00861                         }
-<a name="l00862"></a>00862                 }
-<a name="l00863"></a>00863                 <span class="keywordflow">return</span>;
-<a name="l00864"></a>00864         }
-<a name="l00865"></a>00865 }
+<a name="l00755"></a><a class="code" href="classConfigReader.html#ConfigReader_28std_3A_3Astring_20filename_29">00755</a> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader::ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00756"></a>00756 {
+<a name="l00757"></a>00757         Config-&gt;<a class="code" href="classServerConfig.html#ClearStack_28_29">ClearStack</a>();
+<a name="l00758"></a>00758         this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00759"></a>00759         this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a> = <span class="keyword">new</span> std::stringstream(std::stringstream::in | std::stringstream::out);
+<a name="l00760"></a>00760         this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a> = Config-&gt;<a class="code" href="classServerConfig.html#LoadConf_28const_20char_20_2Afilename_2C_20std_3A_3Astringstream_20_2Atarget_2C_20std_3A_3Astringstream_20_2Aerrorstream_29">LoadConf</a>(filename.c_str(),this-&gt;<a class="code" href="classConfigReader.html#cache">cache</a>,this-&gt;<a class="code" href="classConfigReader.html#errorlog">errorlog</a>);
+<a name="l00761"></a>00761         <span class="keywordflow">if</span> (!this-&gt;readerror)
+<a name="l00762"></a>00762                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">CONF_FILE_NOT_FOUND</a>;
+<a name="l00763"></a>00763 };
+<a name="l00764"></a>00764 
+<a name="l00765"></a><a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00765</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
+<a name="l00766"></a>00766 {
+<a name="l00767"></a>00767         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00768"></a>00768         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00769"></a>00769         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00770"></a>00770         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00771"></a>00771         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00772"></a>00772         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00773"></a>00773         <span class="keywordflow">if</span> (!res)
+<a name="l00774"></a>00774         {
+<a name="l00775"></a>00775                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00776"></a>00776                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00777"></a>00777         }
+<a name="l00778"></a>00778         <span class="keywordflow">return</span> val;
+<a name="l00779"></a>00779 }
+<a name="l00780"></a>00780 
+<a name="l00781"></a><a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">00781</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ConfigReader::ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index)
+<a name="l00782"></a>00782 {
+<a name="l00783"></a>00783         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00784"></a>00784         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00785"></a>00785         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00786"></a>00786         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00787"></a>00787         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00788"></a>00788         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00789"></a>00789         <span class="keywordflow">if</span> (!res)
+<a name="l00790"></a>00790         {
+<a name="l00791"></a>00791                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00792"></a>00792                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00793"></a>00793         }
+<a name="l00794"></a>00794         <a class="code" href="namespaceirc.html#string">std::string</a> s = val;
+<a name="l00795"></a>00795         <span class="keywordflow">return</span> ((s == <span class="stringliteral">"yes"</span>) || (s == <span class="stringliteral">"YES"</span>) || (s == <span class="stringliteral">"true"</span>) || (s == <span class="stringliteral">"TRUE"</span>) || (s == <span class="stringliteral">"1"</span>));
+<a name="l00796"></a>00796 }
+<a name="l00797"></a>00797 
+<a name="l00798"></a><a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">00798</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ConfigReader::ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned)
+<a name="l00799"></a>00799 {
+<a name="l00800"></a>00800         <span class="keywordtype">char</span> val[MAXBUF];
+<a name="l00801"></a>00801         <span class="keywordtype">char</span> t[MAXBUF];
+<a name="l00802"></a>00802         <span class="keywordtype">char</span> n[MAXBUF];
+<a name="l00803"></a>00803         strlcpy(t,tag.c_str(),MAXBUF);
+<a name="l00804"></a>00804         strlcpy(n,name.c_str(),MAXBUF);
+<a name="l00805"></a>00805         <span class="keywordtype">int</span> res = Config-&gt;<a class="code" href="classServerConfig.html#ReadConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_2C_20const_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_29">ReadConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,t,n,index,val);
+<a name="l00806"></a>00806         <span class="keywordflow">if</span> (!res)
+<a name="l00807"></a>00807         {
+<a name="l00808"></a>00808                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">CONF_VALUE_NOT_FOUND</a>;
+<a name="l00809"></a>00809                 <span class="keywordflow">return</span> 0;
+<a name="l00810"></a>00810         }
+<a name="l00811"></a>00811         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; strlen(val); i++)
+<a name="l00812"></a>00812         {
+<a name="l00813"></a>00813                 <span class="keywordflow">if</span> (!isdigit(val[i]))
+<a name="l00814"></a>00814                 {
+<a name="l00815"></a>00815                         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>;
+<a name="l00816"></a>00816                         <span class="keywordflow">return</span> 0;
+<a name="l00817"></a>00817                 }
+<a name="l00818"></a>00818         }
+<a name="l00819"></a>00819         <span class="keywordflow">if</span> ((needs_unsigned) &amp;&amp; (atoi(val)&lt;0))
+<a name="l00820"></a>00820         {
+<a name="l00821"></a>00821                 this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = <a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>;
+<a name="l00822"></a>00822                 <span class="keywordflow">return</span> 0;
+<a name="l00823"></a>00823         }
+<a name="l00824"></a>00824         <span class="keywordflow">return</span> atoi(val);
+<a name="l00825"></a>00825 }
+<a name="l00826"></a>00826 
+<a name="l00827"></a><a class="code" href="classConfigReader.html#GetError_28_29">00827</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">ConfigReader::GetError</a>()
+<a name="l00828"></a>00828 {
+<a name="l00829"></a>00829         <span class="keywordtype">long</span> olderr = this-&gt;<a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l00830"></a>00830         this-&gt;<a class="code" href="classConfigReader.html#error">error</a> = 0;
+<a name="l00831"></a>00831         <span class="keywordflow">return</span> olderr;
+<a name="l00832"></a>00832 }
+<a name="l00833"></a>00833 
+<a name="l00834"></a><a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">00834</a> <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">ConfigReader::DumpErrors</a>(<span class="keywordtype">bool</span> bail, <a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00835"></a>00835 {
+<a name="l00836"></a>00836         <span class="keywordflow">if</span> (bail)
+<a name="l00837"></a>00837         {
+<a name="l00838"></a>00838                 printf(<span class="stringliteral">"There were errors in your configuration:\n%s"</span>,<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;str().c_str());
+<a name="l00839"></a>00839                 exit(0);
+<a name="l00840"></a>00840         }
+<a name="l00841"></a>00841         <span class="keywordflow">else</span>
+<a name="l00842"></a>00842         {
+<a name="l00843"></a>00843                 <span class="keywordtype">char</span> dataline[1024];
+<a name="l00844"></a>00844                 <span class="keywordflow">if</span> (user)
+<a name="l00845"></a>00845                 {
+<a name="l00846"></a>00846                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00847"></a>00847                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00848"></a>00848                         {
+<a name="l00849"></a>00849                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00850"></a>00850                                 <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE %s :%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,dataline);
+<a name="l00851"></a>00851                         }
+<a name="l00852"></a>00852                 }
+<a name="l00853"></a>00853                 <span class="keywordflow">else</span>
+<a name="l00854"></a>00854                 {
+<a name="l00855"></a>00855                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"There were errors in the configuration file:"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00856"></a>00856                         <span class="keywordflow">while</span> (!<a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;eof())
+<a name="l00857"></a>00857                         {
+<a name="l00858"></a>00858                                 <a class="code" href="classConfigReader.html#errorlog">errorlog</a>-&gt;getline(dataline,1024);
+<a name="l00859"></a>00859                                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(dataline);
+<a name="l00860"></a>00860                         }
+<a name="l00861"></a>00861                 }
+<a name="l00862"></a>00862                 <span class="keywordflow">return</span>;
+<a name="l00863"></a>00863         }
+<a name="l00864"></a>00864 }
+<a name="l00865"></a>00865 
 <a name="l00866"></a>00866 
-<a name="l00867"></a>00867 
-<a name="l00868"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00868</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag)
-<a name="l00869"></a>00869 {
-<a name="l00870"></a>00870         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
-<a name="l00871"></a>00871 }
-<a name="l00872"></a>00872 
-<a name="l00873"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00873</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index)
-<a name="l00874"></a>00874 {
-<a name="l00875"></a>00875         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
-<a name="l00876"></a>00876 }
-<a name="l00877"></a>00877 
-<a name="l00878"></a><a class="code" href="classConfigReader.html#Verify_28_29">00878</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>()
-<a name="l00879"></a>00879 {
-<a name="l00880"></a>00880         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l00881"></a>00881 }
+<a name="l00867"></a><a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">00867</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">ConfigReader::Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag)
+<a name="l00868"></a>00868 {
+<a name="l00869"></a>00869         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumConf_28std_3A_3Astringstream_20_2Aconfig_5Ff_2C_20const_20char_20_2Atag_29">EnumConf</a>(<a class="code" href="classConfigReader.html#cache">cache</a>,tag.c_str());
+<a name="l00870"></a>00870 }
+<a name="l00871"></a>00871 
+<a name="l00872"></a><a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">00872</a> <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">ConfigReader::EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index)
+<a name="l00873"></a>00873 {
+<a name="l00874"></a>00874         <span class="keywordflow">return</span> Config-&gt;<a class="code" href="classServerConfig.html#EnumValues_28std_3A_3Astringstream_20_2Aconfig_2C_20const_20char_20_2Atag_2C_20int_20index_29">EnumValues</a>(<a class="code" href="classConfigReader.html#cache">cache</a>, tag.c_str(), index);
+<a name="l00875"></a>00875 }
+<a name="l00876"></a>00876 
+<a name="l00877"></a><a class="code" href="classConfigReader.html#Verify_28_29">00877</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">ConfigReader::Verify</a>()
+<a name="l00878"></a>00878 {
+<a name="l00879"></a>00879         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l00880"></a>00880 }
+<a name="l00881"></a>00881 
 <a name="l00882"></a>00882 
-<a name="l00883"></a>00883 
-<a name="l00884"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00884</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00885"></a>00885 {
-<a name="l00886"></a>00886         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00887"></a>00887         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
-<a name="l00888"></a>00888         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00889"></a>00889 }
-<a name="l00890"></a>00890 
-<a name="l00891"></a><a class="code" href="classFileReader.html#FileReader_28_29">00891</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>()
-<a name="l00892"></a>00892 {
-<a name="l00893"></a>00893 }
-<a name="l00894"></a>00894 
-<a name="l00895"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00895</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
-<a name="l00896"></a>00896 {
-<a name="l00897"></a>00897         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
-<a name="l00898"></a>00898         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
-<a name="l00899"></a>00899         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
-<a name="l00900"></a>00900 }
+<a name="l00883"></a><a class="code" href="classFileReader.html#FileReader_28std_3A_3Astring_20filename_29">00883</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00884"></a>00884 {
+<a name="l00885"></a>00885         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00886"></a>00886         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
+<a name="l00887"></a>00887         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00888"></a>00888 }
+<a name="l00889"></a>00889 
+<a name="l00890"></a><a class="code" href="classFileReader.html#FileReader_28_29">00890</a> <a class="code" href="classFileReader.html#FileReader_28_29">FileReader::FileReader</a>()
+<a name="l00891"></a>00891 {
+<a name="l00892"></a>00892 }
+<a name="l00893"></a>00893 
+<a name="l00894"></a><a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">00894</a> <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">FileReader::LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename)
+<a name="l00895"></a>00895 {
+<a name="l00896"></a>00896         <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> c;
+<a name="l00897"></a>00897         <a class="code" href="globals_8h.html#readfile_28file_5Fcache_20_26F_2C_20const_20char_20_2Afname_29">readfile</a>(c,filename.c_str());
+<a name="l00898"></a>00898         this-&gt;<a class="code" href="classFileReader.html#fc">fc</a> = c;
+<a name="l00899"></a>00899 }
+<a name="l00900"></a>00900 
 <a name="l00901"></a>00901 
-<a name="l00902"></a>00902 
-<a name="l00903"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00903</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>()
-<a name="l00904"></a>00904 {
-<a name="l00905"></a>00905 }
-<a name="l00906"></a>00906 
-<a name="l00907"></a><a class="code" href="classFileReader.html#Exists_28_29">00907</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>()
-<a name="l00908"></a>00908 {
-<a name="l00909"></a>00909         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
-<a name="l00910"></a>00910         {
-<a name="l00911"></a>00911                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
-<a name="l00912"></a>00912         }
-<a name="l00913"></a>00913         <span class="keywordflow">else</span>
-<a name="l00914"></a>00914         {
-<a name="l00915"></a>00915                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
-<a name="l00916"></a>00916         }
-<a name="l00917"></a>00917 }
-<a name="l00918"></a>00918 
-<a name="l00919"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00919</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
-<a name="l00920"></a>00920 {
-<a name="l00921"></a>00921         <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
-<a name="l00922"></a>00922                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00923"></a>00923         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
-<a name="l00924"></a>00924 }
-<a name="l00925"></a>00925 
-<a name="l00926"></a><a class="code" href="classFileReader.html#FileSize_28_29">00926</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>()
-<a name="l00927"></a>00927 {
-<a name="l00928"></a>00928         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
-<a name="l00929"></a>00929 }
+<a name="l00902"></a><a class="code" href="classFileReader.html#_7EFileReader_28_29">00902</a> <a class="code" href="classFileReader.html#_7EFileReader_28_29">FileReader::~FileReader</a>()
+<a name="l00903"></a>00903 {
+<a name="l00904"></a>00904 }
+<a name="l00905"></a>00905 
+<a name="l00906"></a><a class="code" href="classFileReader.html#Exists_28_29">00906</a> <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">FileReader::Exists</a>()
+<a name="l00907"></a>00907 {
+<a name="l00908"></a>00908         <span class="keywordflow">if</span> (<a class="code" href="classFileReader.html#fc">fc</a>.size() == 0)
+<a name="l00909"></a>00909         {
+<a name="l00910"></a>00910                 <span class="keywordflow">return</span>(<span class="keyword">false</span>);
+<a name="l00911"></a>00911         }
+<a name="l00912"></a>00912         <span class="keywordflow">else</span>
+<a name="l00913"></a>00913         {
+<a name="l00914"></a>00914                 <span class="keywordflow">return</span>(<span class="keyword">true</span>);
+<a name="l00915"></a>00915         }
+<a name="l00916"></a>00916 }
+<a name="l00917"></a>00917 
+<a name="l00918"></a><a class="code" href="classFileReader.html#GetLine_28int_20x_29">00918</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">FileReader::GetLine</a>(<span class="keywordtype">int</span> x)
+<a name="l00919"></a>00919 {
+<a name="l00920"></a>00920         <span class="keywordflow">if</span> ((x&lt;0) || ((<span class="keywordtype">unsigned</span>)x&gt;<a class="code" href="classFileReader.html#fc">fc</a>.size()))
+<a name="l00921"></a>00921                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00922"></a>00922         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>[x];
+<a name="l00923"></a>00923 }
+<a name="l00924"></a>00924 
+<a name="l00925"></a><a class="code" href="classFileReader.html#FileSize_28_29">00925</a> <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileReader::FileSize</a>()
+<a name="l00926"></a>00926 {
+<a name="l00927"></a>00927         <span class="keywordflow">return</span> <a class="code" href="classFileReader.html#fc">fc</a>.size();
+<a name="l00928"></a>00928 }
+<a name="l00929"></a>00929 
 <a name="l00930"></a>00930 
-<a name="l00931"></a>00931 
-<a name="l00932"></a>00932 std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>(255);
-<a name="l00933"></a>00933 std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>(255);
-<a name="l00934"></a>00934 
-<a name="l00935"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00935</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>  = -1;
+<a name="l00931"></a>00931 std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>(255);
+<a name="l00932"></a>00932 std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>(255);
+<a name="l00933"></a>00933 
+<a name="l00934"></a><a class="code" href="modules_8cpp.html#MODCOUNT">00934</a> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>  = -1;
+<a name="l00935"></a>00935 
 <a name="l00936"></a>00936 
-<a name="l00937"></a>00937 
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 33b82925268dfae9aade088e26510ec6095c3c73..c1e98e7775e610b2d367662a9f378fadb353fb19 100644 (file)
@@ -10,7 +10,6 @@
 <h1>modules.cpp File Reference</h1><code>#include &quot;inspircd_config.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&quot;</code><br>
-<code>#include &quot;inspircd_util.h&quot;</code><br>
 <code>#include &lt;unistd.h&gt;</code><br>
 <code>#include &lt;sys/errno.h&gt;</code><br>
 <code>#include &lt;time.h&gt;</code><br>
 <code>#include &quot;<a class="el" href="socket_8h-source.html">socket.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="socketengine_8h-source.html">socketengine.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="typedefs_8h-source.html">typedefs.h</a>&quot;</code><br>
+<code>#include &quot;command_parse.h&quot;</code><br>
 
 <p>
 Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl.gif" border="0" usemap="#modules.cpp_map" alt=""></center>
 <map name="modules.cpp_map">
-<area href="inspircd_8h-source.html" shape="rect" coords="610,799,690,826" alt="">
-<area href="inspircd__io_8h-source.html" shape="rect" coords="742,716,838,743" alt="">
-<area href="globals_8h-source.html" shape="rect" coords="902,970,976,996" alt="">
-<area href="users_8h-source.html" shape="rect" coords="1039,716,1103,743" alt="">
-<area href="socket_8h-source.html" shape="rect" coords="754,970,826,996" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="468,1426,543,1452" alt="">
-<area href="modules_8h-source.html" shape="rect" coords="312,1223,395,1250" alt="">
-<area href="message_8h-source.html" shape="rect" coords="896,716,982,743" alt="">
-<area href="mode_8h-source.html" shape="rect" coords="906,412,972,439" alt="">
-<area href="xline_8h-source.html" shape="rect" coords="908,362,970,388" alt="">
-<area href="commands_8h-source.html" shape="rect" coords="890,311,988,338" alt="">
-<area href="hashcomp_8h-source.html" shape="rect" coords="307,1679,400,1706" alt="">
-<area href="socketengine_8h-source.html" shape="rect" coords="450,970,562,996" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="163,1274,248,1300" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="305,716,385,743" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="452,666,548,692" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="627,666,701,692" alt="">
+<area href="users_8h-source.html" shape="rect" coords="772,818,836,844" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="896,1426,989,1452" alt="">
+<area href="modules_8h-source.html" shape="rect" coords="623,1375,705,1402" alt="">
+<area href="ctables_8h-source.html" shape="rect" coords="767,1578,841,1604" alt="">
+<area href="socket_8h-source.html" shape="rect" coords="768,1223,840,1250" alt="">
+<area href="mode_8h-source.html" shape="rect" coords="631,1020,697,1047" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="444,412,556,439" alt="">
+<area href="message_8h-source.html" shape="rect" coords="621,615,707,642" alt="">
+<area href="xline_8h-source.html" shape="rect" coords="633,362,695,388" alt="">
+<area href="commands_8h-source.html" shape="rect" coords="615,919,713,946" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="163,1375,248,1402" alt="">
 </map>
 
 <p>
@@ -79,8 +79,6 @@ Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl
 <tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#factory_28_32_35_35_29">factory</a> (255)</td></tr>
 
 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#SE">SE</a></td></tr>
-
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classServerConfig.html">ServerConfig</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#Config">Config</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#ServerInstance">ServerInstance</a></td></tr>
@@ -101,7 +99,7 @@ Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="typedefs_8h.html#chan_5Fhash">chan_hash</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#chanlist">chanlist</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="typedefs_8h.html#command_5Ftable">command_table</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#cmdlist">cmdlist</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ctables_8h.html#command_5Ftable">command_table</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#cmdlist">cmdlist</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="typedefs_8h.html#ExtModeList">ExtModeList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8cpp.html#EMode">EMode</a></td></tr>
 
@@ -161,17 +159,17 @@ Include dependency graph for modules.cpp:<p><center><img src="modules_8cpp__incl
 <p>
 
 <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>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00133">133</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00071">ModeDefined()</a>.
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>, and <a class="el" href="modules_8cpp-source.html#l00070">ModeDefined()</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00556">Server::AddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00135"></a>00135 {
-<a name="l00136"></a>00136         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) {
-<a name="l00137"></a>00137                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00138"></a>00138         }
-<a name="l00139"></a>00139         <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
-<a name="l00140"></a>00140         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00141"></a>00141 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00583">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00555">Server::AddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00134"></a>00134 {
+<a name="l00135"></a>00135         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(modechar,type)) {
+<a name="l00136"></a>00136                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00137"></a>00137         }
+<a name="l00138"></a>00138         <a class="code" href="modules_8cpp.html#EMode">EMode</a>.push_back(<a class="code" href="classExtMode.html">ExtMode</a>(modechar,type,requires_oper,params_on,params_off));
+<a name="l00139"></a>00139         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00140"></a>00140 }
 </pre></div>
 <p>
     </td>
@@ -241,20 +239,20 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00071">71</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+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>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00072"></a>00072 {
-<a name="l00073"></a>00073         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00074"></a>00074         {
-<a name="l00075"></a>00075                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00076"></a>00076                 {
-<a name="l00077"></a>00077                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00078"></a>00078                 }
-<a name="l00079"></a>00079         }
-<a name="l00080"></a>00080         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00081"></a>00081 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00133">DoAddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00071"></a>00071 {
+<a name="l00072"></a>00072         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00073"></a>00073         {
+<a name="l00074"></a>00074                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00075"></a>00075                 {
+<a name="l00076"></a>00076                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00077"></a>00077                 }
+<a name="l00078"></a>00078         }
+<a name="l00079"></a>00079         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00080"></a>00080 }
 </pre></div>
 <p>
     </td>
@@ -296,18 +294,18 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtended
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00121">121</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00120">120</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00122"></a>00122 {
-<a name="l00123"></a>00123         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00124"></a>00124         {
-<a name="l00125"></a>00125                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00126"></a>00126                 {
-<a name="l00127"></a>00127                         <span class="keywordflow">return</span> i-&gt;params_when_off;
-<a name="l00128"></a>00128                 }
-<a name="l00129"></a>00129         }
-<a name="l00130"></a>00130         <span class="keywordflow">return</span> 0;
-<a name="l00131"></a>00131 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00121"></a>00121 {
+<a name="l00122"></a>00122         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00123"></a>00123         {
+<a name="l00124"></a>00124                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00125"></a>00125                 {
+<a name="l00126"></a>00126                         <span class="keywordflow">return</span> i-&gt;params_when_off;
+<a name="l00127"></a>00127                 }
+<a name="l00128"></a>00128         }
+<a name="l00129"></a>00129         <span class="keywordflow">return</span> 0;
+<a name="l00130"></a>00130 }
 </pre></div>
 <p>
     </td>
@@ -349,18 +347,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00108">108</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+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>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00109"></a>00109 {
-<a name="l00110"></a>00110         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00111"></a>00111         {
-<a name="l00112"></a>00112                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00113"></a>00113                 {
-<a name="l00114"></a>00114                         <span class="keywordflow">return</span> i-&gt;params_when_on;
-<a name="l00115"></a>00115                 }
-<a name="l00116"></a>00116         }
-<a name="l00117"></a>00117         <span class="keywordflow">return</span> 0;
-<a name="l00118"></a>00118 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00108"></a>00108 {
+<a name="l00109"></a>00109         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00110"></a>00110         {
+<a name="l00111"></a>00111                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00112"></a>00112                 {
+<a name="l00113"></a>00113                         <span class="keywordflow">return</span> i-&gt;params_when_on;
+<a name="l00114"></a>00114                 }
+<a name="l00115"></a>00115         }
+<a name="l00116"></a>00116         <span class="keywordflow">return</span> 0;
+<a name="l00117"></a>00117 }
 </pre></div>
 <p>
     </td>
@@ -402,18 +400,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00095">95</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00094">94</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00096"></a>00096 {
-<a name="l00097"></a>00097         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00098"></a>00098         {
-<a name="l00099"></a>00099                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
-<a name="l00100"></a>00100                 {
-<a name="l00101"></a>00101                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00102"></a>00102                 }
-<a name="l00103"></a>00103         }
-<a name="l00104"></a>00104         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00105"></a>00105 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00095"></a>00095 {
+<a name="l00096"></a>00096         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00097"></a>00097         {
+<a name="l00098"></a>00098                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
+<a name="l00099"></a>00099                 {
+<a name="l00100"></a>00100                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00101"></a>00101                 }
+<a name="l00102"></a>00102         }
+<a name="l00103"></a>00103         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00104"></a>00104 }
 </pre></div>
 <p>
     </td>
@@ -455,18 +453,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00083">83</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00082">82</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00084"></a>00084 {
-<a name="l00085"></a>00085         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00086"></a>00086         {
-<a name="l00087"></a>00087                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
-<a name="l00088"></a>00088                 {
-<a name="l00089"></a>00089                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00090"></a>00090                 }
-<a name="l00091"></a>00091         }
-<a name="l00092"></a>00092         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00093"></a>00093 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00083"></a>00083 {
+<a name="l00084"></a>00084         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00085"></a>00085         {
+<a name="l00086"></a>00086                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
+<a name="l00087"></a>00087                 {
+<a name="l00088"></a>00088                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00089"></a>00089                 }
+<a name="l00090"></a>00090         }
+<a name="l00091"></a>00091         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00092"></a>00092 }
 </pre></div>
 <p>
     </td>
@@ -499,21 +497,21 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00144">144</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00143">143</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
-<a name="l00146"></a>00146         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00147"></a>00147         {
-<a name="l00148"></a>00148                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
-<a name="l00149"></a>00149                 {
-<a name="l00150"></a>00150                         i-&gt;list = <span class="keyword">true</span>;
-<a name="l00151"></a>00151                         <span class="keywordflow">return</span>;
-<a name="l00152"></a>00152                 }
-<a name="l00153"></a>00153         }
-<a name="l00154"></a>00154         <span class="keywordflow">return</span>;
-<a name="l00155"></a>00155 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00583">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00144"></a>00144 {
+<a name="l00145"></a>00145         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00146"></a>00146         {
+<a name="l00147"></a>00147                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
+<a name="l00148"></a>00148                 {
+<a name="l00149"></a>00149                         i-&gt;list = <span class="keyword">true</span>;
+<a name="l00150"></a>00150                         <span class="keywordflow">return</span>;
+<a name="l00151"></a>00151                 }
+<a name="l00152"></a>00152         }
+<a name="l00153"></a>00153         <span class="keywordflow">return</span>;
+<a name="l00154"></a>00154 }
 </pre></div>
 <p>
     </td>
@@ -577,7 +575,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="el" href="users_8cpp.html#clientlist">clientlist</a>          </td>
         </tr>
       </table>
     </td>
@@ -591,7 +589,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, and <a class="el" href="users_8cpp-source.html#l00743">ReHashNick()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="cmdlist"></a><!-- doxytag: member="modules.cpp::cmdlist" ref="cmdlist" args="" --><p>
@@ -600,7 +600,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="typedefs_8h.html#command_5Ftable">command_table</a> <a class="el" href="modules_8cpp.html#cmdlist">cmdlist</a>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="ctables_8h.html#command_5Ftable">command_table</a> <a class="el" href="modules_8cpp.html#cmdlist">cmdlist</a>          </td>
         </tr>
       </table>
     </td>
@@ -662,9 +662,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00068">68</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00067">67</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00071">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00121">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00108">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00095">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00083">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00144">ModeMakeList()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00133">DoAddExtendedMode()</a>, <a class="el" href="modules_8cpp-source.html#l00070">ModeDefined()</a>, <a class="el" href="modules_8cpp-source.html#l00120">ModeDefinedOff()</a>, <a class="el" href="modules_8cpp-source.html#l00107">ModeDefinedOn()</a>, <a class="el" href="modules_8cpp-source.html#l00094">ModeDefinedOper()</a>, <a class="el" href="modules_8cpp-source.html#l00082">ModeIsListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00143">ModeMakeList()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="factory"></a><!-- doxytag: member="modules.cpp::factory" ref="factory" args="" --><p>
@@ -696,7 +696,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtended
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* <a class="el" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536]          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* <a class="el" href="users_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536]          </td>
         </tr>
       </table>
     </td>
@@ -719,7 +719,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtended
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="modules_8cpp.html#MODCOUNT">MODCOUNT</a> = -1          </td>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a> = -1          </td>
         </tr>
       </table>
     </td>
@@ -735,7 +735,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtended
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00935">935</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.    </td>
+Definition at line <a class="el" href="modules_8cpp-source.html#l00934">934</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="module_5Fsockets"></a><!-- doxytag: member="modules.cpp::module_sockets" ref="module_5Fsockets" args="" --><p>
@@ -744,7 +744,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00935">935</a>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classInspSocket.html">InspSocket</a>*&gt; <a class="el" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>          </td>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classInspSocket.html">InspSocket</a>*&gt; <a class="el" href="users_8cpp.html#module_5Fsockets">module_sockets</a>          </td>
         </tr>
       </table>
     </td>
@@ -760,7 +760,7 @@ Definition at line <a class="el" href="modules_8cpp-source.html#l00935">935</a>
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00313">Server::AddSocket()</a>, and <a class="el" href="modules_8cpp-source.html#l00334">Server::DelSocket()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00312">Server::AddSocket()</a>, and <a class="el" href="modules_8cpp-source.html#l00333">Server::DelSocket()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="modules"></a><!-- doxytag: member="modules.cpp::modules" ref="modules" args="" --><p>
@@ -782,29 +782,6 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00313">Server::AddSo
     </td>
     <td>
 
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="SE"></a><!-- doxytag: member="modules.cpp::SE" ref="SE" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a>* <a class="el" href="socket_8cpp.html#SE">SE</a>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
 <p>
     </td>
   </tr>
@@ -815,7 +792,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00313">Server::AddSo
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a>* <a class="el" href="modules_8cpp.html#ServerInstance">ServerInstance</a>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a>* <a class="el" href="users_8cpp.html#ServerInstance">ServerInstance</a>          </td>
         </tr>
       </table>
     </td>
@@ -855,7 +832,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00313">Server::AddSo
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 056ed18dfe97d269df8d69f691e577989922468a..957fa469ea65ac89ea0494cca85d69ed7ffbf413 100644 (file)
@@ -1,15 +1,15 @@
 base referer
-rect $inspircd_8h-source.html 610,799 690,826
-rect $inspircd__io_8h-source.html 742,716 838,743
-rect $globals_8h-source.html 902,970 976,996
-rect $users_8h-source.html 1039,716 1103,743
-rect $socket_8h-source.html 754,970 826,996
-rect $ctables_8h-source.html 468,1426 543,1452
-rect $modules_8h-source.html 312,1223 395,1250
-rect $message_8h-source.html 896,716 982,743
-rect $mode_8h-source.html 906,412 972,439
-rect $xline_8h-source.html 908,362 970,388
-rect $commands_8h-source.html 890,311 988,338
-rect $hashcomp_8h-source.html 307,1679 400,1706
-rect $socketengine_8h-source.html 450,970 562,996
-rect $typedefs_8h-source.html 163,1274 248,1300
+rect $inspircd_8h-source.html 305,716 385,743
+rect $inspircd__io_8h-source.html 452,666 548,692
+rect $globals_8h-source.html 627,666 701,692
+rect $users_8h-source.html 772,818 836,844
+rect $hashcomp_8h-source.html 896,1426 989,1452
+rect $modules_8h-source.html 623,1375 705,1402
+rect $ctables_8h-source.html 767,1578 841,1604
+rect $socket_8h-source.html 768,1223 840,1250
+rect $mode_8h-source.html 631,1020 697,1047
+rect $socketengine_8h-source.html 444,412 556,439
+rect $message_8h-source.html 621,615 707,642
+rect $xline_8h-source.html 633,362 695,388
+rect $commands_8h-source.html 615,919 713,946
+rect $typedefs_8h-source.html 163,1375 248,1402
index 10e2c307c872326439d2591169d02ce92a85c756..d0f3882780b9dc953de7a61bbde8d67e622dadce 100644 (file)
@@ -1 +1 @@
-2384cd0922e32b841176cc7e795d3e18
\ No newline at end of file
+4e8aa95ae7fcdb9cbd30aed0c54c5b3b
\ No newline at end of file
index a156711a27d823f66ffb543d380522ae277a4d02..5540284464cd45d73b4c39717611878cc304327e 100644 (file)
 <a name="l00062"></a>00062 <span class="preprocessor">#include &lt;deque&gt;</span>
 <a name="l00063"></a>00063 <span class="preprocessor">#include &lt;sstream&gt;</span>
 <a name="l00064"></a>00064 
-<a name="l00065"></a><a class="code" href="modules_8h.html#file_5Fcache">00065</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
-<a name="l00066"></a>00066 
-<a name="l00069"></a>00069 <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
-<a name="l00070"></a><a class="code" href="modules_8h.html#string_5Flist">00070</a> <span class="keyword">typedef</span> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>;
-<a name="l00071"></a>00071 
-<a name="l00074"></a><a class="code" href="modules_8h.html#chanuserlist">00074</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>;
-<a name="l00075"></a>00075 
+<a name="l00065"></a>00065 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
+<a name="l00066"></a><a class="code" href="modules_8h.html#file_5Fcache">00066</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a>;
+<a name="l00067"></a>00067 
+<a name="l00070"></a>00070 <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
+<a name="l00071"></a><a class="code" href="modules_8h.html#string_5Flist">00071</a> <span class="keyword">typedef</span> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>;
+<a name="l00072"></a>00072 
+<a name="l00075"></a><a class="code" href="modules_8h.html#chanuserlist">00075</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>;
 <a name="l00076"></a>00076 
-<a name="l00077"></a>00077 <span class="comment">// This #define allows us to call a method in all</span>
-<a name="l00078"></a>00078 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
-<a name="l00079"></a>00079 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
-<a name="l00080"></a>00080 
-<a name="l00081"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00081</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span>
-<a name="l00083"></a>00083 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
-<a name="l00084"></a>00084 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
-<a name="l00085"></a>00085 <span class="comment">// and any modules after are ignored.</span>
-<a name="l00086"></a>00086 
-<a name="l00087"></a>00087 <span class="comment">// *********************************************************************************************</span>
-<a name="l00088"></a>00088 
-<a name="l00089"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00089</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
-<a name="l00090"></a>00090 <span class="preprocessor">                        for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
-<a name="l00091"></a>00091 <span class="preprocessor">                        int res = modules[_i]-&gt;x ; \</span>
-<a name="l00092"></a>00092 <span class="preprocessor">                        if (res != 0) { \</span>
-<a name="l00093"></a>00093 <span class="preprocessor">                                MOD_RESULT = res; \</span>
-<a name="l00094"></a>00094 <span class="preprocessor">                                break; \</span>
-<a name="l00095"></a>00095 <span class="preprocessor">                        } \</span>
-<a name="l00096"></a>00096 <span class="preprocessor">                } \</span>
-<a name="l00097"></a>00097 <span class="preprocessor">        </span>
-<a name="l00098"></a>00098 <span class="preprocessor"></span>   
-<a name="l00099"></a>00099 <span class="comment">// *********************************************************************************************</span>
-<a name="l00100"></a>00100 
-<a name="l00101"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00101</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span>
-<a name="l00102"></a>00102 <span class="preprocessor"></span>
-<a name="l00103"></a>00103 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(<span class="keywordtype">char</span>* cmd, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
-<a name="l00104"></a>00104 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="comment">// This #define allows us to call a method in all</span>
+<a name="l00079"></a>00079 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
+<a name="l00080"></a>00080 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+<a name="l00081"></a>00081 
+<a name="l00082"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00082</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
+<a name="l00083"></a>00083 <span class="preprocessor"></span>
+<a name="l00084"></a>00084 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
+<a name="l00085"></a>00085 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
+<a name="l00086"></a>00086 <span class="comment">// and any modules after are ignored.</span>
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 <span class="comment">// *********************************************************************************************</span>
+<a name="l00089"></a>00089 
+<a name="l00090"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00090</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
+<a name="l00091"></a>00091 <span class="preprocessor">                        for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
+<a name="l00092"></a>00092 <span class="preprocessor">                        int res = modules[_i]-&gt;x ; \</span>
+<a name="l00093"></a>00093 <span class="preprocessor">                        if (res != 0) { \</span>
+<a name="l00094"></a>00094 <span class="preprocessor">                                MOD_RESULT = res; \</span>
+<a name="l00095"></a>00095 <span class="preprocessor">                                break; \</span>
+<a name="l00096"></a>00096 <span class="preprocessor">                        } \</span>
+<a name="l00097"></a>00097 <span class="preprocessor">                } \</span>
+<a name="l00098"></a>00098 <span class="preprocessor">        } </span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span>   
+<a name="l00100"></a>00100 <span class="comment">// *********************************************************************************************</span>
+<a name="l00101"></a>00101 
+<a name="l00102"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00102</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
+<a name="l00104"></a>00104 <span class="comment">// useful macros</span>
 <a name="l00105"></a>00105 
-<a name="l00106"></a>00106 <span class="comment">// class Version holds the version information of a Module, returned</span>
-<a name="l00107"></a>00107 <span class="comment">// by Module::GetVersion (thanks RD)</span>
-<a name="l00108"></a>00108 
-<a name="l00113"></a><a class="code" href="classVersion.html">00113</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00114"></a>00114 {
-<a name="l00115"></a>00115  <span class="keyword">public</span>:
-<a name="l00116"></a><a class="code" href="classVersion.html#Revision">00116</a>          <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#Major">Major</a>, <a class="code" href="classVersion.html#Minor">Minor</a>, <a class="code" href="classVersion.html#Revision">Revision</a>, <a class="code" href="classVersion.html#Build">Build</a>, <a class="code" href="classVersion.html#Flags">Flags</a>;
-<a name="l00117"></a>00117          <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags);
-<a name="l00118"></a>00118 };
-<a name="l00119"></a>00119 
-<a name="l00125"></a><a class="code" href="classAdmin.html">00125</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00126"></a>00126 {
-<a name="l00127"></a>00127  <span class="keyword">public</span>:
-<a name="l00128"></a><a class="code" href="classAdmin.html#Nick">00128</a>          <span class="keyword">const</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classAdmin.html#Name">Name</a>, <a class="code" href="classAdmin.html#Email">Email</a>, <a class="code" href="classAdmin.html#Nick">Nick</a>;
-<a name="l00129"></a>00129          <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick);
-<a name="l00130"></a>00130 };
-<a name="l00131"></a>00131 
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
-<a name="l00134"></a>00134 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
-<a name="l00135"></a>00135 
-<a name="l00136"></a>00136 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
-<a name="l00137"></a>00137 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
-<a name="l00138"></a>00138 
-<a name="l00143"></a><a class="code" href="classModuleMessage.html">00143</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00106"></a><a class="code" href="modules_8h.html#IS_5FLOCAL_28x_29">00106</a> <span class="preprocessor">#define IS_LOCAL(x) (x-&gt;fd &gt; -1)</span>
+<a name="l00107"></a><a class="code" href="modules_8h.html#IS_5FREMOTE_28x_29">00107</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_REMOTE(x) (x-&gt;fd &lt; 0)</span>
+<a name="l00108"></a><a class="code" href="modules_8h.html#IS_5FMODULE_5FCREATED_28x_29">00108</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_MODULE_CREATED(x) (x-&gt;fd == FD_MAGIC_NUMBER)</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span>
+<a name="l00110"></a>00110 <span class="comment">// flags for use with WriteMode</span>
+<a name="l00111"></a>00111 
+<a name="l00112"></a><a class="code" href="modules_8h.html#WM_5FAND">00112</a> <span class="preprocessor">#define WM_AND 1</span>
+<a name="l00113"></a><a class="code" href="modules_8h.html#WM_5FOR">00113</a> <span class="preprocessor"></span><span class="preprocessor">#define WM_OR 2</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="comment">// flags for use with OnUserPreMessage and OnUserPreNotice</span>
+<a name="l00116"></a>00116 
+<a name="l00117"></a><a class="code" href="modules_8h.html#TYPE_5FUSER">00117</a> <span class="preprocessor">#define TYPE_USER 1</span>
+<a name="l00118"></a><a class="code" href="modules_8h.html#TYPE_5FCHANNEL">00118</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_CHANNEL 2</span>
+<a name="l00119"></a><a class="code" href="modules_8h.html#TYPE_5FSERVER">00119</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_SERVER 3</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span>
+<a name="l00121"></a>00121 <span class="comment">/*extern void createcommand(char* cmd, handlerfunc f, char flags, int minparams, char* source);</span>
+<a name="l00122"></a>00122 <span class="comment">extern void server_mode(char **parameters, int pcnt, userrec *user);*/</span>
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124 <span class="comment">// class Version holds the version information of a Module, returned</span>
+<a name="l00125"></a>00125 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+<a name="l00126"></a>00126 
+<a name="l00131"></a><a class="code" href="classVersion.html">00131</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00132"></a>00132 {
+<a name="l00133"></a>00133  <span class="keyword">public</span>:
+<a name="l00134"></a><a class="code" href="classVersion.html#Revision">00134</a>          <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#Major">Major</a>, <a class="code" href="classVersion.html#Minor">Minor</a>, <a class="code" href="classVersion.html#Revision">Revision</a>, <a class="code" href="classVersion.html#Build">Build</a>, <a class="code" href="classVersion.html#Flags">Flags</a>;
+<a name="l00135"></a>00135          <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">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, <span class="keywordtype">int</span> flags);
+<a name="l00136"></a>00136 };
+<a name="l00137"></a>00137 
+<a name="l00143"></a><a class="code" href="classAdmin.html">00143</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
 <a name="l00144"></a>00144 {
 <a name="l00145"></a>00145  <span class="keyword">public</span>:
-<a name="l00148"></a>00148         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#Send_28_29_3D_30">Send</a>() = 0;
-<a name="l00149"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00149</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {};
-<a name="l00150"></a>00150 };
-<a name="l00151"></a>00151 
-<a name="l00157"></a><a class="code" href="classRequest.html">00157</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
-<a name="l00158"></a>00158 {
-<a name="l00159"></a>00159  <span class="keyword">protected</span>:
-<a name="l00162"></a><a class="code" href="classRequest.html#data">00162</a>         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>;
-<a name="l00166"></a><a class="code" href="classRequest.html#source">00166</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>;
-<a name="l00169"></a><a class="code" href="classRequest.html#dest">00169</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>;
-<a name="l00170"></a>00170  <span class="keyword">public</span>:
-<a name="l00173"></a>00173         <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst);
-<a name="l00176"></a>00176         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>();
-<a name="l00179"></a>00179         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>();
-<a name="l00182"></a>00182         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>();
-<a name="l00188"></a>00188         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>();
-<a name="l00189"></a>00189 };
-<a name="l00190"></a>00190 
-<a name="l00191"></a>00191 
-<a name="l00197"></a><a class="code" href="classEvent.html">00197</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
-<a name="l00198"></a>00198 {
-<a name="l00199"></a>00199  <span class="keyword">protected</span>:
-<a name="l00202"></a><a class="code" href="classEvent.html#data">00202</a>         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>;
-<a name="l00206"></a><a class="code" href="classEvent.html#source">00206</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>;
-<a name="l00211"></a><a class="code" href="classEvent.html#id">00211</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>;
-<a name="l00212"></a>00212  <span class="keyword">public</span>:
-<a name="l00215"></a>00215         <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid);
-<a name="l00218"></a>00218         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>();
-<a name="l00221"></a>00221         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>();
-<a name="l00225"></a>00225         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>();
-<a name="l00230"></a>00230         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>();
-<a name="l00231"></a>00231 };
-<a name="l00232"></a>00232 
-<a name="l00236"></a><a class="code" href="classExtMode.html">00236</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00237"></a>00237 {
-<a name="l00238"></a>00238  <span class="keyword">public</span>:
-<a name="l00239"></a><a class="code" href="classExtMode.html#modechar">00239</a>         <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#modechar">modechar</a>;
-<a name="l00240"></a><a class="code" href="classExtMode.html#type">00240</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#type">type</a>;
-<a name="l00241"></a><a class="code" href="classExtMode.html#needsoper">00241</a>         <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#needsoper">needsoper</a>;
-<a name="l00242"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Fon">00242</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>;
-<a name="l00243"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Foff">00243</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>;
-<a name="l00244"></a><a class="code" href="classExtMode.html#list">00244</a>         <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#list">list</a>;
-<a name="l00245"></a><a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">00245</a>         <a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
-<a name="l00246"></a>00246 };
-<a name="l00247"></a>00247 
-<a name="l00248"></a>00248 
-<a name="l00254"></a><a class="code" href="classModule.html">00254</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00146"></a><a class="code" href="classAdmin.html#Nick">00146</a>          <span class="keyword">const</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classAdmin.html#Name">Name</a>, <a class="code" href="classAdmin.html#Email">Email</a>, <a class="code" href="classAdmin.html#Nick">Nick</a>;
+<a name="l00147"></a>00147          <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick);
+<a name="l00148"></a>00148 };
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150 
+<a name="l00151"></a>00151 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
+<a name="l00152"></a>00152 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
+<a name="l00153"></a>00153 
+<a name="l00154"></a>00154 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
+<a name="l00155"></a>00155 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
+<a name="l00156"></a>00156 
+<a name="l00161"></a><a class="code" href="classModuleMessage.html">00161</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00162"></a>00162 {
+<a name="l00163"></a>00163  <span class="keyword">public</span>:
+<a name="l00166"></a>00166         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#Send_28_29_3D_30">Send</a>() = 0;
+<a name="l00167"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00167</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {};
+<a name="l00168"></a>00168 };
+<a name="l00169"></a>00169 
+<a name="l00175"></a><a class="code" href="classRequest.html">00175</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
+<a name="l00176"></a>00176 {
+<a name="l00177"></a>00177  <span class="keyword">protected</span>:
+<a name="l00180"></a><a class="code" href="classRequest.html#data">00180</a>         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>;
+<a name="l00184"></a><a class="code" href="classRequest.html#source">00184</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>;
+<a name="l00187"></a><a class="code" href="classRequest.html#dest">00187</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>;
+<a name="l00188"></a>00188  <span class="keyword">public</span>:
+<a name="l00191"></a>00191         <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst);
+<a name="l00194"></a>00194         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>();
+<a name="l00197"></a>00197         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>();
+<a name="l00200"></a>00200         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>();
+<a name="l00206"></a>00206         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>();
+<a name="l00207"></a>00207 };
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209 
+<a name="l00215"></a><a class="code" href="classEvent.html">00215</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
+<a name="l00216"></a>00216 {
+<a name="l00217"></a>00217  <span class="keyword">protected</span>:
+<a name="l00220"></a><a class="code" href="classEvent.html#data">00220</a>         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>;
+<a name="l00224"></a><a class="code" href="classEvent.html#source">00224</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>;
+<a name="l00229"></a><a class="code" href="classEvent.html#id">00229</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>;
+<a name="l00230"></a>00230  <span class="keyword">public</span>:
+<a name="l00233"></a>00233         <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid);
+<a name="l00236"></a>00236         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>();
+<a name="l00239"></a>00239         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>();
+<a name="l00243"></a>00243         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>();
+<a name="l00248"></a>00248         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>();
+<a name="l00249"></a>00249 };
+<a name="l00250"></a>00250 
+<a name="l00254"></a><a class="code" href="classExtMode.html">00254</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
 <a name="l00255"></a>00255 {
 <a name="l00256"></a>00256  <span class="keyword">public</span>:
-<a name="l00257"></a>00257 
-<a name="l00262"></a>00262         <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module</a>(<a class="code" href="classServer.html">Server</a>* Me);
-<a name="l00263"></a>00263 
-<a name="l00267"></a>00267         <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>();
-<a name="l00268"></a>00268 
-<a name="l00273"></a>00273         <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">GetVersion</a>();
-<a name="l00274"></a>00274 
-<a name="l00279"></a>00279         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00280"></a>00280 
-<a name="l00288"></a>00288         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l00289"></a>00289 
-<a name="l00296"></a>00296         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00297"></a>00297 
-<a name="l00304"></a>00304         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
-<a name="l00305"></a>00305 
-<a name="l00312"></a>00312         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
-<a name="l00313"></a>00313 
-<a name="l00321"></a>00321         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter);
-<a name="l00322"></a>00322 
-<a name="l00334"></a>00334         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00335"></a>00335 
-<a name="l00351"></a>00351         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &amp;params);
-<a name="l00352"></a>00352         
-<a name="l00369"></a>00369         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
+<a name="l00257"></a><a class="code" href="classExtMode.html#modechar">00257</a>         <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#modechar">modechar</a>;
+<a name="l00258"></a><a class="code" href="classExtMode.html#type">00258</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#type">type</a>;
+<a name="l00259"></a><a class="code" href="classExtMode.html#needsoper">00259</a>         <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#needsoper">needsoper</a>;
+<a name="l00260"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Fon">00260</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>;
+<a name="l00261"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Foff">00261</a>         <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>;
+<a name="l00262"></a><a class="code" href="classExtMode.html#list">00262</a>         <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#list">list</a>;
+<a name="l00263"></a><a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">00263</a>         <a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
+<a name="l00264"></a>00264 };
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 
+<a name="l00272"></a><a class="code" href="classModule.html">00272</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00273"></a>00273 {
+<a name="l00274"></a>00274  <span class="keyword">public</span>:
+<a name="l00275"></a>00275 
+<a name="l00280"></a>00280         <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module</a>(<a class="code" href="classServer.html">Server</a>* Me);
+<a name="l00281"></a>00281 
+<a name="l00285"></a>00285         <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>();
+<a name="l00286"></a>00286 
+<a name="l00291"></a>00291         <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">GetVersion</a>();
+<a name="l00292"></a>00292 
+<a name="l00297"></a>00297         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00298"></a>00298 
+<a name="l00306"></a>00306         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message);
+<a name="l00307"></a>00307 
+<a name="l00314"></a>00314         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00315"></a>00315 
+<a name="l00322"></a>00322         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+<a name="l00323"></a>00323 
+<a name="l00330"></a>00330         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
+<a name="l00331"></a>00331 
+<a name="l00339"></a>00339         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter);
+<a name="l00340"></a>00340 
+<a name="l00352"></a>00352         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00353"></a>00353 
+<a name="l00369"></a>00369         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &amp;params);
 <a name="l00370"></a>00370         
-<a name="l00381"></a>00381         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l00382"></a>00382 
-<a name="l00391"></a>00391         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l00392"></a>00392 
-<a name="l00399"></a>00399         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype);
-<a name="l00400"></a>00400         
-<a name="l00411"></a>00411         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00412"></a>00412         
-<a name="l00419"></a>00419         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
-<a name="l00420"></a>00420         
-<a name="l00430"></a>00430         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
-<a name="l00431"></a>00431         
-<a name="l00439"></a>00439         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
-<a name="l00440"></a>00440         
-<a name="l00454"></a>00454         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
-<a name="l00455"></a>00455 
-<a name="l00472"></a>00472         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
-<a name="l00473"></a>00473         
-<a name="l00484"></a>00484         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick);
-<a name="l00485"></a>00485 
-<a name="l00494"></a>00494         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l00495"></a>00495 
-<a name="l00504"></a>00504         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l00505"></a>00505 
-<a name="l00515"></a>00515         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l00516"></a>00516 
-<a name="l00525"></a>00525         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description);
-<a name="l00526"></a>00526 
-<a name="l00539"></a>00539         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
-<a name="l00540"></a>00540 
-<a name="l00556"></a>00556         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
-<a name="l00557"></a>00557 
-<a name="l00558"></a>00558         <span class="comment">/* Allows modules to syncronize metadata related to channels over the network during a netburst.</span>
-<a name="l00559"></a>00559 <span class="comment">         * Whenever the linking module wants to send out data, but doesnt know what the data</span>
-<a name="l00560"></a>00560 <span class="comment">         * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
-<a name="l00561"></a>00561 <span class="comment">         * this method is called.You should use the ProtoSendMetaData function after you've</span>
-<a name="l00562"></a>00562 <span class="comment">         * correctly decided how the data should be represented, to send the metadata on its way if it belongs</span>
-<a name="l00563"></a>00563 <span class="comment">         * to your module. For a good example of how to use this method, see src/modules/m_swhois.cpp.</span>
-<a name="l00564"></a>00564 <span class="comment">         * @param chan The channel whos metadata is being syncronized</span>
-<a name="l00565"></a>00565 <span class="comment">         * @param proto A pointer to the module handling network protocol</span>
-<a name="l00566"></a>00566 <span class="comment">         * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
-<a name="l00567"></a>00567 <span class="comment">         * @param extname The extensions name which is being searched for</span>
-<a name="l00568"></a>00568 <span class="comment">         */</span>
-<a name="l00569"></a>00569         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
-<a name="l00570"></a>00570 
-<a name="l00571"></a>00571         <span class="comment">/* Allows modules to syncronize metadata related to users over the network during a netburst.</span>
-<a name="l00572"></a>00572 <span class="comment">         * Whenever the linking module wants to send out data, but doesnt know what the data</span>
-<a name="l00573"></a>00573 <span class="comment">         * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
-<a name="l00574"></a>00574 <span class="comment">         * this method is called. You should use the ProtoSendMetaData function after you've</span>
-<a name="l00575"></a>00575 <span class="comment">         * correctly decided how the data should be represented, to send the metadata on its way if</span>
-<a name="l00576"></a>00576 <span class="comment">         * if it belongs to your module.</span>
-<a name="l00577"></a>00577 <span class="comment">         * @param user The user whos metadata is being syncronized</span>
-<a name="l00578"></a>00578 <span class="comment">         * @param proto A pointer to the module handling network protocol</span>
-<a name="l00579"></a>00579 <span class="comment">         * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
-<a name="l00580"></a>00580 <span class="comment">         * @param extname The extensions name which is being searched for</span>
-<a name="l00581"></a>00581 <span class="comment">         */</span>
-<a name="l00582"></a>00582         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
-<a name="l00583"></a>00583 
-<a name="l00591"></a>00591         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
-<a name="l00592"></a>00592 
-<a name="l00606"></a>00606         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline);
-<a name="l00607"></a>00607 
-<a name="l00622"></a>00622         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
-<a name="l00623"></a>00623         
-<a name="l00628"></a>00628         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l00629"></a>00629 
-<a name="l00635"></a>00635         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
-<a name="l00636"></a>00636 
-<a name="l00642"></a>00642         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
-<a name="l00643"></a>00643 
-<a name="l00651"></a>00651         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00652"></a>00652 
-<a name="l00660"></a>00660         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">OnAddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
+<a name="l00387"></a>00387         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
+<a name="l00388"></a>00388         
+<a name="l00399"></a>00399         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l00400"></a>00400 
+<a name="l00409"></a>00409         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l00410"></a>00410 
+<a name="l00417"></a>00417         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype);
+<a name="l00418"></a>00418         
+<a name="l00429"></a>00429         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00430"></a>00430         
+<a name="l00437"></a>00437         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
+<a name="l00438"></a>00438         
+<a name="l00448"></a>00448         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
+<a name="l00449"></a>00449         
+<a name="l00457"></a>00457         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
+<a name="l00458"></a>00458         
+<a name="l00472"></a>00472         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
+<a name="l00473"></a>00473 
+<a name="l00490"></a>00490         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
+<a name="l00491"></a>00491         
+<a name="l00502"></a>00502         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick);
+<a name="l00503"></a>00503 
+<a name="l00512"></a>00512         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l00513"></a>00513 
+<a name="l00522"></a>00522         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l00523"></a>00523 
+<a name="l00533"></a>00533         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* dest, <span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l00534"></a>00534 
+<a name="l00543"></a>00543         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description);
+<a name="l00544"></a>00544 
+<a name="l00557"></a>00557         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
+<a name="l00558"></a>00558 
+<a name="l00574"></a>00574         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
+<a name="l00575"></a>00575 
+<a name="l00576"></a>00576         <span class="comment">/* Allows modules to syncronize metadata related to channels over the network during a netburst.</span>
+<a name="l00577"></a>00577 <span class="comment">         * Whenever the linking module wants to send out data, but doesnt know what the data</span>
+<a name="l00578"></a>00578 <span class="comment">         * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
+<a name="l00579"></a>00579 <span class="comment">         * this method is called.You should use the ProtoSendMetaData function after you've</span>
+<a name="l00580"></a>00580 <span class="comment">         * correctly decided how the data should be represented, to send the metadata on its way if it belongs</span>
+<a name="l00581"></a>00581 <span class="comment">         * to your module. For a good example of how to use this method, see src/modules/m_swhois.cpp.</span>
+<a name="l00582"></a>00582 <span class="comment">         * @param chan The channel whos metadata is being syncronized</span>
+<a name="l00583"></a>00583 <span class="comment">         * @param proto A pointer to the module handling network protocol</span>
+<a name="l00584"></a>00584 <span class="comment">         * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
+<a name="l00585"></a>00585 <span class="comment">         * @param extname The extensions name which is being searched for</span>
+<a name="l00586"></a>00586 <span class="comment">         */</span>
+<a name="l00587"></a>00587         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
+<a name="l00588"></a>00588 
+<a name="l00589"></a>00589         <span class="comment">/* Allows modules to syncronize metadata related to users over the network during a netburst.</span>
+<a name="l00590"></a>00590 <span class="comment">         * Whenever the linking module wants to send out data, but doesnt know what the data</span>
+<a name="l00591"></a>00591 <span class="comment">         * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
+<a name="l00592"></a>00592 <span class="comment">         * this method is called. You should use the ProtoSendMetaData function after you've</span>
+<a name="l00593"></a>00593 <span class="comment">         * correctly decided how the data should be represented, to send the metadata on its way if</span>
+<a name="l00594"></a>00594 <span class="comment">         * if it belongs to your module.</span>
+<a name="l00595"></a>00595 <span class="comment">         * @param user The user whos metadata is being syncronized</span>
+<a name="l00596"></a>00596 <span class="comment">         * @param proto A pointer to the module handling network protocol</span>
+<a name="l00597"></a>00597 <span class="comment">         * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
+<a name="l00598"></a>00598 <span class="comment">         * @param extname The extensions name which is being searched for</span>
+<a name="l00599"></a>00599 <span class="comment">         */</span>
+<a name="l00600"></a>00600         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
+<a name="l00601"></a>00601 
+<a name="l00609"></a>00609         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
+<a name="l00610"></a>00610 
+<a name="l00624"></a>00624         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline);
+<a name="l00625"></a>00625 
+<a name="l00640"></a>00640         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
+<a name="l00641"></a>00641         
+<a name="l00646"></a>00646         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l00647"></a>00647 
+<a name="l00653"></a>00653         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
+<a name="l00654"></a>00654 
+<a name="l00660"></a>00660         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
 <a name="l00661"></a>00661 
-<a name="l00669"></a>00669         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00669"></a>00669         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
 <a name="l00670"></a>00670 
-<a name="l00678"></a>00678         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">OnAddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
+<a name="l00678"></a>00678         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">OnAddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
 <a name="l00679"></a>00679 
-<a name="l00687"></a>00687         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00687"></a>00687         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
 <a name="l00688"></a>00688 
-<a name="l00694"></a>00694         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00695"></a>00695 
-<a name="l00701"></a>00701         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
-<a name="l00702"></a>00702 
-<a name="l00708"></a>00708         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00709"></a>00709         
-<a name="l00715"></a>00715         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
-<a name="l00716"></a>00716 
-<a name="l00722"></a>00722         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00723"></a>00723 
-<a name="l00733"></a>00733         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item);
+<a name="l00696"></a>00696         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">OnAddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
+<a name="l00697"></a>00697 
+<a name="l00705"></a>00705         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00706"></a>00706 
+<a name="l00712"></a>00712         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00713"></a>00713 
+<a name="l00719"></a>00719         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
+<a name="l00720"></a>00720 
+<a name="l00726"></a>00726         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00727"></a>00727         
+<a name="l00733"></a>00733         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
 <a name="l00734"></a>00734 
-<a name="l00744"></a>00744         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick);
-<a name="l00745"></a>00745 
-<a name="l00771"></a>00771         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
-<a name="l00772"></a>0077
-<a name="l00777"></a>00777         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;output);
-<a name="l00778"></a>00778 
-<a name="l00792"></a>00792         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l00793"></a>00793 
-<a name="l00799"></a>00799         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l00800"></a>00800 
-<a name="l00813"></a>00813         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
-<a name="l00814"></a>00814 
-<a name="l00827"></a>00827         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
-<a name="l00828"></a>0082
-<a name="l00835"></a>00835         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">OnBackgroundTimer</a>(time_t curtime);
-<a name="l00836"></a>00836 
-<a name="l00847"></a>00847         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode);
-<a name="l00848"></a>00848 
-<a name="l00864"></a>00864         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l00865"></a>00865 
-<a name="l00876"></a>00876         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00877"></a>00877 
-<a name="l00886"></a>00886         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00887"></a>00887 
-<a name="l00900"></a>00900         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt);
-<a name="l00901"></a>00901 
-<a name="l00910"></a>00910         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-<a name="l00911"></a>00911 
-<a name="l00921"></a>00921         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven);
-<a name="l00922"></a>00922 
-<a name="l00931"></a>00931         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-<a name="l00932"></a>00932 
-<a name="l00941"></a>00941         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
-<a name="l00942"></a>00942 
-<a name="l00947"></a>00947         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">OnStats</a>(<span class="keywordtype">char</span> symbol);
-<a name="l00948"></a>00948 
-<a name="l00955"></a>00955         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
-<a name="l00956"></a>00956 
-<a name="l00963"></a>00963         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost); 
-<a name="l00964"></a>00964 
-<a name="l00972"></a>00972         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic);
-<a name="l00973"></a>00973 
-<a name="l00980"></a>00980         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic);
-<a name="l00981"></a>00981 
-<a name="l00988"></a>00988         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event);
-<a name="l00989"></a>00989 
-<a name="l00997"></a>00997         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request);
-<a name="l00998"></a>00998 
-<a name="l01008"></a>01008         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input);
-<a name="l01009"></a>01009 
-<a name="l01016"></a>01016         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01017"></a>01017 
-<a name="l01023"></a>01023         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01024"></a>01024 
-<a name="l01032"></a>01032         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
-<a name="l01033"></a>01033 
-<a name="l01041"></a>01041         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
+<a name="l00740"></a>00740         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00741"></a>00741 
+<a name="l00751"></a>00751         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item);
+<a name="l00752"></a>0075
+<a name="l00762"></a>00762         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick);
+<a name="l00763"></a>00763 
+<a name="l00789"></a>00789         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
+<a name="l00790"></a>00790 
+<a name="l00795"></a>00795         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;output);
+<a name="l00796"></a>00796 
+<a name="l00810"></a>00810         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l00811"></a>00811 
+<a name="l00817"></a>00817         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnRemoteKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l00818"></a>0081
+<a name="l00831"></a>00831         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
+<a name="l00832"></a>00832 
+<a name="l00845"></a>00845         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
+<a name="l00846"></a>00846 
+<a name="l00853"></a>00853         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">OnBackgroundTimer</a>(time_t curtime);
+<a name="l00854"></a>00854 
+<a name="l00865"></a>00865         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode);
+<a name="l00866"></a>00866 
+<a name="l00882"></a>00882         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l00883"></a>00883 
+<a name="l00894"></a>00894         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00895"></a>00895 
+<a name="l00904"></a>00904         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00905"></a>00905 
+<a name="l00918"></a>00918         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt);
+<a name="l00919"></a>00919 
+<a name="l00928"></a>00928         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+<a name="l00929"></a>00929 
+<a name="l00939"></a>00939         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven);
+<a name="l00940"></a>00940 
+<a name="l00949"></a>00949         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+<a name="l00950"></a>00950 
+<a name="l00959"></a>00959         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
+<a name="l00960"></a>00960 
+<a name="l00965"></a>00965         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">OnStats</a>(<span class="keywordtype">char</span> symbol);
+<a name="l00966"></a>00966 
+<a name="l00973"></a>00973         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
+<a name="l00974"></a>00974 
+<a name="l00981"></a>00981         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost); 
+<a name="l00982"></a>00982 
+<a name="l00990"></a>00990         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic);
+<a name="l00991"></a>00991 
+<a name="l00998"></a>00998         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnPostLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic);
+<a name="l00999"></a>00999 
+<a name="l01006"></a>01006         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event);
+<a name="l01007"></a>01007 
+<a name="l01015"></a>01015         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request);
+<a name="l01016"></a>01016 
+<a name="l01026"></a>01026         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input);
+<a name="l01027"></a>01027 
+<a name="l01034"></a>01034         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01035"></a>01035 
+<a name="l01041"></a>01041         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
 <a name="l01042"></a>01042 
-<a name="l01052"></a>01052         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport);
-<a name="l01053"></a>01053 
-<a name="l01064"></a>01064         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count);
-<a name="l01065"></a>01065 
-<a name="l01070"></a>01070         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(<span class="keywordtype">int</span> fd);
+<a name="l01050"></a>01050         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
+<a name="l01051"></a>01051 
+<a name="l01059"></a>01059         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
+<a name="l01060"></a>01060 
+<a name="l01070"></a>01070         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport);
 <a name="l01071"></a>01071 
-<a name="l01087"></a>01087         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &amp;readresult);
-<a name="l01088"></a>01088 };
+<a name="l01082"></a>01082         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count);
+<a name="l01083"></a>01083 
+<a name="l01088"></a>01088         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(<span class="keywordtype">int</span> fd);
 <a name="l01089"></a>01089 
-<a name="l01090"></a>01090 
-<a name="l01096"></a><a class="code" href="classServer.html">01096</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l01097"></a>01097 {
-<a name="l01098"></a>01098  <span class="keyword">public</span>:
-<a name="l01102"></a>01102         <a class="code" href="classServer.html#Server_28_29">Server</a>();
-<a name="l01106"></a>01106         <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
-<a name="l01111"></a>01111         <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">GetConfig</a>();
-<a name="l01115"></a>01115         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01118"></a>01118         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">GetVersion</a>();
-<a name="l01123"></a>01123         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01128"></a>01128         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01133"></a>01133         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01137"></a>01137         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01142"></a>01142         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01157"></a>01157         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s);
-<a name="l01164"></a>01164         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender);
-<a name="l01169"></a>01169         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
-<a name="l01177"></a>01177         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender);
-<a name="l01182"></a>01182         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01183"></a>01183 
-<a name="l01187"></a>01187         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
-<a name="l01191"></a>01191         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
-<a name="l01195"></a>01195         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
-<a name="l01199"></a>01199         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket);
-<a name="l01203"></a>01203         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel);
-<a name="l01208"></a>01208         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-<a name="l01212"></a>01212         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
-<a name="l01215"></a>01215         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>();
-<a name="l01218"></a>01218         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>();
-<a name="l01221"></a>01221         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>();
-<a name="l01227"></a>01227         <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>();
-<a name="l01246"></a>01246         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
-<a name="l01247"></a>01247 
-<a name="l01269"></a>01269         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
-<a name="l01270"></a>01270 
-<a name="l01288"></a>01288         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand</a>(<span class="keywordtype">char</span>* cmd, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
-<a name="l01289"></a>01289          
-<a name="l01311"></a>01311         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
-<a name="l01312"></a>01312         
-<a name="l01325"></a>01325         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l01326"></a>01326 
-<a name="l01332"></a>01332         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key);
-<a name="l01333"></a>01333         
-<a name="l01339"></a>01339         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l01340"></a>01340         
-<a name="l01346"></a>01346         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
-<a name="l01347"></a>01347         
-<a name="l01358"></a>01358         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
-<a name="l01359"></a>01359         
-<a name="l01364"></a>01364         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern);
+<a name="l01105"></a>01105         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &amp;readresult);
+<a name="l01106"></a>01106 };
+<a name="l01107"></a>01107 
+<a name="l01108"></a>01108 
+<a name="l01114"></a><a class="code" href="classServer.html">01114</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l01115"></a>01115 {
+<a name="l01116"></a>01116  <span class="keyword">public</span>:
+<a name="l01120"></a>01120         <a class="code" href="classServer.html#Server_28_29">Server</a>();
+<a name="l01124"></a>01124         <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
+<a name="l01129"></a>01129         <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">GetConfig</a>();
+<a name="l01133"></a>01133         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01136"></a>01136         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">GetVersion</a>();
+<a name="l01141"></a>01141         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01146"></a>01146         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01151"></a>01151         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01155"></a>01155         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01160"></a>01160         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01175"></a>01175         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s);
+<a name="l01182"></a>01182         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender);
+<a name="l01187"></a>01187         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
+<a name="l01195"></a>01195         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender);
+<a name="l01200"></a>01200         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01201"></a>01201 
+<a name="l01205"></a>01205         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
+<a name="l01209"></a>01209         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
+<a name="l01213"></a>01213         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
+<a name="l01217"></a>01217         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket);
+<a name="l01221"></a>01221         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel);
+<a name="l01226"></a>01226         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+<a name="l01230"></a>01230         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
+<a name="l01233"></a>01233         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>();
+<a name="l01236"></a>01236         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>();
+<a name="l01239"></a>01239         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>();
+<a name="l01245"></a>01245         <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>();
+<a name="l01264"></a>01264         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
+<a name="l01265"></a>01265 
+<a name="l01287"></a>01287         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
+<a name="l01288"></a>01288 
+<a name="l01306"></a>01306         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">AddCommand</a>(<a class="code" href="classcommand__t.html">command_t</a> *f);
+<a name="l01307"></a>01307          
+<a name="l01329"></a>01329         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l01330"></a>01330         
+<a name="l01343"></a>01343         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l01344"></a>01344 
+<a name="l01350"></a>01350         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key);
+<a name="l01351"></a>01351         
+<a name="l01357"></a>01357         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l01358"></a>01358         
+<a name="l01364"></a>01364         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
 <a name="l01365"></a>01365         
-<a name="l01377"></a>01377         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01378"></a>01378 
-<a name="l01379"></a>01379         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01380"></a>01380         
-<a name="l01386"></a>01386         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host);
-<a name="l01387"></a>01387         
-<a name="l01393"></a>01393         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
-<a name="l01394"></a>01394         
-<a name="l01403"></a>01403         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server);
-<a name="l01404"></a>01404         
-<a name="l01408"></a>01408         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
-<a name="l01409"></a>01409 
-<a name="l01416"></a>01416         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l01417"></a>01417 
-<a name="l01424"></a>01424         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l01425"></a>01425 
-<a name="l01433"></a>01433         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01434"></a>01434 
-<a name="l01442"></a>01442         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
+<a name="l01376"></a>01376         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
+<a name="l01377"></a>01377         
+<a name="l01382"></a>01382         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern);
+<a name="l01383"></a>01383         
+<a name="l01395"></a>01395         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01396"></a>01396 
+<a name="l01397"></a>01397         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01398"></a>01398         
+<a name="l01404"></a>01404         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host);
+<a name="l01405"></a>01405         
+<a name="l01411"></a>01411         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
+<a name="l01412"></a>01412         
+<a name="l01421"></a>01421         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server);
+<a name="l01422"></a>01422         
+<a name="l01426"></a>01426         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
+<a name="l01427"></a>01427 
+<a name="l01434"></a>01434         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message);
+<a name="l01435"></a>01435 
+<a name="l01442"></a>01442         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message);
 <a name="l01443"></a>01443 
-<a name="l01451"></a>01451         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
+<a name="l01451"></a>01451         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
 <a name="l01452"></a>01452 
-<a name="l01460"></a>01460         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01460"></a>01460         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
 <a name="l01461"></a>01461 
-<a name="l01469"></a>01469         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01469"></a>01469         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
 <a name="l01470"></a>01470 
-<a name="l01473"></a>01473         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01474"></a>01474 
-<a name="l01477"></a>01477         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname);
-<a name="l01478"></a>01478 
-<a name="l01481"></a>01481         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
-<a name="l01482"></a>01482 
-<a name="l01485"></a>01485         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01486"></a>01486 
-<a name="l01489"></a>01489         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l01490"></a>01490 
-<a name="l01496"></a>01496         <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration);
-<a name="l01497"></a>01497 
-<a name="l01500"></a>01500         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask);
-<a name="l01501"></a>01501 
-<a name="l01506"></a>01506         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name);
-<a name="l01507"></a>01507 
-<a name="l01510"></a>01510         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
-<a name="l01511"></a>01511 
-<a name="l01514"></a>01514         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
+<a name="l01478"></a>01478         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01479"></a>01479 
+<a name="l01487"></a>01487         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01488"></a>01488 
+<a name="l01491"></a>01491         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01492"></a>01492 
+<a name="l01495"></a>01495         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname);
+<a name="l01496"></a>01496 
+<a name="l01499"></a>01499         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
+<a name="l01500"></a>01500 
+<a name="l01503"></a>01503         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01504"></a>01504 
+<a name="l01507"></a>01507         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l01508"></a>01508 
+<a name="l01514"></a>01514         <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration);
 <a name="l01515"></a>01515 
-<a name="l01516"></a>01516         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
-<a name="l01517"></a>01517 };
-<a name="l01518"></a>01518 
+<a name="l01518"></a>01518         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask);
 <a name="l01519"></a>01519 
-<a name="l01520"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01520</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER       0x000010</span>
-<a name="l01521"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01521</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED       0x000080</span>
-<a name="l01522"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01522</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND    0x000100</span>
-<a name="l01523"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01523</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND     0x000200</span>
-<a name="l01524"></a>01524 <span class="preprocessor"></span>
+<a name="l01524"></a>01524         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name);
 <a name="l01525"></a>01525 
-<a name="l01532"></a><a class="code" href="classConfigReader.html">01532</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l01533"></a>01533 {
-<a name="l01534"></a>01534   <span class="keyword">protected</span>:
-<a name="l01540"></a><a class="code" href="classConfigReader.html#cache">01540</a>         std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l01541"></a><a class="code" href="classConfigReader.html#errorlog">01541</a>         std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l01544"></a><a class="code" href="classConfigReader.html#readerror">01544</a>         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l01545"></a><a class="code" href="classConfigReader.html#error">01545</a>         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l01546"></a>01546         
-<a name="l01547"></a>01547   <span class="keyword">public</span>:
-<a name="l01552"></a>01552         <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>();                 <span class="comment">// default constructor reads ircd.conf</span>
-<a name="l01556"></a>01556 <span class="comment"></span>        <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);     <span class="comment">// read a module-specific config</span>
-<a name="l01560"></a>01560 <span class="comment"></span>        <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
-<a name="l01565"></a>01565         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
-<a name="l01571"></a>01571         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
-<a name="l01580"></a>01580         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
-<a name="l01585"></a>01585         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
-<a name="l01592"></a>01592         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag);
-<a name="l01597"></a>01597         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
-<a name="l01604"></a>01604         <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01605"></a>01605 
-<a name="l01611"></a>01611         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index);
-<a name="l01612"></a>01612 };
-<a name="l01613"></a>01613 
-<a name="l01614"></a>01614 
-<a name="l01615"></a>01615 
-<a name="l01621"></a><a class="code" href="classFileReader.html">01621</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l01622"></a>01622 {
-<a name="l01623"></a><a class="code" href="classFileReader.html#fc">01623</a>  <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
-<a name="l01624"></a>01624  <span class="keyword">public</span>:
-<a name="l01629"></a>01629          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
-<a name="l01630"></a>01630 
-<a name="l01636"></a>01636          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l01637"></a>01637 
-<a name="l01641"></a>01641          <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
-<a name="l01642"></a>01642 
-<a name="l01648"></a>01648          <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l01649"></a>01649 
-<a name="l01653"></a>01653          <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
-<a name="l01654"></a>01654          
-<a name="l01659"></a>01659          <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x);
+<a name="l01528"></a>01528         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
+<a name="l01529"></a>01529 
+<a name="l01532"></a>01532         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
+<a name="l01533"></a>01533 
+<a name="l01534"></a>01534         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
+<a name="l01535"></a>01535 };
+<a name="l01536"></a>01536 
+<a name="l01537"></a>01537 
+<a name="l01538"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01538</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER       0x000010</span>
+<a name="l01539"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01539</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED       0x000080</span>
+<a name="l01540"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01540</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND    0x000100</span>
+<a name="l01541"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01541</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND     0x000200</span>
+<a name="l01542"></a>01542 <span class="preprocessor"></span>
+<a name="l01543"></a>01543 
+<a name="l01550"></a><a class="code" href="classConfigReader.html">01550</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l01551"></a>01551 {
+<a name="l01552"></a>01552   <span class="keyword">protected</span>:
+<a name="l01558"></a><a class="code" href="classConfigReader.html#cache">01558</a>         std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l01559"></a><a class="code" href="classConfigReader.html#errorlog">01559</a>         std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l01562"></a><a class="code" href="classConfigReader.html#readerror">01562</a>         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l01563"></a><a class="code" href="classConfigReader.html#error">01563</a>         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l01564"></a>01564         
+<a name="l01565"></a>01565   <span class="keyword">public</span>:
+<a name="l01570"></a>01570         <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>();                 <span class="comment">// default constructor reads ircd.conf</span>
+<a name="l01574"></a>01574 <span class="comment"></span>        <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);     <span class="comment">// read a module-specific config</span>
+<a name="l01578"></a>01578 <span class="comment"></span>        <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
+<a name="l01583"></a>01583         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
+<a name="l01589"></a>01589         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
+<a name="l01598"></a>01598         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
+<a name="l01603"></a>01603         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
+<a name="l01610"></a>01610         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag);
+<a name="l01615"></a>01615         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
+<a name="l01622"></a>01622         <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01623"></a>01623 
+<a name="l01629"></a>01629         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index);
+<a name="l01630"></a>01630 };
+<a name="l01631"></a>01631 
+<a name="l01632"></a>01632 
+<a name="l01633"></a>01633 
+<a name="l01639"></a><a class="code" href="classFileReader.html">01639</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l01640"></a>01640 {
+<a name="l01641"></a><a class="code" href="classFileReader.html#fc">01641</a>  <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
+<a name="l01642"></a>01642  <span class="keyword">public</span>:
+<a name="l01647"></a>01647          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
+<a name="l01648"></a>01648 
+<a name="l01654"></a>01654          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l01655"></a>01655 
+<a name="l01659"></a>01659          <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
 <a name="l01660"></a>01660 
-<a name="l01666"></a>01666          <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
-<a name="l01667"></a>01667 };
-<a name="l01668"></a>01668 
-<a name="l01669"></a>01669 
-<a name="l01676"></a><a class="code" href="classModuleFactory.html">01676</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l01677"></a>01677 {
-<a name="l01678"></a>01678  <span class="keyword">public</span>:
-<a name="l01679"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01679</a>         <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
-<a name="l01680"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01680</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
-<a name="l01685"></a>01685         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
-<a name="l01686"></a>01686 };
+<a name="l01666"></a>01666          <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l01667"></a>01667 
+<a name="l01671"></a>01671          <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
+<a name="l01672"></a>01672          
+<a name="l01677"></a>01677          <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x);
+<a name="l01678"></a>01678 
+<a name="l01684"></a>01684          <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
+<a name="l01685"></a>01685 };
+<a name="l01686"></a>01686 
 <a name="l01687"></a>01687 
-<a name="l01688"></a>01688 
-<a name="l01689"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01689</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
-<a name="l01690"></a>01690 
-<a name="l01691"></a>01691 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01692"></a>01692 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01693"></a>01693 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01694"></a>01694 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01695"></a>01695 <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar);
-<a name="l01696"></a>01696 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type);
-<a name="l01697"></a>01697 
-<a name="l01698"></a>01698 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l01694"></a><a class="code" href="classModuleFactory.html">01694</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l01695"></a>01695 {
+<a name="l01696"></a>01696  <span class="keyword">public</span>:
+<a name="l01697"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01697</a>         <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
+<a name="l01698"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01698</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
+<a name="l01703"></a>01703         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
+<a name="l01704"></a>01704 };
+<a name="l01705"></a>01705 
+<a name="l01706"></a>01706 
+<a name="l01707"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01707</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
+<a name="l01708"></a>01708 
+<a name="l01709"></a>01709 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01710"></a>01710 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01711"></a>01711 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01712"></a>01712 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01713"></a>01713 <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar);
+<a name="l01714"></a>01714 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type);
+<a name="l01715"></a>01715 
+<a name="l01716"></a>01716 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9ccdc3d84e385bed73065a12663a084c48cf2d86..032239f6658abb25eaad83e22c86ed232f64e0ee 100644 (file)
 <p>
 Include dependency graph for modules.h:<p><center><img src="modules_8h__incl.gif" border="0" usemap="#modules.h_map" alt=""></center>
 <map name="modules.h_map">
-<area href="base_8h-source.html" shape="rect" coords="283,108,344,135" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="145,209,220,236" alt="">
-<area href="socket_8h-source.html" shape="rect" coords="427,361,499,388" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="273,209,353,236" alt="">
+<area href="base_8h-source.html" shape="rect" coords="152,159,214,185" alt="">
+<area href="ctables_8h-source.html" shape="rect" coords="146,108,220,135" alt="">
+<area href="socket_8h-source.html" shape="rect" coords="147,336,219,363" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="modules_8h__dep__incl.gif" border="0" usemap="#modules.hdep_map" alt=""></center>
 <map name="modules.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="275,32,373,59" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="275,95,373,121" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="140,57,225,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="288,57,387,84" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="288,108,387,135" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="142,57,238,84" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="147,108,232,135" alt="">
 </map>
 
 <p>
@@ -122,12 +122,28 @@ This graph shows which files directly or indirectly include this file:<p><center
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#VF_5FCOMMON">VF_COMMON</a>&nbsp;&nbsp;&nbsp;8</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int _i = 0; _i &lt;= <a class="el" href="modules_8cpp.html#MODCOUNT">MODCOUNT</a>; _i++) modules[_i]-&gt;</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a>&nbsp;&nbsp;&nbsp;for (int _i = 0; _i &lt;= <a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a>; _i++) modules[_i]-&gt;</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(x)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">FD_MAGIC_NUMBER</a>&nbsp;&nbsp;&nbsp;-42</td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#IS_5FLOCAL_28x_29">IS_LOCAL</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd &gt; -1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#IS_5FREMOTE_28x_29">IS_REMOTE</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd &lt; 0)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#IS_5FMODULE_5FCREATED_28x_29">IS_MODULE_CREATED</a>(x)&nbsp;&nbsp;&nbsp;(x-&gt;fd == FD_MAGIC_NUMBER)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#WM_5FAND">WM_AND</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#WM_5FOR">WM_OR</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#TYPE_5FUSER">TYPE_USER</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#TYPE_5FCHANNEL">TYPE_CHANNEL</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#TYPE_5FSERVER">TYPE_SERVER</a>&nbsp;&nbsp;&nbsp;3</td></tr>
+
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">CONF_NOT_A_NUMBER</a>&nbsp;&nbsp;&nbsp;0x000010</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">CONF_NOT_UNSIGNED</a>&nbsp;&nbsp;&nbsp;0x000080</td></tr>
@@ -148,10 +164,6 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef DLLFactory&lt; <a class="el" href="classModuleFactory.html">ModuleFactory</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a></td></tr>
 
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a> (char *cmd, <a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, char flags, int minparams, char *source)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a> (char **parameters, int pcnt, <a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
-
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#ModeDefined_28char_20c_2C_20int_20i_29">ModeDefined</a> (char c, int i)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="modules_8h.html#ModeDefinedOper_28char_20c_2C_20int_20i_29">ModeDefinedOper</a> (char c, int i)</td></tr>
@@ -444,7 +456,7 @@ Used with OnAccessCheck() method of modules.
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00037">37</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00241">Module::OnAccessCheck()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00240">Module::OnAccessCheck()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ACR_5FDENY"></a><!-- doxytag: member="modules.h::ACR_DENY" ref="ACR_5FDENY" args="" --><p>
@@ -496,9 +508,9 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01523">1523</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01541">1541</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#l00736">ConfigReader::ConfigReader()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00735">ConfigReader::ConfigReader()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CONF_5FNOT_5FA_5FNUMBER"></a><!-- doxytag: member="modules.h::CONF_NOT_A_NUMBER" ref="CONF_5FNOT_5FA_5FNUMBER" args="" --><p>
@@ -523,9 +535,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00736">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01520">1520</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01538">1538</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#l00799">ConfigReader::ReadInteger()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00798">ConfigReader::ReadInteger()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CONF_5FNOT_5FUNSIGNED"></a><!-- doxytag: member="modules.h::CONF_NOT_UNSIGNED" ref="CONF_5FNOT_5FUNSIGNED" args="" --><p>
@@ -550,9 +562,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00799">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01521">1521</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01539">1539</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#l00799">ConfigReader::ReadInteger()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00798">ConfigReader::ReadInteger()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CONF_5FVALUE_5FNOT_5FFOUND"></a><!-- doxytag: member="modules.h::CONF_VALUE_NOT_FOUND" ref="CONF_5FVALUE_5FNOT_5FFOUND" args="" --><p>
@@ -577,9 +589,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00799">ConfigReader:
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01522">1522</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l01540">1540</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#l00782">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00799">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00766">ConfigReader::ReadValue()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00781">ConfigReader::ReadFlag()</a>, <a class="el" href="modules_8cpp-source.html#l00798">ConfigReader::ReadInteger()</a>, and <a class="el" href="modules_8cpp-source.html#l00765">ConfigReader::ReadValue()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="DEBUG"></a><!-- doxytag: member="modules.h::DEBUG" ref="DEBUG" args="" --><p>
@@ -656,9 +668,9 @@ Definition at line <a class="el" href="modules_8h-source.html#l00025">25</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00101">101</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00102">102</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#l00610">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00598">Server::UserToPseudo()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00597">Server::UserToPseudo()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="FOREACH_5FMOD"></a><!-- doxytag: member="modules.h::FOREACH_MOD" ref="FOREACH_5FMOD" args="" --><p>
@@ -667,7 +679,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::Pseud
     <td class="mdRow">
       <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;= <a class="el" href="modules_8cpp.html#MODCOUNT">MODCOUNT</a>; _i++) modules[_i]-&gt;          </td>
+          <td class="md" nowrap valign="top">#define FOREACH_MOD&nbsp;&nbsp;&nbsp;for (int _i = 0; _i &lt;= <a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a>; _i++) modules[_i]-&gt;          </td>
         </tr>
       </table>
     </td>
@@ -683,9 +695,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00610">Server::Pseud
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00081">81</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00082">82</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00206">Event::Send()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, and <a class="el" href="modules_8cpp-source.html#l00205">Event::Send()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="FOREACH_5FRESULT_28x_29"></a><!-- doxytag: member="modules.h::FOREACH_RESULT" ref="FOREACH_5FRESULT_28x_29" args="(x)" --><p>
@@ -724,9 +736,99 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel(
         }
 </pre></div>
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00089">89</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+Definition at line <a class="el" href="modules_8h-source.html#l00090">90</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="IS_5FLOCAL_28x_29"></a><!-- doxytag: member="modules.h::IS_LOCAL" ref="IS_5FLOCAL_28x_29" args="(x)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define IS_LOCAL          </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">x&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd &gt; -1)</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#l00106">106</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="IS_5FMODULE_5FCREATED_28x_29"></a><!-- doxytag: member="modules.h::IS_MODULE_CREATED" ref="IS_5FMODULE_5FCREATED_28x_29" args="(x)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define IS_MODULE_CREATED          </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">x&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd == FD_MAGIC_NUMBER)</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#l00108">108</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="IS_5FREMOTE_28x_29"></a><!-- doxytag: member="modules.h::IS_REMOTE" ref="IS_5FREMOTE_28x_29" args="(x)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define IS_REMOTE          </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">x&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;(x-&gt;fd &lt; 0)</td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00195">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00107">107</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MT_5FCHANNEL"></a><!-- doxytag: member="modules.h::MT_CHANNEL" ref="MT_5FCHANNEL" args="" --><p>
@@ -755,7 +857,7 @@ Used with OnExtendedMode() method of modules.
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00031">31</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#l00584">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00144">ModeMakeList()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00583">Server::AddExtendedListMode()</a>, and <a class="el" href="modules_8cpp-source.html#l00143">ModeMakeList()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MT_5FCLIENT"></a><!-- doxytag: member="modules.h::MT_CLIENT" ref="MT_5FCLIENT" args="" --><p>
@@ -782,7 +884,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddEx
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00032">32</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#l00556">Server::AddExtendedMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00555">Server::AddExtendedMode()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="MT_5FSERVER"></a><!-- doxytag: member="modules.h::MT_SERVER" ref="MT_5FSERVER" args="" --><p>
@@ -809,7 +911,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00556">Server::AddEx
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00033">33</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#l00556">Server::AddExtendedMode()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00555">Server::AddExtendedMode()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="NONE"></a><!-- doxytag: member="modules.h::NONE" ref="NONE" args="" --><p>
@@ -862,6 +964,81 @@ Definition at line <a class="el" href="modules_8h-source.html#l00027">27</a> of
 Definition at line <a class="el" href="modules_8h-source.html#l00026">26</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
+<a class="anchor" name="TYPE_5FCHANNEL"></a><!-- doxytag: member="modules.h::TYPE_CHANNEL" ref="TYPE_5FCHANNEL" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define TYPE_CHANNEL&nbsp;&nbsp;&nbsp;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_8h-source.html#l00118">118</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="TYPE_5FSERVER"></a><!-- doxytag: member="modules.h::TYPE_SERVER" ref="TYPE_5FSERVER" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define TYPE_SERVER&nbsp;&nbsp;&nbsp;3          </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#l00119">119</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="TYPE_5FUSER"></a><!-- doxytag: member="modules.h::TYPE_USER" ref="TYPE_5FUSER" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">#define TYPE_USER&nbsp;&nbsp;&nbsp;1          </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#l00117">117</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="VERBOSE"></a><!-- doxytag: member="modules.h::VERBOSE" ref="VERBOSE" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -988,17 +1165,16 @@ Definition at line <a class="el" href="modules_8h-source.html#l00052">52</a> of
 <p>
 Definition at line <a class="el" href="modules_8h-source.html#l00053">53</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#l00232">Module::GetVersion()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00231">Module::GetVersion()</a>.    </td>
   </tr>
 </table>
-<hr><h2>Typedef Documentation</h2>
-<a class="anchor" name="chanuserlist"></a><!-- doxytag: member="modules.h::chanuserlist" ref="chanuserlist" args="" --><p>
+<a class="anchor" name="WM_5FAND"></a><!-- doxytag: member="modules.h::WM_AND" ref="WM_5FAND" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="classuserrec.html">userrec</a>*&gt; <a class="el" href="modules_8h.html#chanuserlist">chanuserlist</a>          </td>
+          <td class="md" nowrap valign="top">#define WM_AND&nbsp;&nbsp;&nbsp;1          </td>
         </tr>
       </table>
     </td>
@@ -1012,20 +1188,18 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00232">Module::GetVe
     <td>
 
 <p>
-Holds a list of users in a channel. 
-<p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l00074">74</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00112">112</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="file_5Fcache"></a><!-- doxytag: member="modules.h::file_cache" ref="file_5Fcache" args="" --><p>
+<a class="anchor" name="WM_5FOR"></a><!-- doxytag: member="modules.h::WM_OR" ref="WM_5FOR" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="namespaceirc.html#string">std::string</a>&gt; <a class="el" href="typedefs_8h.html#file_5Fcache">file_cache</a>          </td>
+          <td class="md" nowrap valign="top">#define WM_OR&nbsp;&nbsp;&nbsp;2          </td>
         </tr>
       </table>
     </td>
@@ -1039,20 +1213,19 @@ Definition at line <a class="el" href="modules_8h-source.html#l00074">74</a> of
     <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#l00065">65</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00113">113</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="ircd_5Fmodule"></a><!-- doxytag: member="modules.h::ircd_module" ref="ircd_5Fmodule" args="" --><p>
+<hr><h2>Typedef Documentation</h2>
+<a class="anchor" name="chanuserlist"></a><!-- doxytag: member="modules.h::chanuserlist" ref="chanuserlist" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">typedef DLLFactory&lt;<a class="el" href="classModuleFactory.html">ModuleFactory</a>&gt; <a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>          </td>
+          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="classuserrec.html">userrec</a>*&gt; <a class="el" href="modules_8h.html#chanuserlist">chanuserlist</a>          </td>
         </tr>
       </table>
     </td>
@@ -1066,18 +1239,20 @@ Definition at line <a class="el" href="modules_8h-source.html#l00065">65</a> of
     <td>
 
 <p>
+Holds a list of users in a channel. 
+<p>
 
 <p>
-Definition at line <a class="el" href="modules_8h-source.html#l01689">1689</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00075">75</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="string_5Flist"></a><!-- doxytag: member="modules.h::string_list" ref="string_5Flist" args="" --><p>
+<a class="anchor" name="file_5Fcache"></a><!-- doxytag: member="modules.h::file_cache" ref="file_5Fcache" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">typedef <a class="el" href="typedefs_8h.html#file_5Fcache">file_cache</a> <a class="el" href="modules_8h.html#string_5Flist">string_list</a>          </td>
+          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="namespaceirc.html#string">std::string</a>&gt; <a class="el" href="typedefs_8h.html#file_5Fcache">file_cache</a>          </td>
         </tr>
       </table>
     </td>
@@ -1091,51 +1266,45 @@ Definition at line <a class="el" href="modules_8h-source.html#l01689">1689</a> o
     <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#l00070">70</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00066">66</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
-<hr><h2>Function Documentation</h2>
-<a class="anchor" name="createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29"></a><!-- doxytag: member="modules.h::createcommand" ref="createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29" args="(char *cmd, handlerfunc f, char flags, int minparams, char *source)" --><p>
+<a class="anchor" name="ircd_5Fmodule"></a><!-- doxytag: member="modules.h::ircd_module" ref="ircd_5Fmodule" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">void createcommand           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>cmd</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a>&nbsp;</td>
-          <td class="mdname" nowrap> <em>f</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char&nbsp;</td>
-          <td class="mdname" nowrap> <em>flags</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>minparams</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap> <em>source</em></td>
+          <td class="md" nowrap valign="top">typedef DLLFactory&lt;<a class="el" href="classModuleFactory.html">ModuleFactory</a>&gt; <a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>          </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#l01707">1707</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="string_5Flist"></a><!-- doxytag: member="modules.h::string_list" ref="string_5Flist" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="md" nowrap valign="top">typedef <a class="el" href="typedefs_8h.html#file_5Fcache">file_cache</a> <a class="el" href="modules_8h.html#string_5Flist">string_list</a>          </td>
         </tr>
       </table>
     </td>
@@ -1151,9 +1320,10 @@ Definition at line <a class="el" href="modules_8h-source.html#l00070">70</a> of
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00416">Server::AddCommand()</a>.    </td>
+Definition at line <a class="el" href="modules_8h-source.html#l00071">71</a> of file <a class="el" href="modules_8h-source.html">modules.h</a>.    </td>
   </tr>
 </table>
+<hr><h2>Function Documentation</h2>
 <a class="anchor" name="ModeDefined_28char_20c_2C_20int_20i_29"></a><!-- doxytag: member="modules.h::ModeDefined" ref="ModeDefined_28char_20c_2C_20int_20i_29" args="(char c, int i)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -1190,20 +1360,20 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00416">Server::AddCo
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00071">71</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+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>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00072"></a>00072 {
-<a name="l00073"></a>00073         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00074"></a>00074         {
-<a name="l00075"></a>00075                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00076"></a>00076                 {
-<a name="l00077"></a>00077                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00078"></a>00078                 }
-<a name="l00079"></a>00079         }
-<a name="l00080"></a>00080         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00081"></a>00081 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00133">DoAddExtendedMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00071"></a>00071 {
+<a name="l00072"></a>00072         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00073"></a>00073         {
+<a name="l00074"></a>00074                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00075"></a>00075                 {
+<a name="l00076"></a>00076                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00077"></a>00077                 }
+<a name="l00078"></a>00078         }
+<a name="l00079"></a>00079         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00080"></a>00080 }
 </pre></div>
 <p>
     </td>
@@ -1245,18 +1415,18 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00134">DoAddExtended
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00121">121</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00120">120</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00122"></a>00122 {
-<a name="l00123"></a>00123         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00124"></a>00124         {
-<a name="l00125"></a>00125                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00126"></a>00126                 {
-<a name="l00127"></a>00127                         <span class="keywordflow">return</span> i-&gt;params_when_off;
-<a name="l00128"></a>00128                 }
-<a name="l00129"></a>00129         }
-<a name="l00130"></a>00130         <span class="keywordflow">return</span> 0;
-<a name="l00131"></a>00131 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00121"></a>00121 {
+<a name="l00122"></a>00122         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00123"></a>00123         {
+<a name="l00124"></a>00124                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00125"></a>00125                 {
+<a name="l00126"></a>00126                         <span class="keywordflow">return</span> i-&gt;params_when_off;
+<a name="l00127"></a>00127                 }
+<a name="l00128"></a>00128         }
+<a name="l00129"></a>00129         <span class="keywordflow">return</span> 0;
+<a name="l00130"></a>00130 }
 </pre></div>
 <p>
     </td>
@@ -1298,18 +1468,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00108">108</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+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>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00109"></a>00109 {
-<a name="l00110"></a>00110         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00111"></a>00111         {
-<a name="l00112"></a>00112                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
-<a name="l00113"></a>00113                 {
-<a name="l00114"></a>00114                         <span class="keywordflow">return</span> i-&gt;params_when_on;
-<a name="l00115"></a>00115                 }
-<a name="l00116"></a>00116         }
-<a name="l00117"></a>00117         <span class="keywordflow">return</span> 0;
-<a name="l00118"></a>00118 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00108"></a>00108 {
+<a name="l00109"></a>00109         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00110"></a>00110         {
+<a name="l00111"></a>00111                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type))
+<a name="l00112"></a>00112                 {
+<a name="l00113"></a>00113                         <span class="keywordflow">return</span> i-&gt;params_when_on;
+<a name="l00114"></a>00114                 }
+<a name="l00115"></a>00115         }
+<a name="l00116"></a>00116         <span class="keywordflow">return</span> 0;
+<a name="l00117"></a>00117 }
 </pre></div>
 <p>
     </td>
@@ -1351,18 +1521,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00095">95</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00094">94</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00096"></a>00096 {
-<a name="l00097"></a>00097         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00098"></a>00098         {
-<a name="l00099"></a>00099                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
-<a name="l00100"></a>00100                 {
-<a name="l00101"></a>00101                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00102"></a>00102                 }
-<a name="l00103"></a>00103         }
-<a name="l00104"></a>00104         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00105"></a>00105 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00095"></a>00095 {
+<a name="l00096"></a>00096         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00097"></a>00097         {
+<a name="l00098"></a>00098                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;needsoper == <span class="keyword">true</span>))
+<a name="l00099"></a>00099                 {
+<a name="l00100"></a>00100                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00101"></a>00101                 }
+<a name="l00102"></a>00102         }
+<a name="l00103"></a>00103         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00104"></a>00104 }
 </pre></div>
 <p>
     </td>
@@ -1404,18 +1574,18 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00083">83</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00082">82</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00084"></a>00084 {
-<a name="l00085"></a>00085         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00086"></a>00086         {
-<a name="l00087"></a>00087                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
-<a name="l00088"></a>00088                 {
-<a name="l00089"></a>00089                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00090"></a>00090                 }
-<a name="l00091"></a>00091         }
-<a name="l00092"></a>00092         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00093"></a>00093 }
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>.<div class="fragment"><pre class="fragment"><a name="l00083"></a>00083 {
+<a name="l00084"></a>00084         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00085"></a>00085         {
+<a name="l00086"></a>00086                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == type) &amp;&amp; (i-&gt;list == <span class="keyword">true</span>))
+<a name="l00087"></a>00087                 {
+<a name="l00088"></a>00088                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00089"></a>00089                 }
+<a name="l00090"></a>00090         }
+<a name="l00091"></a>00091         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00092"></a>00092 }
 </pre></div>
 <p>
     </td>
@@ -1448,70 +1618,27 @@ References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>.<div c
 <p>
 
 <p>
-Definition at line <a class="el" href="modules_8cpp-source.html#l00144">144</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
+Definition at line <a class="el" href="modules_8cpp-source.html#l00143">143</a> of file <a class="el" href="modules_8cpp-source.html">modules.cpp</a>.
 <p>
-References <a class="el" href="modules_8cpp-source.html#l00068">EMode</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
+References <a class="el" href="modules_8cpp-source.html#l00067">EMode</a>, and <a class="el" href="modules_8h-source.html#l00031">MT_CHANNEL</a>.
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00584">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00145"></a>00145 {
-<a name="l00146"></a>00146         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
-<a name="l00147"></a>00147         {
-<a name="l00148"></a>00148                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
-<a name="l00149"></a>00149                 {
-<a name="l00150"></a>00150                         i-&gt;list = <span class="keyword">true</span>;
-<a name="l00151"></a>00151                         <span class="keywordflow">return</span>;
-<a name="l00152"></a>00152                 }
-<a name="l00153"></a>00153         }
-<a name="l00154"></a>00154         <span class="keywordflow">return</span>;
-<a name="l00155"></a>00155 }
+Referenced by <a class="el" href="modules_8cpp-source.html#l00583">Server::AddExtendedListMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00144"></a>00144 {
+<a name="l00145"></a>00145         <span class="keywordflow">for</span> (<a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a> i = <a class="code" href="modules_8cpp.html#EMode">EMode</a>.begin(); i &lt; <a class="code" href="modules_8cpp.html#EMode">EMode</a>.end(); i++)
+<a name="l00146"></a>00146         {
+<a name="l00147"></a>00147                 <span class="keywordflow">if</span> ((i-&gt;modechar == modechar) &amp;&amp; (i-&gt;type == <a class="code" href="modules_8h.html#MT_5FCHANNEL">MT_CHANNEL</a>))
+<a name="l00148"></a>00148                 {
+<a name="l00149"></a>00149                         i-&gt;list = <span class="keyword">true</span>;
+<a name="l00150"></a>00150                         <span class="keywordflow">return</span>;
+<a name="l00151"></a>00151                 }
+<a name="l00152"></a>00152         }
+<a name="l00153"></a>00153         <span class="keywordflow">return</span>;
+<a name="l00154"></a>00154 }
 </pre></div>
 <p>
     </td>
   </tr>
 </table>
-<a class="anchor" name="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29"></a><!-- doxytag: member="modules.h::server_mode" ref="server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29" args="(char **parameters, int pcnt, userrec *user)" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">void server_mode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char **&nbsp;</td>
-          <td class="mdname" nowrap> <em>parameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>int&nbsp;</td>
-          <td class="mdname" nowrap> <em>pcnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td>
-          <td class="mdname" nowrap> <em>user</em></td>
-        </tr>
-        <tr>
-          <td class="md"></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>
-    </td>
-  </tr>
-</table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2ae52d4d8a14b3934d623e4e6fd4b427645ed831..d2382c4732ed67b63172548c45971981a5f781f1 100644 (file)
@@ -1,4 +1,5 @@
 base referer
-rect $channels_8cpp-source.html 275,32 373,59
-rect $modules_8cpp-source.html 275,95 373,121
-rect $typedefs_8h-source.html 140,57 225,84
+rect $channels_8cpp-source.html 288,57 387,84
+rect $modules_8cpp-source.html 288,108 387,135
+rect $inspircd__io_8h-source.html 142,57 238,84
+rect $typedefs_8h-source.html 147,108 232,135
index 1b8f8563648e936d476b3cf2fb175494c1d26685..797e74981071954fd86dbcf137f172b127fd423a 100644 (file)
@@ -1 +1 @@
-029327ee049ffb0b20c7a5fec8c0bf60
\ No newline at end of file
+a9c8e3f1de38b14742a7373870135e9c
\ No newline at end of file
index 11a5b7c387d1fa2151c2790f4c515d09173de451..80950de97c37a020854da9921aa77dff7a284fd9 100644 (file)
@@ -1,5 +1,4 @@
 base referer
-rect $base_8h-source.html 283,108 344,135
-rect $ctables_8h-source.html 145,209 220,236
-rect $socket_8h-source.html 427,361 499,388
-rect $inspircd_8h-source.html 273,209 353,236
+rect $base_8h-source.html 152,159 214,185
+rect $ctables_8h-source.html 146,108 220,135
+rect $socket_8h-source.html 147,336 219,363
index 0ba01c6248e97f6832dd55a95a577349dd625d40..44632e2c042619bdf3f3456f2ac834060bed2fe2 100644 (file)
@@ -1 +1 @@
-8349e345831c364ad6f1773db4ad756f
\ No newline at end of file
+b8bad034c27cd1c2ec23841d82552230
\ No newline at end of file
index 7a3116ffcf520150a886daaf0e0aec3ecd72c8a2..2c5489a0263497bcd59a7d23aed4524aeb9dfb2c 100644 (file)
@@ -56,7 +56,7 @@ This typedef declares <a class="el" href="namespaceirc.html#string">irc::string<
 Definition at line <a class="el" href="hashcomp_8h-source.html#l00129">129</a> of file <a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 739166549d7010bbed1eb6e1d5ede9e968effb57..239850c0bead87975b1245ad17ff191631236005 100644 (file)
@@ -11,7 +11,7 @@ Here is a list of all namespace members with links to the namespace documentatio
 <ul>
 <li>string
 : <a class="el" href="namespaceirc.html#string">irc</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 99d94cbd5e4cb94bc3d598636bd65bee232c1723..a73089474501e018ea374670af8f6a09822c97ed 100644 (file)
@@ -11,7 +11,7 @@
 <ul>
 <li>string
 : <a class="el" href="namespaceirc.html#string">irc</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 3558dad6a295938b90128105998bfe2964430ec3..ef2d042ee51cf33b51adea4298fcc7a56642c929 100644 (file)
@@ -15,7 +15,7 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnspace_1_1hash_3_01string_01_4.html">hash&lt; string &gt;</a></td></tr>
 
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index a9b9a4154109ba45c2340d97410d8906494fadf0..73a796a6c8f979bf02f69ac01199f5d1b79d094a 100644 (file)
@@ -10,7 +10,7 @@
   <tr><td class="indexkey"><a class="el" href="namespacenspace.html">nspace</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="namespacestd.html">std</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 51eb1a3f95a64ead546a7f76aec2b22260bd697e..38a0bf7528fc89b2f3fb71b0dd7073939d210c69 100644 (file)
@@ -10,7 +10,7 @@
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 933d1eae5980a91766c93a0885e1b43c29134e86..5278c5d50d3c3419baf4288844f1370496bb6fb5 100644 (file)
 <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
 <a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
 <a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="inspircd__io_8h.html">inspircd_io.h</a>"</span>
-<a name="l00035"></a>00035 <span class="preprocessor">#include "inspircd_util.h"</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include "inspstring.h"</span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include "helperfuncs.h"</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "inspstring.h"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "helperfuncs.h"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
+<a name="l00038"></a>00038 
 <a name="l00039"></a>00039 
-<a name="l00040"></a>00040 <span class="keyword">extern</span> <a class="code" href="classSocketEngine.html">SocketEngine</a>* <a class="code" href="modules_8cpp.html#SE">SE</a>;
-<a name="l00041"></a>00041 
-<a name="l00042"></a>00042 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="socket_8cpp.html#boundPortCount">boundPortCount</a>;
-<a name="l00043"></a>00043 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">openSockfd</a>[<a class="code" href="inspircd_8h.html#MAXSOCKS">MAXSOCKS</a>];
-<a name="l00044"></a>00044 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00045"></a>00045 
-<a name="l00046"></a><a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">00046</a> <a class="code" href="classInspSocket.html">InspSocket</a>* <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535];
-<a name="l00047"></a>00047 
-<a name="l00048"></a><a class="code" href="classInspSocket.html#InspSocket_28_29">00048</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>()
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>;
-<a name="l00051"></a>00051 }
-<a name="l00052"></a>00052 
-<a name="l00053"></a><a class="code" href="classInspSocket.html#InspSocket_28int_20newfd_2C_20char_20_2Aip_29">00053</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip)
-<a name="l00054"></a>00054 {
-<a name="l00055"></a>00055         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = newfd;
-<a name="l00056"></a>00056         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>;
-<a name="l00057"></a>00057         this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
-<a name="l00058"></a>00058         SE-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00059"></a>00059         socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 
-<a name="l00062"></a><a class="code" href="classInspSocket.html#InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29">00062</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>(<a class="code" href="namespaceirc.html#string">std::string</a> host, <span class="keywordtype">int</span> port, <span class="keywordtype">bool</span> listening, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxtime)
-<a name="l00063"></a>00063 {
-<a name="l00064"></a>00064         <span class="keywordflow">if</span> (listening) {
-<a name="l00065"></a>00065                 <span class="keywordflow">if</span> ((this-&gt;fd = <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a>()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
-<a name="l00066"></a>00066                 {
-<a name="l00067"></a>00067                         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00068"></a>00068                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00069"></a>00069                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
-<a name="l00070"></a>00070                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"OpenTCPSocket() error"</span>);
-<a name="l00071"></a>00071                         <span class="keywordflow">return</span>;
-<a name="l00072"></a>00072                 }
-<a name="l00073"></a>00073                 <span class="keywordflow">else</span>
-<a name="l00074"></a>00074                 {
-<a name="l00075"></a>00075                         <span class="keywordflow">if</span> (<a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a>(this-&gt;fd,this-&gt;client,this-&gt;server,port,(<span class="keywordtype">char</span>*)host.c_str()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
-<a name="l00076"></a>00076                         {
-<a name="l00077"></a>00077                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00078"></a>00078                                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00079"></a>00079                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00080"></a>00080                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>);
-<a name="l00081"></a>00081                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BindSocket() error %s"</span>,strerror(errno));
-<a name="l00082"></a>00082                                 <span class="keywordflow">return</span>;
-<a name="l00083"></a>00083                         }
-<a name="l00084"></a>00084                         <span class="keywordflow">else</span>
-<a name="l00085"></a>00085                         {
-<a name="l00086"></a>00086                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>;
-<a name="l00087"></a>00087                                 SE-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00088"></a>00088                                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00089"></a>00089                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"New socket now in I_LISTENING state"</span>);
-<a name="l00090"></a>00090                                 <span class="keywordflow">return</span>;
-<a name="l00091"></a>00091                         }
-<a name="l00092"></a>00092                 }                       
-<a name="l00093"></a>00093         } <span class="keywordflow">else</span> {
-<a name="l00094"></a>00094                 <span class="keywordtype">char</span>* ip;
-<a name="l00095"></a>00095                 this-&gt;host = host;
-<a name="l00096"></a>00096                 hostent* hoste = gethostbyname(host.c_str());
-<a name="l00097"></a>00097                 <span class="keywordflow">if</span> (!hoste) {
-<a name="l00098"></a>00098                         ip = (<span class="keywordtype">char</span>*)host.c_str();
-<a name="l00099"></a>00099                 } <span class="keywordflow">else</span> {
-<a name="l00100"></a>00100                         <span class="keyword">struct </span>in_addr* ia = (in_addr*)hoste-&gt;h_addr;
-<a name="l00101"></a>00101                         ip = inet_ntoa(*ia);
-<a name="l00102"></a>00102                 }
-<a name="l00103"></a>00103 
-<a name="l00104"></a>00104                 this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106                 <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a> = time(NULL)+maxtime;
-<a name="l00107"></a>00107                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">false</span>;
-<a name="l00108"></a>00108                 <span class="keywordflow">if</span> ((this-&gt;fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
-<a name="l00109"></a>00109                 {
-<a name="l00110"></a>00110                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00111"></a>00111                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
-<a name="l00112"></a>00112                         <span class="keywordflow">return</span>;
-<a name="l00113"></a>00113                 }
-<a name="l00114"></a>00114                 this-&gt;port = port;
-<a name="l00115"></a>00115                 inet_aton(ip,&amp;<a class="code" href="classInspSocket.html#addy">addy</a>);
-<a name="l00116"></a>00116                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_family = AF_INET;
-<a name="l00117"></a>00117                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_addr = <a class="code" href="classInspSocket.html#addy">addy</a>;
-<a name="l00118"></a>00118                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_port = htons(this-&gt;port);
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120                 <span class="keywordtype">int</span> flags;
-<a name="l00121"></a>00121                 flags = fcntl(this-&gt;fd, F_GETFL, 0);
-<a name="l00122"></a>00122                 fcntl(this-&gt;fd, F_SETFL, flags | O_NONBLOCK);
-<a name="l00123"></a>00123 
-<a name="l00124"></a>00124                 <span class="keywordflow">if</span>(connect(this-&gt;fd, (sockaddr*)&amp;this-&gt;addr,<span class="keyword">sizeof</span>(this-&gt;addr)) == -1)
-<a name="l00125"></a>00125                 {
-<a name="l00126"></a>00126                         <span class="keywordflow">if</span> (errno != EINPROGRESS)
-<a name="l00127"></a>00127                         {
-<a name="l00128"></a>00128                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00129"></a>00129                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>);
-<a name="l00130"></a>00130                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00131"></a>00131                                 <span class="keywordflow">return</span>;
-<a name="l00132"></a>00132                         }
-<a name="l00133"></a>00133                 }
-<a name="l00134"></a>00134                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>;
-<a name="l00135"></a>00135                 SE-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">false</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00136"></a>00136                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
-<a name="l00137"></a>00137                 <span class="keywordflow">return</span>;
-<a name="l00138"></a>00138         }
-<a name="l00139"></a>00139 }
-<a name="l00140"></a>00140 
-<a name="l00141"></a><a class="code" href="classInspSocket.html#Close_28_29">00141</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#Close_28_29">InspSocket::Close</a>()
-<a name="l00142"></a>00142 {
-<a name="l00143"></a>00143         <span class="keywordflow">if</span> (this-&gt;fd != -1)
-<a name="l00144"></a>00144         {
-<a name="l00145"></a>00145                 this-&gt;<a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
-<a name="l00146"></a>00146                 shutdown(this-&gt;fd,2);
-<a name="l00147"></a>00147                 close(this-&gt;fd);
-<a name="l00148"></a>00148                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = NULL;
-<a name="l00149"></a>00149                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
-<a name="l00150"></a>00150         }
-<a name="l00151"></a>00151 }
-<a name="l00152"></a>00152 
-<a name="l00153"></a><a class="code" href="classInspSocket.html#GetIP_28_29">00153</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#GetIP_28_29">InspSocket::GetIP</a>()
-<a name="l00154"></a>00154 {
-<a name="l00155"></a>00155         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a>;
-<a name="l00156"></a>00156 }
-<a name="l00157"></a>00157 
-<a name="l00158"></a><a class="code" href="classInspSocket.html#Read_28_29">00158</a> <span class="keywordtype">char</span>* <a class="code" href="classInspSocket.html#Read_28_29">InspSocket::Read</a>()
-<a name="l00159"></a>00159 {
-<a name="l00160"></a>00160         <span class="keywordtype">int</span> n = recv(this-&gt;fd,this-&gt;ibuf,<span class="keyword">sizeof</span>(this-&gt;ibuf),0);
-<a name="l00161"></a>00161         <span class="keywordflow">if</span> (n &gt; 0)
-<a name="l00162"></a>00162         {
-<a name="l00163"></a>00163                 <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>[n] = 0;
-<a name="l00164"></a>00164                 <span class="keywordflow">return</span> <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>;
-<a name="l00165"></a>00165         }
-<a name="l00166"></a>00166         <span class="keywordflow">else</span>
-<a name="l00167"></a>00167         {
-<a name="l00168"></a>00168                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"EOF or error on socket"</span>);
-<a name="l00169"></a>00169                 <span class="keywordflow">return</span> NULL;
-<a name="l00170"></a>00170         }
-<a name="l00171"></a>00171 }
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173 <span class="comment">// There are two possible outcomes to this function.</span>
-<a name="l00174"></a>00174 <span class="comment">// It will either write all of the data, or an undefined amount.</span>
-<a name="l00175"></a>00175 <span class="comment">// If an undefined amount is written the connection has failed</span>
-<a name="l00176"></a>00176 <span class="comment">// and should be aborted.</span>
-<a name="l00177"></a><a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">00177</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket::Write</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data)
-<a name="l00178"></a>00178 {
-<a name="l00179"></a>00179         <span class="keywordtype">char</span>* d = (<span class="keywordtype">char</span>*)data.c_str();
-<a name="l00180"></a>00180         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> written = 0;
-<a name="l00181"></a>00181         <span class="keywordtype">int</span> n = 0;
-<a name="l00182"></a>00182         <span class="keywordtype">int</span> s = data.length();
-<a name="l00183"></a>00183         <span class="keywordflow">while</span> ((written &lt; data.length()) &amp;&amp; (n &gt;= 0))
-<a name="l00184"></a>00184         {
-<a name="l00185"></a>00185                 n = send(this-&gt;fd,d,s,0);
-<a name="l00186"></a>00186                 <span class="keywordflow">if</span> (n &gt; 0)
-<a name="l00187"></a>00187                 {
-<a name="l00188"></a>00188                         <span class="comment">// If we didnt write everything, advance</span>
-<a name="l00189"></a>00189                         <span class="comment">// the pointers so that when we retry</span>
-<a name="l00190"></a>00190                         <span class="comment">// the next time around the loop, we try</span>
-<a name="l00191"></a>00191                         <span class="comment">// to write what we failed to write before.</span>
-<a name="l00192"></a>00192                         written += n;
-<a name="l00193"></a>00193                         s -= n;
-<a name="l00194"></a>00194                         d += n;
-<a name="l00195"></a>00195                 }
-<a name="l00196"></a>00196         }
-<a name="l00197"></a>00197         <span class="keywordflow">return</span> written;
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 
-<a name="l00200"></a><a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">00200</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket::Timeout</a>(time_t current)
-<a name="l00201"></a>00201 {
-<a name="l00202"></a>00202         <span class="keywordflow">if</span> ((this-&gt;state == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>) &amp;&amp; (current &gt; <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a>))
-<a name="l00203"></a>00203         {
-<a name="l00204"></a>00204                 <span class="comment">// for non-listening sockets, the timeout can occur</span>
-<a name="l00205"></a>00205                 <span class="comment">// which causes termination of the connection after</span>
-<a name="l00206"></a>00206                 <span class="comment">// the given number of seconds without a successful</span>
-<a name="l00207"></a>00207                 <span class="comment">// connection.</span>
-<a name="l00208"></a>00208                 this-&gt;<a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
-<a name="l00209"></a>00209                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>);
-<a name="l00210"></a>00210                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">true</span>;
-<a name="l00211"></a>00211                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
-<a name="l00212"></a>00212                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00213"></a>00213         }
-<a name="l00214"></a>00214         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00215"></a>00215 }
-<a name="l00216"></a>00216 
-<a name="l00217"></a><a class="code" href="classInspSocket.html#Poll_28_29">00217</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Poll_28_29">InspSocket::Poll</a>()
-<a name="l00218"></a>00218 {
-<a name="l00219"></a>00219         <span class="keywordtype">int</span> incoming = -1;
-<a name="l00220"></a>00220         
-<a name="l00221"></a>00221         <span class="keywordflow">switch</span> (this-&gt;state)
-<a name="l00222"></a>00222         {
-<a name="l00223"></a>00223                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>:
-<a name="l00224"></a>00224                         this-&gt;<a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>);
-<a name="l00225"></a>00225                         <span class="comment">/* Our socket was in write-state, so delete it and re-add it</span>
-<a name="l00226"></a>00226 <span class="comment">                         * in read-state.</span>
-<a name="l00227"></a>00227 <span class="comment">                         */</span>
-<a name="l00228"></a>00228                         SE-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(this-&gt;fd);
-<a name="l00229"></a>00229                         SE-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
-<a name="l00230"></a>00230                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
-<a name="l00231"></a>00231                 <span class="keywordflow">break</span>;
-<a name="l00232"></a>00232                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>:
-<a name="l00233"></a>00233                         <a class="code" href="classInspSocket.html#length">length</a> = <span class="keyword">sizeof</span> (<a class="code" href="classInspSocket.html#client">client</a>);
-<a name="l00234"></a>00234                         incoming = accept (this-&gt;fd, (sockaddr*)&amp;<a class="code" href="classInspSocket.html#client">client</a>,&amp;<a class="code" href="classInspSocket.html#length">length</a>);
-<a name="l00235"></a>00235                         this-&gt;<a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(incoming,inet_ntoa(client.sin_addr));
-<a name="l00236"></a>00236                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00237"></a>00237                 <span class="keywordflow">break</span>;
-<a name="l00238"></a>00238                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>:
-<a name="l00239"></a>00239                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
-<a name="l00240"></a>00240                 <span class="keywordflow">break</span>;
-<a name="l00241"></a>00241                 <span class="keywordflow">default</span>:
-<a name="l00242"></a>00242                 <span class="keywordflow">break</span>;
-<a name="l00243"></a>00243         }
-<a name="l00244"></a>00244 
-<a name="l00245"></a>00245         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247 
-<a name="l00248"></a><a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">00248</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">InspSocket::SetState</a>(<a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> s)
-<a name="l00249"></a>00249 {
-<a name="l00250"></a>00250         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Socket state change"</span>);
-<a name="l00251"></a>00251         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = s;
-<a name="l00252"></a>00252 }
-<a name="l00253"></a>00253 
-<a name="l00254"></a><a class="code" href="classInspSocket.html#GetState_28_29">00254</a> <a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> <a class="code" href="classInspSocket.html#GetState_28_29">InspSocket::GetState</a>()
-<a name="l00255"></a>00255 {
-<a name="l00256"></a>00256         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#state">state</a>;
-<a name="l00257"></a>00257 }
-<a name="l00258"></a>00258 
-<a name="l00259"></a><a class="code" href="classInspSocket.html#GetFd_28_29">00259</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#GetFd_28_29">InspSocket::GetFd</a>()
-<a name="l00260"></a>00260 {
-<a name="l00261"></a>00261         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>;
-<a name="l00262"></a>00262 }
-<a name="l00263"></a>00263 
-<a name="l00264"></a><a class="code" href="classInspSocket.html#OnConnected_28_29">00264</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnConnected_28_29">InspSocket::OnConnected</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
-<a name="l00265"></a><a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">00265</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">InspSocket::OnError</a>(<a class="code" href="socket_8h.html#InspSocketError">InspSocketError</a> e) { <span class="keywordflow">return</span>; }
-<a name="l00266"></a><a class="code" href="classInspSocket.html#OnDisconnect_28_29">00266</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnDisconnect_28_29">InspSocket::OnDisconnect</a>() { <span class="keywordflow">return</span> 0; }
-<a name="l00267"></a><a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">00267</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">InspSocket::OnIncomingConnection</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip) { <span class="keywordflow">return</span> 0; }
-<a name="l00268"></a><a class="code" href="classInspSocket.html#OnDataReady_28_29">00268</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnDataReady_28_29">InspSocket::OnDataReady</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
-<a name="l00269"></a><a class="code" href="classInspSocket.html#OnTimeout_28_29">00269</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnTimeout_28_29">InspSocket::OnTimeout</a>() { <span class="keywordflow">return</span>; }
-<a name="l00270"></a><a class="code" href="classInspSocket.html#OnClose_28_29">00270</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnClose_28_29">InspSocket::OnClose</a>() { <span class="keywordflow">return</span>; }
-<a name="l00271"></a>00271 
-<a name="l00272"></a><a class="code" href="classInspSocket.html#_7EInspSocket_28_29">00272</a> <a class="code" href="classInspSocket.html#_7EInspSocket_28_29">InspSocket::~InspSocket</a>()
-<a name="l00273"></a>00273 {
-<a name="l00274"></a>00274         this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00275"></a>00275 }
-<a name="l00276"></a>00276 
-<a name="l00277"></a>00277 <span class="comment">/*</span>
-<a name="l00278"></a>00278 <span class="comment">int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr)</span>
-<a name="l00279"></a>00279 <span class="comment">int OpenTCPSocket (void)</span>
-<a name="l00280"></a>00280 <span class="comment">*/</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00040"></a>00040 <span class="keyword">extern</span> <a class="code" href="classInspIRCd.html">InspIRCd</a>* <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>;
+<a name="l00041"></a>00041 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00042"></a>00042 
+<a name="l00043"></a><a class="code" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">00043</a> <a class="code" href="classInspSocket.html">InspSocket</a>* <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535];
+<a name="l00044"></a>00044 
+<a name="l00045"></a><a class="code" href="classInspSocket.html#InspSocket_28_29">00045</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>()
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FDISCONNECTED">I_DISCONNECTED</a>;
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a><a class="code" href="classInspSocket.html#InspSocket_28int_20newfd_2C_20char_20_2Aip_29">00050</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip)
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = newfd;
+<a name="l00053"></a>00053         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>;
+<a name="l00054"></a>00054         this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
+<a name="l00055"></a>00055         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00056"></a>00056         socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00059"></a><a class="code" href="classInspSocket.html#InspSocket_28std_3A_3Astring_20host_2C_20int_20port_2C_20bool_20listening_2C_20unsigned_20long_20maxtime_29">00059</a> <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket::InspSocket</a>(<a class="code" href="namespaceirc.html#string">std::string</a> host, <span class="keywordtype">int</span> port, <span class="keywordtype">bool</span> listening, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxtime)
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061         <span class="keywordflow">if</span> (listening) {
+<a name="l00062"></a>00062                 <span class="keywordflow">if</span> ((this-&gt;fd = <a class="code" href="inspircd__io_8h.html#OpenTCPSocket_28void_29">OpenTCPSocket</a>()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
+<a name="l00063"></a>00063                 {
+<a name="l00064"></a>00064                         this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00065"></a>00065                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00066"></a>00066                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
+<a name="l00067"></a>00067                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"OpenTCPSocket() error"</span>);
+<a name="l00068"></a>00068                         <span class="keywordflow">return</span>;
+<a name="l00069"></a>00069                 }
+<a name="l00070"></a>00070                 <span class="keywordflow">else</span>
+<a name="l00071"></a>00071                 {
+<a name="l00072"></a>00072                         <span class="keywordflow">if</span> (<a class="code" href="inspircd__io_8h.html#BindSocket_28int_20sockfd_2C_20struct_20sockaddr_5Fin_20client_2C_20struct_20sockaddr_5Fin_20server_2C_20int_20port_2C_20char_20_2Aaddr_29">BindSocket</a>(this-&gt;fd,this-&gt;client,this-&gt;server,port,(<span class="keywordtype">char</span>*)host.c_str()) == <a class="code" href="inspircd_8h.html#ERROR">ERROR</a>)
+<a name="l00073"></a>00073                         {
+<a name="l00074"></a>00074                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00075"></a>00075                                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00076"></a>00076                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00077"></a>00077                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FBIND">I_ERR_BIND</a>);
+<a name="l00078"></a>00078                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BindSocket() error %s"</span>,strerror(errno));
+<a name="l00079"></a>00079                                 <span class="keywordflow">return</span>;
+<a name="l00080"></a>00080                         }
+<a name="l00081"></a>00081                         <span class="keywordflow">else</span>
+<a name="l00082"></a>00082                         {
+<a name="l00083"></a>00083                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>;
+<a name="l00084"></a>00084                                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00085"></a>00085                                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00086"></a>00086                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"New socket now in I_LISTENING state"</span>);
+<a name="l00087"></a>00087                                 <span class="keywordflow">return</span>;
+<a name="l00088"></a>00088                         }
+<a name="l00089"></a>00089                 }                       
+<a name="l00090"></a>00090         } <span class="keywordflow">else</span> {
+<a name="l00091"></a>00091                 <span class="keywordtype">char</span>* ip;
+<a name="l00092"></a>00092                 this-&gt;host = host;
+<a name="l00093"></a>00093                 hostent* hoste = gethostbyname(host.c_str());
+<a name="l00094"></a>00094                 <span class="keywordflow">if</span> (!hoste) {
+<a name="l00095"></a>00095                         ip = (<span class="keywordtype">char</span>*)host.c_str();
+<a name="l00096"></a>00096                 } <span class="keywordflow">else</span> {
+<a name="l00097"></a>00097                         <span class="keyword">struct </span>in_addr* ia = (in_addr*)hoste-&gt;h_addr;
+<a name="l00098"></a>00098                         ip = inet_ntoa(*ia);
+<a name="l00099"></a>00099                 }
+<a name="l00100"></a>00100 
+<a name="l00101"></a>00101                 this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a> = ip;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103                 <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a> = time(NULL)+maxtime;
+<a name="l00104"></a>00104                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">false</span>;
+<a name="l00105"></a>00105                 <span class="keywordflow">if</span> ((this-&gt;fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
+<a name="l00106"></a>00106                 {
+<a name="l00107"></a>00107                         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00108"></a>00108                         this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FSOCKET">I_ERR_SOCKET</a>);
+<a name="l00109"></a>00109                         <span class="keywordflow">return</span>;
+<a name="l00110"></a>00110                 }
+<a name="l00111"></a>00111                 this-&gt;port = port;
+<a name="l00112"></a>00112                 inet_aton(ip,&amp;<a class="code" href="classInspSocket.html#addy">addy</a>);
+<a name="l00113"></a>00113                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_family = AF_INET;
+<a name="l00114"></a>00114                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_addr = <a class="code" href="classInspSocket.html#addy">addy</a>;
+<a name="l00115"></a>00115                 <a class="code" href="classInspSocket.html#addr">addr</a>.sin_port = htons(this-&gt;port);
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117                 <span class="keywordtype">int</span> flags;
+<a name="l00118"></a>00118                 flags = fcntl(this-&gt;fd, F_GETFL, 0);
+<a name="l00119"></a>00119                 fcntl(this-&gt;fd, F_SETFL, flags | O_NONBLOCK);
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121                 <span class="keywordflow">if</span>(connect(this-&gt;fd, (sockaddr*)&amp;this-&gt;addr,<span class="keyword">sizeof</span>(this-&gt;addr)) == -1)
+<a name="l00122"></a>00122                 {
+<a name="l00123"></a>00123                         <span class="keywordflow">if</span> (errno != EINPROGRESS)
+<a name="l00124"></a>00124                         {
+<a name="l00125"></a>00125                                 this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00126"></a>00126                                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FCONNECT">I_ERR_CONNECT</a>);
+<a name="l00127"></a>00127                                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00128"></a>00128                                 <span class="keywordflow">return</span>;
+<a name="l00129"></a>00129                         }
+<a name="l00130"></a>00130                 }
+<a name="l00131"></a>00131                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>;
+<a name="l00132"></a>00132                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">false</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00133"></a>00133                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = <span class="keyword">this</span>;
+<a name="l00134"></a>00134                 <span class="keywordflow">return</span>;
+<a name="l00135"></a>00135         }
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137 
+<a name="l00138"></a><a class="code" href="classInspSocket.html#Close_28_29">00138</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#Close_28_29">InspSocket::Close</a>()
+<a name="l00139"></a>00139 {
+<a name="l00140"></a>00140         <span class="keywordflow">if</span> (this-&gt;fd != -1)
+<a name="l00141"></a>00141         {
+<a name="l00142"></a>00142                 this-&gt;<a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
+<a name="l00143"></a>00143                 shutdown(this-&gt;fd,2);
+<a name="l00144"></a>00144                 close(this-&gt;fd);
+<a name="l00145"></a>00145                 socket_ref[this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>] = NULL;
+<a name="l00146"></a>00146                 this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a> = -1;
+<a name="l00147"></a>00147         }
+<a name="l00148"></a>00148 }
+<a name="l00149"></a>00149 
+<a name="l00150"></a><a class="code" href="classInspSocket.html#GetIP_28_29">00150</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#GetIP_28_29">InspSocket::GetIP</a>()
+<a name="l00151"></a>00151 {
+<a name="l00152"></a>00152         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#IP">IP</a>;
+<a name="l00153"></a>00153 }
+<a name="l00154"></a>00154 
+<a name="l00155"></a><a class="code" href="classInspSocket.html#Read_28_29">00155</a> <span class="keywordtype">char</span>* <a class="code" href="classInspSocket.html#Read_28_29">InspSocket::Read</a>()
+<a name="l00156"></a>00156 {
+<a name="l00157"></a>00157         <span class="keywordtype">int</span> n = recv(this-&gt;fd,this-&gt;ibuf,<span class="keyword">sizeof</span>(this-&gt;ibuf),0);
+<a name="l00158"></a>00158         <span class="keywordflow">if</span> (n &gt; 0)
+<a name="l00159"></a>00159         {
+<a name="l00160"></a>00160                 <a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a>[n] = 0;
+<a name="l00161"></a>00161                 <span class="keywordflow">return</span> <a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a>;
+<a name="l00162"></a>00162         }
+<a name="l00163"></a>00163         <span class="keywordflow">else</span>
+<a name="l00164"></a>00164         {
+<a name="l00165"></a>00165                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"EOF or error on socket"</span>);
+<a name="l00166"></a>00166                 <span class="keywordflow">return</span> NULL;
+<a name="l00167"></a>00167         }
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="comment">// There are two possible outcomes to this function.</span>
+<a name="l00171"></a>00171 <span class="comment">// It will either write all of the data, or an undefined amount.</span>
+<a name="l00172"></a>00172 <span class="comment">// If an undefined amount is written the connection has failed</span>
+<a name="l00173"></a>00173 <span class="comment">// and should be aborted.</span>
+<a name="l00174"></a><a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">00174</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">InspSocket::Write</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data)
+<a name="l00175"></a>00175 {
+<a name="l00176"></a>00176         this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> = this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> + data;
+<a name="l00177"></a>00177         this-&gt;<a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>();
+<a name="l00178"></a>00178         <span class="keywordflow">return</span> data.length();
+<a name="l00179"></a>00179 }
+<a name="l00180"></a>00180 
+<a name="l00181"></a><a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">00181</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">InspSocket::FlushWriteBuffer</a>()
+<a name="l00182"></a>00182 {
+<a name="l00183"></a>00183         <span class="keywordtype">int</span> result = 0;
+<a name="l00184"></a>00184         <span class="keywordflow">if</span> (this-&gt;Buffer.length())
+<a name="l00185"></a>00185         {
+<a name="l00186"></a>00186                 result = send(this-&gt;fd,this-&gt;Buffer.c_str(),this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a>.length(),0);
+<a name="l00187"></a>00187                 <span class="keywordflow">if</span> (result &gt; 0)
+<a name="l00188"></a>00188                 {
+<a name="l00189"></a>00189                         <span class="comment">/* If we wrote some, advance the buffer forwards */</span>
+<a name="l00190"></a>00190                         <span class="keywordtype">char</span>* n = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a>.c_str();
+<a name="l00191"></a>00191                         n += result;
+<a name="l00192"></a>00192                         this-&gt;<a class="code" href="classInspSocket.html#Buffer">Buffer</a> = n;
+<a name="l00193"></a>00193                 }
+<a name="l00194"></a>00194         }
+<a name="l00195"></a>00195 }
+<a name="l00196"></a>00196 
+<a name="l00197"></a><a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">00197</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">InspSocket::Timeout</a>(time_t current)
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199         <span class="keywordflow">if</span> ((this-&gt;state == <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>) &amp;&amp; (current &gt; <a class="code" href="classInspSocket.html#timeout_5Fend">timeout_end</a>))
+<a name="l00200"></a>00200         {
+<a name="l00201"></a>00201                 <span class="comment">// for non-listening sockets, the timeout can occur</span>
+<a name="l00202"></a>00202                 <span class="comment">// which causes termination of the connection after</span>
+<a name="l00203"></a>00203                 <span class="comment">// the given number of seconds without a successful</span>
+<a name="l00204"></a>00204                 <span class="comment">// connection.</span>
+<a name="l00205"></a>00205                 this-&gt;<a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
+<a name="l00206"></a>00206                 this-&gt;<a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketErrorI_5FERR_5FTIMEOUT">I_ERR_TIMEOUT</a>);
+<a name="l00207"></a>00207                 <a class="code" href="classInspSocket.html#timeout">timeout</a> = <span class="keyword">true</span>;
+<a name="l00208"></a>00208                 this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = <a class="code" href="socket_8h.html#InspSocketStateI_5FERROR">I_ERROR</a>;
+<a name="l00209"></a>00209                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00210"></a>00210         }
+<a name="l00211"></a>00211         <span class="keywordflow">if</span> (this-&gt;Buffer.length())
+<a name="l00212"></a>00212                 this-&gt;<a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>();
+<a name="l00213"></a>00213         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00214"></a>00214 }
+<a name="l00215"></a>00215 
+<a name="l00216"></a><a class="code" href="classInspSocket.html#Poll_28_29">00216</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Poll_28_29">InspSocket::Poll</a>()
+<a name="l00217"></a>00217 {
+<a name="l00218"></a>00218         <span class="keywordtype">int</span> incoming = -1;
+<a name="l00219"></a>00219         
+<a name="l00220"></a>00220         <span class="keywordflow">switch</span> (this-&gt;state)
+<a name="l00221"></a>00221         {
+<a name="l00222"></a>00222                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTING">I_CONNECTING</a>:
+<a name="l00223"></a>00223                         this-&gt;<a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>);
+<a name="l00224"></a>00224                         <span class="comment">/* Our socket was in write-state, so delete it and re-add it</span>
+<a name="l00225"></a>00225 <span class="comment">                         * in read-state.</span>
+<a name="l00226"></a>00226 <span class="comment">                         */</span>
+<a name="l00227"></a>00227                         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(this-&gt;fd);
+<a name="l00228"></a>00228                         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(this-&gt;fd,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FMODULE">X_ESTAB_MODULE</a>);
+<a name="l00229"></a>00229                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
+<a name="l00230"></a>00230                 <span class="keywordflow">break</span>;
+<a name="l00231"></a>00231                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FLISTENING">I_LISTENING</a>:
+<a name="l00232"></a>00232                         <a class="code" href="classInspSocket.html#length">length</a> = <span class="keyword">sizeof</span> (<a class="code" href="classInspSocket.html#client">client</a>);
+<a name="l00233"></a>00233                         incoming = accept (this-&gt;fd, (sockaddr*)&amp;<a class="code" href="classInspSocket.html#client">client</a>,&amp;<a class="code" href="classInspSocket.html#length">length</a>);
+<a name="l00234"></a>00234                         this-&gt;<a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(incoming,inet_ntoa(client.sin_addr));
+<a name="l00235"></a>00235                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00236"></a>00236                 <span class="keywordflow">break</span>;
+<a name="l00237"></a>00237                 <span class="keywordflow">case</span> <a class="code" href="socket_8h.html#InspSocketStateI_5FCONNECTED">I_CONNECTED</a>:
+<a name="l00238"></a>00238                         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
+<a name="l00239"></a>00239                 <span class="keywordflow">break</span>;
+<a name="l00240"></a>00240                 <span class="keywordflow">default</span>:
+<a name="l00241"></a>00241                 <span class="keywordflow">break</span>;
+<a name="l00242"></a>00242         }
+<a name="l00243"></a>00243 
+<a name="l00244"></a>00244         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00245"></a>00245 }
+<a name="l00246"></a>00246 
+<a name="l00247"></a><a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">00247</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">InspSocket::SetState</a>(<a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> s)
+<a name="l00248"></a>00248 {
+<a name="l00249"></a>00249         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Socket state change"</span>);
+<a name="l00250"></a>00250         this-&gt;<a class="code" href="classInspSocket.html#state">state</a> = s;
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252 
+<a name="l00253"></a><a class="code" href="classInspSocket.html#GetState_28_29">00253</a> <a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> <a class="code" href="classInspSocket.html#GetState_28_29">InspSocket::GetState</a>()
+<a name="l00254"></a>00254 {
+<a name="l00255"></a>00255         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#state">state</a>;
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257 
+<a name="l00258"></a><a class="code" href="classInspSocket.html#GetFd_28_29">00258</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#GetFd_28_29">InspSocket::GetFd</a>()
+<a name="l00259"></a>00259 {
+<a name="l00260"></a>00260         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classInspSocket.html#fd">fd</a>;
+<a name="l00261"></a>00261 }
+<a name="l00262"></a>00262 
+<a name="l00263"></a><a class="code" href="classInspSocket.html#OnConnected_28_29">00263</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnConnected_28_29">InspSocket::OnConnected</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+<a name="l00264"></a><a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">00264</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">InspSocket::OnError</a>(<a class="code" href="socket_8h.html#InspSocketError">InspSocketError</a> e) { <span class="keywordflow">return</span>; }
+<a name="l00265"></a><a class="code" href="classInspSocket.html#OnDisconnect_28_29">00265</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnDisconnect_28_29">InspSocket::OnDisconnect</a>() { <span class="keywordflow">return</span> 0; }
+<a name="l00266"></a><a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">00266</a> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">InspSocket::OnIncomingConnection</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip) { <span class="keywordflow">return</span> 0; }
+<a name="l00267"></a><a class="code" href="classInspSocket.html#OnDataReady_28_29">00267</a> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnDataReady_28_29">InspSocket::OnDataReady</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }
+<a name="l00268"></a><a class="code" href="classInspSocket.html#OnTimeout_28_29">00268</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnTimeout_28_29">InspSocket::OnTimeout</a>() { <span class="keywordflow">return</span>; }
+<a name="l00269"></a><a class="code" href="classInspSocket.html#OnClose_28_29">00269</a> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnClose_28_29">InspSocket::OnClose</a>() { <span class="keywordflow">return</span>; }
+<a name="l00270"></a>00270 
+<a name="l00271"></a><a class="code" href="classInspSocket.html#_7EInspSocket_28_29">00271</a> <a class="code" href="classInspSocket.html#_7EInspSocket_28_29">InspSocket::~InspSocket</a>()
+<a name="l00272"></a>00272 {
+<a name="l00273"></a>00273         this-&gt;<a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00274"></a>00274 }
+<a name="l00275"></a>00275 
+<a name="l00276"></a>00276 <span class="comment">/*</span>
+<a name="l00277"></a>00277 <span class="comment">int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr)</span>
+<a name="l00278"></a>00278 <span class="comment">int OpenTCPSocket (void)</span>
+<a name="l00279"></a>00279 <span class="comment">*/</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index fda9e1ce727cc3573e69a3f3c1b66bb9abf50fdb..8a47414ce52eae485d1fb1affcf51b902fc8df4d 100644 (file)
@@ -23,7 +23,6 @@
 <code>#include &quot;<a class="el" href="socket_8h-source.html">socket.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
 <code>#include &quot;<a class="el" href="inspircd__io_8h-source.html">inspircd_io.h</a>&quot;</code><br>
-<code>#include &quot;inspircd_util.h&quot;</code><br>
 <code>#include &quot;inspstring.h&quot;</code><br>
 <code>#include &quot;helperfuncs.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="socketengine_8h-source.html">socketengine.h</a>&quot;</code><br>
 <p>
 Include dependency graph for socket.cpp:<p><center><img src="socket_8cpp__incl.gif" border="0" usemap="#socket.cpp_map" alt=""></center>
 <map name="socket.cpp_map">
-<area href="socket_8h-source.html" shape="rect" coords="456,374,528,400" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="301,450,381,476" alt="">
-<area href="inspircd__io_8h-source.html" shape="rect" coords="444,424,540,451" alt="">
-<area href="socketengine_8h-source.html" shape="rect" coords="140,830,252,856" alt="">
+<area href="socket_8h-source.html" shape="rect" coords="318,463,390,490" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="155,424,235,451" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="306,564,402,591" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="298,210,410,236" alt="">
 </map>
 
 <p>
 <a href="socket_8cpp-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>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8cpp.html#SE">SE</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8cpp.html#boundPortCount">boundPortCount</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">openSockfd</a> [MAXSOCKS]</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8cpp.html#ServerInstance">ServerInstance</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8cpp.html#TIME">TIME</a></td></tr>
 
@@ -53,59 +48,13 @@ Include dependency graph for socket.cpp:<p><center><img src="socket_8cpp__incl.g
 
 </table>
 <hr><h2>Variable Documentation</h2>
-<a class="anchor" name="boundPortCount"></a><!-- doxytag: member="socket.cpp::boundPortCount" ref="boundPortCount" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="socket_8cpp.html#boundPortCount">boundPortCount</a>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="openSockfd_5BMAXSOCKS_5D"></a><!-- doxytag: member="socket.cpp::openSockfd" ref="openSockfd_5BMAXSOCKS_5D" args="[MAXSOCKS]" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="socket_8cpp.html#openSockfd_5BMAXSOCKS_5D">openSockfd</a>[MAXSOCKS]          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="SE"></a><!-- doxytag: member="socket.cpp::SE" ref="SE" args="" --><p>
+<a class="anchor" name="ServerInstance"></a><!-- doxytag: member="socket.cpp::ServerInstance" ref="ServerInstance" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classSocketEngine.html">SocketEngine</a>* <a class="el" href="socket_8cpp.html#SE">SE</a>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a>* <a class="el" href="users_8cpp.html#ServerInstance">ServerInstance</a>          </td>
         </tr>
       </table>
     </td>
@@ -128,7 +77,7 @@ Include dependency graph for socket.cpp:<p><center><img src="socket_8cpp__incl.g
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="classInspSocket.html">InspSocket</a>* <a class="el" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535]          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspSocket.html">InspSocket</a>* <a class="el" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535]          </td>
         </tr>
       </table>
     </td>
@@ -144,7 +93,7 @@ Include dependency graph for socket.cpp:<p><center><img src="socket_8cpp__incl.g
 <p>
 
 <p>
-Definition at line <a class="el" href="socket_8cpp-source.html#l00046">46</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.    </td>
+Definition at line <a class="el" href="socket_8cpp-source.html#l00043">43</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="TIME"></a><!-- doxytag: member="socket.cpp::TIME" ref="TIME" args="" --><p>
@@ -170,7 +119,7 @@ Definition at line <a class="el" href="socket_8cpp-source.html#l00046">46</a> of
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e5dbf66ebd6d5a168a3dbf4028b8b5192256fe92..42039b39026870a557e03b65a782294fc022e853 100644 (file)
@@ -1,5 +1,5 @@
 base referer
-rect $socket_8h-source.html 456,374 528,400
-rect $inspircd_8h-source.html 301,450 381,476
-rect $inspircd__io_8h-source.html 444,424 540,451
-rect $socketengine_8h-source.html 140,830 252,856
+rect $socket_8h-source.html 318,463 390,490
+rect $inspircd_8h-source.html 155,424 235,451
+rect $inspircd__io_8h-source.html 306,564 402,591
+rect $socketengine_8h-source.html 298,210 410,236
index 532a9daa04487d4aa7c3c130500ede7a3528ce7c..0c7a5d7de7521ace28c4623d5e4e130681c27108 100644 (file)
@@ -1 +1 @@
-9f75c46dbd63c7144404dcb531abb481
\ No newline at end of file
+03426437789107bb0505454dfe45ab2a
\ No newline at end of file
index 4001154a5816fc813d4b26dac8021e5076b9b936..601404fc35f7eff838e21f2cbbea5604b67239b5 100644 (file)
 <a name="l00092"></a>00092 
 <a name="l00097"></a><a class="code" href="classInspSocket.html#timeout">00097</a>         <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#timeout">timeout</a>;
 <a name="l00098"></a>00098         
-<a name="l00106"></a><a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">00106</a>         <span class="keywordtype">char</span> <a class="code" href="classInspSocket.html#ibuf_5B_31_36_33_38_34_5D">ibuf</a>[16384];
+<a name="l00106"></a><a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">00106</a>         <span class="keywordtype">char</span> <a class="code" href="classInspSocket.html#ibuf_5B_36_35_35_33_35_5D">ibuf</a>[65535];
 <a name="l00107"></a>00107 
-<a name="l00113"></a><a class="code" href="classInspSocket.html#IP">00113</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#IP">IP</a>;
-<a name="l00114"></a>00114 
-<a name="l00119"></a><a class="code" href="classInspSocket.html#client">00119</a>         sockaddr_in <a class="code" href="classInspSocket.html#client">client</a>;
-<a name="l00120"></a>00120 
-<a name="l00125"></a><a class="code" href="classInspSocket.html#server">00125</a>         sockaddr_in <a class="code" href="classInspSocket.html#server">server</a>;
-<a name="l00126"></a>00126 
-<a name="l00131"></a><a class="code" href="classInspSocket.html#length">00131</a>         socklen_t <a class="code" href="classInspSocket.html#length">length</a>;
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133 <span class="keyword">public</span>:
-<a name="l00134"></a>00134 
-<a name="l00139"></a>00139         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>();
-<a name="l00140"></a>00140 
-<a name="l00149"></a>00149         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip);
-<a name="l00150"></a>00150 
-<a name="l00160"></a>00160         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>(<a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#host">host</a>, <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#port">port</a>, <span class="keywordtype">bool</span> listening, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxtime);
-<a name="l00161"></a>00161 
-<a name="l00167"></a>00167         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
-<a name="l00168"></a>00168 
-<a name="l00175"></a>00175         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketError">InspSocketError</a> e);
-<a name="l00176"></a>00176 
-<a name="l00181"></a>00181         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnDisconnect_28_29">OnDisconnect</a>();
-<a name="l00182"></a>00182 
-<a name="l00195"></a>00195         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
-<a name="l00196"></a>00196 
-<a name="l00204"></a>00204         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
+<a name="l00111"></a><a class="code" href="classInspSocket.html#Buffer">00111</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#Buffer">Buffer</a>;
+<a name="l00112"></a>00112 
+<a name="l00118"></a><a class="code" href="classInspSocket.html#IP">00118</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#IP">IP</a>;
+<a name="l00119"></a>00119 
+<a name="l00124"></a><a class="code" href="classInspSocket.html#client">00124</a>         sockaddr_in <a class="code" href="classInspSocket.html#client">client</a>;
+<a name="l00125"></a>00125 
+<a name="l00130"></a><a class="code" href="classInspSocket.html#server">00130</a>         sockaddr_in <a class="code" href="classInspSocket.html#server">server</a>;
+<a name="l00131"></a>00131 
+<a name="l00136"></a><a class="code" href="classInspSocket.html#length">00136</a>         socklen_t <a class="code" href="classInspSocket.html#length">length</a>;
+<a name="l00137"></a>00137 
+<a name="l00140"></a>00140         <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#FlushWriteBuffer_28_29">FlushWriteBuffer</a>();
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142 <span class="keyword">public</span>:
+<a name="l00143"></a>00143 
+<a name="l00148"></a>00148         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>();
+<a name="l00149"></a>00149 
+<a name="l00158"></a>00158         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip);
+<a name="l00159"></a>00159 
+<a name="l00169"></a>00169         <a class="code" href="classInspSocket.html#InspSocket_28_29">InspSocket</a>(<a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#host">host</a>, <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#port">port</a>, <span class="keywordtype">bool</span> listening, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxtime);
+<a name="l00170"></a>00170 
+<a name="l00176"></a>00176         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnConnected_28_29">OnConnected</a>();
+<a name="l00177"></a>00177 
+<a name="l00184"></a>00184         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnError_28InspSocketError_20e_29">OnError</a>(<a class="code" href="socket_8h.html#InspSocketError">InspSocketError</a> e);
+<a name="l00185"></a>00185 
+<a name="l00190"></a>00190         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnDisconnect_28_29">OnDisconnect</a>();
+<a name="l00191"></a>00191 
+<a name="l00204"></a>00204         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#OnDataReady_28_29">OnDataReady</a>();
 <a name="l00205"></a>00205 
-<a name="l00214"></a>00214         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
-<a name="l00215"></a>00215 
-<a name="l00221"></a>00221         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classInspSocket.html#Read_28_29">Read</a>();
-<a name="l00222"></a>00222 
-<a name="l00228"></a>00228         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#GetIP_28_29">GetIP</a>();
-<a name="l00229"></a>00229 
-<a name="l00236"></a>00236         <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">Timeout</a>(time_t current);
-<a name="l00237"></a>00237 
-<a name="l00243"></a>00243         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">Write</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data);
-<a name="l00244"></a>00244 
-<a name="l00258"></a>00258         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip);
-<a name="l00259"></a>00259 
-<a name="l00265"></a>00265         <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> s);
-<a name="l00266"></a>00266 
-<a name="l00270"></a>00270         <a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> <a class="code" href="classInspSocket.html#GetState_28_29">GetState</a>();
-<a name="l00271"></a>00271 
-<a name="l00280"></a>00280         <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Poll_28_29">Poll</a>();
-<a name="l00281"></a>00281 
-<a name="l00287"></a>00287         <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#GetFd_28_29">GetFd</a>();
-<a name="l00288"></a>00288 
-<a name="l00294"></a>00294         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
-<a name="l00295"></a>00295 
-<a name="l00301"></a>00301         <span class="keyword">virtual</span> <a class="code" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a>();
-<a name="l00302"></a>00302 };
-<a name="l00303"></a>00303 
-<a name="l00304"></a>00304 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00213"></a>00213         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnTimeout_28_29">OnTimeout</a>();
+<a name="l00214"></a>00214 
+<a name="l00223"></a>00223         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#OnClose_28_29">OnClose</a>();
+<a name="l00224"></a>00224 
+<a name="l00230"></a>00230         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classInspSocket.html#Read_28_29">Read</a>();
+<a name="l00231"></a>00231 
+<a name="l00237"></a>00237         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classInspSocket.html#GetIP_28_29">GetIP</a>();
+<a name="l00238"></a>00238 
+<a name="l00245"></a>00245         <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Timeout_28time_5Ft_20current_29">Timeout</a>(time_t current);
+<a name="l00246"></a>00246 
+<a name="l00252"></a>00252         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#Write_28std_3A_3Astring_20data_29">Write</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data);
+<a name="l00253"></a>00253 
+<a name="l00267"></a>00267         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#OnIncomingConnection_28int_20newfd_2C_20char_20_2Aip_29">OnIncomingConnection</a>(<span class="keywordtype">int</span> newfd, <span class="keywordtype">char</span>* ip);
+<a name="l00268"></a>00268 
+<a name="l00274"></a>00274         <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#SetState_28InspSocketState_20s_29">SetState</a>(<a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> s);
+<a name="l00275"></a>00275 
+<a name="l00279"></a>00279         <a class="code" href="socket_8h.html#InspSocketState">InspSocketState</a> <a class="code" href="classInspSocket.html#GetState_28_29">GetState</a>();
+<a name="l00280"></a>00280 
+<a name="l00289"></a>00289         <span class="keywordtype">bool</span> <a class="code" href="classInspSocket.html#Poll_28_29">Poll</a>();
+<a name="l00290"></a>00290 
+<a name="l00296"></a>00296         <span class="keywordtype">int</span> <a class="code" href="classInspSocket.html#GetFd_28_29">GetFd</a>();
+<a name="l00297"></a>00297 
+<a name="l00303"></a>00303         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classInspSocket.html#Close_28_29">Close</a>();
+<a name="l00304"></a>00304 
+<a name="l00310"></a>00310         <span class="keyword">virtual</span> <a class="code" href="classInspSocket.html#_7EInspSocket_28_29">~InspSocket</a>();
+<a name="l00311"></a>00311 };
+<a name="l00312"></a>00312 
+<a name="l00313"></a>00313 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 6a07f6829960aa6fce473e4f94818954c30a383c..f06eb2bdfa68af7bfd62573d983fc933fb2b6416 100644 (file)
@@ -21,8 +21,8 @@ This graph shows which files directly or indirectly include this file:<p><center
 <map name="socket.hdep_map">
 <area href="modules_8cpp-source.html" shape="rect" coords="260,57,359,84" alt="">
 <area href="socket_8cpp-source.html" shape="rect" coords="267,133,352,160" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="129,108,209,135" alt="">
 <area href="modules_8h-source.html" shape="rect" coords="128,57,211,84" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="129,108,209,135" alt="">
 </map>
 
 <p>
@@ -139,7 +139,7 @@ Definition at line <a class="el" href="socket_8h-source.html#l00029">29</a> of f
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 39631ee0c02679e5aa2a1a4a9fd069624e6cf663..9aac42e323bf8d220d62eaec82713f55e11e6de9 100644 (file)
@@ -1,5 +1,5 @@
 base referer
 rect $modules_8cpp-source.html 260,57 359,84
 rect $socket_8cpp-source.html 267,133 352,160
-rect $inspircd_8h-source.html 129,108 209,135
 rect $modules_8h-source.html 128,57 211,84
+rect $inspircd_8h-source.html 129,108 209,135
index 5264f4ee160cec77b2396d0e1ccc824e58cfd370..f7ea8f6d99c43d212133f9c10ecb0c722c841373 100644 (file)
@@ -1 +1 @@
-3c191a72f21affbd7a2ef0ada34c2b11
\ No newline at end of file
+44d57d2060fc1c23df1ada0b15f0d062
\ No newline at end of file
index 9811eef6b608702a37c198667fb676a63a1ec2ca..e0476430188e0d903b5804bbc9d125270f607687 100644 (file)
 <a name="l00203"></a>00203 <span class="preprocessor">#endif</span>
 <a name="l00204"></a>00204 <span class="preprocessor"></span>        <span class="keywordflow">return</span> <span class="stringliteral">"misconfigured"</span>;
 <a name="l00205"></a>00205 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 35ea9bd95e9554d21701a7eee20d8f7b92fd244e..9c1891efc711847fa753c61c8c15527ee0509668 100644 (file)
@@ -17,9 +17,9 @@
 <p>
 Include dependency graph for socketengine.cpp:<p><center><img src="socketengine_8cpp__incl.gif" border="0" usemap="#socketengine.cpp_map" alt=""></center>
 <map name="socketengine.cpp_map">
-<area href="globals_8h-source.html" shape="rect" coords="343,209,417,236" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="340,57,420,84" alt="">
-<area href="socketengine_8h-source.html" shape="rect" coords="180,159,292,185" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="492,210,567,236" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="180,108,260,135" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="308,159,420,186" alt="">
 </map>
 
 <p>
@@ -57,7 +57,7 @@ Definition at line <a class="el" href="socketengine_8cpp-source.html#l00033">33<
 Referenced by <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00057">SocketEngine::GetType()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00146">SocketEngine::Wait()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index e7b56eb071256141066a2c032806e594be69ebfb..c2c0abf481bf254e865fe4939f1dea41b9060c70 100644 (file)
@@ -1,4 +1,4 @@
 base referer
-rect $globals_8h-source.html 343,209 417,236
-rect $inspircd_8h-source.html 340,57 420,84
-rect $socketengine_8h-source.html 180,159 292,185
+rect $globals_8h-source.html 492,210 567,236
+rect $inspircd_8h-source.html 180,108 260,135
+rect $socketengine_8h-source.html 308,159 420,186
index 333ce28063f168bc87657f5bfbcdb915b0cc6446..e8adc4660507910d274856ce4790b87946a3462d 100644 (file)
@@ -1 +1 @@
-50741f9f6cf4a87616fd7184331c0fd9
\ No newline at end of file
+a9f3c9ef26b80d60108ae75da748354c
\ No newline at end of file
index ceb54ee8cb9b6cecd0a4b704f08edf7ab1954e4d..bf289751c42324b12041bb94ece74b8df6b64ae8 100644 (file)
@@ -82,7 +82,7 @@
 <a name="l00142"></a>00142 };
 <a name="l00143"></a>00143 
 <a name="l00144"></a>00144 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c6ee617a36db1dcdc75c980448e35bab0d4a392f..c3194dde2fafec3668ec7c72d8e62cac5866b96f 100644 (file)
@@ -26,9 +26,15 @@ Include dependency graph for socketengine.h:<p><center><img src="socketengine_8h
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="socketengine_8h__dep__incl.gif" border="0" usemap="#socketengine.hdep_map" alt=""></center>
 <map name="socketengine.hdep_map">
-<area href="modules_8cpp-source.html" shape="rect" coords="180,7,279,33" alt="">
-<area href="socket_8cpp-source.html" shape="rect" coords="187,57,272,84" alt="">
-<area href="socketengine_8cpp-source.html" shape="rect" coords="167,108,292,135" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="469,311,568,338" alt="">
+<area href="socket_8cpp-source.html" shape="rect" coords="476,412,561,439" alt="">
+<area href="socketengine_8cpp-source.html" shape="rect" coords="295,58,420,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="479,108,559,135" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="167,260,247,287" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="469,210,568,236" alt="">
+<area href="inspircd__io_8h-source.html" shape="rect" coords="309,260,405,287" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="315,210,400,236" alt="">
+<area href="userprocess_8h-source.html" shape="rect" coords="305,311,409,338" alt="">
 </map>
 
 <p>
@@ -106,7 +112,9 @@ Referenced by <a class="el" href="socketengine_8cpp-source.html#l00057">SocketEn
 <p>
 
 <p>
-Definition at line <a class="el" href="socketengine_8h-source.html#l00043">43</a> of file <a class="el" href="socketengine_8h-source.html">socketengine.h</a>.    </td>
+Definition at line <a class="el" href="socketengine_8h-source.html#l00043">43</a> of file <a class="el" href="socketengine_8h-source.html">socketengine.h</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="X_5FESTAB_5FDNS"></a><!-- doxytag: member="socketengine.h::X_ESTAB_DNS" ref="X_5FESTAB_5FDNS" args="" --><p>
@@ -158,7 +166,7 @@ Definition at line <a class="el" href="socketengine_8h-source.html#l00045">45</a
 <p>
 Definition at line <a class="el" href="socketengine_8h-source.html#l00044">44</a> of file <a class="el" href="socketengine_8h-source.html">socketengine.h</a>.
 <p>
-Referenced by <a class="el" href="socket_8cpp-source.html#l00053">InspSocket::InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00217">InspSocket::Poll()</a>.    </td>
+Referenced by <a class="el" href="socket_8cpp-source.html#l00050">InspSocket::InspSocket()</a>, and <a class="el" href="socket_8cpp-source.html#l00216">InspSocket::Poll()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="X_5FLISTEN"></a><!-- doxytag: member="socketengine.h::X_LISTEN" ref="X_5FLISTEN" args="" --><p>
@@ -215,7 +223,7 @@ Definition at line <a class="el" href="socketengine_8h-source.html#l00055">55</a
 Referenced by <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, and <a class="el" href="socketengine_8cpp-source.html#l00146">SocketEngine::Wait()</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d19518b558add50a955e059a37beb654a100e0a0..50af03e3e48441ce38abfac171a0f13a0035fe6b 100644 (file)
@@ -1,4 +1,10 @@
 base referer
-rect $modules_8cpp-source.html 180,7 279,33
-rect $socket_8cpp-source.html 187,57 272,84
-rect $socketengine_8cpp-source.html 167,108 292,135
+rect $modules_8cpp-source.html 469,311 568,338
+rect $socket_8cpp-source.html 476,412 561,439
+rect $socketengine_8cpp-source.html 295,58 420,84
+rect $users_8cpp-source.html 479,108 559,135
+rect $inspircd_8h-source.html 167,260 247,287
+rect $channels_8cpp-source.html 469,210 568,236
+rect $inspircd__io_8h-source.html 309,260 405,287
+rect $typedefs_8h-source.html 315,210 400,236
+rect $userprocess_8h-source.html 305,311 409,338
index eb92fe10f5141c8b374abb41aae2291e2e20df7c..49413226499f883083c0b95da251a669e6488108 100644 (file)
@@ -1 +1 @@
-00d3a68c8884c78980281618846deffd
\ No newline at end of file
+5d41f86d6f67ff7b18b6ad71c4748bc2
\ No newline at end of file
index 8b91e5aeec3440b8b9581ecdc0686d5851617f7b..5f44e83065686e64290d2e409f9eb4e6fddec786 100644 (file)
@@ -1 +1 @@
-9faa242bc7dd08e1da2018aca66c84c3
\ No newline at end of file
+9fbbbfd9144c559ad108601ee9a99b89
\ No newline at end of file
index fa02814fa2291c531a5862b306f93d05faac53fa..00adf56b3a6d448e8240494ec92d44bffa6d87aa 100644 (file)
@@ -8,7 +8,7 @@
 <h1>dns_ip4list Member List</h1>This is the complete list of members for <a class="el" href="structdns__ip4list.html">dns_ip4list</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="structdns__ip4list.html#ip">ip</a></td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="structdns__ip4list.html#next">next</a></td><td><a class="el" href="structdns__ip4list.html">dns_ip4list</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index cf1bd3068463419cb575030050fc463dda2ee4f0..dbaa45b4c83fe3d567247969a0256df0eb5fe549 100644 (file)
@@ -74,7 +74,7 @@ Definition at line <a class="el" href="dns_8h-source.html#l00028">28</a> of file
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="dns_8h-source.html">dns.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:18 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 249b293ef8ed020433aed6b8014951339ef99978..8182411d78adaf905ad9aecb34aff3066e7151f4 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>irc::InAddr_HashComp Member List</h1>This is the complete list of members for <a class="el" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="structirc_1_1InAddr__HashComp.html#operator_28_29_28const_20in_5Faddr_20_26s_31_2C_20const_20in_5Faddr_20_26s_32_29_20const_20">operator()</a>(const in_addr &amp;s1, const in_addr &amp;s2) const </td><td><a class="el" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 49a97d2d128746d04c0cb55a32d8d5160e465daf..db0ae84d511d13efcd4028580ed7043a5a5e1c6f 100644 (file)
@@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index dd9da58d092137d6a4dabc325089c6dc2ccc3f75..42b6d308fa4b23d303ed11d10f42b223a7db7345 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>irc::StrHashComp Member List</h1>This is the complete list of members for <a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="structirc_1_1StrHashComp.html#operator_28_29_28const_20std_3A_3Astring_20_26s_31_2C_20const_20std_3A_3Astring_20_26s_32_29_20const_20">operator()</a>(const std::string &amp;s1, const std::string &amp;s2) const </td><td><a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 74ece1118d2d35be7f9f475d3b6f09b372acc214..9f14acf2aeac0b8558432d04a0fb4a922dc8105d 100644 (file)
@@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 596ff89002f337ded5c1b63bfcf57dc6a73731e9..18a070203fc5f8e8da32e3e1d59f6c5cfc5971e9 100644 (file)
@@ -11,7 +11,7 @@
   <tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#find_28const_20char_20_2As_31_2C_20int_20n_2C_20char_20c_29">find</a>(const char *s1, int n, char c)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#lt_28char_20c_31st_2C_20char_20c_32nd_29">lt</a>(char c1st, char c2nd)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="structirc_1_1irc__char__traits.html#ne_28char_20c_31st_2C_20char_20c_32nd_29">ne</a>(char c1st, char c2nd)</td><td><a class="el" href="structirc_1_1irc__char__traits.html">irc::irc_char_traits</a></td><td><code> [static]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ea99c41a176299e42c70af413b2a3b8fcb6607fa..cc87009d3aed53a8b9464110128544603923bb30 100644 (file)
@@ -256,7 +256,7 @@ Check if two chars do NOT match.
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index ee61dcf3de3c5b73b7c5e44cb27ccc97fdc6d437..ce275a1620a6ee811cffe03fb150861eb0f8a1f1 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>nspace::hash&lt; in_addr &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html#operator_28_29_28const_20struct_20in_5Faddr_20_26a_29_20const_20">operator()</a>(const struct in_addr &amp;a) const </td><td><a class="el" href="structnspace_1_1hash_3_01in__addr_01_4.html">nspace::hash&lt; in_addr &gt;</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index b6f8cbff5f15a73614b78cefffbc2fa8ed048df7..67b91bf4aa9c11b34da7a4473635fcdbec262d50 100644 (file)
@@ -54,7 +54,7 @@ Definition at line <a class="el" href="hashcomp_8h-source.html#l00054">54</a> of
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 9fab76b652866fd5e74724c3679e6285025e5664..db868f08495906627a7ef340979ad8fb720e7fcf 100644 (file)
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
 <h1>nspace::hash&lt; string &gt; Member List</h1>This is the complete list of members for <a class="el" href="structnspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html#operator_28_29_28const_20string_20_26s_29_20const_20">operator()</a>(const string &amp;s) const </td><td><a class="el" href="structnspace_1_1hash_3_01string_01_4.html">nspace::hash&lt; string &gt;</a></td><td></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 73e23d1880324a22205fa9bc74171a43f634d20e..c16f33dc1edf9aed544f33f8d096625cb2386f3b 100644 (file)
@@ -54,7 +54,7 @@ Definition at line <a class="el" href="hashcomp_8h-source.html#l00062">62</a> of
 </table>
 <hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="hashcomp_8h-source.html">hashcomp.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:20 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:17 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index c109a1b8f5693f8b8b8c2d6d4b9a9c1f2bc9189e..1c7b81379b75e598e5f40975512479feea7ff929 100644 (file)
@@ -74,6 +74,7 @@
       <div style="display: block;">
         <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder1', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p>
         <div id="folder1">
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="aes_8h.html" target="basefrm">aes.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="base_8h.html" target="basefrm">base.h</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="channels_8cpp.html" target="basefrm">channels.cpp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="channels_8h.html" target="basefrm">channels.h</a></p>
         <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder2', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder2', this)"/><a class="el" href="annotated.html" target="basefrm">Class List</a></p>
         <div id="folder2">
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classAdmin.html" target="basefrm">Admin</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classAES.html" target="basefrm">AES</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classBanItem.html" target="basefrm">BanItem</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classBoolSet.html" target="basefrm">BoolSet</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classchanrec.html" target="basefrm">chanrec</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classstd_1_1char__traits.html" target="basefrm">char_traits</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classclassbase.html" target="basefrm">classbase</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classcmd__mode.html" target="basefrm">cmd_mode</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classcommand__t.html" target="basefrm">command_t</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classConfigReader.html" target="basefrm">ConfigReader</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classConnectClass.html" target="basefrm">ConnectClass</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structirc_1_1irc__char__traits.html" target="basefrm">irc::irc_char_traits</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classKLine.html" target="basefrm">KLine</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModeParameter.html" target="basefrm">ModeParameter</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModeParser.html" target="basefrm">ModeParser</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModule.html" target="basefrm">Module</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModuleFactory.html" target="basefrm">ModuleFactory</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModuleMessage.html" target="basefrm">ModuleMessage</a></p>
         </div>
         <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder3', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder3', this)"/><a class="el" href="hierarchy.html" target="basefrm">Class Hierarchy</a></p>
         <div id="folder3">
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classAES.html" target="basefrm">AES</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classBoolSet.html" target="basefrm">BoolSet</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder4', this)"/><a class="el" href="classstd_1_1char__traits.html" target="basefrm">char_traits</a></p>
           <div id="folder4">
             <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder6', this)"/><a class="el" href="classExtensible.html" target="basefrm">Extensible</a></p>
             <div id="folder6">
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classchanrec.html" target="basefrm">chanrec</a></p>
-              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classcommand__t.html" target="basefrm">command_t</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder7', this)"/><a class="el" href="classconnection.html" target="basefrm">connection</a></p>
               <div id="folder7">
                 <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classuserrec.html" target="basefrm">userrec</a></p>
               <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classZLine.html" target="basefrm">ZLine</a></p>
             </div>
           </div>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder11', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder11', this)"/><a class="el" href="classcommand__t.html" target="basefrm">command_t</a></p>
+          <div id="folder11">
+            <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classcmd__mode.html" target="basefrm">cmd_mode</a></p>
+          </div>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classCullItem.html" target="basefrm">CullItem</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classCullList.html" target="basefrm">CullList</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classDNS.html" target="basefrm">DNS</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structirc_1_1InAddr__HashComp.html" target="basefrm">irc::InAddr_HashComp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classInspIRCd.html" target="basefrm">InspIRCd</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classInspSocket.html" target="basefrm">InspSocket</a></p>
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classModeParser.html" target="basefrm">ModeParser</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classserverstats.html" target="basefrm">serverstats</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classSocketEngine.html" target="basefrm">SocketEngine</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structirc_1_1StrHashComp.html" target="basefrm">irc::StrHashComp</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="classWhoWasUser.html" target="basefrm">WhoWasUser</a></p>
         </div>
         <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="functions.html" target="basefrm">Class Members</a></p>
-        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder11', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder11', this)"/><a class="el" href="namespaces.html" target="basefrm">Namespace List</a></p>
-        <div id="folder11">
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder12', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder12', this)"/><a class="el" href="namespaces.html" target="basefrm">Namespace List</a></p>
+        <div id="folder12">
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="namespaceirc.html" target="basefrm">irc</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="namespacenspace.html" target="basefrm">nspace</a></p>
           <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="namespacestd.html" target="basefrm">std</a></p>
         </div>
-        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder12', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder12', this)"/><a class="el" href="dirs.html" target="basefrm">Directories</a></p>
-        <div id="folder12">
-          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder13', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder13', this)"/><a class="el" href="dir_000000.html" target="basefrm">home</a></p>
-          <div id="folder13">
-            <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder14', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder14', this)"/><a class="el" href="dir_000001.html" target="basefrm">brain</a></p>
-            <div id="folder14">
-              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder15', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder15', this)"/><a class="el" href="dir_000002.html" target="basefrm">inspircd-cvs</a></p>
-              <div id="folder15">
-                <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder16', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder16', this)"/><a class="el" href="dir_000003.html" target="basefrm">inspircd</a></p>
-                <div id="folder16">
-                  <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder17', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder17', this)"/><a class="el" href="dir_000004.html" target="basefrm">include</a></p>
-                  <div id="folder17">
-                  </div>
-                  <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder18', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder18', this)"/><a class="el" href="dir_000005.html" target="basefrm">src</a></p>
+        <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder13', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder13', this)"/><a class="el" href="dirs.html" target="basefrm">Directories</a></p>
+        <div id="folder13">
+          <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder14', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder14', this)"/><a class="el" href="dir_000000.html" target="basefrm">home</a></p>
+          <div id="folder14">
+            <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder15', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder15', this)"/><a class="el" href="dir_000001.html" target="basefrm">brain</a></p>
+            <div id="folder15">
+              <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder16', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder16', this)"/><a class="el" href="dir_000002.html" target="basefrm">inspircd-cvs</a></p>
+              <div id="folder16">
+                <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder17', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder17', this)"/><a class="el" href="dir_000003.html" target="basefrm">inspircd</a></p>
+                <div id="folder17">
+                  <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder18', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder18', this)"/><a class="el" href="dir_000004.html" target="basefrm">include</a></p>
                   <div id="folder18">
                   </div>
+                  <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder19', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder19', this)"/><a class="el" href="dir_000005.html" target="basefrm">src</a></p>
+                  <div id="folder19">
+                  </div>
                 </div>
               </div>
             </div>
index a907e32fc96fe492c5493051200f581b899cab77..7f7c608870cdfec03abc463f99caa7917c903302 100644 (file)
 <a name="l00021"></a><a class="code" href="typedefs_8h.html#chan_5Fhash">00021</a> <span class="keyword">typedef</span> nspace::hash_map&lt;std::string, chanrec*, nspace::hash&lt;string&gt;, <a class="code" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>&gt; <a class="code" href="typedefs_8h.html#chan_5Fhash">chan_hash</a>;
 <a name="l00022"></a><a class="code" href="typedefs_8h.html#address_5Fcache">00022</a> <span class="keyword">typedef</span> nspace::hash_map&lt;in_addr,string*, nspace::hash&lt;in_addr&gt;, <a class="code" href="structirc_1_1InAddr__HashComp.html">irc::InAddr_HashComp</a>&gt; <a class="code" href="typedefs_8h.html#address_5Fcache">address_cache</a>;
 <a name="l00023"></a><a class="code" href="typedefs_8h.html#whowas_5Fhash">00023</a> <span class="keyword">typedef</span> nspace::hash_map&lt;std::string, WhoWasUser*, nspace::hash&lt;string&gt;, <a class="code" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a>&gt; <a class="code" href="typedefs_8h.html#whowas_5Fhash">whowas_hash</a>;
-<a name="l00024"></a><a class="code" href="typedefs_8h.html#command_5Ftable">00024</a> <span class="keyword">typedef</span> std::deque&lt;command_t&gt; <a class="code" href="typedefs_8h.html#command_5Ftable">command_table</a>;
-<a name="l00025"></a><a class="code" href="typedefs_8h.html#servernamelist">00025</a> <span class="keyword">typedef</span> std::vector&lt;std::string&gt; <a class="code" href="typedefs_8h.html#servernamelist">servernamelist</a>;
-<a name="l00026"></a><a class="code" href="typedefs_8h.html#ExtModeList">00026</a> <span class="keyword">typedef</span> std::vector&lt;ExtMode&gt; <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a>;
-<a name="l00027"></a><a class="code" href="typedefs_8h.html#ExtModeListIter">00027</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a>;
-<a name="l00028"></a><a class="code" href="typedefs_8h.html#file_5Fcache">00028</a> <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
-<a name="l00029"></a>00029 
-<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00024"></a><a class="code" href="typedefs_8h.html#servernamelist">00024</a> <span class="keyword">typedef</span> std::vector&lt;std::string&gt; <a class="code" href="typedefs_8h.html#servernamelist">servernamelist</a>;
+<a name="l00025"></a><a class="code" href="typedefs_8h.html#ExtModeList">00025</a> <span class="keyword">typedef</span> std::vector&lt;ExtMode&gt; <a class="code" href="typedefs_8h.html#ExtModeList">ExtModeList</a>;
+<a name="l00026"></a><a class="code" href="typedefs_8h.html#ExtModeListIter">00026</a> <span class="keyword">typedef</span> ExtModeList::iterator <a class="code" href="typedefs_8h.html#ExtModeListIter">ExtModeListIter</a>;
+<a name="l00027"></a><a class="code" href="typedefs_8h.html#file_5Fcache">00027</a> <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2db725325a86ad0d2743331c407fc8fb4c11cb04..180274f56185816185b0c9239ed4d21ca4df8c48 100644 (file)
 <p>
 Include dependency graph for typedefs.h:<p><center><img src="typedefs_8h__incl.gif" border="0" usemap="#typedefs.h_map" alt=""></center>
 <map name="typedefs.h_map">
-<area href="users_8h-source.html" shape="rect" coords="568,463,632,489" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="684,361,769,388" alt="">
-<area href="hashcomp_8h-source.html" shape="rect" coords="141,108,235,135" alt="">
-<area href="ctables_8h-source.html" shape="rect" coords="300,209,375,236" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="439,235,519,261" alt="">
-<area href="modules_8h-source.html" shape="rect" coords="147,311,229,337" alt="">
-<area href="globals_8h-source.html" shape="rect" coords="441,412,516,439" alt="">
+<area href="users_8h-source.html" shape="rect" coords="280,245,344,272" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="404,448,489,475" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="400,93,493,120" alt="">
+<area href="ctables_8h-source.html" shape="rect" coords="275,600,349,627" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="143,335,223,361" alt="">
+<area href="modules_8h-source.html" shape="rect" coords="141,600,224,627" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="145,423,220,449" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="typedefs_8h__dep__incl.gif" border="0" usemap="#typedefs.hdep_map" alt=""></center>
 <map name="typedefs.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="141,7,240,34" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="141,58,240,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="141,7,240,33" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="141,57,240,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="151,108,231,135" alt="">
 </map>
 
 <p>
@@ -58,8 +59,6 @@ This graph shows which files directly or indirectly include this file:<p><center
  <a class="el" href="namespaceirc.html#string">std::string</a>, <a class="el" href="classWhoWasUser.html">WhoWasUser</a> *,<br>
  nspace::hash&lt; <a class="el" href="namespaceirc.html#string">string</a> &gt;, <a class="el" href="structirc_1_1StrHashComp.html">irc::StrHashComp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8h.html#whowas_5Fhash">whowas_hash</a></td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::deque&lt; <a class="el" href="classcommand__t.html">command_t</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8h.html#command_5Ftable">command_table</a></td></tr>
-
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="namespaceirc.html#string">std::string</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8h.html#servernamelist">servernamelist</a></td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="classExtMode.html">ExtMode</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="typedefs_8h.html#ExtModeList">ExtModeList</a></td></tr>
@@ -120,31 +119,6 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00022">22</a> of
 Definition at line <a class="el" href="typedefs_8h-source.html#l00021">21</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="command_5Ftable"></a><!-- doxytag: member="typedefs.h::command_table" ref="command_5Ftable" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">typedef std::deque&lt;<a class="el" href="classcommand__t.html">command_t</a>&gt; <a class="el" href="typedefs_8h.html#command_5Ftable">command_table</a>          </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="typedefs_8h-source.html#l00024">24</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
-  </tr>
-</table>
 <a class="anchor" name="ExtModeList"></a><!-- doxytag: member="typedefs.h::ExtModeList" ref="ExtModeList" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -167,7 +141,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00024">24</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="typedefs_8h-source.html#l00026">26</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
+Definition at line <a class="el" href="typedefs_8h-source.html#l00025">25</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="ExtModeListIter"></a><!-- doxytag: member="typedefs.h::ExtModeListIter" ref="ExtModeListIter" args="" --><p>
@@ -192,7 +166,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00026">26</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="typedefs_8h-source.html#l00027">27</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
+Definition at line <a class="el" href="typedefs_8h-source.html#l00026">26</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="file_5Fcache"></a><!-- doxytag: member="typedefs.h::file_cache" ref="file_5Fcache" args="" --><p>
@@ -217,7 +191,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00027">27</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="typedefs_8h-source.html#l00028">28</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
+Definition at line <a class="el" href="typedefs_8h-source.html#l00027">27</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="servernamelist"></a><!-- doxytag: member="typedefs.h::servernamelist" ref="servernamelist" args="" --><p>
@@ -242,7 +216,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00028">28</a> of
 <p>
 
 <p>
-Definition at line <a class="el" href="typedefs_8h-source.html#l00025">25</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
+Definition at line <a class="el" href="typedefs_8h-source.html#l00024">24</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="user_5Fhash"></a><!-- doxytag: member="typedefs.h::user_hash" ref="user_5Fhash" args="" --><p>
@@ -295,7 +269,7 @@ Definition at line <a class="el" href="typedefs_8h-source.html#l00020">20</a> of
 Definition at line <a class="el" href="typedefs_8h-source.html#l00023">23</a> of file <a class="el" href="typedefs_8h-source.html">typedefs.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index d7538d0b64e37725813639645e0532601bc0642f..122b8558401341c1ecbb45468be5923e72be7405 100644 (file)
@@ -1,3 +1,4 @@
 base referer
-rect $channels_8cpp-source.html 141,7 240,34
-rect $modules_8cpp-source.html 141,58 240,84
+rect $channels_8cpp-source.html 141,7 240,33
+rect $modules_8cpp-source.html 141,57 240,84
+rect $users_8cpp-source.html 151,108 231,135
index 11e0ba2853f186702112e33a374e21148776997b..9905c76fe919a501229ce388e525c6b32e357f4e 100644 (file)
@@ -1 +1 @@
-142082842cc532e4d4e382b14a7b2d29
\ No newline at end of file
+9650d15ddf009f9c420b6ac64e094f58
\ No newline at end of file
index b131a2682dc1574350a342104d8c237a170c674e..214c3651fab7b24b4cf3def18b82f6f525211b94 100644 (file)
@@ -1,8 +1,8 @@
 base referer
-rect $users_8h-source.html 568,463 632,489
-rect $channels_8h-source.html 684,361 769,388
-rect $hashcomp_8h-source.html 141,108 235,135
-rect $ctables_8h-source.html 300,209 375,236
-rect $inspircd_8h-source.html 439,235 519,261
-rect $modules_8h-source.html 147,311 229,337
-rect $globals_8h-source.html 441,412 516,439
+rect $users_8h-source.html 280,245 344,272
+rect $channels_8h-source.html 404,448 489,475
+rect $hashcomp_8h-source.html 400,93 493,120
+rect $ctables_8h-source.html 275,600 349,627
+rect $inspircd_8h-source.html 143,335 223,361
+rect $modules_8h-source.html 141,600 224,627
+rect $globals_8h-source.html 145,423 220,449
index c9e951c43084b0d65d63a24ac5bc238684091242..8797dc7d4786b0130c2bda126cfe997c0de5ba1e 100644 (file)
@@ -1 +1 @@
-137043db2e87cae486cf9cf5c587f147
\ No newline at end of file
+74b3db4e6e9c4732328fa3d4f91f37f3
\ No newline at end of file
index 7d85029611ba1e506b0dc06fc6d8fe6f4d938a6d..d664aaf5bca78758196cc8fa283d388d66876e57 100644 (file)
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define __USERPROCESS_H__</span>
 <a name="l00003"></a>00003 <span class="preprocessor"></span>
 <a name="l00004"></a>00004 <span class="preprocessor">#include "<a class="code" href="users_8h.html">users.h</a>"</span>
-<a name="l00005"></a>00005 
-<a name="l00006"></a>00006 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#CheckDie_28_29">CheckDie</a>();
-<a name="l00007"></a>00007 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#LoadAllModules_28_29">LoadAllModules</a>();
-<a name="l00008"></a>00008 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#CheckRoot_28_29">CheckRoot</a>();
-<a name="l00009"></a>00009 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">OpenLog</a>(<span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> argc);
-<a name="l00010"></a>00010 <span class="keywordtype">bool</span> <a class="code" href="userprocess_8h.html#DoBackgroundUserStuff_28time_5Ft_20TIME_29">DoBackgroundUserStuff</a>(time_t TIME);
-<a name="l00011"></a>00011 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">ProcessUser</a>(<a class="code" href="classuserrec.html">userrec</a>* cu);
-<a name="l00012"></a>00012 
-<a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00005"></a>00005 <span class="preprocessor">#include "<a class="code" href="inspircd_8h.html">inspircd.h</a>"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#CheckDie_28_29">CheckDie</a>();
+<a name="l00008"></a>00008 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#LoadAllModules_28InspIRCd_20_2AServerInstance_29">LoadAllModules</a>(<a class="code" href="classInspIRCd.html">InspIRCd</a>* ServerInstance);
+<a name="l00009"></a>00009 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#CheckRoot_28_29">CheckRoot</a>();
+<a name="l00010"></a>00010 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#OpenLog_28char_20_2A_2Aargv_2C_20int_20argc_29">OpenLog</a>(<span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> argc);
+<a name="l00011"></a>00011 <span class="keywordtype">bool</span> <a class="code" href="userprocess_8h.html#DoBackgroundUserStuff_28time_5Ft_20TIME_29">DoBackgroundUserStuff</a>(time_t TIME);
+<a name="l00012"></a>00012 <span class="keywordtype">void</span> <a class="code" href="userprocess_8h.html#ProcessUser_28userrec_20_2Acu_29">ProcessUser</a>(<a class="code" href="classuserrec.html">userrec</a>* cu);
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 2e6f0e710b7ae9aae4129b1a1373bb82897f305c..e0a3ec873ae57dad6f44b0f5e0017910f7ac02b7 100644 (file)
@@ -8,13 +8,13 @@
 <div class="nav">
 <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></div>
 <h1>userprocess.h File Reference</h1><code>#include &quot;<a class="el" href="users_8h-source.html">users.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="inspircd_8h-source.html">inspircd.h</a>&quot;</code><br>
 
 <p>
 Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__incl.gif" border="0" usemap="#userprocess.h_map" alt=""></center>
 <map name="userprocess.h_map">
-<area href="users_8h-source.html" shape="rect" coords="163,108,227,135" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="283,108,368,135" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="276,58,375,84" alt="">
+<area href="users_8h-source.html" shape="rect" coords="291,32,355,59" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="162,58,242,84" alt="">
 </map>
 
 <p>
@@ -23,7 +23,7 @@ Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__
 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="userprocess_8h.html#CheckDie_28_29">CheckDie</a> ()</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="userprocess_8h.html#LoadAllModules_28_29">LoadAllModules</a> ()</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="userprocess_8h.html#LoadAllModules_28InspIRCd_20_2AServerInstance_29">LoadAllModules</a> (<a class="el" href="classInspIRCd.html">InspIRCd</a> *<a class="el" href="users_8cpp.html#ServerInstance">ServerInstance</a>)</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="userprocess_8h.html#CheckRoot_28_29">CheckRoot</a> ()</td></tr>
 
@@ -117,7 +117,7 @@ Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__
     </td>
   </tr>
 </table>
-<a class="anchor" name="LoadAllModules_28_29"></a><!-- doxytag: member="userprocess.h::LoadAllModules" ref="LoadAllModules_28_29" args="()" --><p>
+<a class="anchor" name="LoadAllModules_28InspIRCd_20_2AServerInstance_29"></a><!-- doxytag: member="userprocess.h::LoadAllModules" ref="LoadAllModules_28InspIRCd_20_2AServerInstance_29" args="(InspIRCd *ServerInstance)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -125,7 +125,8 @@ Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__
         <tr>
           <td class="md" nowrap valign="top">void LoadAllModules           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a> *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>ServerInstance</em>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
@@ -209,7 +210,7 @@ Include dependency graph for userprocess.h:<p><center><img src="userprocess_8h__
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 597eed7b6807867b1830298640a05ba52e05bbb5..2c35162ebbd6b2a01a76b64172cba1898ceccc2e 100644 (file)
@@ -1,4 +1,3 @@
 base referer
-rect $users_8h-source.html 163,108 227,135
-rect $channels_8h-source.html 283,108 368,135
-rect $connection_8h-source.html 276,58 375,84
+rect $users_8h-source.html 291,32 355,59
+rect $inspircd_8h-source.html 162,58 242,84
index 3dc031b2d0fdba9eb0daf04f022fbb7807103b1b..d8ff2f5d675426bd1ab71f65395333588ebd01a0 100644 (file)
@@ -1 +1 @@
-bd342784e8f38bb1e1aa5077552ba0a3
\ No newline at end of file
+1cd979ceea10e39121f05ee648f60ec5
\ No newline at end of file
index 5cc9b05f20fe41bc2e5f24d79f5713831c89bf82..d43be846f3879a04be13c8f6f2e7e5540ffef29c 100644 (file)
 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include "inspstring.h"</span>
 <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="commands_8h.html">commands.h</a>"</span>
 <a name="l00031"></a>00031 <span class="preprocessor">#include "helperfuncs.h"</span>
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="channels_8cpp.html#Config">Config</a>;
-<a name="l00034"></a>00034 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00035"></a>00035 
-<a name="l00036"></a><a class="code" href="classuserrec.html#userrec_28_29">00036</a> <a class="code" href="classuserrec.html#userrec_28_29">userrec::userrec</a>()
-<a name="l00037"></a>00037 {
-<a name="l00038"></a>00038         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
-<a name="l00039"></a>00039         strcpy(<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<span class="stringliteral">""</span>);
-<a name="l00040"></a>00040         strcpy(<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>,<span class="stringliteral">"127.0.0.1"</span>);
-<a name="l00041"></a>00041         <a class="code" href="classuserrec.html#timeout">timeout</a> = 0;
-<a name="l00042"></a>00042         strcpy(<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<span class="stringliteral">""</span>);
-<a name="l00043"></a>00043         strcpy(<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,<span class="stringliteral">""</span>);
-<a name="l00044"></a>00044         strcpy(<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,<span class="stringliteral">""</span>);
-<a name="l00045"></a>00045         strcpy(<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,<span class="stringliteral">""</span>);
-<a name="l00046"></a>00046         strcpy(<a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>,<span class="stringliteral">""</span>);
-<a name="l00047"></a>00047         <a class="code" href="classuserrec.html#server">server</a> = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
-<a name="l00048"></a>00048         strcpy(<a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>,<span class="stringliteral">""</span>);
-<a name="l00049"></a>00049         strcpy(<a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>,<span class="stringliteral">""</span>);
-<a name="l00050"></a>00050         <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
-<a name="l00051"></a>00051         <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a> = 0;
-<a name="l00052"></a>00052         <a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="classconnection.html#lastping">lastping</a> = <a class="code" href="classconnection.html#signon">signon</a> = <a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="classconnection.html#nping">nping</a> = <a class="code" href="classconnection.html#registered">registered</a> = 0;
-<a name="l00053"></a>00053         <a class="code" href="classuserrec.html#flood">flood</a> = <a class="code" href="classconnection.html#port">port</a> = <a class="code" href="classconnection.html#bytes_5Fin">bytes_in</a> = <a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> = <a class="code" href="classconnection.html#cmds_5Fin">cmds_in</a> = <a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a> = 0;
-<a name="l00054"></a>00054         <a class="code" href="classconnection.html#haspassed">haspassed</a> = <span class="keyword">false</span>;
-<a name="l00055"></a>00055         <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a> = <span class="keyword">false</span>;
-<a name="l00056"></a>00056         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
-<a name="l00057"></a>00057         <a class="code" href="classuserrec.html#sendq">sendq</a> = <span class="stringliteral">""</span>;
-<a name="l00058"></a>00058         <a class="code" href="classuserrec.html#chans">chans</a>.clear();
-<a name="l00059"></a>00059         <a class="code" href="classuserrec.html#invites">invites</a>.clear();
-<a name="l00060"></a>00060 }
-<a name="l00061"></a>00061 
-<a name="l00062"></a><a class="code" href="classuserrec.html#_7Euserrec_28_29">00062</a> <a class="code" href="classuserrec.html#_7Euserrec_28_29">userrec::~userrec</a>()
-<a name="l00063"></a>00063 {
-<a name="l00064"></a>00064 }
-<a name="l00065"></a>00065 
-<a name="l00066"></a><a class="code" href="classuserrec.html#CloseSocket_28_29">00066</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#CloseSocket_28_29">userrec::CloseSocket</a>()
-<a name="l00067"></a>00067 {
-<a name="l00068"></a>00068         shutdown(this-&gt;fd,2);
-<a name="l00069"></a>00069         close(this-&gt;fd);
-<a name="l00070"></a>00070 }
-<a name="l00071"></a>00071  
-<a name="l00072"></a><a class="code" href="classuserrec.html#GetFullHost_28_29">00072</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullHost_28_29">userrec::GetFullHost</a>()
-<a name="l00073"></a>00073 {
-<a name="l00074"></a>00074         <span class="keyword">static</span> <span class="keywordtype">char</span> result[MAXBUF];
-<a name="l00075"></a>00075         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>);
-<a name="l00076"></a>00076         <span class="keywordflow">return</span> result;
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078 
-<a name="l00079"></a><a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">00079</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">userrec::ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size)
-<a name="l00080"></a>00080 {
-<a name="l00081"></a>00081         <span class="keywordflow">if</span> (this-&gt;fd &gt; -1)
-<a name="l00082"></a>00082         {
-<a name="l00083"></a>00083                 <span class="keywordflow">return</span> read(this-&gt;fd, buffer, size);
-<a name="l00084"></a>00084         }
-<a name="l00085"></a>00085         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l00086"></a>00086 }
-<a name="l00087"></a>00087 
+<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="typedefs_8h.html">typedefs.h</a>"</span>
+<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="socketengine_8h.html">socketengine.h</a>"</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="message_8h.html">message.h</a>"</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include "wildcard.h"</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="xline_8h.html">xline.h</a>"</span>
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keyword">extern</span> <a class="code" href="classInspIRCd.html">InspIRCd</a>* <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>;
+<a name="l00040"></a>00040 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>;
+<a name="l00041"></a>00041 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>;
+<a name="l00042"></a>00042 <span class="keyword">extern</span> std::vector&lt;Module*&gt; <a class="code" href="channels_8cpp.html#modules">modules</a>;
+<a name="l00043"></a>00043 <span class="keyword">extern</span> std::vector&lt;ircd_module*&gt; <a class="code" href="channels_8cpp.html#factory">factory</a>;
+<a name="l00044"></a>00044 <span class="keyword">extern</span> std::vector&lt;InspSocket*&gt; <a class="code" href="modules_8cpp.html#module_5Fsockets">module_sockets</a>;
+<a name="l00045"></a>00045 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="channels_8cpp.html#MODCOUNT">MODCOUNT</a>;
+<a name="l00046"></a>00046 <span class="keyword">extern</span> <a class="code" href="classInspSocket.html">InspSocket</a>* <a class="code" href="socket_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535];
+<a name="l00047"></a>00047 <span class="keyword">extern</span> time_t <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00048"></a>00048 <span class="keyword">extern</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536];
+<a name="l00049"></a>00049 <span class="keyword">extern</span> <a class="code" href="classServerConfig.html">ServerConfig</a> *<a class="code" href="channels_8cpp.html#Config">Config</a>;
+<a name="l00050"></a>00050 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>;
+<a name="l00051"></a>00051 <span class="keyword">extern</span> <a class="code" href="typedefs_8h.html#whowas_5Fhash">whowas_hash</a> <a class="code" href="users_8cpp.html#whowas">whowas</a>;
+<a name="l00052"></a><a class="code" href="users_8cpp.html#local_5Fusers">00052</a> std::vector&lt;userrec*&gt; <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>;
+<a name="l00053"></a>00053 
+<a name="l00054"></a><a class="code" href="users_8cpp.html#all_5Fopers">00054</a> std::vector&lt;userrec*&gt; <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>;
+<a name="l00055"></a>00055 
+<a name="l00056"></a><a class="code" href="users_8h.html#ConvToStr_28const_20T_20_26in_29">00056</a> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">inline</span> <a class="code" href="namespaceirc.html#string">string</a> <a class="code" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a>(<span class="keyword">const</span> T &amp;in)
+<a name="l00057"></a>00057 {
+<a name="l00058"></a>00058         stringstream tmp;
+<a name="l00059"></a>00059         <span class="keywordflow">if</span> (!(tmp &lt;&lt; in)) <span class="keywordflow">return</span> <a class="code" href="namespaceirc.html#string">string</a>();
+<a name="l00060"></a>00060         <span class="keywordflow">return</span> tmp.str();
+<a name="l00061"></a>00061 }
+<a name="l00062"></a>00062 
+<a name="l00063"></a><a class="code" href="classuserrec.html#userrec_28_29">00063</a> <a class="code" href="classuserrec.html#userrec_28_29">userrec::userrec</a>()
+<a name="l00064"></a>00064 {
+<a name="l00065"></a>00065         <span class="comment">// the PROPER way to do it, AVOID bzero at *ALL* costs</span>
+<a name="l00066"></a>00066         strcpy(<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<span class="stringliteral">""</span>);
+<a name="l00067"></a>00067         strcpy(<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>,<span class="stringliteral">"127.0.0.1"</span>);
+<a name="l00068"></a>00068         <a class="code" href="classuserrec.html#timeout">timeout</a> = 0;
+<a name="l00069"></a>00069         strcpy(<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<span class="stringliteral">""</span>);
+<a name="l00070"></a>00070         strcpy(<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,<span class="stringliteral">""</span>);
+<a name="l00071"></a>00071         strcpy(<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,<span class="stringliteral">""</span>);
+<a name="l00072"></a>00072         strcpy(<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,<span class="stringliteral">""</span>);
+<a name="l00073"></a>00073         strcpy(<a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>,<span class="stringliteral">""</span>);
+<a name="l00074"></a>00074         <a class="code" href="classuserrec.html#server">server</a> = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
+<a name="l00075"></a>00075         strcpy(<a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>,<span class="stringliteral">""</span>);
+<a name="l00076"></a>00076         strcpy(<a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>,<span class="stringliteral">""</span>);
+<a name="l00077"></a>00077         <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00078"></a>00078         <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a> = 0;
+<a name="l00079"></a>00079         <a class="code" href="classconnection.html#fd">fd</a> = <a class="code" href="classconnection.html#lastping">lastping</a> = <a class="code" href="classconnection.html#signon">signon</a> = <a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="classconnection.html#nping">nping</a> = <a class="code" href="classconnection.html#registered">registered</a> = 0;
+<a name="l00080"></a>00080         <a class="code" href="classuserrec.html#flood">flood</a> = <a class="code" href="classconnection.html#port">port</a> = <a class="code" href="classconnection.html#bytes_5Fin">bytes_in</a> = <a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> = <a class="code" href="classconnection.html#cmds_5Fin">cmds_in</a> = <a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a> = 0;
+<a name="l00081"></a>00081         <a class="code" href="classconnection.html#haspassed">haspassed</a> = <span class="keyword">false</span>;
+<a name="l00082"></a>00082         <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a> = <span class="keyword">false</span>;
+<a name="l00083"></a>00083         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
+<a name="l00084"></a>00084         <a class="code" href="classuserrec.html#sendq">sendq</a> = <span class="stringliteral">""</span>;
+<a name="l00085"></a>00085         <a class="code" href="classuserrec.html#chans">chans</a>.clear();
+<a name="l00086"></a>00086         <a class="code" href="classuserrec.html#invites">invites</a>.clear();
+<a name="l00087"></a>00087 }
 <a name="l00088"></a>00088 
-<a name="l00089"></a><a class="code" href="classuserrec.html#GetFullRealHost_28_29">00089</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullRealHost_28_29">userrec::GetFullRealHost</a>()
+<a name="l00089"></a><a class="code" href="classuserrec.html#_7Euserrec_28_29">00089</a> <a class="code" href="classuserrec.html#_7Euserrec_28_29">userrec::~userrec</a>()
 <a name="l00090"></a>00090 {
-<a name="l00091"></a>00091         <span class="keyword">static</span> <span class="keywordtype">char</span> fresult[MAXBUF];
-<a name="l00092"></a>00092         snprintf(fresult,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
-<a name="l00093"></a>00093         <span class="keywordflow">return</span> fresult;
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 
-<a name="l00096"></a><a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">00096</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">userrec::IsInvited</a>(<span class="keywordtype">char</span>* channel)
-<a name="l00097"></a>00097 {
-<a name="l00098"></a>00098         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
-<a name="l00099"></a>00099         {
-<a name="l00100"></a>00100                 <span class="keywordflow">if</span> (i-&gt;channel) {
-<a name="l00101"></a>00101                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
-<a name="l00102"></a>00102                         {
-<a name="l00103"></a>00103                                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00104"></a>00104                         }
-<a name="l00105"></a>00105                 }
-<a name="l00106"></a>00106         }
-<a name="l00107"></a>00107         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00108"></a>00108 }
-<a name="l00109"></a>00109 
-<a name="l00110"></a><a class="code" href="classuserrec.html#GetInviteList_28_29">00110</a> <a class="code" href="users_8h.html#InvitedList">InvitedList</a>* <a class="code" href="classuserrec.html#GetInviteList_28_29">userrec::GetInviteList</a>()
-<a name="l00111"></a>00111 {
-<a name="l00112"></a>00112         <span class="keywordflow">return</span> &amp;<a class="code" href="classuserrec.html#invites">invites</a>;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 
+<a name="l00093"></a><a class="code" href="classuserrec.html#CloseSocket_28_29">00093</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#CloseSocket_28_29">userrec::CloseSocket</a>()
+<a name="l00094"></a>00094 {
+<a name="l00095"></a>00095         shutdown(this-&gt;fd,2);
+<a name="l00096"></a>00096         close(this-&gt;fd);
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098  
+<a name="l00099"></a><a class="code" href="classuserrec.html#GetFullHost_28_29">00099</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullHost_28_29">userrec::GetFullHost</a>()
+<a name="l00100"></a>00100 {
+<a name="l00101"></a>00101         <span class="keyword">static</span> <span class="keywordtype">char</span> result[MAXBUF];
+<a name="l00102"></a>00102         snprintf(result,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>);
+<a name="l00103"></a>00103         <span class="keywordflow">return</span> result;
+<a name="l00104"></a>00104 }
+<a name="l00105"></a>00105 
+<a name="l00106"></a><a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">00106</a> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">userrec::ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size)
+<a name="l00107"></a>00107 {
+<a name="l00108"></a>00108         <span class="keywordflow">if</span> (this-&gt;fd &gt; -1)
+<a name="l00109"></a>00109         {
+<a name="l00110"></a>00110                 <span class="keywordflow">return</span> read(this-&gt;fd, buffer, size);
+<a name="l00111"></a>00111         }
+<a name="l00112"></a>00112         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
 <a name="l00113"></a>00113 }
 <a name="l00114"></a>00114 
-<a name="l00115"></a><a class="code" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">00115</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">userrec::InviteTo</a>(<span class="keywordtype">char</span>* channel)
-<a name="l00116"></a>00116 {
-<a name="l00117"></a>00117         <a class="code" href="classInvited.html">Invited</a> i;
-<a name="l00118"></a>00118         strlcpy(i.<a class="code" href="classInvited.html#channel_5BCHANMAX_5D">channel</a>,channel,CHANMAX);
-<a name="l00119"></a>00119         <a class="code" href="classuserrec.html#invites">invites</a>.push_back(i);
-<a name="l00120"></a>00120 }
-<a name="l00121"></a>00121 
-<a name="l00122"></a><a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">00122</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">userrec::RemoveInvite</a>(<span class="keywordtype">char</span>* channel)
-<a name="l00123"></a>00123 {
-<a name="l00124"></a>00124         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>);
-<a name="l00125"></a>00125         <span class="keywordflow">if</span> (channel)
+<a name="l00115"></a>00115 
+<a name="l00116"></a><a class="code" href="classuserrec.html#GetFullRealHost_28_29">00116</a> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullRealHost_28_29">userrec::GetFullRealHost</a>()
+<a name="l00117"></a>00117 {
+<a name="l00118"></a>00118         <span class="keyword">static</span> <span class="keywordtype">char</span> fresult[MAXBUF];
+<a name="l00119"></a>00119         snprintf(fresult,MAXBUF,<span class="stringliteral">"%s!%s@%s"</span>,<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00120"></a>00120         <span class="keywordflow">return</span> fresult;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122 
+<a name="l00123"></a><a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">00123</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">userrec::IsInvited</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel)
+<a name="l00124"></a>00124 {
+<a name="l00125"></a>00125         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
 <a name="l00126"></a>00126         {
-<a name="l00127"></a>00127                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#invites">invites</a>.size())
-<a name="l00128"></a>00128                 {
-<a name="l00129"></a>00129                         <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
-<a name="l00130"></a>00130                         {
-<a name="l00131"></a>00131                                 <span class="keywordflow">if</span> (i-&gt;channel)
-<a name="l00132"></a>00132                                 {
-<a name="l00133"></a>00133                                         <span class="keywordflow">if</span> (!strcasecmp(i-&gt;channel,channel))
-<a name="l00134"></a>00134                                         {
-<a name="l00135"></a>00135                                                 <a class="code" href="classuserrec.html#invites">invites</a>.erase(i);
-<a name="l00136"></a>00136                                                 <span class="keywordflow">return</span>;
-<a name="l00137"></a>00137                                         }
-<a name="l00138"></a>00138                                 }
-<a name="l00139"></a>00139                         }
-<a name="l00140"></a>00140                 }
-<a name="l00141"></a>00141         }
-<a name="l00142"></a>00142 }
-<a name="l00143"></a>00143 
-<a name="l00144"></a><a class="code" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">00144</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">userrec::HasPermission</a>(<span class="keywordtype">char</span>* command)
-<a name="l00145"></a>00145 {
-<a name="l00146"></a>00146         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
-<a name="l00147"></a>00147         <span class="keywordtype">char</span>* mycmd;
-<a name="l00148"></a>00148         <span class="keywordtype">char</span>* savept;
-<a name="l00149"></a>00149         <span class="keywordtype">char</span>* savept2;
-<a name="l00150"></a>00150         
-<a name="l00151"></a>00151         <span class="comment">// users on u-lined servers can completely bypass</span>
-<a name="l00152"></a>00152         <span class="comment">// all permissions based checks.</span>
-<a name="l00153"></a>00153         <span class="comment">//</span>
-<a name="l00154"></a>00154         <span class="comment">// of course, if this is sent to a remote server and this</span>
-<a name="l00155"></a>00155         <span class="comment">// server is not ulined there, then that other server</span>
-<a name="l00156"></a>00156         <span class="comment">// silently drops the command.</span>
-<a name="l00157"></a>00157         <span class="keywordflow">if</span> (<a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(this-&gt;server))
-<a name="l00158"></a>00158                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00159"></a>00159         
-<a name="l00160"></a>00160         <span class="comment">// are they even an oper at all?</span>
-<a name="l00161"></a>00161         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
-<a name="l00162"></a>00162         {
-<a name="l00163"></a>00163                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); j++)
-<a name="l00164"></a>00164                 {
-<a name="l00165"></a>00165                         Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00166"></a>00166                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
-<a name="l00167"></a>00167                         {
-<a name="l00168"></a>00168                                 Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00169"></a>00169                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
-<a name="l00170"></a>00170                                 <span class="keywordflow">while</span> (myclass)
-<a name="l00171"></a>00171                                 {
-<a name="l00172"></a>00172                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); k++)
-<a name="l00173"></a>00173                                         {
-<a name="l00174"></a>00174                                                 Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00175"></a>00175                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
-<a name="l00176"></a>00176                                                 {
-<a name="l00177"></a>00177                                                         Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
-<a name="l00178"></a>00178                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
-<a name="l00179"></a>00179                                                         <span class="keywordflow">while</span> (mycmd)
-<a name="l00180"></a>00180                                                         {
-<a name="l00181"></a>00181                                                                 <span class="keywordflow">if</span> ((!strcasecmp(mycmd,command)) || (*mycmd == <span class="charliteral">'*'</span>))
-<a name="l00182"></a>00182                                                                 {
-<a name="l00183"></a>00183                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00184"></a>00184                                                                 }
-<a name="l00185"></a>00185                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
-<a name="l00186"></a>00186                                                         }
-<a name="l00187"></a>00187                                                 }
-<a name="l00188"></a>00188                                         }
-<a name="l00189"></a>00189                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
-<a name="l00190"></a>00190                                 }
-<a name="l00191"></a>00191                         }
-<a name="l00192"></a>00192                 }
-<a name="l00193"></a>00193         }
-<a name="l00194"></a>00194         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00195"></a>00195 }
-<a name="l00196"></a>00196 
-<a name="l00197"></a>00197 
-<a name="l00198"></a><a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">00198</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">userrec::AddBuffer</a>(<a class="code" href="namespaceirc.html#string">std::string</a> a)
-<a name="l00199"></a>00199 {
-<a name="l00200"></a>00200         <a class="code" href="namespaceirc.html#string">std::string</a> b = <span class="stringliteral">""</span>;
-<a name="l00201"></a>00201         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; a.length(); i++)
-<a name="l00202"></a>00202                 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) &amp;&amp; (a[i] != <span class="charliteral">'\0'</span>) &amp;&amp; (a[i] != 7))
-<a name="l00203"></a>00203                         b = b + a[i];
-<a name="l00204"></a>00204         std::stringstream stream(<a class="code" href="classuserrec.html#recvq">recvq</a>);
-<a name="l00205"></a>00205         stream &lt;&lt; b;
-<a name="l00206"></a>00206         <a class="code" href="classuserrec.html#recvq">recvq</a> = stream.str();
-<a name="l00207"></a>00207         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0;
-<a name="l00208"></a>00208         <span class="comment">// count the size of the first line in the buffer.</span>
-<a name="l00209"></a>00209         <span class="keywordflow">while</span> (i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length())
-<a name="l00210"></a>00210         {
-<a name="l00211"></a>00211                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i++] == <span class="charliteral">'\n'</span>)
-<a name="l00212"></a>00212                         <span class="keywordflow">break</span>;
-<a name="l00213"></a>00213         }
-<a name="l00214"></a>00214         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>)
-<a name="l00215"></a>00215         {
-<a name="l00216"></a>00216                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"RecvQ exceeded"</span>);
-<a name="l00217"></a>00217                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s RecvQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#recvq">recvq</a>.length(),this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>);
-<a name="l00218"></a>00218         }
-<a name="l00219"></a>00219         <span class="comment">// return false if we've had more than 600 characters WITHOUT</span>
-<a name="l00220"></a>00220         <span class="comment">// a carriage return (this is BAD, drop the socket)</span>
-<a name="l00221"></a>00221         <span class="keywordflow">return</span> (i &lt; 600);
-<a name="l00222"></a>00222 }
-<a name="l00223"></a>00223 
-<a name="l00224"></a><a class="code" href="classuserrec.html#BufferIsReady_28_29">00224</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#BufferIsReady_28_29">userrec::BufferIsReady</a>()
-<a name="l00225"></a>00225 {
-<a name="l00226"></a>00226         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length(); i++)
-<a name="l00227"></a>00227                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i] == <span class="charliteral">'\n'</span>)
-<a name="l00228"></a>00228                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
-<a name="l00229"></a>00229         <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00230"></a>00230 }
-<a name="l00231"></a>00231 
-<a name="l00232"></a><a class="code" href="classuserrec.html#ClearBuffer_28_29">00232</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#ClearBuffer_28_29">userrec::ClearBuffer</a>()
-<a name="l00233"></a>00233 {
-<a name="l00234"></a>00234         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
-<a name="l00235"></a>00235 }
-<a name="l00236"></a>00236 
-<a name="l00237"></a><a class="code" href="classuserrec.html#GetBuffer_28_29">00237</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetBuffer_28_29">userrec::GetBuffer</a>()
-<a name="l00238"></a>00238 {
-<a name="l00239"></a>00239         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a> == <span class="stringliteral">""</span>)
-<a name="l00240"></a>00240                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
-<a name="l00241"></a>00241         <span class="keywordtype">char</span>* line = (<span class="keywordtype">char</span>*)<a class="code" href="classuserrec.html#recvq">recvq</a>.c_str();
-<a name="l00242"></a>00242         <a class="code" href="namespaceirc.html#string">std::string</a> ret = <span class="stringliteral">""</span>;
-<a name="l00243"></a>00243         <span class="keywordflow">while</span> ((*line != <span class="charliteral">'\n'</span>) &amp;&amp; (strlen(line)))
-<a name="l00244"></a>00244         {
-<a name="l00245"></a>00245                 ret = ret + *line;
-<a name="l00246"></a>00246                 line++;
-<a name="l00247"></a>00247         }
-<a name="l00248"></a>00248         <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
-<a name="l00249"></a>00249                 line++;
-<a name="l00250"></a>00250         <a class="code" href="classuserrec.html#recvq">recvq</a> = line;
-<a name="l00251"></a>00251         <span class="keywordflow">return</span> ret;
-<a name="l00252"></a>00252 }
-<a name="l00253"></a>00253 
-<a name="l00254"></a><a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">00254</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">userrec::AddWriteBuf</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data)
-<a name="l00255"></a>00255 {
-<a name="l00256"></a>00256         <span class="keywordflow">if</span> (this-&gt;GetWriteError() != <span class="stringliteral">""</span>)
-<a name="l00257"></a>00257                 <span class="keywordflow">return</span>;
-<a name="l00258"></a>00258         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>)
-<a name="l00259"></a>00259         {
-<a name="l00260"></a>00260                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s SendQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length(),this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>);
-<a name="l00261"></a>00261                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"SendQ exceeded"</span>);
-<a name="l00262"></a>00262                 <span class="keywordflow">return</span>;
-<a name="l00263"></a>00263         }
-<a name="l00264"></a>00264         std::stringstream stream;
-<a name="l00265"></a>00265         stream &lt;&lt; <a class="code" href="classuserrec.html#sendq">sendq</a> &lt;&lt; data;
-<a name="l00266"></a>00266         <a class="code" href="classuserrec.html#sendq">sendq</a> = stream.str();
-<a name="l00267"></a>00267 }
-<a name="l00268"></a>00268 
-<a name="l00269"></a>00269 <span class="comment">// send AS MUCH OF THE USERS SENDQ as we are able to (might not be all of it)</span>
-<a name="l00270"></a><a class="code" href="classuserrec.html#FlushWriteBuf_28_29">00270</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#FlushWriteBuf_28_29">userrec::FlushWriteBuf</a>()
-<a name="l00271"></a>00271 {
-<a name="l00272"></a>00272         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length())
-<a name="l00273"></a>00273         {
-<a name="l00274"></a>00274                 <span class="keywordtype">char</span>* tb = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a>.c_str();
-<a name="l00275"></a>00275                 <span class="keywordtype">int</span> n_sent = write(this-&gt;fd,tb,this-&gt;sendq.length());
-<a name="l00276"></a>00276                 <span class="keywordflow">if</span> (n_sent == -1)
-<a name="l00277"></a>00277                 {
-<a name="l00278"></a>00278                         this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(strerror(errno));
-<a name="l00279"></a>00279                 }
-<a name="l00280"></a>00280                 <span class="keywordflow">else</span>
-<a name="l00281"></a>00281                 {
-<a name="l00282"></a>00282                         <span class="comment">// advance the queue</span>
-<a name="l00283"></a>00283                         tb += n_sent;
-<a name="l00284"></a>00284                         this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a> = tb;
-<a name="l00285"></a>00285                         <span class="comment">// update the user's stats counters</span>
-<a name="l00286"></a>00286                         this-&gt;<a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> += n_sent;
-<a name="l00287"></a>00287                         this-&gt;<a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a>++;
-<a name="l00288"></a>00288                 }
-<a name="l00289"></a>00289         }
-<a name="l00290"></a>00290 }
-<a name="l00291"></a>00291 
-<a name="l00292"></a><a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">00292</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">userrec::SetWriteError</a>(<a class="code" href="namespaceirc.html#string">std::string</a> error)
-<a name="l00293"></a>00293 {
-<a name="l00294"></a>00294         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Setting error string for %s to '%s'"</span>,this-&gt;nick,error.c_str());
-<a name="l00295"></a>00295         <span class="comment">// don't try to set the error twice, its already set take the first string.</span>
-<a name="l00296"></a>00296         <span class="keywordflow">if</span> (this-&gt;WriteError == <span class="stringliteral">""</span>)
-<a name="l00297"></a>00297                 this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a> = error;
-<a name="l00298"></a>00298 }
-<a name="l00299"></a>00299 
-<a name="l00300"></a><a class="code" href="classuserrec.html#GetWriteError_28_29">00300</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetWriteError_28_29">userrec::GetWriteError</a>()
-<a name="l00301"></a>00301 {
-<a name="l00302"></a>00302         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a>;
-<a name="l00303"></a>00303 }
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00127"></a>00127                 <a class="code" href="namespaceirc.html#string">irc::string</a> compare = i-&gt;channel;
+<a name="l00128"></a>00128                 <span class="keywordflow">if</span> (compare == channel)
+<a name="l00129"></a>00129                 {
+<a name="l00130"></a>00130                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00131"></a>00131                 }
+<a name="l00132"></a>00132         }
+<a name="l00133"></a>00133         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135 
+<a name="l00136"></a><a class="code" href="classuserrec.html#GetInviteList_28_29">00136</a> <a class="code" href="users_8h.html#InvitedList">InvitedList</a>* <a class="code" href="classuserrec.html#GetInviteList_28_29">userrec::GetInviteList</a>()
+<a name="l00137"></a>00137 {
+<a name="l00138"></a>00138         <span class="keywordflow">return</span> &amp;<a class="code" href="classuserrec.html#invites">invites</a>;
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 
+<a name="l00141"></a><a class="code" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">00141</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">userrec::InviteTo</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel)
+<a name="l00142"></a>00142 {
+<a name="l00143"></a>00143         <a class="code" href="classInvited.html">Invited</a> i;
+<a name="l00144"></a>00144         i.<a class="code" href="classInvited.html#channel">channel</a> = channel;
+<a name="l00145"></a>00145         <a class="code" href="classuserrec.html#invites">invites</a>.push_back(i);
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147 
+<a name="l00148"></a><a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">00148</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">userrec::RemoveInvite</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removing invites"</span>);
+<a name="l00151"></a>00151         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#invites">invites</a>.size())
+<a name="l00152"></a>00152         {
+<a name="l00153"></a>00153                 <span class="keywordflow">for</span> (InvitedList::iterator i = <a class="code" href="classuserrec.html#invites">invites</a>.begin(); i != <a class="code" href="classuserrec.html#invites">invites</a>.end(); i++)
+<a name="l00154"></a>00154                 {
+<a name="l00155"></a>00155                         <a class="code" href="namespaceirc.html#string">irc::string</a> compare = i-&gt;channel;
+<a name="l00156"></a>00156                         <span class="keywordflow">if</span> (compare == channel)
+<a name="l00157"></a>00157                         {
+<a name="l00158"></a>00158                                 <a class="code" href="classuserrec.html#invites">invites</a>.erase(i);
+<a name="l00159"></a>00159                                 <span class="keywordflow">return</span>;
+<a name="l00160"></a>00160                         }
+<a name="l00161"></a>00161                 }
+<a name="l00162"></a>00162         }
+<a name="l00163"></a>00163 }
+<a name="l00164"></a>00164 
+<a name="l00165"></a><a class="code" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">00165</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">userrec::HasPermission</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;command)
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167         <span class="keywordtype">char</span> TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
+<a name="l00168"></a>00168         <span class="keywordtype">char</span>* mycmd;
+<a name="l00169"></a>00169         <span class="keywordtype">char</span>* savept;
+<a name="l00170"></a>00170         <span class="keywordtype">char</span>* savept2;
+<a name="l00171"></a>00171         
+<a name="l00172"></a>00172         <span class="comment">// users on u-lined servers can completely bypass</span>
+<a name="l00173"></a>00173         <span class="comment">// all permissions based checks.</span>
+<a name="l00174"></a>00174         <span class="comment">//</span>
+<a name="l00175"></a>00175         <span class="comment">// of course, if this is sent to a remote server and this</span>
+<a name="l00176"></a>00176         <span class="comment">// server is not ulined there, then that other server</span>
+<a name="l00177"></a>00177         <span class="comment">// silently drops the command.</span>
+<a name="l00178"></a>00178         <span class="keywordflow">if</span> (<a class="code" href="commands_8h.html#is_5Fuline_28const_20char_20_2Aserver_29">is_uline</a>(this-&gt;server))
+<a name="l00179"></a>00179                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00180"></a>00180         
+<a name="l00181"></a>00181         <span class="comment">// are they even an oper at all?</span>
+<a name="l00182"></a>00182         <span class="keywordflow">if</span> (strchr(this-&gt;modes,<span class="charliteral">'o'</span>))
+<a name="l00183"></a>00183         {
+<a name="l00184"></a>00184                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j =0; j &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"type"</span>,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); j++)
+<a name="l00185"></a>00185                 {
+<a name="l00186"></a>00186                         Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"name"</span>,j,TypeName,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00187"></a>00187                         <span class="keywordflow">if</span> (!strcmp(TypeName,this-&gt;oper))
+<a name="l00188"></a>00188                         {
+<a name="l00189"></a>00189                                 Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"type"</span>,<span class="stringliteral">"classes"</span>,j,Classes,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00190"></a>00190                                 <span class="keywordtype">char</span>* myclass = strtok_r(Classes,<span class="stringliteral">" "</span>,&amp;savept);
+<a name="l00191"></a>00191                                 <span class="keywordflow">while</span> (myclass)
+<a name="l00192"></a>00192                                 {
+<a name="l00193"></a>00193                                         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k =0; k &lt; Config-&gt;ConfValueEnum(<span class="stringliteral">"class"</span>,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>); k++)
+<a name="l00194"></a>00194                                         {
+<a name="l00195"></a>00195                                                 Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"name"</span>,k,ClassName,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00196"></a>00196                                                 <span class="keywordflow">if</span> (!strcmp(ClassName,myclass))
+<a name="l00197"></a>00197                                                 {
+<a name="l00198"></a>00198                                                         Config-&gt;<a class="code" href="classServerConfig.html#ConfValue_28char_20_2Atag_2C_20char_20_2Avar_2C_20int_20index_2C_20char_20_2Aresult_2C_20std_3A_3Astringstream_20_2Aconfig_29">ConfValue</a>(<span class="stringliteral">"class"</span>,<span class="stringliteral">"commands"</span>,k,CommandList,&amp;Config-&gt;<a class="code" href="classServerConfig.html#config_5Ff">config_f</a>);
+<a name="l00199"></a>00199                                                         mycmd = strtok_r(CommandList,<span class="stringliteral">" "</span>,&amp;savept2);
+<a name="l00200"></a>00200                                                         <span class="keywordflow">while</span> (mycmd)
+<a name="l00201"></a>00201                                                         {
+<a name="l00202"></a>00202                                                                 <span class="keywordflow">if</span> ((!strcasecmp(mycmd,command.c_str())) || (*mycmd == <span class="charliteral">'*'</span>))
+<a name="l00203"></a>00203                                                                 {
+<a name="l00204"></a>00204                                                                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00205"></a>00205                                                                 }
+<a name="l00206"></a>00206                                                                 mycmd = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept2);
+<a name="l00207"></a>00207                                                         }
+<a name="l00208"></a>00208                                                 }
+<a name="l00209"></a>00209                                         }
+<a name="l00210"></a>00210                                         myclass = strtok_r(NULL,<span class="stringliteral">" "</span>,&amp;savept);
+<a name="l00211"></a>00211                                 }
+<a name="l00212"></a>00212                         }
+<a name="l00213"></a>00213                 }
+<a name="l00214"></a>00214         }
+<a name="l00215"></a>00215         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00216"></a>00216 }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218 
+<a name="l00219"></a><a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">00219</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">userrec::AddBuffer</a>(<a class="code" href="namespaceirc.html#string">std::string</a> a)
+<a name="l00220"></a>00220 {
+<a name="l00221"></a>00221         <a class="code" href="namespaceirc.html#string">std::string</a> b = <span class="stringliteral">""</span>;
+<a name="l00222"></a>00222         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; a.length(); i++)
+<a name="l00223"></a>00223                 <span class="keywordflow">if</span> ((a[i] != <span class="charliteral">'\r'</span>) &amp;&amp; (a[i] != <span class="charliteral">'\0'</span>) &amp;&amp; (a[i] != 7))
+<a name="l00224"></a>00224                         b = b + a[i];
+<a name="l00225"></a>00225         std::stringstream stream(<a class="code" href="classuserrec.html#recvq">recvq</a>);
+<a name="l00226"></a>00226         stream &lt;&lt; b;
+<a name="l00227"></a>00227         <a class="code" href="classuserrec.html#recvq">recvq</a> = stream.str();
+<a name="l00228"></a>00228         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0;
+<a name="l00229"></a>00229         <span class="comment">// count the size of the first line in the buffer.</span>
+<a name="l00230"></a>00230         <span class="keywordflow">while</span> (i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length())
+<a name="l00231"></a>00231         {
+<a name="l00232"></a>00232                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i++] == <span class="charliteral">'\n'</span>)
+<a name="l00233"></a>00233                         <span class="keywordflow">break</span>;
+<a name="l00234"></a>00234         }
+<a name="l00235"></a>00235         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>)
+<a name="l00236"></a>00236         {
+<a name="l00237"></a>00237                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"RecvQ exceeded"</span>);
+<a name="l00238"></a>00238                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s RecvQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#recvq">recvq</a>.length(),this-&gt;<a class="code" href="classuserrec.html#recvqmax">recvqmax</a>);
+<a name="l00239"></a>00239         }
+<a name="l00240"></a>00240         <span class="comment">// return false if we've had more than 600 characters WITHOUT</span>
+<a name="l00241"></a>00241         <span class="comment">// a carriage return (this is BAD, drop the socket)</span>
+<a name="l00242"></a>00242         <span class="keywordflow">return</span> (i &lt; 600);
+<a name="l00243"></a>00243 }
+<a name="l00244"></a>00244 
+<a name="l00245"></a><a class="code" href="classuserrec.html#BufferIsReady_28_29">00245</a> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#BufferIsReady_28_29">userrec::BufferIsReady</a>()
+<a name="l00246"></a>00246 {
+<a name="l00247"></a>00247         <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classuserrec.html#recvq">recvq</a>.length(); i++)
+<a name="l00248"></a>00248                 <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a>[i] == <span class="charliteral">'\n'</span>)
+<a name="l00249"></a>00249                         <span class="keywordflow">return</span> <span class="keyword">true</span>;
+<a name="l00250"></a>00250         <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252 
+<a name="l00253"></a><a class="code" href="classuserrec.html#ClearBuffer_28_29">00253</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#ClearBuffer_28_29">userrec::ClearBuffer</a>()
+<a name="l00254"></a>00254 {
+<a name="l00255"></a>00255         <a class="code" href="classuserrec.html#recvq">recvq</a> = <span class="stringliteral">""</span>;
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257 
+<a name="l00258"></a><a class="code" href="classuserrec.html#GetBuffer_28_29">00258</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetBuffer_28_29">userrec::GetBuffer</a>()
+<a name="l00259"></a>00259 {
+<a name="l00260"></a>00260         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#recvq">recvq</a> == <span class="stringliteral">""</span>)
+<a name="l00261"></a>00261                 <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00262"></a>00262         <span class="keywordtype">char</span>* line = (<span class="keywordtype">char</span>*)<a class="code" href="classuserrec.html#recvq">recvq</a>.c_str();
+<a name="l00263"></a>00263         <a class="code" href="namespaceirc.html#string">std::string</a> ret = <span class="stringliteral">""</span>;
+<a name="l00264"></a>00264         <span class="keywordflow">while</span> ((*line != <span class="charliteral">'\n'</span>) &amp;&amp; (strlen(line)))
+<a name="l00265"></a>00265         {
+<a name="l00266"></a>00266                 ret = ret + *line;
+<a name="l00267"></a>00267                 line++;
+<a name="l00268"></a>00268         }
+<a name="l00269"></a>00269         <span class="keywordflow">if</span> ((*line == <span class="charliteral">'\n'</span>) || (*line == <span class="charliteral">'\r'</span>))
+<a name="l00270"></a>00270                 line++;
+<a name="l00271"></a>00271         <a class="code" href="classuserrec.html#recvq">recvq</a> = line;
+<a name="l00272"></a>00272         <span class="keywordflow">return</span> ret;
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274 
+<a name="l00275"></a><a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">00275</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">userrec::AddWriteBuf</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data)
+<a name="l00276"></a>00276 {
+<a name="l00277"></a>00277         <span class="keywordflow">if</span> (this-&gt;GetWriteError() != <span class="stringliteral">""</span>)
+<a name="l00278"></a>00278                 <span class="keywordflow">return</span>;
+<a name="l00279"></a>00279         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length() &gt; (unsigned)this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>)
+<a name="l00280"></a>00280         {
+<a name="l00281"></a>00281                 <span class="comment">/* Fix by brain - Set the error text BEFORE calling writeopers, because</span>
+<a name="l00282"></a>00282 <span class="comment">                 * if we dont it'll recursively  call here over and over again trying</span>
+<a name="l00283"></a>00283 <span class="comment">                 * to repeatedly add the text to the sendq!</span>
+<a name="l00284"></a>00284 <span class="comment">                 */</span>
+<a name="l00285"></a>00285                 this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<span class="stringliteral">"SendQ exceeded"</span>);
+<a name="l00286"></a>00286                 <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** User %s SendQ of %d exceeds connect class maximum of %d"</span>,this-&gt;nick,<a class="code" href="classuserrec.html#sendq">sendq</a>.length() + data.length(),this-&gt;<a class="code" href="classuserrec.html#sendqmax">sendqmax</a>);
+<a name="l00287"></a>00287                 <span class="keywordflow">return</span>;
+<a name="l00288"></a>00288         }
+<a name="l00289"></a>00289         std::stringstream stream;
+<a name="l00290"></a>00290         stream &lt;&lt; <a class="code" href="classuserrec.html#sendq">sendq</a> &lt;&lt; data;
+<a name="l00291"></a>00291         <a class="code" href="classuserrec.html#sendq">sendq</a> = stream.str();
+<a name="l00292"></a>00292 }
+<a name="l00293"></a>00293 
+<a name="l00294"></a>00294 <span class="comment">// send AS MUCH OF THE USERS SENDQ as we are able to (might not be all of it)</span>
+<a name="l00295"></a><a class="code" href="classuserrec.html#FlushWriteBuf_28_29">00295</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#FlushWriteBuf_28_29">userrec::FlushWriteBuf</a>()
+<a name="l00296"></a>00296 {
+<a name="l00297"></a>00297         <span class="keywordflow">if</span> (<a class="code" href="classuserrec.html#sendq">sendq</a>.length())
+<a name="l00298"></a>00298         {
+<a name="l00299"></a>00299                 <span class="keywordtype">char</span>* tb = (<span class="keywordtype">char</span>*)this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a>.c_str();
+<a name="l00300"></a>00300                 <span class="keywordtype">int</span> n_sent = write(this-&gt;fd,tb,this-&gt;sendq.length());
+<a name="l00301"></a>00301                 <span class="keywordflow">if</span> (n_sent == -1)
+<a name="l00302"></a>00302                 {
+<a name="l00303"></a>00303                         this-&gt;<a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(strerror(errno));
+<a name="l00304"></a>00304                 }
+<a name="l00305"></a>00305                 <span class="keywordflow">else</span>
+<a name="l00306"></a>00306                 {
+<a name="l00307"></a>00307                         <span class="comment">// advance the queue</span>
+<a name="l00308"></a>00308                         tb += n_sent;
+<a name="l00309"></a>00309                         this-&gt;<a class="code" href="classuserrec.html#sendq">sendq</a> = tb;
+<a name="l00310"></a>00310                         <span class="comment">// update the user's stats counters</span>
+<a name="l00311"></a>00311                         this-&gt;<a class="code" href="classconnection.html#bytes_5Fout">bytes_out</a> += n_sent;
+<a name="l00312"></a>00312                         this-&gt;<a class="code" href="classconnection.html#cmds_5Fout">cmds_out</a>++;
+<a name="l00313"></a>00313                 }
+<a name="l00314"></a>00314         }
+<a name="l00315"></a>00315 }
+<a name="l00316"></a>00316 
+<a name="l00317"></a><a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">00317</a> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">userrec::SetWriteError</a>(<a class="code" href="namespaceirc.html#string">std::string</a> error)
+<a name="l00318"></a>00318 {
+<a name="l00319"></a>00319         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Setting error string for %s to '%s'"</span>,this-&gt;nick,error.c_str());
+<a name="l00320"></a>00320         <span class="comment">// don't try to set the error twice, its already set take the first string.</span>
+<a name="l00321"></a>00321         <span class="keywordflow">if</span> (this-&gt;WriteError == <span class="stringliteral">""</span>)
+<a name="l00322"></a>00322                 this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a> = error;
+<a name="l00323"></a>00323 }
+<a name="l00324"></a>00324 
+<a name="l00325"></a><a class="code" href="classuserrec.html#GetWriteError_28_29">00325</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetWriteError_28_29">userrec::GetWriteError</a>()
+<a name="l00326"></a>00326 {
+<a name="l00327"></a>00327         <span class="keywordflow">return</span> this-&gt;<a class="code" href="classuserrec.html#WriteError">WriteError</a>;
+<a name="l00328"></a>00328 }
+<a name="l00329"></a>00329 
+<a name="l00330"></a><a class="code" href="users_8h.html#AddOper_28userrec_20_2Auser_29">00330</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddOper_28userrec_20_2Auser_29">AddOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00331"></a>00331 {
+<a name="l00332"></a>00332         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper added to optimization list"</span>);
+<a name="l00333"></a>00333         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.push_back(user);
+<a name="l00334"></a>00334 }
+<a name="l00335"></a>00335 
+<a name="l00336"></a><a class="code" href="users_8h.html#DeleteOper_28userrec_20_2Auser_29">00336</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00337"></a>00337 {
+<a name="l00338"></a>00338         <span class="keywordflow">for</span> (std::vector&lt;userrec*&gt;::iterator a = <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.begin(); a &lt; <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.end(); a++)
+<a name="l00339"></a>00339         {
+<a name="l00340"></a>00340                 <span class="keywordflow">if</span> (*a == user)
+<a name="l00341"></a>00341                 {
+<a name="l00342"></a>00342                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper removed from optimization list"</span>);
+<a name="l00343"></a>00343                         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.erase(a);
+<a name="l00344"></a>00344                         <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345                 }
+<a name="l00346"></a>00346         }
+<a name="l00347"></a>00347 }
+<a name="l00348"></a>00348 
+<a name="l00349"></a><a class="code" href="users_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">00349</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r)
+<a name="l00350"></a>00350 {
+<a name="l00351"></a>00351         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355         strncpy(reason,r,MAXBUF);
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00358"></a>00358         {
+<a name="l00359"></a>00359                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00360"></a>00360         }
+<a name="l00361"></a>00361 
+<a name="l00362"></a>00362         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00363"></a>00363         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00364"></a>00364         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00367"></a>00367                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00368"></a>00368                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00369"></a>00369         }
+<a name="l00370"></a>00370 
+<a name="l00371"></a>00371         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00374"></a>00374 
+<a name="l00375"></a>00375         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00376"></a>00376         {
+<a name="l00377"></a>00377                 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00378"></a>00378                 {
+<a name="l00379"></a>00379                         Config-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00380"></a>00380                 }
+<a name="l00381"></a>00381                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00382"></a>00382                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00383"></a>00383         }
+<a name="l00384"></a>00384 
+<a name="l00385"></a>00385         <span class="comment">// this must come before the WriteOpers so that it doesnt try to fill their buffer with anything</span>
+<a name="l00386"></a>00386         <span class="comment">// if they were an oper with +s.</span>
+<a name="l00387"></a>00387         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00388"></a>00388                 purge_empty_chans(user);
+<a name="l00389"></a>00389                 <span class="comment">// fix by brain: only show local quits because we only show local connects (it just makes SENSE)</span>
+<a name="l00390"></a>00390                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00391"></a>00391                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client exiting: %s!%s@%s [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00392"></a>00392                 <a class="code" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(user);
+<a name="l00393"></a>00393         }
+<a name="l00394"></a>00394 
+<a name="l00395"></a>00395         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00396"></a>00396         {
+<a name="l00397"></a>00397                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00398"></a>00398                 <span class="keywordflow">if</span> (user-&gt;fd &gt; -1)
+<a name="l00399"></a>00399                 {
+<a name="l00400"></a>00400                         fd_ref_table[user-&gt;fd] = NULL;
+<a name="l00401"></a>00401                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00402"></a>00402                         {
+<a name="l00403"></a>00403                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00404"></a>00404                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00405"></a>00405                         }
+<a name="l00406"></a>00406                 }
+<a name="l00407"></a>00407                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00408"></a>00408         }
+<a name="l00409"></a>00409         <span class="keyword">delete</span> user;
+<a name="l00410"></a>00410 }
+<a name="l00411"></a>00411 
+<a name="l00412"></a><a class="code" href="users_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">00412</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r)
+<a name="l00413"></a>00413 {
+<a name="l00414"></a>00414         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00417"></a>00417 
+<a name="l00418"></a>00418         strncpy(reason,r,MAXBUF);
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00421"></a>00421         {
+<a name="l00422"></a>00422                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00423"></a>00423         }
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00426"></a>00426         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00427"></a>00427         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00432"></a>00432                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00433"></a>00433                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00434"></a>00434         }
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00439"></a>00439         {
+<a name="l00440"></a>00440                 <span class="keywordflow">if</span> (Config-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00441"></a>00441                 {
+<a name="l00442"></a>00442                         Config-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00443"></a>00443                 }
+<a name="l00444"></a>00444                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00445"></a>00445                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00446"></a>00446         }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00449"></a>00449                 purge_empty_chans(user);
+<a name="l00450"></a>00450         }
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00453"></a>00453         {
+<a name="l00454"></a>00454                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00455"></a>00455                 <span class="keywordflow">if</span> (user-&gt;fd &gt; -1)
+<a name="l00456"></a>00456                 {
+<a name="l00457"></a>00457                         fd_ref_table[user-&gt;fd] = NULL;
+<a name="l00458"></a>00458                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00459"></a>00459                         {
+<a name="l00460"></a>00460                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00461"></a>00461                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00462"></a>00462                         }
+<a name="l00463"></a>00463                 }
+<a name="l00464"></a>00464                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00465"></a>00465         }
+<a name="l00466"></a>00466         <span class="keyword">delete</span> user;
+<a name="l00467"></a>00467 }
+<a name="l00468"></a>00468 
+<a name="l00469"></a>00469 
+<a name="l00470"></a>00470 <span class="comment">/* adds or updates an entry in the whowas list */</span>
+<a name="l00471"></a><a class="code" href="users_8h.html#AddWhoWas_28userrec_20_2Au_29">00471</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(<a class="code" href="classuserrec.html">userrec</a>* u)
+<a name="l00472"></a>00472 {
+<a name="l00473"></a>00473         whowas_hash::iterator iter = <a class="code" href="users_8cpp.html#whowas">whowas</a>.find(u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00474"></a>00474         <a class="code" href="classWhoWasUser.html">WhoWasUser</a> *a = <span class="keyword">new</span> <a class="code" href="classWhoWasUser.html">WhoWasUser</a>();
+<a name="l00475"></a>00475         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>,u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00476"></a>00476         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>,u-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,IDENTMAX);
+<a name="l00477"></a>00477         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>,u-&gt;<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,160);
+<a name="l00478"></a>00478         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>,u-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,160);
+<a name="l00479"></a>00479         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,u-&gt;<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,MAXGECOS);
+<a name="l00480"></a>00480         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>,u-&gt;<a class="code" href="classuserrec.html#server">server</a>,256);
+<a name="l00481"></a>00481         a-&gt;<a class="code" href="classWhoWasUser.html#signon">signon</a> = u-&gt;<a class="code" href="classconnection.html#signon">signon</a>;
+<a name="l00482"></a>00482 
+<a name="l00483"></a>00483         <span class="comment">/* MAX_WHOWAS:   max number of /WHOWAS items</span>
+<a name="l00484"></a>00484 <span class="comment">         * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and</span>
+<a name="l00485"></a>00485 <span class="comment">         *               can be replaced by a newer one</span>
+<a name="l00486"></a>00486 <span class="comment">         */</span>
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488         <span class="keywordflow">if</span> (iter == <a class="code" href="users_8cpp.html#whowas">whowas</a>.end())
+<a name="l00489"></a>00489         {
+<a name="l00490"></a>00490                 <span class="keywordflow">if</span> (<a class="code" href="users_8cpp.html#whowas">whowas</a>.size() &gt;= (unsigned)<a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>)
+<a name="l00491"></a>00491                 {
+<a name="l00492"></a>00492                         <span class="keywordflow">for</span> (whowas_hash::iterator i = <a class="code" href="users_8cpp.html#whowas">whowas</a>.begin(); i != <a class="code" href="users_8cpp.html#whowas">whowas</a>.end(); i++)
+<a name="l00493"></a>00493                         {
+<a name="l00494"></a>00494                                 <span class="comment">// 3600 seconds in an hour ;)</span>
+<a name="l00495"></a>00495                                 <span class="keywordflow">if</span> ((i-&gt;second-&gt;signon)&lt;(<a class="code" href="channels_8cpp.html#TIME">TIME</a>-(<a class="code" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>*3600)))
+<a name="l00496"></a>00496                                 {
+<a name="l00497"></a>00497                                         <span class="comment">// delete the old one</span>
+<a name="l00498"></a>00498                                         <span class="keywordflow">if</span> (i-&gt;second) <span class="keyword">delete</span> i-&gt;second;
+<a name="l00499"></a>00499                                         <span class="comment">// replace with new one</span>
+<a name="l00500"></a>00500                                         i-&gt;second = a;
+<a name="l00501"></a>00501                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added WHOWAS entry, purged an old record"</span>);
+<a name="l00502"></a>00502                                         <span class="keywordflow">return</span>;
+<a name="l00503"></a>00503                                 }
+<a name="l00504"></a>00504                         }
+<a name="l00505"></a>00505                         <span class="comment">// no space left and user doesnt exist. Don't leave ram in use!</span>
+<a name="l00506"></a>00506                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram"</span>);
+<a name="l00507"></a>00507                         <span class="keyword">delete</span> a;
+<a name="l00508"></a>00508                 }
+<a name="l00509"></a>00509                 <span class="keywordflow">else</span>
+<a name="l00510"></a>00510                 {
+<a name="l00511"></a>00511                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added fresh WHOWAS entry"</span>);
+<a name="l00512"></a>00512                         <a class="code" href="users_8cpp.html#whowas">whowas</a>[a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>] = a;
+<a name="l00513"></a>00513                 }
+<a name="l00514"></a>00514         }
+<a name="l00515"></a>00515         <span class="keywordflow">else</span>
+<a name="l00516"></a>00516         {
+<a name="l00517"></a>00517                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"updated WHOWAS entry"</span>);
+<a name="l00518"></a>00518                 <span class="keywordflow">if</span> (iter-&gt;second) <span class="keyword">delete</span> iter-&gt;second;
+<a name="l00519"></a>00519                 iter-&gt;second = a;
+<a name="l00520"></a>00520         }
+<a name="l00521"></a>00521 }
+<a name="l00522"></a>00522 
+<a name="l00523"></a>00523 <span class="comment">/* add a client connection to the sockets list */</span>
+<a name="l00524"></a><a class="code" href="users_8h.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">00524</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">AddClient</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port, <span class="keywordtype">bool</span> iscached, <span class="keywordtype">char</span>* ip)
+<a name="l00525"></a>00525 {
+<a name="l00526"></a>00526         <a class="code" href="namespaceirc.html#string">string</a> tempnick;
+<a name="l00527"></a>00527         <span class="keywordtype">char</span> tn2[MAXBUF];
+<a name="l00528"></a>00528         user_hash::iterator iter;
+<a name="l00529"></a>00529 
+<a name="l00530"></a>00530         tempnick = <a class="code" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a>(socket) + <span class="stringliteral">"-unknown"</span>;
+<a name="l00531"></a>00531         sprintf(tn2,<span class="stringliteral">"%lu-unknown"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket);
+<a name="l00532"></a>00532 
+<a name="l00533"></a>00533         iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(tempnick);
+<a name="l00534"></a>00534 
+<a name="l00535"></a>00535         <span class="comment">// fix by brain.</span>
+<a name="l00536"></a>00536         <span class="comment">// as these nicknames are 'RFC impossible', we can be sure nobody is going to be</span>
+<a name="l00537"></a>00537         <span class="comment">// using one as a registered connection. As theyre per fd, we can also safely assume</span>
+<a name="l00538"></a>00538         <span class="comment">// that we wont have collisions. Therefore, if the nick exists in the list, its only</span>
+<a name="l00539"></a>00539         <span class="comment">// used by a dead socket, erase the iterator so that the new client may reclaim it.</span>
+<a name="l00540"></a>00540         <span class="comment">// this was probably the cause of 'server ignores me when i hammer it with reconnects'</span>
+<a name="l00541"></a>00541         <span class="comment">// issue in earlier alphas/betas</span>
+<a name="l00542"></a>00542         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00543"></a>00543         {
+<a name="l00544"></a>00544                 <a class="code" href="classuserrec.html">userrec</a>* goner = iter-&gt;second;
+<a name="l00545"></a>00545                 <span class="keyword">delete</span> goner;
+<a name="l00546"></a>00546                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00547"></a>00547         }
+<a name="l00548"></a>00548 
+<a name="l00549"></a>00549         <span class="comment">/*</span>
+<a name="l00550"></a>00550 <span class="comment">         * It is OK to access the value here this way since we know</span>
+<a name="l00551"></a>00551 <span class="comment">         * it exists, we just created it above.</span>
+<a name="l00552"></a>00552 <span class="comment">         *</span>
+<a name="l00553"></a>00553 <span class="comment">         * At NO other time should you access a value in a map or a</span>
+<a name="l00554"></a>00554 <span class="comment">         * hash_map this way.</span>
+<a name="l00555"></a>00555 <span class="comment">         */</span>
+<a name="l00556"></a>00556         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick] = <span class="keyword">new</span> <a class="code" href="classuserrec.html">userrec</a>();
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"AddClient: %lu %s %d %s"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket,host,port,ip);
+<a name="l00559"></a>00559 
+<a name="l00560"></a>00560         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;fd = socket;
+<a name="l00561"></a>00561         strlcpy(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;nick, tn2,NICKMAX);
+<a name="l00562"></a>00562         strlcpy(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;host, host,160);
+<a name="l00563"></a>00563         strlcpy(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;dhost, host,160);
+<a name="l00564"></a>00564         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;server = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
+<a name="l00565"></a>00565         strlcpy(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;ident, <span class="stringliteral">"unknown"</span>,IDENTMAX);
+<a name="l00566"></a>00566         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;registered = 0;
+<a name="l00567"></a>00567         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;signon = <a class="code" href="channels_8cpp.html#TIME">TIME</a> + Config-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00568"></a>00568         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;lastping = 1;
+<a name="l00569"></a>00569         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;port = port;
+<a name="l00570"></a>00570         strlcpy(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;ip,ip,16);
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572         <span class="comment">// set the registration timeout for this user</span>
+<a name="l00573"></a>00573         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> class_regtimeout = 90;
+<a name="l00574"></a>00574         <span class="keywordtype">int</span> class_flood = 0;
+<a name="l00575"></a>00575         <span class="keywordtype">long</span> class_threshold = 5;
+<a name="l00576"></a>00576         <span class="keywordtype">long</span> class_sqmax = 262144;      <span class="comment">// 256kb</span>
+<a name="l00577"></a>00577         <span class="keywordtype">long</span> class_rqmax = 4096;        <span class="comment">// 4k</span>
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579         <span class="keywordflow">for</span> (ClassVector::iterator i = Config-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.begin(); i != Config-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.end(); i++)
+<a name="l00580"></a>00580         {
+<a name="l00581"></a>00581                 <span class="keywordflow">if</span> (match(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;host,i-&gt;host) &amp;&amp; (i-&gt;type == <a class="code" href="users_8h.html#CC_5FALLOW">CC_ALLOW</a>))
+<a name="l00582"></a>00582                 {
+<a name="l00583"></a>00583                         class_regtimeout = (<span class="keywordtype">unsigned</span> long)i-&gt;registration_timeout;
+<a name="l00584"></a>00584                         class_flood = i-&gt;flood;
+<a name="l00585"></a>00585                         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax = i-&gt;pingtime;
+<a name="l00586"></a>00586                         class_threshold = i-&gt;threshold;
+<a name="l00587"></a>00587                         class_sqmax = i-&gt;sendqmax;
+<a name="l00588"></a>00588                         class_rqmax = i-&gt;recvqmax;
+<a name="l00589"></a>00589                         <span class="keywordflow">break</span>;
+<a name="l00590"></a>00590                 }
+<a name="l00591"></a>00591         }
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;nping = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax + Config-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00594"></a>00594         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;timeout = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+class_regtimeout;
+<a name="l00595"></a>00595         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;flood = class_flood;
+<a name="l00596"></a>00596         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;threshold = class_threshold;
+<a name="l00597"></a>00597         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;sendqmax = class_sqmax;
+<a name="l00598"></a>00598         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;recvqmax = class_rqmax;
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600         <a class="code" href="classucrec.html">ucrec</a> a;
+<a name="l00601"></a>00601         a.<a class="code" href="classucrec.html#channel">channel</a> = NULL;
+<a name="l00602"></a>00602         a.<a class="code" href="classucrec.html#uc_5Fmodes">uc_modes</a> = 0;
+<a name="l00603"></a>00603         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+<a name="l00604"></a>00604                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;chans.push_back(a);
+<a name="l00605"></a>00605 
+<a name="l00606"></a>00606         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt; Config-&gt;<a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>)
+<a name="l00607"></a>00607         {
+<a name="l00608"></a>00608                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00609"></a>00609                 <span class="keywordflow">return</span>;
+<a name="l00610"></a>00610         }
+<a name="l00611"></a>00611 
+<a name="l00612"></a>00612         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt;= MAXCLIENTS)
+<a name="l00613"></a>00613         {
+<a name="l00614"></a>00614                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00615"></a>00615                 <span class="keywordflow">return</span>;
+<a name="l00616"></a>00616         }
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618         <span class="comment">// this is done as a safety check to keep the file descriptors within range of fd_ref_table.</span>
+<a name="l00619"></a>00619         <span class="comment">// its a pretty big but for the moment valid assumption:</span>
+<a name="l00620"></a>00620         <span class="comment">// file descriptors are handed out starting at 0, and are recycled as theyre freed.</span>
+<a name="l00621"></a>00621         <span class="comment">// therefore if there is ever an fd over 65535, 65536 clients must be connected to the</span>
+<a name="l00622"></a>00622         <span class="comment">// irc server at once (or the irc server otherwise initiating this many connections, files etc)</span>
+<a name="l00623"></a>00623         <span class="comment">// which for the time being is a physical impossibility (even the largest networks dont have more</span>
+<a name="l00624"></a>00624         <span class="comment">// than about 10,000 users on ONE server!)</span>
+<a name="l00625"></a>00625         <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)socket &gt; 65534)
+<a name="l00626"></a>00626         {
+<a name="l00627"></a>00627                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick],<span class="stringliteral">"Server is full"</span>);
+<a name="l00628"></a>00628                 <span class="keywordflow">return</span>;
+<a name="l00629"></a>00629         }
+<a name="l00630"></a>00630         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(ip);
+<a name="l00631"></a>00631         <span class="keywordflow">if</span> (!e)
+<a name="l00632"></a>00632         {
+<a name="l00633"></a>00633                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">matches_zline</a>(ip);
+<a name="l00634"></a>00634                 <span class="keywordflow">if</span> (r)
+<a name="l00635"></a>00635                 {
+<a name="l00636"></a>00636                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00637"></a>00637                         snprintf(reason,MAXBUF,<span class="stringliteral">"Z-Lined: %s"</span>,r);
+<a name="l00638"></a>00638                         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick],reason);
+<a name="l00639"></a>00639                         <span class="keywordflow">return</span>;
+<a name="l00640"></a>00640                 }
+<a name="l00641"></a>00641         }
+<a name="l00642"></a>00642         fd_ref_table[socket] = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick];
+<a name="l00643"></a>00643         <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.push_back(<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]);
+<a name="l00644"></a>00644         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(socket,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FCLIENT">X_ESTAB_CLIENT</a>);
+<a name="l00645"></a>00645 }
+<a name="l00646"></a>00646 
+<a name="l00647"></a><a class="code" href="users_8h.html#FullConnectUser_28userrec_20_2Auser_29">00647</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user)
+<a name="l00648"></a>00648 {
+<a name="l00649"></a>00649         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsConnects">statsConnects</a>++;
+<a name="l00650"></a>00650         user-&gt;<a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00651"></a>00651         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ConnectUser: %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00652"></a>00652 
+<a name="l00653"></a>00653         <span class="keywordflow">if</span> ((strcmp(Passwd(user),<span class="stringliteral">""</span>)) &amp;&amp; (!user-&gt;<a class="code" href="classconnection.html#haspassed">haspassed</a>))
+<a name="l00654"></a>00654         {
+<a name="l00655"></a>00655                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Invalid password"</span>);
+<a name="l00656"></a>00656                 <span class="keywordflow">return</span>;
+<a name="l00657"></a>00657         }
+<a name="l00658"></a>00658         <span class="keywordflow">if</span> (IsDenied(user))
+<a name="l00659"></a>00659         {
+<a name="l00660"></a>00660                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Unauthorised connection"</span>);
+<a name="l00661"></a>00661                 <span class="keywordflow">return</span>;
+<a name="l00662"></a>00662         }
+<a name="l00663"></a>00663 
+<a name="l00664"></a>00664         <span class="keywordtype">char</span> match_against[MAXBUF];
+<a name="l00665"></a>00665         snprintf(match_against,MAXBUF,<span class="stringliteral">"%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00666"></a>00666         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(match_against);
+<a name="l00667"></a>00667         <span class="keywordflow">if</span> (!e)
+<a name="l00668"></a>00668         {
+<a name="l00669"></a>00669                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">matches_gline</a>(match_against);
+<a name="l00670"></a>00670                 <span class="keywordflow">if</span> (r)
+<a name="l00671"></a>00671                 {
+<a name="l00672"></a>00672                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00673"></a>00673                         snprintf(reason,MAXBUF,<span class="stringliteral">"G-Lined: %s"</span>,r);
+<a name="l00674"></a>00674                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00675"></a>00675                         <span class="keywordflow">return</span>;
+<a name="l00676"></a>00676                 }
+<a name="l00677"></a>00677                 r = <a class="code" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">matches_kline</a>(user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00678"></a>00678                 <span class="keywordflow">if</span> (r)
+<a name="l00679"></a>00679                 {
+<a name="l00680"></a>00680                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00681"></a>00681                         snprintf(reason,MAXBUF,<span class="stringliteral">"K-Lined: %s"</span>,r);
+<a name="l00682"></a>00682                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00683"></a>00683                         <span class="keywordflow">return</span>;
+<a name="l00684"></a>00684                 }
+<a name="l00685"></a>00685         }
+<a name="l00686"></a>00686 
+<a name="l00687"></a>00687 
+<a name="l00688"></a>00688         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE Auth :Welcome to \002%s\002!"</span>,Config-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>);
+<a name="l00689"></a>00689         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"001 %s :Welcome to the %s IRC Network %s!%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,Config-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00690"></a>00690         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"002 %s :Your host is %s, running version %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00691"></a>00691         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"003 %s :This server was created %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,__TIME__,__DATE__);
+<a name="l00692"></a>00692         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,Config-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00693"></a>00693         <span class="comment">// the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...</span>
+<a name="l00694"></a>00694         std::stringstream v;
+<a name="l00695"></a>00695         v &lt;&lt; <span class="stringliteral">"WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS="</span> &lt;&lt; MAXCHANS;
+<a name="l00696"></a>00696         v &lt;&lt; <span class="stringliteral">" MAXBANS=60 NICKLEN="</span> &lt;&lt; NICKMAX;
+<a name="l00697"></a>00697         v &lt;&lt; <span class="stringliteral">" TOPICLEN="</span> &lt;&lt; MAXTOPIC &lt;&lt; <span class="stringliteral">" KICKLEN="</span> &lt;&lt; MAXKICK &lt;&lt; <span class="stringliteral">" MAXTARGETS=20 AWAYLEN="</span> &lt;&lt; MAXAWAY &lt;&lt; <span class="stringliteral">" CHANMODES=ohvb,k,l,psmnti NETWORK="</span>;
+<a name="l00698"></a>00698         v &lt;&lt; Config-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
+<a name="l00699"></a>00699         <a class="code" href="namespaceirc.html#string">std::string</a> data005 = v.str();
+<a name="l00700"></a>00700         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> On005Numeric(data005);
+<a name="l00701"></a>00701         <span class="comment">// anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...</span>
+<a name="l00702"></a>00702         <span class="comment">// so i'd better split it :)</span>
+<a name="l00703"></a>00703         std::stringstream out(data005);
+<a name="l00704"></a>00704         <a class="code" href="namespaceirc.html#string">std::string</a> token = <span class="stringliteral">""</span>;
+<a name="l00705"></a>00705         <a class="code" href="namespaceirc.html#string">std::string</a> line5 = <span class="stringliteral">""</span>;
+<a name="l00706"></a>00706         <span class="keywordtype">int</span> token_counter = 0;
+<a name="l00707"></a>00707         <span class="keywordflow">while</span> (!out.eof())
+<a name="l00708"></a>00708         {
+<a name="l00709"></a>00709                 out &gt;&gt; token;
+<a name="l00710"></a>00710                 line5 = line5 + token + <span class="stringliteral">" "</span>;
+<a name="l00711"></a>00711                 token_counter++;
+<a name="l00712"></a>00712                 <span class="keywordflow">if</span> ((token_counter &gt;= 13) || (out.eof() == <span class="keyword">true</span>))
+<a name="l00713"></a>00713                 {
+<a name="l00714"></a>00714                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"005 %s %s:are supported by this server"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,line5.c_str());
+<a name="l00715"></a>00715                         line5 = <span class="stringliteral">""</span>;
+<a name="l00716"></a>00716                         token_counter = 0;
+<a name="l00717"></a>00717                 }
+<a name="l00718"></a>00718         }
+<a name="l00719"></a>00719         ShowMOTD(user);
+<a name="l00720"></a>00720 
+<a name="l00721"></a>00721         <span class="comment">// fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out</span>
+<a name="l00722"></a>00722         <span class="comment">// onto the network and produce 'fake direction'</span>
+<a name="l00723"></a>00723         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserConnect(user);
+<a name="l00724"></a>00724         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnGlobalConnect(user);
+<a name="l00725"></a>00725         user-&gt;<a class="code" href="classconnection.html#registered">registered</a> = 7;
+<a name="l00726"></a>00726         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client connecting on port %lu: %s!%s@%s [%s]"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#port">port</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,user-&gt;<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>);
+<a name="l00727"></a>00727 }
+<a name="l00728"></a>00728 
+<a name="l00729"></a>00729 
+<a name="l00730"></a>00730 <span class="comment">/* shows the message of the day, and any other on-logon stuff */</span>
+<a name="l00731"></a><a class="code" href="users_8h.html#ConnectUser_28userrec_20_2Auser_29">00731</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a> *user)
+<a name="l00732"></a>00732 {
+<a name="l00733"></a>00733         <span class="comment">// dns is already done, things are fast. no need to wait for dns to complete just pass them straight on</span>
+<a name="l00734"></a>00734         <span class="keywordflow">if</span> ((user-&gt;<a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>) &amp;&amp; (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> &gt;= 3) &amp;&amp; (AllModulesReportReady(user)))
+<a name="l00735"></a>00735         {
+<a name="l00736"></a>00736                 <a class="code" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(user);
+<a name="l00737"></a>00737         }
+<a name="l00738"></a>00738 }
+<a name="l00739"></a>00739 
+<a name="l00740"></a>00740 <span class="comment">/* re-allocates a nick in the user_hash after they change nicknames,</span>
+<a name="l00741"></a>00741 <span class="comment"> * returns a pointer to the new user as it may have moved */</span>
+<a name="l00742"></a>00742 
+<a name="l00743"></a><a class="code" href="users_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">00743</a> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="users_8cpp.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a>(<span class="keywordtype">char</span>* Old, <span class="keywordtype">char</span>* New)
+<a name="l00744"></a>00744 {
+<a name="l00745"></a>00745         <span class="comment">//user_hash::iterator newnick;</span>
+<a name="l00746"></a>00746         user_hash::iterator oldnick = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(Old);
+<a name="l00747"></a>00747 
+<a name="l00748"></a>00748         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: %s %s"</span>,Old,New);
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750         <span class="keywordflow">if</span> (!strcasecmp(Old,New))
+<a name="l00751"></a>00751         {
+<a name="l00752"></a>00752                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"old nick is new nick, skipping"</span>);
+<a name="l00753"></a>00753                 <span class="keywordflow">return</span> oldnick-&gt;second;
+<a name="l00754"></a>00754         }
+<a name="l00755"></a>00755 
+<a name="l00756"></a>00756         <span class="keywordflow">if</span> (oldnick == <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end()) <span class="keywordflow">return</span> NULL; <span class="comment">/* doesnt exist */</span>
+<a name="l00757"></a>00757 
+<a name="l00758"></a>00758         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Found hashed nick %s"</span>,Old);
+<a name="l00759"></a>00759 
+<a name="l00760"></a>00760         <a class="code" href="classuserrec.html">userrec</a>* olduser = oldnick-&gt;second;
+<a name="l00761"></a>00761         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New] = olduser;
+<a name="l00762"></a>00762         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(oldnick);
+<a name="l00763"></a>00763 
+<a name="l00764"></a>00764         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Nick rehashed as %s"</span>,New);
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New];
+<a name="l00767"></a>00767 }
+<a name="l00768"></a>00768 
+<a name="l00769"></a><a class="code" href="users_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">00769</a> <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keyword">const</span> <span class="keywordtype">char</span>* newnick)
+<a name="l00770"></a>00770 {
+<a name="l00771"></a>00771         <span class="keywordtype">char</span> nick[MAXBUF];
+<a name="l00772"></a>00772         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00773"></a>00773 
+<a name="l00774"></a>00774         strcpy(nick,<span class="stringliteral">""</span>);
+<a name="l00775"></a>00775 
+<a name="l00776"></a>00776         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreNick(user,newnick));
+<a name="l00777"></a>00777         <span class="keywordflow">if</span> (MOD_RESULT) {
+<a name="l00778"></a>00778                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00779"></a>00779                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00780"></a>00780                 <span class="keywordflow">return</span>;
+<a name="l00781"></a>00781         }
+<a name="l00782"></a>00782         <span class="keywordflow">if</span> (<a class="code" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">matches_qline</a>(newnick))
+<a name="l00783"></a>00783         {
+<a name="l00784"></a>00784                 ServerInstance-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00785"></a>00785                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00786"></a>00786                 <span class="keywordflow">return</span>;
+<a name="l00787"></a>00787         }
+<a name="l00788"></a>00788 
+<a name="l00789"></a>00789         <span class="keywordflow">if</span> (user)
+<a name="l00790"></a>00790         {
+<a name="l00791"></a>00791                 <span class="keywordflow">if</span> (newnick)
+<a name="l00792"></a>00792                 {
+<a name="l00793"></a>00793                         strncpy(nick,newnick,MAXBUF);
+<a name="l00794"></a>00794                 }
+<a name="l00795"></a>00795                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7)
+<a name="l00796"></a>00796                 {
+<a name="l00797"></a>00797                         <span class="keywordtype">char</span>* pars[1];
+<a name="l00798"></a>00798                         pars[0] = nick;
+<a name="l00799"></a>00799                         <a class="code" href="namespaceirc.html#string">std::string</a> cmd = <span class="stringliteral">"NICK"</span>;
+<a name="l00800"></a>00800                         ServerInstance-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CallHandler(cmd,pars,1,user);
+<a name="l00801"></a>00801                 }
+<a name="l00802"></a>00802         }
+<a name="l00803"></a>00803 }
+<a name="l00804"></a>00804 
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 46ef13e2cf4f31506c120863a752051fbb5db821..15bd4cd46e60788b84be316610e9dcfefe0018cb 100644 (file)
 <code>#include &quot;inspstring.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="commands_8h-source.html">commands.h</a>&quot;</code><br>
 <code>#include &quot;helperfuncs.h&quot;</code><br>
+<code>#include &quot;<a class="el" href="typedefs_8h-source.html">typedefs.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="socketengine_8h-source.html">socketengine.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>&quot;</code><br>
+<code>#include &quot;<a class="el" href="message_8h-source.html">message.h</a>&quot;</code><br>
+<code>#include &quot;wildcard.h&quot;</code><br>
+<code>#include &quot;<a class="el" href="xline_8h-source.html">xline.h</a>&quot;</code><br>
 
 <p>
 Include dependency graph for users.cpp:<p><center><img src="users_8cpp__incl.gif" border="0" usemap="#users.cpp_map" alt=""></center>
 <map name="users.cpp_map">
-<area href="channels_8h-source.html" shape="rect" coords="408,159,493,185" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="401,108,500,135" alt="">
-<area href="users_8h-source.html" shape="rect" coords="288,209,352,236" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="147,260,227,287" alt="">
-<area href="commands_8h-source.html" shape="rect" coords="137,159,236,185" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="600,640,685,667" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="593,260,692,287" alt="">
+<area href="users_8h-source.html" shape="rect" coords="457,564,521,591" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="596,438,689,464" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="296,210,376,236" alt="">
+<area href="socketengine_8h-source.html" shape="rect" coords="433,159,545,186" alt="">
+<area href="commands_8h-source.html" shape="rect" coords="287,716,385,743" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="144,412,229,439" alt="">
+<area href="message_8h-source.html" shape="rect" coords="293,666,379,692" alt="">
+<area href="xline_8h-source.html" shape="rect" coords="305,767,367,794" alt="">
 </map>
 
 <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>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">string</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a> (const T &amp;in)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#AddOper_28userrec_20_2Auser_29">AddOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a> (<a class="el" href="classuserrec.html">userrec</a> *u)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">AddClient</a> (int socket, char *host, int port, bool iscached, char *ip)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a> (char *Old, char *New)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *newnick)</td></tr>
+
 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classServerConfig.html">ServerConfig</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#Config">Config</a></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#ServerInstance">ServerInstance</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classModule.html">Module</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#modules">modules</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#factory">factory</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classInspSocket.html">InspSocket</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#module_5Fsockets">module_sockets</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classInspSocket.html">InspSocket</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a> [65535]</td></tr>
 
 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#TIME">TIME</a></td></tr>
 
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a> [65536]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classServerConfig.html">ServerConfig</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#Config">Config</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="typedefs_8h.html#user_5Fhash">user_hash</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#clientlist">clientlist</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="typedefs_8h.html#whowas_5Fhash">whowas_hash</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#whowas">whowas</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classuserrec.html">userrec</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#local_5Fusers">local_users</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::vector&lt; <a class="el" href="classuserrec.html">userrec</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8cpp.html#all_5Fopers">all_opers</a></td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29"></a><!-- doxytag: member="users.cpp::AddClient" ref="AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29" args="(int socket, char *host, int port, bool iscached, char *ip)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddClient           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">int&nbsp;</td>
+          <td class="mdname" nowrap> <em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>port</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>iscached</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>ip</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00524">524</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="users_8h-source.html#l00036">CC_ALLOW</a>, <a class="el" href="channels_8h-source.html#l00254">ucrec::channel</a>, <a class="el" href="inspircd__io_8h-source.html#l00243">ServerConfig::Classes</a>, <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00056">ConvToStr()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00177">ServerConfig::dns_timeout</a>, <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception()</a>, <a class="el" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">matches_zline()</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>, <a class="el" href="inspircd__io_8h-source.html#l00194">ServerConfig::SoftLimit</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="channels_8h-source.html#l00249">ucrec::uc_modes</a>, and <a class="el" href="socketengine_8h-source.html#l00043">X_ESTAB_CLIENT</a>.<div class="fragment"><pre class="fragment"><a name="l00525"></a>00525 {
+<a name="l00526"></a>00526         <a class="code" href="namespaceirc.html#string">string</a> tempnick;
+<a name="l00527"></a>00527         <span class="keywordtype">char</span> tn2[MAXBUF];
+<a name="l00528"></a>00528         user_hash::iterator iter;
+<a name="l00529"></a>00529 
+<a name="l00530"></a>00530         tempnick = <a class="code" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a>(socket) + <span class="stringliteral">"-unknown"</span>;
+<a name="l00531"></a>00531         sprintf(tn2,<span class="stringliteral">"%lu-unknown"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket);
+<a name="l00532"></a>00532 
+<a name="l00533"></a>00533         iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(tempnick);
+<a name="l00534"></a>00534 
+<a name="l00535"></a>00535         <span class="comment">// fix by brain.</span>
+<a name="l00536"></a>00536         <span class="comment">// as these nicknames are 'RFC impossible', we can be sure nobody is going to be</span>
+<a name="l00537"></a>00537         <span class="comment">// using one as a registered connection. As theyre per fd, we can also safely assume</span>
+<a name="l00538"></a>00538         <span class="comment">// that we wont have collisions. Therefore, if the nick exists in the list, its only</span>
+<a name="l00539"></a>00539         <span class="comment">// used by a dead socket, erase the iterator so that the new client may reclaim it.</span>
+<a name="l00540"></a>00540         <span class="comment">// this was probably the cause of 'server ignores me when i hammer it with reconnects'</span>
+<a name="l00541"></a>00541         <span class="comment">// issue in earlier alphas/betas</span>
+<a name="l00542"></a>00542         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00543"></a>00543         {
+<a name="l00544"></a>00544                 <a class="code" href="classuserrec.html">userrec</a>* goner = iter-&gt;second;
+<a name="l00545"></a>00545                 <span class="keyword">delete</span> goner;
+<a name="l00546"></a>00546                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00547"></a>00547         }
+<a name="l00548"></a>00548 
+<a name="l00549"></a>00549         <span class="comment">/*</span>
+<a name="l00550"></a>00550 <span class="comment">         * It is OK to access the value here this way since we know</span>
+<a name="l00551"></a>00551 <span class="comment">         * it exists, we just created it above.</span>
+<a name="l00552"></a>00552 <span class="comment">         *</span>
+<a name="l00553"></a>00553 <span class="comment">         * At NO other time should you access a value in a map or a</span>
+<a name="l00554"></a>00554 <span class="comment">         * hash_map this way.</span>
+<a name="l00555"></a>00555 <span class="comment">         */</span>
+<a name="l00556"></a>00556         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick] = <span class="keyword">new</span> <a class="code" href="classuserrec.html">userrec</a>();
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"AddClient: %lu %s %d %s"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket,host,port,ip);
+<a name="l00559"></a>00559 
+<a name="l00560"></a>00560         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;fd = socket;
+<a name="l00561"></a>00561         strlcpy(clientlist[tempnick]-&gt;nick, tn2,NICKMAX);
+<a name="l00562"></a>00562         strlcpy(clientlist[tempnick]-&gt;host, host,160);
+<a name="l00563"></a>00563         strlcpy(clientlist[tempnick]-&gt;dhost, host,160);
+<a name="l00564"></a>00564         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;server = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
+<a name="l00565"></a>00565         strlcpy(clientlist[tempnick]-&gt;ident, <span class="stringliteral">"unknown"</span>,IDENTMAX);
+<a name="l00566"></a>00566         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;registered = 0;
+<a name="l00567"></a>00567         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;signon = <a class="code" href="channels_8cpp.html#TIME">TIME</a> + <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00568"></a>00568         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;lastping = 1;
+<a name="l00569"></a>00569         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;port = port;
+<a name="l00570"></a>00570         strlcpy(clientlist[tempnick]-&gt;ip,ip,16);
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572         <span class="comment">// set the registration timeout for this user</span>
+<a name="l00573"></a>00573         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> class_regtimeout = 90;
+<a name="l00574"></a>00574         <span class="keywordtype">int</span> class_flood = 0;
+<a name="l00575"></a>00575         <span class="keywordtype">long</span> class_threshold = 5;
+<a name="l00576"></a>00576         <span class="keywordtype">long</span> class_sqmax = 262144;      <span class="comment">// 256kb</span>
+<a name="l00577"></a>00577         <span class="keywordtype">long</span> class_rqmax = 4096;        <span class="comment">// 4k</span>
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579         <span class="keywordflow">for</span> (ClassVector::iterator i = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.begin(); i != <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.end(); i++)
+<a name="l00580"></a>00580         {
+<a name="l00581"></a>00581                 <span class="keywordflow">if</span> (match(clientlist[tempnick]-&gt;host,i-&gt;host) &amp;&amp; (i-&gt;type == <a class="code" href="users_8h.html#CC_5FALLOW">CC_ALLOW</a>))
+<a name="l00582"></a>00582                 {
+<a name="l00583"></a>00583                         class_regtimeout = (<span class="keywordtype">unsigned</span> long)i-&gt;registration_timeout;
+<a name="l00584"></a>00584                         class_flood = i-&gt;flood;
+<a name="l00585"></a>00585                         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax = i-&gt;pingtime;
+<a name="l00586"></a>00586                         class_threshold = i-&gt;threshold;
+<a name="l00587"></a>00587                         class_sqmax = i-&gt;sendqmax;
+<a name="l00588"></a>00588                         class_rqmax = i-&gt;recvqmax;
+<a name="l00589"></a>00589                         <span class="keywordflow">break</span>;
+<a name="l00590"></a>00590                 }
+<a name="l00591"></a>00591         }
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;nping = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax + <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00594"></a>00594         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;timeout = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+class_regtimeout;
+<a name="l00595"></a>00595         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;flood = class_flood;
+<a name="l00596"></a>00596         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;threshold = class_threshold;
+<a name="l00597"></a>00597         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;sendqmax = class_sqmax;
+<a name="l00598"></a>00598         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;recvqmax = class_rqmax;
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600         <a class="code" href="classucrec.html">ucrec</a> a;
+<a name="l00601"></a>00601         a.<a class="code" href="classucrec.html#channel">channel</a> = NULL;
+<a name="l00602"></a>00602         a.<a class="code" href="classucrec.html#uc_5Fmodes">uc_modes</a> = 0;
+<a name="l00603"></a>00603         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+<a name="l00604"></a>00604                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;chans.push_back(a);
+<a name="l00605"></a>00605 
+<a name="l00606"></a>00606         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt; <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>)
+<a name="l00607"></a>00607         {
+<a name="l00608"></a>00608                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00609"></a>00609                 <span class="keywordflow">return</span>;
+<a name="l00610"></a>00610         }
+<a name="l00611"></a>00611 
+<a name="l00612"></a>00612         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt;= MAXCLIENTS)
+<a name="l00613"></a>00613         {
+<a name="l00614"></a>00614                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00615"></a>00615                 <span class="keywordflow">return</span>;
+<a name="l00616"></a>00616         }
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618         <span class="comment">// this is done as a safety check to keep the file descriptors within range of fd_ref_table.</span>
+<a name="l00619"></a>00619         <span class="comment">// its a pretty big but for the moment valid assumption:</span>
+<a name="l00620"></a>00620         <span class="comment">// file descriptors are handed out starting at 0, and are recycled as theyre freed.</span>
+<a name="l00621"></a>00621         <span class="comment">// therefore if there is ever an fd over 65535, 65536 clients must be connected to the</span>
+<a name="l00622"></a>00622         <span class="comment">// irc server at once (or the irc server otherwise initiating this many connections, files etc)</span>
+<a name="l00623"></a>00623         <span class="comment">// which for the time being is a physical impossibility (even the largest networks dont have more</span>
+<a name="l00624"></a>00624         <span class="comment">// than about 10,000 users on ONE server!)</span>
+<a name="l00625"></a>00625         <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)socket &gt; 65534)
+<a name="l00626"></a>00626         {
+<a name="l00627"></a>00627                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"Server is full"</span>);
+<a name="l00628"></a>00628                 <span class="keywordflow">return</span>;
+<a name="l00629"></a>00629         }
+<a name="l00630"></a>00630         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(ip);
+<a name="l00631"></a>00631         <span class="keywordflow">if</span> (!e)
+<a name="l00632"></a>00632         {
+<a name="l00633"></a>00633                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">matches_zline</a>(ip);
+<a name="l00634"></a>00634                 <span class="keywordflow">if</span> (r)
+<a name="l00635"></a>00635                 {
+<a name="l00636"></a>00636                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00637"></a>00637                         snprintf(reason,MAXBUF,<span class="stringliteral">"Z-Lined: %s"</span>,r);
+<a name="l00638"></a>00638                         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],reason);
+<a name="l00639"></a>00639                         <span class="keywordflow">return</span>;
+<a name="l00640"></a>00640                 }
+<a name="l00641"></a>00641         }
+<a name="l00642"></a>00642         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[socket] = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick];
+<a name="l00643"></a>00643         <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.push_back(clientlist[tempnick]);
+<a name="l00644"></a>00644         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(socket,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FCLIENT">X_ESTAB_CLIENT</a>);
+<a name="l00645"></a>00645 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="AddOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.cpp::AddOper" ref="AddOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddOper           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00330">330</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00054">all_opers</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00331"></a>00331 {
+<a name="l00332"></a>00332         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper added to optimization list"</span>);
+<a name="l00333"></a>00333         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.push_back(user);
+<a name="l00334"></a>00334 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="AddWhoWas_28userrec_20_2Au_29"></a><!-- doxytag: member="users.cpp::AddWhoWas" ref="AddWhoWas_28userrec_20_2Au_29" args="(userrec *u)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddWhoWas           </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> <em>u</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00471">471</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="users_8h-source.html#l00341">WhoWasUser::dhost</a>, <a class="el" href="users_8h-source.html#l00138">userrec::dhost</a>, <a class="el" href="users_8h-source.html#l00343">WhoWasUser::fullname</a>, <a class="el" href="users_8h-source.html#l00142">userrec::fullname</a>, <a class="el" href="users_8h-source.html#l00342">WhoWasUser::host</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00340">WhoWasUser::ident</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00339">WhoWasUser::nick</a>, <a class="el" href="users_8h-source.html#l00344">WhoWasUser::server</a>, <a class="el" href="users_8h-source.html#l00157">userrec::server</a>, <a class="el" href="users_8h-source.html#l00345">WhoWasUser::signon</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="users_8cpp.html#whowas">whowas</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>, and <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>.<div class="fragment"><pre class="fragment"><a name="l00472"></a>00472 {
+<a name="l00473"></a>00473         whowas_hash::iterator iter = <a class="code" href="users_8cpp.html#whowas">whowas</a>.find(u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00474"></a>00474         <a class="code" href="classWhoWasUser.html">WhoWasUser</a> *a = <span class="keyword">new</span> <a class="code" href="classWhoWasUser.html">WhoWasUser</a>();
+<a name="l00475"></a>00475         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>,u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00476"></a>00476         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>,u-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,IDENTMAX);
+<a name="l00477"></a>00477         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>,u-&gt;<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,160);
+<a name="l00478"></a>00478         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>,u-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,160);
+<a name="l00479"></a>00479         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,u-&gt;<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,MAXGECOS);
+<a name="l00480"></a>00480         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>,u-&gt;<a class="code" href="classuserrec.html#server">server</a>,256);
+<a name="l00481"></a>00481         a-&gt;<a class="code" href="classWhoWasUser.html#signon">signon</a> = u-&gt;<a class="code" href="classconnection.html#signon">signon</a>;
+<a name="l00482"></a>00482 
+<a name="l00483"></a>00483         <span class="comment">/* MAX_WHOWAS:   max number of /WHOWAS items</span>
+<a name="l00484"></a>00484 <span class="comment">         * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and</span>
+<a name="l00485"></a>00485 <span class="comment">         *               can be replaced by a newer one</span>
+<a name="l00486"></a>00486 <span class="comment">         */</span>
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488         <span class="keywordflow">if</span> (iter == <a class="code" href="users_8cpp.html#whowas">whowas</a>.end())
+<a name="l00489"></a>00489         {
+<a name="l00490"></a>00490                 <span class="keywordflow">if</span> (<a class="code" href="users_8cpp.html#whowas">whowas</a>.size() &gt;= (unsigned)<a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>)
+<a name="l00491"></a>00491                 {
+<a name="l00492"></a>00492                         <span class="keywordflow">for</span> (whowas_hash::iterator i = <a class="code" href="users_8cpp.html#whowas">whowas</a>.begin(); i != <a class="code" href="users_8cpp.html#whowas">whowas</a>.end(); i++)
+<a name="l00493"></a>00493                         {
+<a name="l00494"></a>00494                                 <span class="comment">// 3600 seconds in an hour ;)</span>
+<a name="l00495"></a>00495                                 <span class="keywordflow">if</span> ((i-&gt;second-&gt;signon)&lt;(TIME-(WHOWAS_STALE*3600)))
+<a name="l00496"></a>00496                                 {
+<a name="l00497"></a>00497                                         <span class="comment">// delete the old one</span>
+<a name="l00498"></a>00498                                         <span class="keywordflow">if</span> (i-&gt;second) <span class="keyword">delete</span> i-&gt;second;
+<a name="l00499"></a>00499                                         <span class="comment">// replace with new one</span>
+<a name="l00500"></a>00500                                         i-&gt;second = a;
+<a name="l00501"></a>00501                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added WHOWAS entry, purged an old record"</span>);
+<a name="l00502"></a>00502                                         <span class="keywordflow">return</span>;
+<a name="l00503"></a>00503                                 }
+<a name="l00504"></a>00504                         }
+<a name="l00505"></a>00505                         <span class="comment">// no space left and user doesnt exist. Don't leave ram in use!</span>
+<a name="l00506"></a>00506                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram"</span>);
+<a name="l00507"></a>00507                         <span class="keyword">delete</span> a;
+<a name="l00508"></a>00508                 }
+<a name="l00509"></a>00509                 <span class="keywordflow">else</span>
+<a name="l00510"></a>00510                 {
+<a name="l00511"></a>00511                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added fresh WHOWAS entry"</span>);
+<a name="l00512"></a>00512                         <a class="code" href="users_8cpp.html#whowas">whowas</a>[a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>] = a;
+<a name="l00513"></a>00513                 }
+<a name="l00514"></a>00514         }
+<a name="l00515"></a>00515         <span class="keywordflow">else</span>
+<a name="l00516"></a>00516         {
+<a name="l00517"></a>00517                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"updated WHOWAS entry"</span>);
+<a name="l00518"></a>00518                 <span class="keywordflow">if</span> (iter-&gt;second) <span class="keyword">delete</span> iter-&gt;second;
+<a name="l00519"></a>00519                 iter-&gt;second = a;
+<a name="l00520"></a>00520         }
+<a name="l00521"></a>00521 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.cpp::ConnectUser" ref="ConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void ConnectUser           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00731">731</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00185">userrec::dns_done</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>.<div class="fragment"><pre class="fragment"><a name="l00732"></a>00732 {
+<a name="l00733"></a>00733         <span class="comment">// dns is already done, things are fast. no need to wait for dns to complete just pass them straight on</span>
+<a name="l00734"></a>00734         <span class="keywordflow">if</span> ((user-&gt;<a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>) &amp;&amp; (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> &gt;= 3) &amp;&amp; (AllModulesReportReady(user)))
+<a name="l00735"></a>00735         {
+<a name="l00736"></a>00736                 <a class="code" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(user);
+<a name="l00737"></a>00737         }
+<a name="l00738"></a>00738 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ConvToStr_28const_20T_20_26in_29"></a><!-- doxytag: member="users.cpp::ConvToStr" ref="ConvToStr_28const_20T_20_26in_29" args="(const T &amp;in)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="mdPrefix" colspan="4">
+template&lt;typename T&gt; </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">string</a> ConvToStr           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>in</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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="users_8cpp-source.html#l00056">56</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.<div class="fragment"><pre class="fragment"><a name="l00057"></a>00057 {
+<a name="l00058"></a>00058         stringstream tmp;
+<a name="l00059"></a>00059         <span class="keywordflow">if</span> (!(tmp &lt;&lt; in)) <span class="keywordflow">return</span> <a class="code" href="namespaceirc.html#string">string</a>();
+<a name="l00060"></a>00060         <span class="keywordflow">return</span> tmp.str();
+<a name="l00061"></a>00061 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="DeleteOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.cpp::DeleteOper" ref="DeleteOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void DeleteOper           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00336">336</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00054">all_opers</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00337"></a>00337 {
+<a name="l00338"></a>00338         <span class="keywordflow">for</span> (std::vector&lt;userrec*&gt;::iterator a = <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.begin(); a &lt; <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.end(); a++)
+<a name="l00339"></a>00339         {
+<a name="l00340"></a>00340                 <span class="keywordflow">if</span> (*a == user)
+<a name="l00341"></a>00341                 {
+<a name="l00342"></a>00342                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper removed from optimization list"</span>);
+<a name="l00343"></a>00343                         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.erase(a);
+<a name="l00344"></a>00344                         <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345                 }
+<a name="l00346"></a>00346         }
+<a name="l00347"></a>00347 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29"></a><!-- doxytag: member="users.cpp::force_nickchange" ref="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29" args="(userrec *user, const char *newnick)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void force_nickchange           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>newnick</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00769">769</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">matches_qline()</a>, <a class="el" href="inspircd_8h-source.html#l00110">InspIRCd::Parser</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00112">InspIRCd::stats</a>, and <a class="el" href="inspircd_8h-source.html#l00080">serverstats::statsCollisions</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00385">Server::ChangeUserNick()</a>.<div class="fragment"><pre class="fragment"><a name="l00770"></a>00770 {
+<a name="l00771"></a>00771         <span class="keywordtype">char</span> nick[MAXBUF];
+<a name="l00772"></a>00772         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00773"></a>00773 
+<a name="l00774"></a>00774         strcpy(nick,<span class="stringliteral">""</span>);
+<a name="l00775"></a>00775 
+<a name="l00776"></a>00776         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreNick(user,newnick));
+<a name="l00777"></a>00777         <span class="keywordflow">if</span> (MOD_RESULT) {
+<a name="l00778"></a>00778                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00779"></a>00779                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00780"></a>00780                 <span class="keywordflow">return</span>;
+<a name="l00781"></a>00781         }
+<a name="l00782"></a>00782         <span class="keywordflow">if</span> (<a class="code" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">matches_qline</a>(newnick))
+<a name="l00783"></a>00783         {
+<a name="l00784"></a>00784                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00785"></a>00785                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00786"></a>00786                 <span class="keywordflow">return</span>;
+<a name="l00787"></a>00787         }
+<a name="l00788"></a>00788 
+<a name="l00789"></a>00789         <span class="keywordflow">if</span> (user)
+<a name="l00790"></a>00790         {
+<a name="l00791"></a>00791                 <span class="keywordflow">if</span> (newnick)
+<a name="l00792"></a>00792                 {
+<a name="l00793"></a>00793                         strncpy(nick,newnick,MAXBUF);
+<a name="l00794"></a>00794                 }
+<a name="l00795"></a>00795                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7)
+<a name="l00796"></a>00796                 {
+<a name="l00797"></a>00797                         <span class="keywordtype">char</span>* pars[1];
+<a name="l00798"></a>00798                         pars[0] = nick;
+<a name="l00799"></a>00799                         <a class="code" href="namespaceirc.html#string">std::string</a> cmd = <span class="stringliteral">"NICK"</span>;
+<a name="l00800"></a>00800                         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CallHandler(cmd,pars,1,user);
+<a name="l00801"></a>00801                 }
+<a name="l00802"></a>00802         }
+<a name="l00803"></a>00803 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="FullConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.cpp::FullConnectUser" ref="FullConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void FullConnectUser           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00647">647</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception()</a>, <a class="el" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">matches_gline()</a>, <a class="el" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">matches_kline()</a>, <a class="el" href="inspircd__io_8h-source.html#l00075">ServerConfig::Network</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>, <a class="el" href="inspircd_8h-source.html#l00112">InspIRCd::stats</a>, <a class="el" href="inspircd_8h-source.html#l00084">serverstats::statsConnects</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00731">ConnectUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00648"></a>00648 {
+<a name="l00649"></a>00649         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsConnects">statsConnects</a>++;
+<a name="l00650"></a>00650         user-&gt;<a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00651"></a>00651         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ConnectUser: %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00652"></a>00652 
+<a name="l00653"></a>00653         <span class="keywordflow">if</span> ((strcmp(Passwd(user),<span class="stringliteral">""</span>)) &amp;&amp; (!user-&gt;<a class="code" href="classconnection.html#haspassed">haspassed</a>))
+<a name="l00654"></a>00654         {
+<a name="l00655"></a>00655                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Invalid password"</span>);
+<a name="l00656"></a>00656                 <span class="keywordflow">return</span>;
+<a name="l00657"></a>00657         }
+<a name="l00658"></a>00658         <span class="keywordflow">if</span> (IsDenied(user))
+<a name="l00659"></a>00659         {
+<a name="l00660"></a>00660                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Unauthorised connection"</span>);
+<a name="l00661"></a>00661                 <span class="keywordflow">return</span>;
+<a name="l00662"></a>00662         }
+<a name="l00663"></a>00663 
+<a name="l00664"></a>00664         <span class="keywordtype">char</span> match_against[MAXBUF];
+<a name="l00665"></a>00665         snprintf(match_against,MAXBUF,<span class="stringliteral">"%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00666"></a>00666         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(match_against);
+<a name="l00667"></a>00667         <span class="keywordflow">if</span> (!e)
+<a name="l00668"></a>00668         {
+<a name="l00669"></a>00669                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">matches_gline</a>(match_against);
+<a name="l00670"></a>00670                 <span class="keywordflow">if</span> (r)
+<a name="l00671"></a>00671                 {
+<a name="l00672"></a>00672                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00673"></a>00673                         snprintf(reason,MAXBUF,<span class="stringliteral">"G-Lined: %s"</span>,r);
+<a name="l00674"></a>00674                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00675"></a>00675                         <span class="keywordflow">return</span>;
+<a name="l00676"></a>00676                 }
+<a name="l00677"></a>00677                 r = <a class="code" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">matches_kline</a>(user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00678"></a>00678                 <span class="keywordflow">if</span> (r)
+<a name="l00679"></a>00679                 {
+<a name="l00680"></a>00680                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00681"></a>00681                         snprintf(reason,MAXBUF,<span class="stringliteral">"K-Lined: %s"</span>,r);
+<a name="l00682"></a>00682                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00683"></a>00683                         <span class="keywordflow">return</span>;
+<a name="l00684"></a>00684                 }
+<a name="l00685"></a>00685         }
+<a name="l00686"></a>00686 
+<a name="l00687"></a>00687 
+<a name="l00688"></a>00688         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE Auth :Welcome to \002%s\002!"</span>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>);
+<a name="l00689"></a>00689         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"001 %s :Welcome to the %s IRC Network %s!%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00690"></a>00690         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"002 %s :Your host is %s, running version %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00691"></a>00691         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"003 %s :This server was created %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,__TIME__,__DATE__);
+<a name="l00692"></a>00692         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00693"></a>00693         <span class="comment">// the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...</span>
+<a name="l00694"></a>00694         std::stringstream v;
+<a name="l00695"></a>00695         v &lt;&lt; <span class="stringliteral">"WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS="</span> &lt;&lt; MAXCHANS;
+<a name="l00696"></a>00696         v &lt;&lt; <span class="stringliteral">" MAXBANS=60 NICKLEN="</span> &lt;&lt; NICKMAX;
+<a name="l00697"></a>00697         v &lt;&lt; <span class="stringliteral">" TOPICLEN="</span> &lt;&lt; MAXTOPIC &lt;&lt; <span class="stringliteral">" KICKLEN="</span> &lt;&lt; MAXKICK &lt;&lt; <span class="stringliteral">" MAXTARGETS=20 AWAYLEN="</span> &lt;&lt; MAXAWAY &lt;&lt; <span class="stringliteral">" CHANMODES=ohvb,k,l,psmnti NETWORK="</span>;
+<a name="l00698"></a>00698         v &lt;&lt; <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
+<a name="l00699"></a>00699         <a class="code" href="namespaceirc.html#string">std::string</a> data005 = v.str();
+<a name="l00700"></a>00700         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> On005Numeric(data005);
+<a name="l00701"></a>00701         <span class="comment">// anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...</span>
+<a name="l00702"></a>00702         <span class="comment">// so i'd better split it :)</span>
+<a name="l00703"></a>00703         std::stringstream out(data005);
+<a name="l00704"></a>00704         <a class="code" href="namespaceirc.html#string">std::string</a> token = <span class="stringliteral">""</span>;
+<a name="l00705"></a>00705         <a class="code" href="namespaceirc.html#string">std::string</a> line5 = <span class="stringliteral">""</span>;
+<a name="l00706"></a>00706         <span class="keywordtype">int</span> token_counter = 0;
+<a name="l00707"></a>00707         <span class="keywordflow">while</span> (!out.eof())
+<a name="l00708"></a>00708         {
+<a name="l00709"></a>00709                 out &gt;&gt; token;
+<a name="l00710"></a>00710                 line5 = line5 + token + <span class="stringliteral">" "</span>;
+<a name="l00711"></a>00711                 token_counter++;
+<a name="l00712"></a>00712                 <span class="keywordflow">if</span> ((token_counter &gt;= 13) || (out.eof() == <span class="keyword">true</span>))
+<a name="l00713"></a>00713                 {
+<a name="l00714"></a>00714                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"005 %s %s:are supported by this server"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,line5.c_str());
+<a name="l00715"></a>00715                         line5 = <span class="stringliteral">""</span>;
+<a name="l00716"></a>00716                         token_counter = 0;
+<a name="l00717"></a>00717                 }
+<a name="l00718"></a>00718         }
+<a name="l00719"></a>00719         ShowMOTD(user);
+<a name="l00720"></a>00720 
+<a name="l00721"></a>00721         <span class="comment">// fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out</span>
+<a name="l00722"></a>00722         <span class="comment">// onto the network and produce 'fake direction'</span>
+<a name="l00723"></a>00723         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserConnect(user);
+<a name="l00724"></a>00724         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnGlobalConnect(user);
+<a name="l00725"></a>00725         user-&gt;<a class="code" href="classconnection.html#registered">registered</a> = 7;
+<a name="l00726"></a>00726         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client connecting on port %lu: %s!%s@%s [%s]"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#port">port</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,user-&gt;<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>);
+<a name="l00727"></a>00727 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="users.cpp::kill_link" ref="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void kill_link           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>r</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00349">349</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00093">userrec::CloseSocket()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig::GetIOHook()</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="modules_8cpp-source.html#l00270">Module::OnRawSocketClose()</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00390">Server::QuitUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00350"></a>00350 {
+<a name="l00351"></a>00351         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355         strncpy(reason,r,MAXBUF);
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00358"></a>00358         {
+<a name="l00359"></a>00359                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00360"></a>00360         }
+<a name="l00361"></a>00361 
+<a name="l00362"></a>00362         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00363"></a>00363         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00364"></a>00364         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00367"></a>00367                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00368"></a>00368                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00369"></a>00369         }
+<a name="l00370"></a>00370 
+<a name="l00371"></a>00371         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00374"></a>00374 
+<a name="l00375"></a>00375         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00376"></a>00376         {
+<a name="l00377"></a>00377                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00378"></a>00378                 {
+<a name="l00379"></a>00379                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00380"></a>00380                 }
+<a name="l00381"></a>00381                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00382"></a>00382                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00383"></a>00383         }
+<a name="l00384"></a>00384 
+<a name="l00385"></a>00385         <span class="comment">// this must come before the WriteOpers so that it doesnt try to fill their buffer with anything</span>
+<a name="l00386"></a>00386         <span class="comment">// if they were an oper with +s.</span>
+<a name="l00387"></a>00387         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00388"></a>00388                 purge_empty_chans(user);
+<a name="l00389"></a>00389                 <span class="comment">// fix by brain: only show local quits because we only show local connects (it just makes SENSE)</span>
+<a name="l00390"></a>00390                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00391"></a>00391                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client exiting: %s!%s@%s [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00392"></a>00392                 <a class="code" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(user);
+<a name="l00393"></a>00393         }
+<a name="l00394"></a>00394 
+<a name="l00395"></a>00395         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00396"></a>00396         {
+<a name="l00397"></a>00397                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00398"></a>00398                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00399"></a>00399                 {
+<a name="l00400"></a>00400                         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[user-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = NULL;
+<a name="l00401"></a>00401                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00402"></a>00402                         {
+<a name="l00403"></a>00403                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00404"></a>00404                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00405"></a>00405                         }
+<a name="l00406"></a>00406                 }
+<a name="l00407"></a>00407                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00408"></a>00408         }
+<a name="l00409"></a>00409         <span class="keyword">delete</span> user;
+<a name="l00410"></a>00410 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="users.cpp::kill_link_silent" ref="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void kill_link_silent           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>r</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00412">412</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00093">userrec::CloseSocket()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig::GetIOHook()</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="modules_8cpp-source.html#l00270">Module::OnRawSocketClose()</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, and <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00413"></a>00413 {
+<a name="l00414"></a>00414         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00417"></a>00417 
+<a name="l00418"></a>00418         strncpy(reason,r,MAXBUF);
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00421"></a>00421         {
+<a name="l00422"></a>00422                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00423"></a>00423         }
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00426"></a>00426         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00427"></a>00427         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00432"></a>00432                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00433"></a>00433                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00434"></a>00434         }
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00439"></a>00439         {
+<a name="l00440"></a>00440                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00441"></a>00441                 {
+<a name="l00442"></a>00442                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00443"></a>00443                 }
+<a name="l00444"></a>00444                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00445"></a>00445                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00446"></a>00446         }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00449"></a>00449                 purge_empty_chans(user);
+<a name="l00450"></a>00450         }
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00453"></a>00453         {
+<a name="l00454"></a>00454                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00455"></a>00455                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00456"></a>00456                 {
+<a name="l00457"></a>00457                         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[user-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = NULL;
+<a name="l00458"></a>00458                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00459"></a>00459                         {
+<a name="l00460"></a>00460                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00461"></a>00461                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00462"></a>00462                         }
+<a name="l00463"></a>00463                 }
+<a name="l00464"></a>00464                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00465"></a>00465         }
+<a name="l00466"></a>00466         <span class="keyword">delete</span> user;
+<a name="l00467"></a>00467 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29"></a><!-- doxytag: member="users.cpp::ReHashNick" ref="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29" args="(char *Old, char *New)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* ReHashNick           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>Old</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>New</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00743">743</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00744"></a>00744 {
+<a name="l00745"></a>00745         <span class="comment">//user_hash::iterator newnick;</span>
+<a name="l00746"></a>00746         user_hash::iterator oldnick = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(Old);
+<a name="l00747"></a>00747 
+<a name="l00748"></a>00748         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: %s %s"</span>,Old,New);
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750         <span class="keywordflow">if</span> (!strcasecmp(Old,New))
+<a name="l00751"></a>00751         {
+<a name="l00752"></a>00752                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"old nick is new nick, skipping"</span>);
+<a name="l00753"></a>00753                 <span class="keywordflow">return</span> oldnick-&gt;second;
+<a name="l00754"></a>00754         }
+<a name="l00755"></a>00755 
+<a name="l00756"></a>00756         <span class="keywordflow">if</span> (oldnick == <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end()) <span class="keywordflow">return</span> NULL; <span class="comment">/* doesnt exist */</span>
+<a name="l00757"></a>00757 
+<a name="l00758"></a>00758         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Found hashed nick %s"</span>,Old);
+<a name="l00759"></a>00759 
+<a name="l00760"></a>00760         <a class="code" href="classuserrec.html">userrec</a>* olduser = oldnick-&gt;second;
+<a name="l00761"></a>00761         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New] = olduser;
+<a name="l00762"></a>00762         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(oldnick);
+<a name="l00763"></a>00763 
+<a name="l00764"></a>00764         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Nick rehashed as %s"</span>,New);
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New];
+<a name="l00767"></a>00767 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="all_5Fopers"></a><!-- doxytag: member="users.cpp::all_opers" ref="all_5Fopers" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classuserrec.html">userrec</a>*&gt; <a class="el" href="users_8cpp.html#all_5Fopers">all_opers</a>          </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#l00054">54</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00330">AddOper()</a>, and <a class="el" href="users_8cpp-source.html#l00336">DeleteOper()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="clientlist"></a><!-- doxytag: member="users.cpp::clientlist" ref="clientlist" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="typedefs_8h.html#user_5Fhash">user_hash</a> <a class="el" href="users_8cpp.html#clientlist">clientlist</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
 </table>
-<hr><h2>Variable Documentation</h2>
 <a class="anchor" name="Config"></a><!-- doxytag: member="users.cpp::Config" ref="Config" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -60,6 +1075,196 @@ Include dependency graph for users.cpp:<p><center><img src="users_8cpp__incl.gif
     </td>
   </tr>
 </table>
+<a class="anchor" name="factory"></a><!-- doxytag: member="users.cpp::factory" ref="factory" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>*&gt; factory          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="fd_5Fref_5Ftable_5B_36_35_35_33_36_5D"></a><!-- doxytag: member="users.cpp::fd_ref_table" ref="fd_5Fref_5Ftable_5B_36_35_35_33_36_5D" args="[65536]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* <a class="el" href="users_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[65536]          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="local_5Fusers"></a><!-- doxytag: member="users.cpp::local_users" ref="local_5Fusers" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classuserrec.html">userrec</a>*&gt; <a class="el" href="users_8cpp.html#local_5Fusers">local_users</a>          </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#l00052">52</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, and <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="MODCOUNT"></a><!-- doxytag: member="users.cpp::MODCOUNT" ref="MODCOUNT" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#MODCOUNT">MODCOUNT</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="module_5Fsockets"></a><!-- doxytag: member="users.cpp::module_sockets" ref="module_5Fsockets" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classInspSocket.html">InspSocket</a>*&gt; <a class="el" href="users_8cpp.html#module_5Fsockets">module_sockets</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="modules"></a><!-- doxytag: member="users.cpp::modules" ref="modules" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::vector&lt;<a class="el" href="classModule.html">Module</a>*&gt; modules          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ServerInstance"></a><!-- doxytag: member="users.cpp::ServerInstance" ref="ServerInstance" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspIRCd.html">InspIRCd</a>* <a class="el" href="users_8cpp.html#ServerInstance">ServerInstance</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="socket_5Fref_5B_36_35_35_33_35_5D"></a><!-- doxytag: member="users.cpp::socket_ref" ref="socket_5Fref_5B_36_35_35_33_35_5D" args="[65535]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classInspSocket.html">InspSocket</a>* <a class="el" href="users_8cpp.html#socket_5Fref_5B_36_35_35_33_35_5D">socket_ref</a>[65535]          </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="socket_8cpp-source.html#l00043">43</a> of file <a class="el" href="socket_8cpp-source.html">socket.cpp</a>.    </td>
+  </tr>
+</table>
 <a class="anchor" name="TIME"></a><!-- doxytag: member="users.cpp::TIME" ref="TIME" args="" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -83,7 +1288,78 @@ Include dependency graph for users.cpp:<p><center><img src="users_8cpp__incl.gif
     </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:16 2005 for InspIRCd by&nbsp;
+<a class="anchor" name="whowas"></a><!-- doxytag: member="users.cpp::whowas" ref="whowas" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="typedefs_8h.html#whowas_5Fhash">whowas_hash</a> <a class="el" href="users_8cpp.html#whowas">whowas</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="WHOWAS_5FMAX"></a><!-- doxytag: member="users.cpp::WHOWAS_MAX" ref="WHOWAS_5FMAX" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="WHOWAS_5FSTALE"></a><!-- doxytag: member="users.cpp::WHOWAS_STALE" ref="WHOWAS_5FSTALE" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="users_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 622bc529ea036193735f21491f8f2e59288d8400..10b1319b3b83f59eaf84c7350869287da8ae5b10 100644 (file)
@@ -1,6 +1,11 @@
 base referer
-rect $channels_8h-source.html 408,159 493,185
-rect $connection_8h-source.html 401,108 500,135
-rect $users_8h-source.html 288,209 352,236
-rect $inspircd_8h-source.html 147,260 227,287
-rect $commands_8h-source.html 137,159 236,185
+rect $channels_8h-source.html 600,640 685,667
+rect $connection_8h-source.html 593,260 692,287
+rect $users_8h-source.html 457,564 521,591
+rect $hashcomp_8h-source.html 596,438 689,464
+rect $inspircd_8h-source.html 296,210 376,236
+rect $socketengine_8h-source.html 433,159 545,186
+rect $commands_8h-source.html 287,716 385,743
+rect $typedefs_8h-source.html 144,412 229,439
+rect $message_8h-source.html 293,666 379,692
+rect $xline_8h-source.html 305,767 367,794
index 024e4ea0fda9a5be064c09be6597139fa57168aa..b5702ddcc33a7503929134d1f41f8e5ba8e6bce1 100644 (file)
@@ -1 +1 @@
-92d4da8a60e18559ac0cab66f6d1f6c6
\ No newline at end of file
+6b9b901afd1c7a5528dabf33f5a1687e
\ No newline at end of file
index 909efa35b59e3e749b373aa95ff0e8da43d1b5ed..9cf815a35b41c755b00872f5400672b681267666 100644 (file)
 <a name="l00025"></a>00025 <span class="preprocessor"></span> 
 <a name="l00026"></a>00026 <span class="preprocessor">#ifndef __USERS_H__ </span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define __USERS_H__ </span>
-<a name="l00028"></a>00028 <span class="preprocessor"></span> 
-<a name="l00029"></a><a class="code" href="users_8h.html#STATUS_5FOP">00029</a> <span class="preprocessor">#define STATUS_OP       4</span>
-<a name="l00030"></a><a class="code" href="users_8h.html#STATUS_5FHOP">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP      2</span>
-<a name="l00031"></a><a class="code" href="users_8h.html#STATUS_5FVOICE">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE    1</span>
-<a name="l00032"></a><a class="code" href="users_8h.html#STATUS_5FNORMAL">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL   0</span>
-<a name="l00033"></a>00033 <span class="preprocessor"></span>
-<a name="l00034"></a><a class="code" href="users_8h.html#CC_5FALLOW">00034</a> <span class="preprocessor">#define CC_ALLOW        0</span>
-<a name="l00035"></a><a class="code" href="users_8h.html#CC_5FDENY">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY         1</span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span>
-<a name="l00039"></a><a class="code" href="classInvited.html">00039</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00040"></a>00040 {
-<a name="l00041"></a>00041  <span class="keyword">public</span>:
-<a name="l00042"></a><a class="code" href="classInvited.html#channel_5BCHANMAX_5D">00042</a>         <span class="keywordtype">char</span> <a class="code" href="classInvited.html#channel_5BCHANMAX_5D">channel</a>[CHANMAX];
-<a name="l00043"></a>00043 };
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045 
-<a name="l00048"></a><a class="code" href="classConnectClass.html">00048</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00049"></a>00049 {
-<a name="l00050"></a>00050  <span class="keyword">public</span>:
-<a name="l00053"></a><a class="code" href="classConnectClass.html#type">00053</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#type">type</a>;
-<a name="l00056"></a><a class="code" href="classConnectClass.html#registration_5Ftimeout">00056</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a>;
-<a name="l00059"></a><a class="code" href="classConnectClass.html#flood">00059</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#flood">flood</a>;
-<a name="l00062"></a><a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">00062</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>[MAXBUF];
-<a name="l00065"></a><a class="code" href="classConnectClass.html#pingtime">00065</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#pingtime">pingtime</a>;
-<a name="l00068"></a><a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">00068</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>[MAXBUF];
-<a name="l00069"></a>00069 
-<a name="l00072"></a><a class="code" href="classConnectClass.html#threshold">00072</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#threshold">threshold</a>;
+<a name="l00028"></a>00028 <span class="preprocessor"></span>
+<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="hashcomp_8h.html">hashcomp.h</a>"</span>
+<a name="l00030"></a>00030  
+<a name="l00031"></a><a class="code" href="users_8h.html#STATUS_5FOP">00031</a> <span class="preprocessor">#define STATUS_OP       4</span>
+<a name="l00032"></a><a class="code" href="users_8h.html#STATUS_5FHOP">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP      2</span>
+<a name="l00033"></a><a class="code" href="users_8h.html#STATUS_5FVOICE">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE    1</span>
+<a name="l00034"></a><a class="code" href="users_8h.html#STATUS_5FNORMAL">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL   0</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span>
+<a name="l00036"></a><a class="code" href="users_8h.html#CC_5FALLOW">00036</a> <span class="preprocessor">#define CC_ALLOW        0</span>
+<a name="l00037"></a><a class="code" href="users_8h.html#CC_5FDENY">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY         1</span>
+<a name="l00038"></a>00038 <span class="preprocessor"></span>
+<a name="l00039"></a>00039 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; <span class="keyword">inline</span> <a class="code" href="namespaceirc.html#string">string</a> <a class="code" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a>(<span class="keyword">const</span> T &amp;in);
+<a name="l00040"></a>00040 
+<a name="l00043"></a><a class="code" href="classInvited.html">00043</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045  <span class="keyword">public</span>:
+<a name="l00046"></a><a class="code" href="classInvited.html#channel">00046</a>          <a class="code" href="namespaceirc.html#string">irc::string</a> <a class="code" href="classInvited.html#channel">channel</a>;
+<a name="l00047"></a>00047 };
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049 
+<a name="l00052"></a><a class="code" href="classConnectClass.html">00052</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054  <span class="keyword">public</span>:
+<a name="l00057"></a><a class="code" href="classConnectClass.html#type">00057</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#type">type</a>;
+<a name="l00060"></a><a class="code" href="classConnectClass.html#registration_5Ftimeout">00060</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a>;
+<a name="l00063"></a><a class="code" href="classConnectClass.html#flood">00063</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#flood">flood</a>;
+<a name="l00066"></a><a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">00066</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>[MAXBUF];
+<a name="l00069"></a><a class="code" href="classConnectClass.html#pingtime">00069</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#pingtime">pingtime</a>;
+<a name="l00072"></a><a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">00072</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>[MAXBUF];
 <a name="l00073"></a>00073 
-<a name="l00076"></a><a class="code" href="classConnectClass.html#sendqmax">00076</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a>;
+<a name="l00076"></a><a class="code" href="classConnectClass.html#threshold">00076</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#threshold">threshold</a>;
 <a name="l00077"></a>00077 
-<a name="l00080"></a><a class="code" href="classConnectClass.html#recvqmax">00080</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a>;
-<a name="l00081"></a>00081         
-<a name="l00082"></a><a class="code" href="classConnectClass.html#ConnectClass_28_29">00082</a>         <a class="code" href="classConnectClass.html#ConnectClass_28_29">ConnectClass</a>()
-<a name="l00083"></a>00083         {
-<a name="l00084"></a>00084                 <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a> = 0;
-<a name="l00085"></a>00085                 <a class="code" href="classConnectClass.html#flood">flood</a> = 0;
-<a name="l00086"></a>00086                 <a class="code" href="classConnectClass.html#pingtime">pingtime</a> = 0;
-<a name="l00087"></a>00087                 <a class="code" href="classConnectClass.html#threshold">threshold</a> = 0;
-<a name="l00088"></a>00088                 <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a> = 0;
-<a name="l00089"></a>00089                 <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a> = 0;
-<a name="l00090"></a>00090                 strlcpy(<a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>,<span class="stringliteral">""</span>,MAXBUF);
-<a name="l00091"></a>00091                 strlcpy(<a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>,<span class="stringliteral">""</span>,MAXBUF);
-<a name="l00092"></a>00092         }
-<a name="l00093"></a>00093 };
-<a name="l00094"></a>00094 
-<a name="l00097"></a><a class="code" href="users_8h.html#InvitedList">00097</a> <span class="keyword">typedef</span> std::vector&lt;Invited&gt; <a class="code" href="users_8h.html#InvitedList">InvitedList</a>;
+<a name="l00080"></a><a class="code" href="classConnectClass.html#sendqmax">00080</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a>;
+<a name="l00081"></a>00081 
+<a name="l00084"></a><a class="code" href="classConnectClass.html#recvqmax">00084</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a>;
+<a name="l00085"></a>00085         
+<a name="l00086"></a><a class="code" href="classConnectClass.html#ConnectClass_28_29">00086</a>         <a class="code" href="classConnectClass.html#ConnectClass_28_29">ConnectClass</a>()
+<a name="l00087"></a>00087         {
+<a name="l00088"></a>00088                 <a class="code" href="classConnectClass.html#registration_5Ftimeout">registration_timeout</a> = 0;
+<a name="l00089"></a>00089                 <a class="code" href="classConnectClass.html#flood">flood</a> = 0;
+<a name="l00090"></a>00090                 <a class="code" href="classConnectClass.html#pingtime">pingtime</a> = 0;
+<a name="l00091"></a>00091                 <a class="code" href="classConnectClass.html#threshold">threshold</a> = 0;
+<a name="l00092"></a>00092                 <a class="code" href="classConnectClass.html#sendqmax">sendqmax</a> = 0;
+<a name="l00093"></a>00093                 <a class="code" href="classConnectClass.html#recvqmax">recvqmax</a> = 0;
+<a name="l00094"></a>00094                 strlcpy(<a class="code" href="classConnectClass.html#host_5BMAXBUF_5D">host</a>,<span class="stringliteral">""</span>,MAXBUF);
+<a name="l00095"></a>00095                 strlcpy(<a class="code" href="classConnectClass.html#pass_5BMAXBUF_5D">pass</a>,<span class="stringliteral">""</span>,MAXBUF);
+<a name="l00096"></a>00096         }
+<a name="l00097"></a>00097 };
 <a name="l00098"></a>00098 
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100 
-<a name="l00103"></a><a class="code" href="users_8h.html#ClassVector">00103</a> <span class="keyword">typedef</span> std::vector&lt;ConnectClass&gt; <a class="code" href="users_8h.html#ClassVector">ClassVector</a>;
+<a name="l00101"></a><a class="code" href="users_8h.html#InvitedList">00101</a> <span class="keyword">typedef</span> std::vector&lt;Invited&gt; <a class="code" href="users_8h.html#InvitedList">InvitedList</a>;
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103 
 <a name="l00104"></a>00104 
-<a name="l00111"></a><a class="code" href="classuserrec.html">00111</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a> : <span class="keyword">public</span> <a class="code" href="classconnection.html">connection</a>
-<a name="l00112"></a>00112 {
-<a name="l00113"></a>00113  <span class="keyword">private</span>:
-<a name="l00114"></a>00114 
-<a name="l00117"></a><a class="code" href="classuserrec.html#invites">00117</a>         <a class="code" href="users_8h.html#InvitedList">InvitedList</a> <a class="code" href="classuserrec.html#invites">invites</a>;
-<a name="l00118"></a>00118  <span class="keyword">public</span>:
-<a name="l00119"></a>00119         
-<a name="l00124"></a><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">00124</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX];
-<a name="l00125"></a>00125         
-<a name="l00129"></a><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">00129</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>[IDENTMAX+2];
-<a name="l00130"></a>00130 
-<a name="l00134"></a><a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">00134</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>[160];
-<a name="l00135"></a>00135         
-<a name="l00138"></a><a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">00138</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1];
+<a name="l00107"></a><a class="code" href="users_8h.html#ClassVector">00107</a> <span class="keyword">typedef</span> std::vector&lt;ConnectClass&gt; <a class="code" href="users_8h.html#ClassVector">ClassVector</a>;
+<a name="l00108"></a>00108 
+<a name="l00115"></a><a class="code" href="classuserrec.html">00115</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a> : <span class="keyword">public</span> <a class="code" href="classconnection.html">connection</a>
+<a name="l00116"></a>00116 {
+<a name="l00117"></a>00117  <span class="keyword">private</span>:
+<a name="l00118"></a>00118 
+<a name="l00121"></a><a class="code" href="classuserrec.html#invites">00121</a>         <a class="code" href="users_8h.html#InvitedList">InvitedList</a> <a class="code" href="classuserrec.html#invites">invites</a>;
+<a name="l00122"></a>00122  <span class="keyword">public</span>:
+<a name="l00123"></a>00123         
+<a name="l00128"></a><a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">00128</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX];
+<a name="l00129"></a>00129         
+<a name="l00133"></a><a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">00133</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>[IDENTMAX+2];
+<a name="l00134"></a>00134 
+<a name="l00138"></a><a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">00138</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>[160];
 <a name="l00139"></a>00139         
-<a name="l00147"></a><a class="code" href="classuserrec.html#modes_5B_35_34_5D">00147</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>[54];
-<a name="l00148"></a>00148         
-<a name="l00149"></a><a class="code" href="classuserrec.html#chans">00149</a>         std::vector&lt;ucrec&gt; <a class="code" href="classuserrec.html#chans">chans</a>;
-<a name="l00150"></a>00150         
-<a name="l00153"></a><a class="code" href="classuserrec.html#server">00153</a>         <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#server">server</a>;
+<a name="l00142"></a><a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">00142</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1];
+<a name="l00143"></a>00143         
+<a name="l00151"></a><a class="code" href="classuserrec.html#modes_5B_35_34_5D">00151</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#modes_5B_35_34_5D">modes</a>[54];
+<a name="l00152"></a>00152         
+<a name="l00153"></a><a class="code" href="classuserrec.html#chans">00153</a>         std::vector&lt;ucrec&gt; <a class="code" href="classuserrec.html#chans">chans</a>;
 <a name="l00154"></a>00154         
-<a name="l00158"></a><a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">00158</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>[MAXAWAY+1];
-<a name="l00159"></a>00159         
-<a name="l00164"></a><a class="code" href="classuserrec.html#flood">00164</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#flood">flood</a>;
-<a name="l00165"></a>00165         
-<a name="l00170"></a><a class="code" href="classuserrec.html#timeout">00170</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#timeout">timeout</a>;
-<a name="l00171"></a>00171         
-<a name="l00177"></a><a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">00177</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>[NICKMAX];
-<a name="l00178"></a>00178 
-<a name="l00181"></a><a class="code" href="classuserrec.html#dns_5Fdone">00181</a>         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>;
+<a name="l00157"></a><a class="code" href="classuserrec.html#server">00157</a>         <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#server">server</a>;
+<a name="l00158"></a>00158         
+<a name="l00162"></a><a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">00162</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#awaymsg_5BMAXAWAY_2B_31_5D">awaymsg</a>[MAXAWAY+1];
+<a name="l00163"></a>00163         
+<a name="l00168"></a><a class="code" href="classuserrec.html#flood">00168</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#flood">flood</a>;
+<a name="l00169"></a>00169         
+<a name="l00174"></a><a class="code" href="classuserrec.html#timeout">00174</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#timeout">timeout</a>;
+<a name="l00175"></a>00175         
+<a name="l00181"></a><a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">00181</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#oper_5BNICKMAX_5D">oper</a>[NICKMAX];
 <a name="l00182"></a>00182 
-<a name="l00185"></a><a class="code" href="classuserrec.html#pingmax">00185</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#pingmax">pingmax</a>;
+<a name="l00185"></a><a class="code" href="classuserrec.html#dns_5Fdone">00185</a>         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>;
 <a name="l00186"></a>00186 
-<a name="l00191"></a><a class="code" href="classuserrec.html#password_5BMAXBUF_5D">00191</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#password_5BMAXBUF_5D">password</a>[MAXBUF];
-<a name="l00192"></a>00192 
-<a name="l00197"></a><a class="code" href="classuserrec.html#recvq">00197</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#recvq">recvq</a>;
-<a name="l00198"></a>00198 
-<a name="l00202"></a><a class="code" href="classuserrec.html#sendq">00202</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#sendq">sendq</a>;
-<a name="l00203"></a>00203 
-<a name="l00206"></a><a class="code" href="classuserrec.html#lines_5Fin">00206</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a>;
-<a name="l00207"></a><a class="code" href="classuserrec.html#reset_5Fdue">00207</a>         time_t <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a>;
-<a name="l00208"></a><a class="code" href="classuserrec.html#threshold">00208</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#threshold">threshold</a>;
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210         <span class="comment">/* Write error string</span>
-<a name="l00211"></a>00211 <span class="comment">         */</span>
-<a name="l00212"></a><a class="code" href="classuserrec.html#WriteError">00212</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#WriteError">WriteError</a>;
+<a name="l00189"></a><a class="code" href="classuserrec.html#pingmax">00189</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#pingmax">pingmax</a>;
+<a name="l00190"></a>00190 
+<a name="l00195"></a><a class="code" href="classuserrec.html#password_5BMAXBUF_5D">00195</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#password_5BMAXBUF_5D">password</a>[MAXBUF];
+<a name="l00196"></a>00196 
+<a name="l00201"></a><a class="code" href="classuserrec.html#recvq">00201</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#recvq">recvq</a>;
+<a name="l00202"></a>00202 
+<a name="l00206"></a><a class="code" href="classuserrec.html#sendq">00206</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#sendq">sendq</a>;
+<a name="l00207"></a>00207 
+<a name="l00210"></a><a class="code" href="classuserrec.html#lines_5Fin">00210</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#lines_5Fin">lines_in</a>;
+<a name="l00211"></a><a class="code" href="classuserrec.html#reset_5Fdue">00211</a>         time_t <a class="code" href="classuserrec.html#reset_5Fdue">reset_due</a>;
+<a name="l00212"></a><a class="code" href="classuserrec.html#threshold">00212</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#threshold">threshold</a>;
 <a name="l00213"></a>00213 
-<a name="l00216"></a><a class="code" href="classuserrec.html#sendqmax">00216</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#sendqmax">sendqmax</a>;
+<a name="l00214"></a>00214         <span class="comment">/* Write error string</span>
+<a name="l00215"></a>00215 <span class="comment">         */</span>
+<a name="l00216"></a><a class="code" href="classuserrec.html#WriteError">00216</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#WriteError">WriteError</a>;
 <a name="l00217"></a>00217 
-<a name="l00220"></a><a class="code" href="classuserrec.html#recvqmax">00220</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#recvqmax">recvqmax</a>;
+<a name="l00220"></a><a class="code" href="classuserrec.html#sendqmax">00220</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#sendqmax">sendqmax</a>;
 <a name="l00221"></a>00221 
-<a name="l00222"></a>00222         <a class="code" href="classuserrec.html#userrec_28_29">userrec</a>();
-<a name="l00223"></a>00223         
-<a name="l00228"></a>00228         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullHost_28_29">GetFullHost</a>();
-<a name="l00229"></a>00229         
-<a name="l00235"></a>00235         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullRealHost_28_29">GetFullRealHost</a>();
-<a name="l00236"></a>00236         
-<a name="l00239"></a>00239         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#IsInvited_28char_20_2Achannel_29">IsInvited</a>(<span class="keywordtype">char</span>* channel);
+<a name="l00224"></a><a class="code" href="classuserrec.html#recvqmax">00224</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#recvqmax">recvqmax</a>;
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226         <a class="code" href="classuserrec.html#userrec_28_29">userrec</a>();
+<a name="l00227"></a>00227         
+<a name="l00232"></a>00232         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullHost_28_29">GetFullHost</a>();
+<a name="l00233"></a>00233         
+<a name="l00239"></a>00239         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#GetFullRealHost_28_29">GetFullRealHost</a>();
 <a name="l00240"></a>00240         
-<a name="l00243"></a>00243         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#InviteTo_28char_20_2Achannel_29">InviteTo</a>(<span class="keywordtype">char</span>* channel);
+<a name="l00243"></a>00243         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#IsInvited_28irc_3A_3Astring_20_26channel_29">IsInvited</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel);
 <a name="l00244"></a>00244         
-<a name="l00249"></a>00249         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#RemoveInvite_28char_20_2Achannel_29">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
-<a name="l00250"></a>00250         
-<a name="l00255"></a>00255         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#HasPermission_28char_20_2Acommand_29">HasPermission</a>(<span class="keywordtype">char</span>* command);
-<a name="l00256"></a>00256 
-<a name="l00259"></a>00259         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size);
+<a name="l00247"></a>00247         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#InviteTo_28irc_3A_3Astring_20_26channel_29">InviteTo</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel);
+<a name="l00248"></a>00248         
+<a name="l00253"></a>00253         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#RemoveInvite_28irc_3A_3Astring_20_26channel_29">RemoveInvite</a>(<a class="code" href="namespaceirc.html#string">irc::string</a> &amp;channel);
+<a name="l00254"></a>00254         
+<a name="l00259"></a>00259         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#HasPermission_28std_3A_3Astring_20_26command_29">HasPermission</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;command);
 <a name="l00260"></a>00260 
-<a name="l00268"></a>00268         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">AddBuffer</a>(<a class="code" href="namespaceirc.html#string">std::string</a> a);
-<a name="l00269"></a>00269 
-<a name="l00273"></a>00273         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#BufferIsReady_28_29">BufferIsReady</a>();
-<a name="l00274"></a>00274 
-<a name="l00277"></a>00277         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00263"></a>00263         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#ReadData_28void_20_2Abuffer_2C_20size_5Ft_20size_29">ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size);
+<a name="l00264"></a>00264 
+<a name="l00272"></a>00272         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#AddBuffer_28std_3A_3Astring_20a_29">AddBuffer</a>(<a class="code" href="namespaceirc.html#string">std::string</a> a);
+<a name="l00273"></a>00273 
+<a name="l00277"></a>00277         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#BufferIsReady_28_29">BufferIsReady</a>();
 <a name="l00278"></a>00278 
-<a name="l00286"></a>00286         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetBuffer_28_29">GetBuffer</a>();
-<a name="l00287"></a>00287 
-<a name="l00293"></a>00293         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<a class="code" href="namespaceirc.html#string">std::string</a> error);
-<a name="l00294"></a>00294 
-<a name="l00298"></a>00298         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetWriteError_28_29">GetWriteError</a>();
-<a name="l00299"></a>00299 
-<a name="l00305"></a>00305         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">AddWriteBuf</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data);
-<a name="l00306"></a>00306 
-<a name="l00313"></a>00313         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
-<a name="l00314"></a>00314 
-<a name="l00317"></a>00317         <a class="code" href="users_8h.html#InvitedList">InvitedList</a>* <a class="code" href="classuserrec.html#GetInviteList_28_29">GetInviteList</a>();
+<a name="l00281"></a>00281         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#ClearBuffer_28_29">ClearBuffer</a>();
+<a name="l00282"></a>00282 
+<a name="l00290"></a>00290         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetBuffer_28_29">GetBuffer</a>();
+<a name="l00291"></a>00291 
+<a name="l00297"></a>00297         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#SetWriteError_28std_3A_3Astring_20error_29">SetWriteError</a>(<a class="code" href="namespaceirc.html#string">std::string</a> error);
+<a name="l00298"></a>00298 
+<a name="l00302"></a>00302         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classuserrec.html#GetWriteError_28_29">GetWriteError</a>();
+<a name="l00303"></a>00303 
+<a name="l00309"></a>00309         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#AddWriteBuf_28std_3A_3Astring_20data_29">AddWriteBuf</a>(<a class="code" href="namespaceirc.html#string">std::string</a> data);
+<a name="l00310"></a>00310 
+<a name="l00317"></a>00317         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
 <a name="l00318"></a>00318 
-<a name="l00321"></a>00321         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00321"></a>00321         <a class="code" href="users_8h.html#InvitedList">InvitedList</a>* <a class="code" href="classuserrec.html#GetInviteList_28_29">GetInviteList</a>();
 <a name="l00322"></a>00322 
-<a name="l00323"></a>00323         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#_7Euserrec_28_29">~userrec</a>();
-<a name="l00324"></a>00324 
-<a name="l00325"></a>00325 <span class="preprocessor">#ifdef THREADED_DNS</span>
-<a name="l00326"></a>00326 <span class="preprocessor"></span>        pthread_t dnsthread;
-<a name="l00327"></a>00327 <span class="preprocessor">#endif</span>
-<a name="l00328"></a>00328 <span class="preprocessor"></span>};
-<a name="l00329"></a>00329 
-<a name="l00332"></a><a class="code" href="classWhoWasUser.html">00332</a> <span class="keyword">class </span><a class="code" href="classWhoWasUser.html">WhoWasUser</a>
-<a name="l00333"></a>00333 {
-<a name="l00334"></a>00334  <span class="keyword">public</span>:
-<a name="l00335"></a><a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">00335</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX];
-<a name="l00336"></a><a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">00336</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>[IDENTMAX+1];
-<a name="l00337"></a><a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">00337</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>[160];
-<a name="l00338"></a><a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">00338</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>[160];
-<a name="l00339"></a><a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">00339</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1];
-<a name="l00340"></a><a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">00340</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>[256];
-<a name="l00341"></a><a class="code" href="classWhoWasUser.html#signon">00341</a>         time_t <a class="code" href="classWhoWasUser.html#signon">signon</a>;
-<a name="l00342"></a>00342 };
-<a name="l00343"></a>00343 
-<a name="l00344"></a>00344 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l00325"></a>00325         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00326"></a>00326 
+<a name="l00327"></a>00327         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#_7Euserrec_28_29">~userrec</a>();
+<a name="l00328"></a>00328 
+<a name="l00329"></a>00329 <span class="preprocessor">#ifdef THREADED_DNS</span>
+<a name="l00330"></a>00330 <span class="preprocessor"></span>        pthread_t dnsthread;
+<a name="l00331"></a>00331 <span class="preprocessor">#endif</span>
+<a name="l00332"></a>00332 <span class="preprocessor"></span>};
+<a name="l00333"></a>00333 
+<a name="l00336"></a><a class="code" href="classWhoWasUser.html">00336</a> <span class="keyword">class </span><a class="code" href="classWhoWasUser.html">WhoWasUser</a>
+<a name="l00337"></a>00337 {
+<a name="l00338"></a>00338  <span class="keyword">public</span>:
+<a name="l00339"></a><a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">00339</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>[NICKMAX];
+<a name="l00340"></a><a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">00340</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>[IDENTMAX+1];
+<a name="l00341"></a><a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">00341</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>[160];
+<a name="l00342"></a><a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">00342</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>[160];
+<a name="l00343"></a><a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">00343</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>[MAXGECOS+1];
+<a name="l00344"></a><a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">00344</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>[256];
+<a name="l00345"></a><a class="code" href="classWhoWasUser.html#signon">00345</a>         time_t <a class="code" href="classWhoWasUser.html#signon">signon</a>;
+<a name="l00346"></a>00346 };
+<a name="l00347"></a>00347 
+<a name="l00348"></a>00348 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddOper_28userrec_20_2Auser_29">AddOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00349"></a>00349 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00350"></a>00350 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r);
+<a name="l00351"></a>00351 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(<a class="code" href="classuserrec.html">userrec</a> *user,<span class="keyword">const</span> <span class="keywordtype">char</span>* r);
+<a name="l00352"></a>00352 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(<a class="code" href="classuserrec.html">userrec</a>* u);
+<a name="l00353"></a>00353 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">AddClient</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">char</span>* host, <span class="keywordtype">int</span> port, <span class="keywordtype">bool</span> iscached, <span class="keywordtype">char</span>* ip);
+<a name="l00354"></a>00354 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00355"></a>00355 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a>(<a class="code" href="classuserrec.html">userrec</a> *user);
+<a name="l00356"></a>00356 <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="users_8cpp.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a>(<span class="keywordtype">char</span>* Old, <span class="keywordtype">char</span>* New);
+<a name="l00357"></a>00357 <span class="keywordtype">void</span> <a class="code" href="users_8cpp.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keyword">const</span> <span class="keywordtype">char</span>* newnick);
+<a name="l00358"></a>00358 
+<a name="l00359"></a>00359 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 62402d7cbf1ce1345089296cb34d290885ada964..4dac0e45656befd12f36eec7382b587b2d13a1b9 100644 (file)
 <code>#include &quot;inspstring.h&quot;</code><br>
 <code>#include &quot;<a class="el" href="connection_8h-source.html">connection.h</a>&quot;</code><br>
 <code>#include &lt;string&gt;</code><br>
+<code>#include &quot;<a class="el" href="hashcomp_8h-source.html">hashcomp.h</a>&quot;</code><br>
 
 <p>
 Include dependency graph for users.h:<p><center><img src="users_8h__incl.gif" border="0" usemap="#users.h_map" alt=""></center>
 <map name="users.h_map">
 <area href="channels_8h-source.html" shape="rect" coords="128,108,213,135" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="121,58,220,84" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="121,159,220,185" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="124,57,217,84" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="users_8h__dep__incl.gif" border="0" usemap="#users.hdep_map" alt=""></center>
 <map name="users.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="413,412,512,439" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="413,311,512,337" alt="">
-<area href="users_8cpp-source.html" shape="rect" coords="280,159,360,185" alt="">
-<area href="commands_8h-source.html" shape="rect" coords="125,108,224,135" alt="">
-<area href="globals_8h-source.html" shape="rect" coords="137,361,212,388" alt="">
-<area href="typedefs_8h-source.html" shape="rect" coords="277,361,363,388" alt="">
-<area href="inspircd_8h-source.html" shape="rect" coords="135,209,215,236" alt="">
-<area href="cull__list_8h-source.html" shape="rect" coords="136,412,213,439" alt="">
-<area href="message_8h-source.html" shape="rect" coords="277,564,363,591" alt="">
-<area href="mode_8h-source.html" shape="rect" coords="287,260,353,287" alt="">
-<area href="userprocess_8h-source.html" shape="rect" coords="123,564,227,591" alt="">
-<area href="xline_8h-source.html" shape="rect" coords="289,463,351,489" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="531,235,629,261" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="531,387,629,413" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="540,564,620,591" alt="">
+<area href="commands_8h-source.html" shape="rect" coords="379,615,477,641" alt="">
+<area href="cull__list_8h-source.html" shape="rect" coords="121,311,199,337" alt="">
+<area href="globals_8h-source.html" shape="rect" coords="249,159,324,185" alt="">
+<area href="typedefs_8h-source.html" shape="rect" coords="385,260,471,287" alt="">
+<area href="inspircd_8h-source.html" shape="rect" coords="247,412,327,439" alt="">
+<area href="userprocess_8h-source.html" shape="rect" coords="376,463,480,489" alt="">
+<area href="mode_8h-source.html" shape="rect" coords="127,361,193,388" alt="">
+<area href="message_8h-source.html" shape="rect" coords="385,311,471,337" alt="">
+<area href="xline_8h-source.html" shape="rect" coords="397,513,459,540" alt="">
 </map>
 
 <p>
@@ -73,6 +75,30 @@ This graph shows which files directly or indirectly include this file:<p><center
 <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef std::vector&lt; <a class="el" href="classConnectClass.html">ConnectClass</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#ClassVector">ClassVector</a></td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holds a complete list of all allow and deny tags from the configuration file (connection classes).  <a href="#ClassVector"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename T&gt; </td></tr>
+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">string</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="users_8h.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a> (const T &amp;in)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#AddOper_28userrec_20_2Auser_29">AddOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#DeleteOper_28userrec_20_2Auser_29">DeleteOper</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *r)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a> (<a class="el" href="classuserrec.html">userrec</a> *u)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29">AddClient</a> (int socket, char *host, int port, bool iscached, char *ip)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#ConnectUser_28userrec_20_2Auser_29">ConnectUser</a> (<a class="el" href="classuserrec.html">userrec</a> *user)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classuserrec.html">userrec</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29">ReHashNick</a> (char *Old, char *New)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="users_8h.html#force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29">force_nickchange</a> (<a class="el" href="classuserrec.html">userrec</a> *user, const char *newnick)</td></tr>
+
 </table>
 <hr><h2>Define Documentation</h2>
 <a class="anchor" name="CC_5FALLOW"></a><!-- doxytag: member="users.h::CC_ALLOW" ref="CC_5FALLOW" args="" --><p>
@@ -97,7 +123,9 @@ This graph shows which files directly or indirectly include this file:<p><center
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00034">34</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00036">36</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#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="CC_5FDENY"></a><!-- doxytag: member="users.h::CC_DENY" ref="CC_5FDENY" args="" --><p>
@@ -122,7 +150,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00034">34</a> of fi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00035">35</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+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 class="anchor" name="STATUS_5FHOP"></a><!-- doxytag: member="users.h::STATUS_HOP" ref="STATUS_5FHOP" args="" --><p>
@@ -147,7 +175,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00035">35</a> of fi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00030">30</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
+Definition at line <a class="el" href="users_8h-source.html#l00032">32</a> of file <a class="el" href="users_8h-source.html">users.h</a>.
 <p>
 Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.    </td>
   </tr>
@@ -174,7 +202,7 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00459">kick_channel
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00032">32</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00034">34</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="STATUS_5FOP"></a><!-- doxytag: member="users.h::STATUS_OP" ref="STATUS_5FOP" args="" --><p>
@@ -199,7 +227,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00032">32</a> of fi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00029">29</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00031">31</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="STATUS_5FVOICE"></a><!-- doxytag: member="users.h::STATUS_VOICE" ref="STATUS_5FVOICE" args="" --><p>
@@ -224,7 +252,7 @@ Definition at line <a class="el" href="users_8h-source.html#l00029">29</a> of fi
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00031">31</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00033">33</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <hr><h2>Typedef Documentation</h2>
@@ -252,7 +280,7 @@ Holds a complete list of all allow and deny tags from the configuration file (co
 <p>
 
 <p>
-Definition at line <a class="el" href="users_8h-source.html#l00103">103</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
+Definition at line <a class="el" href="users_8h-source.html#l00107">107</a> of file <a class="el" href="users_8h-source.html">users.h</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="InvitedList"></a><!-- doxytag: member="users.h::InvitedList" ref="InvitedList" args="" --><p>
@@ -279,10 +307,914 @@ Holds a complete list of all channels to which a user has been invited and has n
 <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>.    </td>
+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>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29"></a><!-- doxytag: member="users.h::AddClient" ref="AddClient_28int_20socket_2C_20char_20_2Ahost_2C_20int_20port_2C_20bool_20iscached_2C_20char_20_2Aip_29" args="(int socket, char *host, int port, bool iscached, char *ip)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddClient           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">int&nbsp;</td>
+          <td class="mdname" nowrap> <em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>port</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>iscached</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>ip</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00524">524</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="socketengine_8cpp-source.html#l00065">SocketEngine::AddFd()</a>, <a class="el" href="users_8h-source.html#l00036">CC_ALLOW</a>, <a class="el" href="channels_8h-source.html#l00254">ucrec::channel</a>, <a class="el" href="inspircd__io_8h-source.html#l00243">ServerConfig::Classes</a>, <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00056">ConvToStr()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="inspircd__io_8h-source.html#l00177">ServerConfig::dns_timeout</a>, <a class="el" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr()</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception()</a>, <a class="el" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">matches_zline()</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>, <a class="el" href="inspircd__io_8h-source.html#l00194">ServerConfig::SoftLimit</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="channels_8h-source.html#l00249">ucrec::uc_modes</a>, and <a class="el" href="socketengine_8h-source.html#l00043">X_ESTAB_CLIENT</a>.<div class="fragment"><pre class="fragment"><a name="l00525"></a>00525 {
+<a name="l00526"></a>00526         <a class="code" href="namespaceirc.html#string">string</a> tempnick;
+<a name="l00527"></a>00527         <span class="keywordtype">char</span> tn2[MAXBUF];
+<a name="l00528"></a>00528         user_hash::iterator iter;
+<a name="l00529"></a>00529 
+<a name="l00530"></a>00530         tempnick = <a class="code" href="users_8cpp.html#ConvToStr_28const_20T_20_26in_29">ConvToStr</a>(socket) + <span class="stringliteral">"-unknown"</span>;
+<a name="l00531"></a>00531         sprintf(tn2,<span class="stringliteral">"%lu-unknown"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket);
+<a name="l00532"></a>00532 
+<a name="l00533"></a>00533         iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(tempnick);
+<a name="l00534"></a>00534 
+<a name="l00535"></a>00535         <span class="comment">// fix by brain.</span>
+<a name="l00536"></a>00536         <span class="comment">// as these nicknames are 'RFC impossible', we can be sure nobody is going to be</span>
+<a name="l00537"></a>00537         <span class="comment">// using one as a registered connection. As theyre per fd, we can also safely assume</span>
+<a name="l00538"></a>00538         <span class="comment">// that we wont have collisions. Therefore, if the nick exists in the list, its only</span>
+<a name="l00539"></a>00539         <span class="comment">// used by a dead socket, erase the iterator so that the new client may reclaim it.</span>
+<a name="l00540"></a>00540         <span class="comment">// this was probably the cause of 'server ignores me when i hammer it with reconnects'</span>
+<a name="l00541"></a>00541         <span class="comment">// issue in earlier alphas/betas</span>
+<a name="l00542"></a>00542         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00543"></a>00543         {
+<a name="l00544"></a>00544                 <a class="code" href="classuserrec.html">userrec</a>* goner = iter-&gt;second;
+<a name="l00545"></a>00545                 <span class="keyword">delete</span> goner;
+<a name="l00546"></a>00546                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00547"></a>00547         }
+<a name="l00548"></a>00548 
+<a name="l00549"></a>00549         <span class="comment">/*</span>
+<a name="l00550"></a>00550 <span class="comment">         * It is OK to access the value here this way since we know</span>
+<a name="l00551"></a>00551 <span class="comment">         * it exists, we just created it above.</span>
+<a name="l00552"></a>00552 <span class="comment">         *</span>
+<a name="l00553"></a>00553 <span class="comment">         * At NO other time should you access a value in a map or a</span>
+<a name="l00554"></a>00554 <span class="comment">         * hash_map this way.</span>
+<a name="l00555"></a>00555 <span class="comment">         */</span>
+<a name="l00556"></a>00556         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick] = <span class="keyword">new</span> <a class="code" href="classuserrec.html">userrec</a>();
+<a name="l00557"></a>00557 
+<a name="l00558"></a>00558         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"AddClient: %lu %s %d %s"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)socket,host,port,ip);
+<a name="l00559"></a>00559 
+<a name="l00560"></a>00560         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;fd = socket;
+<a name="l00561"></a>00561         strlcpy(clientlist[tempnick]-&gt;nick, tn2,NICKMAX);
+<a name="l00562"></a>00562         strlcpy(clientlist[tempnick]-&gt;host, host,160);
+<a name="l00563"></a>00563         strlcpy(clientlist[tempnick]-&gt;dhost, host,160);
+<a name="l00564"></a>00564         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;server = (<span class="keywordtype">char</span>*)<a class="code" href="inspircd_8h.html#FindServerNamePtr_28std_3A_3Astring_20servername_29">FindServerNamePtr</a>(<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>);
+<a name="l00565"></a>00565         strlcpy(clientlist[tempnick]-&gt;ident, <span class="stringliteral">"unknown"</span>,IDENTMAX);
+<a name="l00566"></a>00566         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;registered = 0;
+<a name="l00567"></a>00567         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;signon = <a class="code" href="channels_8cpp.html#TIME">TIME</a> + <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00568"></a>00568         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;lastping = 1;
+<a name="l00569"></a>00569         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;port = port;
+<a name="l00570"></a>00570         strlcpy(clientlist[tempnick]-&gt;ip,ip,16);
+<a name="l00571"></a>00571 
+<a name="l00572"></a>00572         <span class="comment">// set the registration timeout for this user</span>
+<a name="l00573"></a>00573         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> class_regtimeout = 90;
+<a name="l00574"></a>00574         <span class="keywordtype">int</span> class_flood = 0;
+<a name="l00575"></a>00575         <span class="keywordtype">long</span> class_threshold = 5;
+<a name="l00576"></a>00576         <span class="keywordtype">long</span> class_sqmax = 262144;      <span class="comment">// 256kb</span>
+<a name="l00577"></a>00577         <span class="keywordtype">long</span> class_rqmax = 4096;        <span class="comment">// 4k</span>
+<a name="l00578"></a>00578 
+<a name="l00579"></a>00579         <span class="keywordflow">for</span> (ClassVector::iterator i = <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.begin(); i != <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Classes">Classes</a>.end(); i++)
+<a name="l00580"></a>00580         {
+<a name="l00581"></a>00581                 <span class="keywordflow">if</span> (match(clientlist[tempnick]-&gt;host,i-&gt;host) &amp;&amp; (i-&gt;type == <a class="code" href="users_8h.html#CC_5FALLOW">CC_ALLOW</a>))
+<a name="l00582"></a>00582                 {
+<a name="l00583"></a>00583                         class_regtimeout = (<span class="keywordtype">unsigned</span> long)i-&gt;registration_timeout;
+<a name="l00584"></a>00584                         class_flood = i-&gt;flood;
+<a name="l00585"></a>00585                         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax = i-&gt;pingtime;
+<a name="l00586"></a>00586                         class_threshold = i-&gt;threshold;
+<a name="l00587"></a>00587                         class_sqmax = i-&gt;sendqmax;
+<a name="l00588"></a>00588                         class_rqmax = i-&gt;recvqmax;
+<a name="l00589"></a>00589                         <span class="keywordflow">break</span>;
+<a name="l00590"></a>00590                 }
+<a name="l00591"></a>00591         }
+<a name="l00592"></a>00592 
+<a name="l00593"></a>00593         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;nping = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;pingmax + <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#dns_5Ftimeout">dns_timeout</a>;
+<a name="l00594"></a>00594         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;timeout = <a class="code" href="channels_8cpp.html#TIME">TIME</a>+class_regtimeout;
+<a name="l00595"></a>00595         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;flood = class_flood;
+<a name="l00596"></a>00596         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;threshold = class_threshold;
+<a name="l00597"></a>00597         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;sendqmax = class_sqmax;
+<a name="l00598"></a>00598         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;recvqmax = class_rqmax;
+<a name="l00599"></a>00599 
+<a name="l00600"></a>00600         <a class="code" href="classucrec.html">ucrec</a> a;
+<a name="l00601"></a>00601         a.<a class="code" href="classucrec.html#channel">channel</a> = NULL;
+<a name="l00602"></a>00602         a.<a class="code" href="classucrec.html#uc_5Fmodes">uc_modes</a> = 0;
+<a name="l00603"></a>00603         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAXCHANS; i++)
+<a name="l00604"></a>00604                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick]-&gt;chans.push_back(a);
+<a name="l00605"></a>00605 
+<a name="l00606"></a>00606         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt; <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#SoftLimit">SoftLimit</a>)
+<a name="l00607"></a>00607         {
+<a name="l00608"></a>00608                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00609"></a>00609                 <span class="keywordflow">return</span>;
+<a name="l00610"></a>00610         }
+<a name="l00611"></a>00611 
+<a name="l00612"></a>00612         <span class="keywordflow">if</span> (<a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.size() &gt;= MAXCLIENTS)
+<a name="l00613"></a>00613         {
+<a name="l00614"></a>00614                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"No more connections allowed"</span>);
+<a name="l00615"></a>00615                 <span class="keywordflow">return</span>;
+<a name="l00616"></a>00616         }
+<a name="l00617"></a>00617 
+<a name="l00618"></a>00618         <span class="comment">// this is done as a safety check to keep the file descriptors within range of fd_ref_table.</span>
+<a name="l00619"></a>00619         <span class="comment">// its a pretty big but for the moment valid assumption:</span>
+<a name="l00620"></a>00620         <span class="comment">// file descriptors are handed out starting at 0, and are recycled as theyre freed.</span>
+<a name="l00621"></a>00621         <span class="comment">// therefore if there is ever an fd over 65535, 65536 clients must be connected to the</span>
+<a name="l00622"></a>00622         <span class="comment">// irc server at once (or the irc server otherwise initiating this many connections, files etc)</span>
+<a name="l00623"></a>00623         <span class="comment">// which for the time being is a physical impossibility (even the largest networks dont have more</span>
+<a name="l00624"></a>00624         <span class="comment">// than about 10,000 users on ONE server!)</span>
+<a name="l00625"></a>00625         <span class="keywordflow">if</span> ((<span class="keywordtype">unsigned</span>)socket &gt; 65534)
+<a name="l00626"></a>00626         {
+<a name="l00627"></a>00627                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],<span class="stringliteral">"Server is full"</span>);
+<a name="l00628"></a>00628                 <span class="keywordflow">return</span>;
+<a name="l00629"></a>00629         }
+<a name="l00630"></a>00630         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(ip);
+<a name="l00631"></a>00631         <span class="keywordflow">if</span> (!e)
+<a name="l00632"></a>00632         {
+<a name="l00633"></a>00633                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fzline_28const_20char_20_2Aipaddr_29">matches_zline</a>(ip);
+<a name="l00634"></a>00634                 <span class="keywordflow">if</span> (r)
+<a name="l00635"></a>00635                 {
+<a name="l00636"></a>00636                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00637"></a>00637                         snprintf(reason,MAXBUF,<span class="stringliteral">"Z-Lined: %s"</span>,r);
+<a name="l00638"></a>00638                         <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(clientlist[tempnick],reason);
+<a name="l00639"></a>00639                         <span class="keywordflow">return</span>;
+<a name="l00640"></a>00640                 }
+<a name="l00641"></a>00641         }
+<a name="l00642"></a>00642         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[socket] = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[tempnick];
+<a name="l00643"></a>00643         <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.push_back(clientlist[tempnick]);
+<a name="l00644"></a>00644         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#AddFd_28int_20fd_2C_20bool_20readable_2C_20char_20type_29">AddFd</a>(socket,<span class="keyword">true</span>,<a class="code" href="socketengine_8h.html#X_5FESTAB_5FCLIENT">X_ESTAB_CLIENT</a>);
+<a name="l00645"></a>00645 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="AddOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.h::AddOper" ref="AddOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddOper           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00330">330</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00054">all_opers</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00331"></a>00331 {
+<a name="l00332"></a>00332         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper added to optimization list"</span>);
+<a name="l00333"></a>00333         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.push_back(user);
+<a name="l00334"></a>00334 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="AddWhoWas_28userrec_20_2Au_29"></a><!-- doxytag: member="users.h::AddWhoWas" ref="AddWhoWas_28userrec_20_2Au_29" args="(userrec *u)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AddWhoWas           </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> <em>u</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00471">471</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="users_8h-source.html#l00138">userrec::dhost</a>, <a class="el" href="users_8h-source.html#l00341">WhoWasUser::dhost</a>, <a class="el" href="users_8h-source.html#l00142">userrec::fullname</a>, <a class="el" href="users_8h-source.html#l00343">WhoWasUser::fullname</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00342">WhoWasUser::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8h-source.html#l00340">WhoWasUser::ident</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00339">WhoWasUser::nick</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="users_8h-source.html#l00157">userrec::server</a>, <a class="el" href="users_8h-source.html#l00344">WhoWasUser::server</a>, <a class="el" href="connection_8h-source.html#l00088">connection::signon</a>, <a class="el" href="users_8h-source.html#l00345">WhoWasUser::signon</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="users_8cpp.html#whowas">whowas</a>, <a class="el" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>, and <a class="el" href="channels_8cpp.html#WHOWAS_5FSTALE">WHOWAS_STALE</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>.<div class="fragment"><pre class="fragment"><a name="l00472"></a>00472 {
+<a name="l00473"></a>00473         whowas_hash::iterator iter = <a class="code" href="users_8cpp.html#whowas">whowas</a>.find(u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00474"></a>00474         <a class="code" href="classWhoWasUser.html">WhoWasUser</a> *a = <span class="keyword">new</span> <a class="code" href="classWhoWasUser.html">WhoWasUser</a>();
+<a name="l00475"></a>00475         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>,u-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,NICKMAX);
+<a name="l00476"></a>00476         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#ident_5BIDENTMAX_2B_31_5D">ident</a>,u-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,IDENTMAX);
+<a name="l00477"></a>00477         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#dhost_5B_31_36_30_5D">dhost</a>,u-&gt;<a class="code" href="classuserrec.html#dhost_5B_31_36_30_5D">dhost</a>,160);
+<a name="l00478"></a>00478         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#host_5B_31_36_30_5D">host</a>,u-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,160);
+<a name="l00479"></a>00479         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,u-&gt;<a class="code" href="classuserrec.html#fullname_5BMAXGECOS_2B_31_5D">fullname</a>,MAXGECOS);
+<a name="l00480"></a>00480         strlcpy(a-&gt;<a class="code" href="classWhoWasUser.html#server_5B_32_35_36_5D">server</a>,u-&gt;<a class="code" href="classuserrec.html#server">server</a>,256);
+<a name="l00481"></a>00481         a-&gt;<a class="code" href="classWhoWasUser.html#signon">signon</a> = u-&gt;<a class="code" href="classconnection.html#signon">signon</a>;
+<a name="l00482"></a>00482 
+<a name="l00483"></a>00483         <span class="comment">/* MAX_WHOWAS:   max number of /WHOWAS items</span>
+<a name="l00484"></a>00484 <span class="comment">         * WHOWAS_STALE: number of hours before a WHOWAS item is marked as stale and</span>
+<a name="l00485"></a>00485 <span class="comment">         *               can be replaced by a newer one</span>
+<a name="l00486"></a>00486 <span class="comment">         */</span>
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488         <span class="keywordflow">if</span> (iter == <a class="code" href="users_8cpp.html#whowas">whowas</a>.end())
+<a name="l00489"></a>00489         {
+<a name="l00490"></a>00490                 <span class="keywordflow">if</span> (<a class="code" href="users_8cpp.html#whowas">whowas</a>.size() &gt;= (unsigned)<a class="code" href="channels_8cpp.html#WHOWAS_5FMAX">WHOWAS_MAX</a>)
+<a name="l00491"></a>00491                 {
+<a name="l00492"></a>00492                         <span class="keywordflow">for</span> (whowas_hash::iterator i = <a class="code" href="users_8cpp.html#whowas">whowas</a>.begin(); i != <a class="code" href="users_8cpp.html#whowas">whowas</a>.end(); i++)
+<a name="l00493"></a>00493                         {
+<a name="l00494"></a>00494                                 <span class="comment">// 3600 seconds in an hour ;)</span>
+<a name="l00495"></a>00495                                 <span class="keywordflow">if</span> ((i-&gt;second-&gt;signon)&lt;(TIME-(WHOWAS_STALE*3600)))
+<a name="l00496"></a>00496                                 {
+<a name="l00497"></a>00497                                         <span class="comment">// delete the old one</span>
+<a name="l00498"></a>00498                                         <span class="keywordflow">if</span> (i-&gt;second) <span class="keyword">delete</span> i-&gt;second;
+<a name="l00499"></a>00499                                         <span class="comment">// replace with new one</span>
+<a name="l00500"></a>00500                                         i-&gt;second = a;
+<a name="l00501"></a>00501                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added WHOWAS entry, purged an old record"</span>);
+<a name="l00502"></a>00502                                         <span class="keywordflow">return</span>;
+<a name="l00503"></a>00503                                 }
+<a name="l00504"></a>00504                         }
+<a name="l00505"></a>00505                         <span class="comment">// no space left and user doesnt exist. Don't leave ram in use!</span>
+<a name="l00506"></a>00506                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Not able to update whowas (list at WHOWAS_MAX entries and trying to add new?), freeing excess ram"</span>);
+<a name="l00507"></a>00507                         <span class="keyword">delete</span> a;
+<a name="l00508"></a>00508                 }
+<a name="l00509"></a>00509                 <span class="keywordflow">else</span>
+<a name="l00510"></a>00510                 {
+<a name="l00511"></a>00511                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"added fresh WHOWAS entry"</span>);
+<a name="l00512"></a>00512                         <a class="code" href="users_8cpp.html#whowas">whowas</a>[a-&gt;<a class="code" href="classWhoWasUser.html#nick_5BNICKMAX_5D">nick</a>] = a;
+<a name="l00513"></a>00513                 }
+<a name="l00514"></a>00514         }
+<a name="l00515"></a>00515         <span class="keywordflow">else</span>
+<a name="l00516"></a>00516         {
+<a name="l00517"></a>00517                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"updated WHOWAS entry"</span>);
+<a name="l00518"></a>00518                 <span class="keywordflow">if</span> (iter-&gt;second) <span class="keyword">delete</span> iter-&gt;second;
+<a name="l00519"></a>00519                 iter-&gt;second = a;
+<a name="l00520"></a>00520         }
+<a name="l00521"></a>00521 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.h::ConnectUser" ref="ConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void ConnectUser           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00731">731</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8h-source.html#l00185">userrec::dns_done</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, and <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>.<div class="fragment"><pre class="fragment"><a name="l00732"></a>00732 {
+<a name="l00733"></a>00733         <span class="comment">// dns is already done, things are fast. no need to wait for dns to complete just pass them straight on</span>
+<a name="l00734"></a>00734         <span class="keywordflow">if</span> ((user-&gt;<a class="code" href="classuserrec.html#dns_5Fdone">dns_done</a>) &amp;&amp; (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> &gt;= 3) &amp;&amp; (AllModulesReportReady(user)))
+<a name="l00735"></a>00735         {
+<a name="l00736"></a>00736                 <a class="code" href="users_8cpp.html#FullConnectUser_28userrec_20_2Auser_29">FullConnectUser</a>(user);
+<a name="l00737"></a>00737         }
+<a name="l00738"></a>00738 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ConvToStr_28const_20T_20_26in_29"></a><!-- doxytag: member="users.h::ConvToStr" ref="ConvToStr_28const_20T_20_26in_29" args="(const T &amp;in)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="mdPrefix" colspan="4">
+template&lt;typename T&gt; </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">string</a> ConvToStr           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>in</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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="users_8cpp-source.html#l00056">56</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.<div class="fragment"><pre class="fragment"><a name="l00057"></a>00057 {
+<a name="l00058"></a>00058         stringstream tmp;
+<a name="l00059"></a>00059         <span class="keywordflow">if</span> (!(tmp &lt;&lt; in)) <span class="keywordflow">return</span> <a class="code" href="namespaceirc.html#string">string</a>();
+<a name="l00060"></a>00060         <span class="keywordflow">return</span> tmp.str();
+<a name="l00061"></a>00061 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="DeleteOper_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.h::DeleteOper" ref="DeleteOper_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void DeleteOper           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00336">336</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00054">all_opers</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00337"></a>00337 {
+<a name="l00338"></a>00338         <span class="keywordflow">for</span> (std::vector&lt;userrec*&gt;::iterator a = <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.begin(); a &lt; <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.end(); a++)
+<a name="l00339"></a>00339         {
+<a name="l00340"></a>00340                 <span class="keywordflow">if</span> (*a == user)
+<a name="l00341"></a>00341                 {
+<a name="l00342"></a>00342                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Oper removed from optimization list"</span>);
+<a name="l00343"></a>00343                         <a class="code" href="users_8cpp.html#all_5Fopers">all_opers</a>.erase(a);
+<a name="l00344"></a>00344                         <span class="keywordflow">return</span>;
+<a name="l00345"></a>00345                 }
+<a name="l00346"></a>00346         }
+<a name="l00347"></a>00347 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29"></a><!-- doxytag: member="users.h::force_nickchange" ref="force_5Fnickchange_28userrec_20_2Auser_2C_20const_20char_20_2Anewnick_29" args="(userrec *user, const char *newnick)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void force_nickchange           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>newnick</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00769">769</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8h-source.html#l00090">FOREACH_RESULT</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">matches_qline()</a>, <a class="el" href="inspircd_8h-source.html#l00110">InspIRCd::Parser</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00112">InspIRCd::stats</a>, and <a class="el" href="inspircd_8h-source.html#l00080">serverstats::statsCollisions</a>.
+<p>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00385">Server::ChangeUserNick()</a>.<div class="fragment"><pre class="fragment"><a name="l00770"></a>00770 {
+<a name="l00771"></a>00771         <span class="keywordtype">char</span> nick[MAXBUF];
+<a name="l00772"></a>00772         <span class="keywordtype">int</span> MOD_RESULT = 0;
+<a name="l00773"></a>00773 
+<a name="l00774"></a>00774         strcpy(nick,<span class="stringliteral">""</span>);
+<a name="l00775"></a>00775 
+<a name="l00776"></a>00776         <a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">FOREACH_RESULT</a>(OnUserPreNick(user,newnick));
+<a name="l00777"></a>00777         <span class="keywordflow">if</span> (MOD_RESULT) {
+<a name="l00778"></a>00778                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00779"></a>00779                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00780"></a>00780                 <span class="keywordflow">return</span>;
+<a name="l00781"></a>00781         }
+<a name="l00782"></a>00782         <span class="keywordflow">if</span> (<a class="code" href="xline_8h.html#matches_5Fqline_28const_20char_20_2Anick_29">matches_qline</a>(newnick))
+<a name="l00783"></a>00783         {
+<a name="l00784"></a>00784                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsCollisions">statsCollisions</a>++;
+<a name="l00785"></a>00785                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Nickname collision"</span>);
+<a name="l00786"></a>00786                 <span class="keywordflow">return</span>;
+<a name="l00787"></a>00787         }
+<a name="l00788"></a>00788 
+<a name="l00789"></a>00789         <span class="keywordflow">if</span> (user)
+<a name="l00790"></a>00790         {
+<a name="l00791"></a>00791                 <span class="keywordflow">if</span> (newnick)
+<a name="l00792"></a>00792                 {
+<a name="l00793"></a>00793                         strncpy(nick,newnick,MAXBUF);
+<a name="l00794"></a>00794                 }
+<a name="l00795"></a>00795                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7)
+<a name="l00796"></a>00796                 {
+<a name="l00797"></a>00797                         <span class="keywordtype">char</span>* pars[1];
+<a name="l00798"></a>00798                         pars[0] = nick;
+<a name="l00799"></a>00799                         <a class="code" href="namespaceirc.html#string">std::string</a> cmd = <span class="stringliteral">"NICK"</span>;
+<a name="l00800"></a>00800                         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#Parser">Parser</a>-&gt;CallHandler(cmd,pars,1,user);
+<a name="l00801"></a>00801                 }
+<a name="l00802"></a>00802         }
+<a name="l00803"></a>00803 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="FullConnectUser_28userrec_20_2Auser_29"></a><!-- doxytag: member="users.h::FullConnectUser" ref="FullConnectUser_28userrec_20_2Auser_29" args="(userrec *user)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void FullConnectUser           </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> <em>user</em>          </td>
+          <td class="md" valign="top">&nbsp;)&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#l00647">647</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="connection_8h-source.html#l00070">connection::haspassed</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="connection_8h-source.html#l00092">connection::idle_lastmsg</a>, <a class="el" href="connection_8h-source.html#l00050">connection::ip</a>, <a class="el" href="users_8cpp-source.html#l00349">kill_link()</a>, <a class="el" href="users_8cpp-source.html#l00412">kill_link_silent()</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception()</a>, <a class="el" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">matches_gline()</a>, <a class="el" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">matches_kline()</a>, <a class="el" href="inspircd__io_8h-source.html#l00075">ServerConfig::Network</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd__io_8h-source.html#l00069">ServerConfig::ServerName</a>, <a class="el" href="inspircd_8h-source.html#l00112">InspIRCd::stats</a>, <a class="el" href="inspircd_8h-source.html#l00084">serverstats::statsConnects</a>, <a class="el" href="channels_8cpp.html#TIME">TIME</a>, <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>, and <a class="el" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00731">ConnectUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00648"></a>00648 {
+<a name="l00649"></a>00649         <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#stats">stats</a>-&gt;<a class="code" href="classserverstats.html#statsConnects">statsConnects</a>++;
+<a name="l00650"></a>00650         user-&gt;<a class="code" href="classconnection.html#idle_5Flastmsg">idle_lastmsg</a> = <a class="code" href="channels_8cpp.html#TIME">TIME</a>;
+<a name="l00651"></a>00651         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ConnectUser: %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00652"></a>00652 
+<a name="l00653"></a>00653         <span class="keywordflow">if</span> ((strcmp(Passwd(user),<span class="stringliteral">""</span>)) &amp;&amp; (!user-&gt;<a class="code" href="classconnection.html#haspassed">haspassed</a>))
+<a name="l00654"></a>00654         {
+<a name="l00655"></a>00655                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Invalid password"</span>);
+<a name="l00656"></a>00656                 <span class="keywordflow">return</span>;
+<a name="l00657"></a>00657         }
+<a name="l00658"></a>00658         <span class="keywordflow">if</span> (IsDenied(user))
+<a name="l00659"></a>00659         {
+<a name="l00660"></a>00660                 <a class="code" href="users_8cpp.html#kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link</a>(user,<span class="stringliteral">"Unauthorised connection"</span>);
+<a name="l00661"></a>00661                 <span class="keywordflow">return</span>;
+<a name="l00662"></a>00662         }
+<a name="l00663"></a>00663 
+<a name="l00664"></a>00664         <span class="keywordtype">char</span> match_against[MAXBUF];
+<a name="l00665"></a>00665         snprintf(match_against,MAXBUF,<span class="stringliteral">"%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00666"></a>00666         <span class="keywordtype">char</span>* e = <a class="code" href="xline_8h.html#matches_5Fexception_28const_20char_20_2Ahost_29">matches_exception</a>(match_against);
+<a name="l00667"></a>00667         <span class="keywordflow">if</span> (!e)
+<a name="l00668"></a>00668         {
+<a name="l00669"></a>00669                 <span class="keywordtype">char</span>* r = <a class="code" href="xline_8h.html#matches_5Fgline_28const_20char_20_2Ahost_29">matches_gline</a>(match_against);
+<a name="l00670"></a>00670                 <span class="keywordflow">if</span> (r)
+<a name="l00671"></a>00671                 {
+<a name="l00672"></a>00672                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00673"></a>00673                         snprintf(reason,MAXBUF,<span class="stringliteral">"G-Lined: %s"</span>,r);
+<a name="l00674"></a>00674                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00675"></a>00675                         <span class="keywordflow">return</span>;
+<a name="l00676"></a>00676                 }
+<a name="l00677"></a>00677                 r = <a class="code" href="xline_8h.html#matches_5Fkline_28const_20char_20_2Ahost_29">matches_kline</a>(user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00678"></a>00678                 <span class="keywordflow">if</span> (r)
+<a name="l00679"></a>00679                 {
+<a name="l00680"></a>00680                         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00681"></a>00681                         snprintf(reason,MAXBUF,<span class="stringliteral">"K-Lined: %s"</span>,r);
+<a name="l00682"></a>00682                         <a class="code" href="users_8cpp.html#kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29">kill_link_silent</a>(user,reason);
+<a name="l00683"></a>00683                         <span class="keywordflow">return</span>;
+<a name="l00684"></a>00684                 }
+<a name="l00685"></a>00685         }
+<a name="l00686"></a>00686 
+<a name="l00687"></a>00687 
+<a name="l00688"></a>00688         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"NOTICE Auth :Welcome to \002%s\002!"</span>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>);
+<a name="l00689"></a>00689         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"001 %s :Welcome to the %s IRC Network %s!%s@%s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>);
+<a name="l00690"></a>00690         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"002 %s :Your host is %s, running version %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00691"></a>00691         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"003 %s :This server was created %s %s"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,__TIME__,__DATE__);
+<a name="l00692"></a>00692         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"004 %s %s %s iowghraAsORVSxNCWqBzvdHtGI lvhopsmntikrRcaqOALQbSeKVfHGCuzN"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#ServerName_5BMAXBUF_5D">ServerName</a>,VERSION);
+<a name="l00693"></a>00693         <span class="comment">// the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...</span>
+<a name="l00694"></a>00694         std::stringstream v;
+<a name="l00695"></a>00695         v &lt;&lt; <span class="stringliteral">"WALLCHOPS MODES=13 CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS="</span> &lt;&lt; MAXCHANS;
+<a name="l00696"></a>00696         v &lt;&lt; <span class="stringliteral">" MAXBANS=60 NICKLEN="</span> &lt;&lt; NICKMAX;
+<a name="l00697"></a>00697         v &lt;&lt; <span class="stringliteral">" TOPICLEN="</span> &lt;&lt; MAXTOPIC &lt;&lt; <span class="stringliteral">" KICKLEN="</span> &lt;&lt; MAXKICK &lt;&lt; <span class="stringliteral">" MAXTARGETS=20 AWAYLEN="</span> &lt;&lt; MAXAWAY &lt;&lt; <span class="stringliteral">" CHANMODES=ohvb,k,l,psmnti NETWORK="</span>;
+<a name="l00698"></a>00698         v &lt;&lt; <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#Network_5BMAXBUF_5D">Network</a>;
+<a name="l00699"></a>00699         <a class="code" href="namespaceirc.html#string">std::string</a> data005 = v.str();
+<a name="l00700"></a>00700         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> On005Numeric(data005);
+<a name="l00701"></a>00701         <span class="comment">// anfl @ #ratbox, efnet reminded me that according to the RFC this cant contain more than 13 tokens per line...</span>
+<a name="l00702"></a>00702         <span class="comment">// so i'd better split it :)</span>
+<a name="l00703"></a>00703         std::stringstream out(data005);
+<a name="l00704"></a>00704         <a class="code" href="namespaceirc.html#string">std::string</a> token = <span class="stringliteral">""</span>;
+<a name="l00705"></a>00705         <a class="code" href="namespaceirc.html#string">std::string</a> line5 = <span class="stringliteral">""</span>;
+<a name="l00706"></a>00706         <span class="keywordtype">int</span> token_counter = 0;
+<a name="l00707"></a>00707         <span class="keywordflow">while</span> (!out.eof())
+<a name="l00708"></a>00708         {
+<a name="l00709"></a>00709                 out &gt;&gt; token;
+<a name="l00710"></a>00710                 line5 = line5 + token + <span class="stringliteral">" "</span>;
+<a name="l00711"></a>00711                 token_counter++;
+<a name="l00712"></a>00712                 <span class="keywordflow">if</span> ((token_counter &gt;= 13) || (out.eof() == <span class="keyword">true</span>))
+<a name="l00713"></a>00713                 {
+<a name="l00714"></a>00714                         <a class="code" href="globals_8h.html#WriteServ_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteServ</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"005 %s %s:are supported by this server"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,line5.c_str());
+<a name="l00715"></a>00715                         line5 = <span class="stringliteral">""</span>;
+<a name="l00716"></a>00716                         token_counter = 0;
+<a name="l00717"></a>00717                 }
+<a name="l00718"></a>00718         }
+<a name="l00719"></a>00719         ShowMOTD(user);
+<a name="l00720"></a>00720 
+<a name="l00721"></a>00721         <span class="comment">// fix 3 by brain, move registered = 7 below these so that spurious modes and host changes dont go out</span>
+<a name="l00722"></a>00722         <span class="comment">// onto the network and produce 'fake direction'</span>
+<a name="l00723"></a>00723         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserConnect(user);
+<a name="l00724"></a>00724         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnGlobalConnect(user);
+<a name="l00725"></a>00725         user-&gt;<a class="code" href="classconnection.html#registered">registered</a> = 7;
+<a name="l00726"></a>00726         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client connecting on port %lu: %s!%s@%s [%s]"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#port">port</a>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,user-&gt;<a class="code" href="classconnection.html#ip_5B_31_36_5D">ip</a>);
+<a name="l00727"></a>00727 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="users.h::kill_link" ref="kill_5Flink_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void kill_link           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>r</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00349">349</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="users_8cpp-source.html#l00471">AddWhoWas()</a>, <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00093">userrec::CloseSocket()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig::GetIOHook()</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="modules_8cpp-source.html#l00270">Module::OnRawSocketClose()</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>, and <a class="el" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>, <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>, <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>, and <a class="el" href="modules_8cpp-source.html#l00390">Server::QuitUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00350"></a>00350 {
+<a name="l00351"></a>00351         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00352"></a>00352 
+<a name="l00353"></a>00353         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00354"></a>00354 
+<a name="l00355"></a>00355         strncpy(reason,r,MAXBUF);
+<a name="l00356"></a>00356 
+<a name="l00357"></a>00357         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00358"></a>00358         {
+<a name="l00359"></a>00359                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00360"></a>00360         }
+<a name="l00361"></a>00361 
+<a name="l00362"></a>00362         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00363"></a>00363         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00364"></a>00364         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00365"></a>00365 
+<a name="l00366"></a>00366         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00367"></a>00367                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00368"></a>00368                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00369"></a>00369         }
+<a name="l00370"></a>00370 
+<a name="l00371"></a>00371         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00374"></a>00374 
+<a name="l00375"></a>00375         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00376"></a>00376         {
+<a name="l00377"></a>00377                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00378"></a>00378                 {
+<a name="l00379"></a>00379                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00380"></a>00380                 }
+<a name="l00381"></a>00381                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00382"></a>00382                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00383"></a>00383         }
+<a name="l00384"></a>00384 
+<a name="l00385"></a>00385         <span class="comment">// this must come before the WriteOpers so that it doesnt try to fill their buffer with anything</span>
+<a name="l00386"></a>00386         <span class="comment">// if they were an oper with +s.</span>
+<a name="l00387"></a>00387         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00388"></a>00388                 purge_empty_chans(user);
+<a name="l00389"></a>00389                 <span class="comment">// fix by brain: only show local quits because we only show local connects (it just makes SENSE)</span>
+<a name="l00390"></a>00390                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00391"></a>00391                         <a class="code" href="globals_8h.html#WriteOpers_28char_20_2Atext_2C_2E_2E_2E_29">WriteOpers</a>(<span class="stringliteral">"*** Client exiting: %s!%s@%s [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00392"></a>00392                 <a class="code" href="users_8cpp.html#AddWhoWas_28userrec_20_2Au_29">AddWhoWas</a>(user);
+<a name="l00393"></a>00393         }
+<a name="l00394"></a>00394 
+<a name="l00395"></a>00395         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00396"></a>00396         {
+<a name="l00397"></a>00397                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00398"></a>00398                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00399"></a>00399                 {
+<a name="l00400"></a>00400                         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[user-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = NULL;
+<a name="l00401"></a>00401                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00402"></a>00402                         {
+<a name="l00403"></a>00403                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00404"></a>00404                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00405"></a>00405                         }
+<a name="l00406"></a>00406                 }
+<a name="l00407"></a>00407                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00408"></a>00408         }
+<a name="l00409"></a>00409         <span class="keyword">delete</span> user;
+<a name="l00410"></a>00410 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29"></a><!-- doxytag: member="users.h::kill_link_silent" ref="kill_5Flink_5Fsilent_28userrec_20_2Auser_2C_20const_20char_20_2Ar_29" args="(userrec *user, const char *r)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void kill_link_silent           </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> <em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>r</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00412">412</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="users_8cpp-source.html#l00093">userrec::CloseSocket()</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="socketengine_8cpp-source.html#l00103">SocketEngine::DelFd()</a>, <a class="el" href="connection_8h-source.html#l00042">connection::fd</a>, <a class="el" href="users_8cpp-source.html#l00295">userrec::FlushWriteBuf()</a>, <a class="el" href="modules_8h-source.html#l00082">FOREACH_MOD</a>, <a class="el" href="classServerConfig.html#GetIOHook_28int_20port_29">ServerConfig::GetIOHook()</a>, <a class="el" href="connection_8h-source.html#l00046">connection::host</a>, <a class="el" href="users_8h-source.html#l00133">userrec::ident</a>, <a class="el" href="users_8cpp-source.html#l00052">local_users</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="users_8h-source.html#l00128">userrec::nick</a>, <a class="el" href="modules_8cpp-source.html#l00270">Module::OnRawSocketClose()</a>, <a class="el" href="connection_8h-source.html#l00076">connection::port</a>, <a class="el" href="connection_8h-source.html#l00080">connection::registered</a>, <a class="el" href="inspircd_8h-source.html#l00111">InspIRCd::SE</a>, <a class="el" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write()</a>, and <a class="el" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept()</a>.
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.<div class="fragment"><pre class="fragment"><a name="l00413"></a>00413 {
+<a name="l00414"></a>00414         user_hash::iterator iter = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>);
+<a name="l00415"></a>00415 
+<a name="l00416"></a>00416         <span class="keywordtype">char</span> reason[MAXBUF];
+<a name="l00417"></a>00417 
+<a name="l00418"></a>00418         strncpy(reason,r,MAXBUF);
+<a name="l00419"></a>00419 
+<a name="l00420"></a>00420         <span class="keywordflow">if</span> (strlen(reason)&gt;MAXQUIT)
+<a name="l00421"></a>00421         {
+<a name="l00422"></a>00422                 reason[MAXQUIT-1] = <span class="charliteral">'\0'</span>;
+<a name="l00423"></a>00423         }
+<a name="l00424"></a>00424 
+<a name="l00425"></a>00425         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"kill_link: %s '%s'"</span>,user-&gt;<a class="code" href="classuserrec.html#nick_5BNICKMAX_5D">nick</a>,reason);
+<a name="l00426"></a>00426         <a class="code" href="globals_8h.html#Write_28int_20sock_2C_20char_20_2Atext_2C_2E_2E_2E_29">Write</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>,<span class="stringliteral">"ERROR :Closing link (%s@%s) [%s]"</span>,user-&gt;<a class="code" href="classuserrec.html#ident_5BIDENTMAX_2B_32_5D">ident</a>,user-&gt;<a class="code" href="classconnection.html#host_5B_31_36_30_5D">host</a>,reason);
+<a name="l00427"></a>00427         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"closing fd %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00428"></a>00428 
+<a name="l00429"></a>00429         user-&gt;<a class="code" href="classuserrec.html#FlushWriteBuf_28_29">FlushWriteBuf</a>();
+<a name="l00430"></a>00430 
+<a name="l00431"></a>00431         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00432"></a>00432                 <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserQuit(user,reason);
+<a name="l00433"></a>00433                 <a class="code" href="globals_8h.html#WriteCommonExcept_28userrec_20_2Au_2C_20char_20_2Atext_2C_2E_2E_2E_29">WriteCommonExcept</a>(user,<span class="stringliteral">"QUIT :%s"</span>,reason);
+<a name="l00434"></a>00434         }
+<a name="l00435"></a>00435 
+<a name="l00436"></a>00436         <a class="code" href="modules_8h.html#FOREACH_5FMOD">FOREACH_MOD</a> OnUserDisconnect(user);
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00439"></a>00439         {
+<a name="l00440"></a>00440                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>))
+<a name="l00441"></a>00441                 {
+<a name="l00442"></a>00442                         <a class="code" href="channels_8cpp.html#Config">Config</a>-&gt;<a class="code" href="classServerConfig.html#GetIOHook_28int_20port_29">GetIOHook</a>(user-&gt;<a class="code" href="classconnection.html#port">port</a>)-&gt;<a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00443"></a>00443                 }
+<a name="l00444"></a>00444                 <a class="code" href="modules_8cpp.html#ServerInstance">ServerInstance</a>-&gt;<a class="code" href="classInspIRCd.html#SE">SE</a>-&gt;<a class="code" href="classSocketEngine.html#DelFd_28int_20fd_29">DelFd</a>(user-&gt;<a class="code" href="classconnection.html#fd">fd</a>);
+<a name="l00445"></a>00445                 user-&gt;<a class="code" href="classuserrec.html#CloseSocket_28_29">CloseSocket</a>();
+<a name="l00446"></a>00446         }
+<a name="l00447"></a>00447 
+<a name="l00448"></a>00448         <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#registered">registered</a> == 7) {
+<a name="l00449"></a>00449                 purge_empty_chans(user);
+<a name="l00450"></a>00450         }
+<a name="l00451"></a>00451 
+<a name="l00452"></a>00452         <span class="keywordflow">if</span> (iter != <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end())
+<a name="l00453"></a>00453         {
+<a name="l00454"></a>00454                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"deleting user hash value %lu"</span>,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)user);
+<a name="l00455"></a>00455                 <span class="keywordflow">if</span> (user-&gt;<a class="code" href="classconnection.html#fd">fd</a> &gt; -1)
+<a name="l00456"></a>00456                 {
+<a name="l00457"></a>00457                         <a class="code" href="modules_8cpp.html#fd_5Fref_5Ftable_5B_36_35_35_33_36_5D">fd_ref_table</a>[user-&gt;<a class="code" href="classconnection.html#fd">fd</a>] = NULL;
+<a name="l00458"></a>00458                         <span class="keywordflow">if</span> (find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user) != <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end())
+<a name="l00459"></a>00459                         {
+<a name="l00460"></a>00460                                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Delete local user"</span>);
+<a name="l00461"></a>00461                                 <a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.erase(find(<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.begin(),<a class="code" href="users_8cpp.html#local_5Fusers">local_users</a>.end(),user));
+<a name="l00462"></a>00462                         }
+<a name="l00463"></a>00463                 }
+<a name="l00464"></a>00464                 <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(iter);
+<a name="l00465"></a>00465         }
+<a name="l00466"></a>00466         <span class="keyword">delete</span> user;
+<a name="l00467"></a>00467 }
+</pre></div>
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29"></a><!-- doxytag: member="users.h::ReHashNick" ref="ReHashNick_28char_20_2AOld_2C_20char_20_2ANew_29" args="(char *Old, char *New)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classuserrec.html">userrec</a>* ReHashNick           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>Old</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>New</em></td>
+        </tr>
+        <tr>
+          <td class="md"></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="users_8cpp-source.html#l00743">743</a> of file <a class="el" href="users_8cpp-source.html">users.cpp</a>.
+<p>
+References <a class="el" href="modules_8cpp.html#clientlist">clientlist</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.<div class="fragment"><pre class="fragment"><a name="l00744"></a>00744 {
+<a name="l00745"></a>00745         <span class="comment">//user_hash::iterator newnick;</span>
+<a name="l00746"></a>00746         user_hash::iterator oldnick = <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.find(Old);
+<a name="l00747"></a>00747 
+<a name="l00748"></a>00748         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: %s %s"</span>,Old,New);
+<a name="l00749"></a>00749 
+<a name="l00750"></a>00750         <span class="keywordflow">if</span> (!strcasecmp(Old,New))
+<a name="l00751"></a>00751         {
+<a name="l00752"></a>00752                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"old nick is new nick, skipping"</span>);
+<a name="l00753"></a>00753                 <span class="keywordflow">return</span> oldnick-&gt;second;
+<a name="l00754"></a>00754         }
+<a name="l00755"></a>00755 
+<a name="l00756"></a>00756         <span class="keywordflow">if</span> (oldnick == <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.end()) <span class="keywordflow">return</span> NULL; <span class="comment">/* doesnt exist */</span>
+<a name="l00757"></a>00757 
+<a name="l00758"></a>00758         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Found hashed nick %s"</span>,Old);
+<a name="l00759"></a>00759 
+<a name="l00760"></a>00760         <a class="code" href="classuserrec.html">userrec</a>* olduser = oldnick-&gt;second;
+<a name="l00761"></a>00761         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New] = olduser;
+<a name="l00762"></a>00762         <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>.erase(oldnick);
+<a name="l00763"></a>00763 
+<a name="l00764"></a>00764         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"ReHashNick: Nick rehashed as %s"</span>,New);
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766         <span class="keywordflow">return</span> <a class="code" href="modules_8cpp.html#clientlist">clientlist</a>[New];
+<a name="l00767"></a>00767 }
+</pre></div>
+<p>
+    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 26ba177786004d7dd5e5a5ccc9bcc20896277326..8d3acb66fca7699a4c6a297cd7c98acbb609c37a 100644 (file)
@@ -1,13 +1,13 @@
 base referer
-rect $channels_8cpp-source.html 413,412 512,439
-rect $modules_8cpp-source.html 413,311 512,337
-rect $users_8cpp-source.html 280,159 360,185
-rect $commands_8h-source.html 125,108 224,135
-rect $globals_8h-source.html 137,361 212,388
-rect $typedefs_8h-source.html 277,361 363,388
-rect $inspircd_8h-source.html 135,209 215,236
-rect $cull__list_8h-source.html 136,412 213,439
-rect $message_8h-source.html 277,564 363,591
-rect $mode_8h-source.html 287,260 353,287
-rect $userprocess_8h-source.html 123,564 227,591
-rect $xline_8h-source.html 289,463 351,489
+rect $channels_8cpp-source.html 531,235 629,261
+rect $modules_8cpp-source.html 531,387 629,413
+rect $users_8cpp-source.html 540,564 620,591
+rect $commands_8h-source.html 379,615 477,641
+rect $cull__list_8h-source.html 121,311 199,337
+rect $globals_8h-source.html 249,159 324,185
+rect $typedefs_8h-source.html 385,260 471,287
+rect $inspircd_8h-source.html 247,412 327,439
+rect $userprocess_8h-source.html 376,463 480,489
+rect $mode_8h-source.html 127,361 193,388
+rect $message_8h-source.html 385,311 471,337
+rect $xline_8h-source.html 397,513 459,540
index 77a2c3cd3b9535fd674196d5a2ad02af0e1917b2..9619fc58fd9ed368b0475503906603ffe08c984f 100644 (file)
@@ -1 +1 @@
-c6314acd91a09c69378b916056cacc46
\ No newline at end of file
+b1eec238e42f7d91bc0d7f5a3b91a235
\ No newline at end of file
index a05768f57ac928718a1d7c642c3dc8873e591e01..de04ab43e21a9c15282c4e6058041814ec824503 100644 (file)
@@ -1,3 +1,4 @@
 base referer
 rect $channels_8h-source.html 128,108 213,135
-rect $connection_8h-source.html 121,58 220,84
+rect $connection_8h-source.html 121,159 220,185
+rect $hashcomp_8h-source.html 124,57 217,84
index 0182762ef85a780ab2d14638584e3c2acae9dfb5..da43ba319403ca78345e85b5601ef18fad0f05ef 100644 (file)
@@ -1 +1 @@
-8a804bf9eb838d5cc63aad0c666de3ab
\ No newline at end of file
+24445b415c7267f43aad5464edd11467
\ No newline at end of file
index 9d4e52ad3f6d089e144deedfbf4989558310cedf..bacb632131b2c633e18ab4249649da15c921b2e8 100644 (file)
 <a name="l00161"></a>00161 <span class="keywordtype">bool</span> <a class="code" href="xline_8h.html#qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29">qline_make_global</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* nickname);
 <a name="l00162"></a>00162 
 <a name="l00163"></a>00163 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index 7f39624d36dd265f710d96bc3ef08f49e2041282..0785c961416869b6b83db4666402283e36c6101a 100644 (file)
 Include dependency graph for xline.h:<p><center><img src="xline_8h__incl.gif" border="0" usemap="#xline.h_map" alt=""></center>
 <map name="xline.h_map">
 <area href="users_8h-source.html" shape="rect" coords="124,260,188,287" alt="">
-<area href="channels_8h-source.html" shape="rect" coords="248,210,333,236" alt="">
-<area href="connection_8h-source.html" shape="rect" coords="241,362,340,388" alt="">
+<area href="channels_8h-source.html" shape="rect" coords="248,209,333,236" alt="">
+<area href="connection_8h-source.html" shape="rect" coords="241,412,340,439" alt="">
+<area href="hashcomp_8h-source.html" shape="rect" coords="244,311,337,337" alt="">
 </map>
 
 <p>
 This graph shows which files directly or indirectly include this file:<p><center><img src="xline_8h__dep__incl.gif" border="0" usemap="#xline.hdep_map" alt=""></center>
 <map name="xline.hdep_map">
-<area href="channels_8cpp-source.html" shape="rect" coords="120,7,219,34" alt="">
-<area href="modules_8cpp-source.html" shape="rect" coords="120,58,219,84" alt="">
+<area href="channels_8cpp-source.html" shape="rect" coords="120,7,219,33" alt="">
+<area href="modules_8cpp-source.html" shape="rect" coords="120,57,219,84" alt="">
+<area href="users_8cpp-source.html" shape="rect" coords="130,108,210,135" alt="">
 </map>
 
 <p>
@@ -172,7 +174,7 @@ This graph shows which files directly or indirectly include this file:<p><center
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00660">Server::AddELine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00659">Server::AddELine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::add_gline" ref="add_5Fgline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29" args="(long duration, const char *source, const char *reason, const char *hostmask)" --><p>
@@ -223,7 +225,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00660">Server::AddEL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddGLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00639">Server::AddGLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::add_kline" ref="add_5Fkline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Ahostmask_29" args="(long duration, const char *source, const char *reason, const char *hostmask)" --><p>
@@ -274,7 +276,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00640">Server::AddGL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00655">Server::AddKLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00654">Server::AddKLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29"></a><!-- doxytag: member="xline.h::add_qline" ref="add_5Fqline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Anickname_29" args="(long duration, const char *source, const char *reason, const char *nickname)" --><p>
@@ -325,7 +327,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00655">Server::AddKL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00645">Server::AddQLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00644">Server::AddQLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29"></a><!-- doxytag: member="xline.h::add_zline" ref="add_5Fzline_28long_20duration_2C_20const_20char_20_2Asource_2C_20const_20char_20_2Areason_2C_20const_20char_20_2Aipaddr_29" args="(long duration, const char *source, const char *reason, const char *ipaddr)" --><p>
@@ -376,7 +378,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00645">Server::AddQL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00650">Server::AddZLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00649">Server::AddZLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="apply_5Flines_28const_20int_20What_29"></a><!-- doxytag: member="xline.h::apply_lines" ref="apply_5Flines_28const_20int_20What_29" args="(const int What)" --><p>
@@ -434,7 +436,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00650">Server::AddZL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00685">Server::DelELine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00684">Server::DelELine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="del_5Fgline_28const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::del_gline" ref="del_5Fgline_28const_20char_20_2Ahostmask_29" args="(const char *hostmask)" --><p>
@@ -464,7 +466,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00685">Server::DelEL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00665">Server::DelGLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00664">Server::DelGLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="del_5Fkline_28const_20char_20_2Ahostmask_29"></a><!-- doxytag: member="xline.h::del_kline" ref="del_5Fkline_28const_20char_20_2Ahostmask_29" args="(const char *hostmask)" --><p>
@@ -494,7 +496,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00665">Server::DelGL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00680">Server::DelKLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00679">Server::DelKLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="del_5Fqline_28const_20char_20_2Anickname_29"></a><!-- doxytag: member="xline.h::del_qline" ref="del_5Fqline_28const_20char_20_2Anickname_29" args="(const char *nickname)" --><p>
@@ -524,7 +526,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00680">Server::DelKL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00670">Server::DelQLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00669">Server::DelQLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="del_5Fzline_28const_20char_20_2Aipaddr_29"></a><!-- doxytag: member="xline.h::del_zline" ref="del_5Fzline_28const_20char_20_2Aipaddr_29" args="(const char *ipaddr)" --><p>
@@ -554,7 +556,7 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00670">Server::DelQL
 <p>
 
 <p>
-Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZLine()</a>.    </td>
+Referenced by <a class="el" href="modules_8cpp-source.html#l00674">Server::DelZLine()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="eline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29"></a><!-- doxytag: member="xline.h::eline_set_creation_time" ref="eline_5Fset_5Fcreation_5Ftime_28char_20_2Ahost_2C_20time_5Ft_20create_5Ftime_29" args="(char *host, time_t create_time)" --><p>
@@ -683,7 +685,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZL
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>, and <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="matches_5Fgline_28const_20char_20_2Ahost_29"></a><!-- doxytag: member="xline.h::matches_gline" ref="matches_5Fgline_28const_20char_20_2Ahost_29" args="(const char *host)" --><p>
@@ -711,7 +715,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZL
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="matches_5Fkline_28const_20char_20_2Ahost_29"></a><!-- doxytag: member="xline.h::matches_kline" ref="matches_5Fkline_28const_20char_20_2Ahost_29" args="(const char *host)" --><p>
@@ -739,7 +745,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZL
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00647">FullConnectUser()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="matches_5Fqline_28const_20char_20_2Anick_29"></a><!-- doxytag: member="xline.h::matches_qline" ref="matches_5Fqline_28const_20char_20_2Anick_29" args="(const char *nick)" --><p>
@@ -767,7 +775,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZL
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00769">force_nickchange()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="matches_5Fzline_28const_20char_20_2Aipaddr_29"></a><!-- doxytag: member="xline.h::matches_zline" ref="matches_5Fzline_28const_20char_20_2Aipaddr_29" args="(const char *ipaddr)" --><p>
@@ -795,7 +805,9 @@ Referenced by <a class="el" href="modules_8cpp-source.html#l00675">Server::DelZL
     <td>
 
 <p>
-    </td>
+
+<p>
+Referenced by <a class="el" href="users_8cpp-source.html#l00524">AddClient()</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29"></a><!-- doxytag: member="xline.h::qline_make_global" ref="qline_5Fmake_5Fglobal_28const_20char_20_2Anickname_29" args="(const char *nickname)" --><p>
@@ -1221,7 +1233,7 @@ Definition at line <a class="el" href="xline_8h-source.html#l00033">33</a> of fi
 Definition at line <a class="el" href="xline_8h-source.html#l00034">34</a> of file <a class="el" href="xline_8h-source.html">xline.h</a>.    </td>
   </tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:17 2005 for InspIRCd by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:14 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
index f174ea10d6785a69fd46c146b3abea05cd881120..3000d3ddfefaf50f4175c022ec99922e84d97350 100644 (file)
@@ -1,3 +1,4 @@
 base referer
-rect $channels_8cpp-source.html 120,7 219,34
-rect $modules_8cpp-source.html 120,58 219,84
+rect $channels_8cpp-source.html 120,7 219,33
+rect $modules_8cpp-source.html 120,57 219,84
+rect $users_8cpp-source.html 130,108 210,135
index 6d471411b8556289caa3979342e637033b211fc1..842472c9bb7b7c76ab9bbd185805d4178e2ed586 100644 (file)
@@ -1 +1 @@
-94b61de8eaa885e874543fc93fa71194
\ No newline at end of file
+c8590565d44b3716ffcd0bac63383582
\ No newline at end of file
index 48d749ff58d935462096e62b567824e5d1bddc98..a0ec2f1b6cbb2440c4c9384fcfed82c4184d3039 100644 (file)
@@ -1,4 +1,5 @@
 base referer
 rect $users_8h-source.html 124,260 188,287
-rect $channels_8h-source.html 248,210 333,236
-rect $connection_8h-source.html 241,362 340,388
+rect $channels_8h-source.html 248,209 333,236
+rect $connection_8h-source.html 241,412 340,439
+rect $hashcomp_8h-source.html 244,311 337,337
index 19d6c530ab952b06c125c6ce245109fa77906a82..db8dff57efd959382b4b1fcc86d61ab5953504a5 100644 (file)
@@ -1 +1 @@
-c19192f2db3c2ad86cf37af32b2260b3
\ No newline at end of file
+923f635ea1c21953bb7135ac47173dce
\ No newline at end of file