From 48e477893fdc3cd87b46e445b1e3e2d1395c4b94 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 14 Dec 2005 16:07:04 +0000 Subject: Removed depreciated docs git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2420 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/man/man3/ConfigReader.3 | 270 ++-- docs/man/man3/FileReader.3 | 82 +- docs/man/man3/ModuleFactory.3 | 10 +- docs/man/man3/Server.3 | 694 ++++----- docs/man/man3/ServerConfig.3 | 214 ++- docs/man/man3/channels.cpp.3 | 2 +- docs/man/man3/inspircd_io.h.3 | 4 + docs/man/man3/ircd_connector.3 | 487 ------- docs/man/man3/modules.cpp.3 | 2 +- docs/man/man3/modules.h.3 | 10 +- docs/man/man3/serverrec.3 | 733 ---------- docs/man/man3/servers.cpp.3 | 150 -- docs/man/man3/servers.h.3 | 46 - docs/module-doc/annotated.html | 4 +- docs/module-doc/base_8h-source.html | 2 +- docs/module-doc/base_8h.html | 2 +- docs/module-doc/channels_8cpp-source.html | 2 +- docs/module-doc/channels_8cpp.html | 8 +- docs/module-doc/channels_8h-source.html | 2 +- docs/module-doc/channels_8h.html | 2 +- docs/module-doc/classAdmin-members.html | 2 +- docs/module-doc/classAdmin.html | 2 +- docs/module-doc/classBanItem-members.html | 2 +- docs/module-doc/classBanItem.html | 2 +- docs/module-doc/classBoolSet-members.html | 2 +- docs/module-doc/classBoolSet.html | 2 +- docs/module-doc/classConfigReader-members.html | 2 +- docs/module-doc/classConfigReader.html | 286 ++-- docs/module-doc/classConnectClass-members.html | 2 +- docs/module-doc/classConnectClass.html | 2 +- docs/module-doc/classDNS-members.html | 2 +- docs/module-doc/classDNS.html | 2 +- docs/module-doc/classELine-members.html | 2 +- docs/module-doc/classELine.html | 2 +- docs/module-doc/classEvent-members.html | 2 +- docs/module-doc/classEvent.html | 2 +- docs/module-doc/classExemptItem-members.html | 2 +- docs/module-doc/classExemptItem.html | 2 +- docs/module-doc/classExtMode-members.html | 2 +- docs/module-doc/classExtMode.html | 2 +- docs/module-doc/classExtensible-members.html | 2 +- docs/module-doc/classExtensible.html | 2 +- docs/module-doc/classFileReader-members.html | 2 +- docs/module-doc/classFileReader.html | 84 +- docs/module-doc/classGLine-members.html | 2 +- docs/module-doc/classGLine.html | 2 +- docs/module-doc/classHostItem-members.html | 2 +- docs/module-doc/classHostItem.html | 2 +- docs/module-doc/classInspSocket-members.html | 2 +- docs/module-doc/classInspSocket.html | 2 +- docs/module-doc/classInviteItem-members.html | 2 +- docs/module-doc/classInviteItem.html | 2 +- docs/module-doc/classInvited-members.html | 2 +- docs/module-doc/classInvited.html | 2 +- docs/module-doc/classKLine-members.html | 2 +- docs/module-doc/classKLine.html | 2 +- docs/module-doc/classModeParameter-members.html | 2 +- docs/module-doc/classModeParameter.html | 2 +- docs/module-doc/classModule-members.html | 2 +- docs/module-doc/classModule.html | 2 +- docs/module-doc/classModuleFactory-members.html | 2 +- docs/module-doc/classModuleFactory.html | 8 +- docs/module-doc/classModuleMessage-members.html | 2 +- docs/module-doc/classModuleMessage.html | 2 +- docs/module-doc/classQLine-members.html | 2 +- docs/module-doc/classQLine.html | 2 +- docs/module-doc/classRequest-members.html | 2 +- docs/module-doc/classRequest.html | 2 +- docs/module-doc/classServer-members.html | 3 +- docs/module-doc/classServer.html | 675 +++++---- docs/module-doc/classServerConfig-members.html | 2 +- docs/module-doc/classServerConfig.html | 230 ++- docs/module-doc/classSocketEngine-members.html | 2 +- docs/module-doc/classSocketEngine.html | 4 +- docs/module-doc/classVersion-members.html | 2 +- docs/module-doc/classVersion.html | 2 +- docs/module-doc/classWhoWasUser-members.html | 2 +- docs/module-doc/classWhoWasUser.html | 2 +- docs/module-doc/classXLine-members.html | 2 +- docs/module-doc/classXLine.html | 2 +- docs/module-doc/classZLine-members.html | 2 +- docs/module-doc/classZLine.html | 2 +- docs/module-doc/classchanrec-members.html | 2 +- docs/module-doc/classchanrec.html | 12 +- docs/module-doc/classclassbase-members.html | 2 +- docs/module-doc/classclassbase.html | 2 +- docs/module-doc/classcommand__t-members.html | 2 +- docs/module-doc/classcommand__t.html | 2 +- docs/module-doc/classconnection-members.html | 2 +- docs/module-doc/classconnection.html | 6 +- docs/module-doc/classes.html | 2 +- docs/module-doc/classircd__connector-members.html | 63 - docs/module-doc/classircd__connector.html | 1542 -------------------- .../classircd__connector__coll__graph.gif | Bin 6239 -> 0 bytes .../classircd__connector__inherit__graph.gif | Bin 1306 -> 0 bytes docs/module-doc/classserverrec-members.html | 59 - docs/module-doc/classserverrec.html | 1447 ------------------ docs/module-doc/classserverrec__coll__graph.gif | Bin 7628 -> 0 bytes docs/module-doc/classserverrec__inherit__graph.gif | Bin 1503 -> 0 bytes docs/module-doc/classstd_1_1char__traits.html | 2 +- docs/module-doc/classucrec-members.html | 2 +- docs/module-doc/classucrec.html | 2 +- docs/module-doc/classuserrec-members.html | 2 +- docs/module-doc/classuserrec.html | 14 +- docs/module-doc/commands_8h-source.html | 2 +- docs/module-doc/commands_8h.html | 6 +- docs/module-doc/connection_8h-source.html | 2 +- docs/module-doc/connection_8h.html | 2 +- docs/module-doc/ctables_8h-source.html | 2 +- docs/module-doc/ctables_8h.html | 2 +- docs/module-doc/dir_000000.html | 2 +- docs/module-doc/dir_000001.html | 2 +- docs/module-doc/dir_000002.html | 2 +- docs/module-doc/dir_000003.html | 2 +- docs/module-doc/dir_000004.html | 2 +- docs/module-doc/dir_000005.html | 2 +- docs/module-doc/dir_000005_000004.html | 2 +- docs/module-doc/dirs.html | 2 +- docs/module-doc/dns_8h-source.html | 2 +- docs/module-doc/dns_8h.html | 2 +- docs/module-doc/files.html | 2 +- docs/module-doc/functions.html | 2 +- docs/module-doc/functions_0x62.html | 2 +- docs/module-doc/functions_0x63.html | 2 +- docs/module-doc/functions_0x64.html | 2 +- docs/module-doc/functions_0x65.html | 2 +- docs/module-doc/functions_0x66.html | 2 +- docs/module-doc/functions_0x67.html | 5 +- docs/module-doc/functions_0x68.html | 2 +- docs/module-doc/functions_0x69.html | 2 +- docs/module-doc/functions_0x6a.html | 2 +- docs/module-doc/functions_0x6b.html | 2 +- docs/module-doc/functions_0x6c.html | 2 +- docs/module-doc/functions_0x6d.html | 2 +- docs/module-doc/functions_0x6e.html | 2 +- docs/module-doc/functions_0x6f.html | 2 +- docs/module-doc/functions_0x70.html | 2 +- docs/module-doc/functions_0x71.html | 2 +- docs/module-doc/functions_0x72.html | 8 +- docs/module-doc/functions_0x73.html | 8 +- docs/module-doc/functions_0x74.html | 8 +- docs/module-doc/functions_0x75.html | 2 +- docs/module-doc/functions_0x76.html | 2 +- docs/module-doc/functions_0x77.html | 2 +- docs/module-doc/functions_0x7e.html | 2 +- docs/module-doc/functions_func.html | 2 +- docs/module-doc/functions_func_0x62.html | 2 +- docs/module-doc/functions_func_0x63.html | 2 +- docs/module-doc/functions_func_0x64.html | 2 +- docs/module-doc/functions_func_0x65.html | 2 +- docs/module-doc/functions_func_0x66.html | 2 +- docs/module-doc/functions_func_0x67.html | 5 +- docs/module-doc/functions_func_0x68.html | 2 +- docs/module-doc/functions_func_0x69.html | 2 +- docs/module-doc/functions_func_0x6a.html | 2 +- docs/module-doc/functions_func_0x6c.html | 2 +- docs/module-doc/functions_func_0x6d.html | 2 +- docs/module-doc/functions_func_0x6e.html | 2 +- docs/module-doc/functions_func_0x6f.html | 2 +- docs/module-doc/functions_func_0x70.html | 2 +- docs/module-doc/functions_func_0x71.html | 2 +- docs/module-doc/functions_func_0x72.html | 2 +- docs/module-doc/functions_func_0x73.html | 2 +- docs/module-doc/functions_func_0x74.html | 2 +- docs/module-doc/functions_func_0x75.html | 2 +- docs/module-doc/functions_func_0x76.html | 2 +- docs/module-doc/functions_func_0x77.html | 2 +- docs/module-doc/functions_func_0x7e.html | 2 +- docs/module-doc/functions_vars.html | 8 +- docs/module-doc/globals.html | 2 +- docs/module-doc/globals_0x62.html | 2 +- docs/module-doc/globals_0x63.html | 2 +- docs/module-doc/globals_0x64.html | 2 +- docs/module-doc/globals_0x65.html | 2 +- docs/module-doc/globals_0x66.html | 2 +- docs/module-doc/globals_0x67.html | 2 +- docs/module-doc/globals_0x68.html | 2 +- docs/module-doc/globals_0x69.html | 2 +- docs/module-doc/globals_0x6c.html | 2 +- docs/module-doc/globals_0x6d.html | 2 +- docs/module-doc/globals_0x6e.html | 2 +- docs/module-doc/globals_0x6f.html | 2 +- docs/module-doc/globals_0x70.html | 2 +- docs/module-doc/globals_0x71.html | 2 +- docs/module-doc/globals_0x72.html | 2 +- docs/module-doc/globals_0x73.html | 2 +- docs/module-doc/globals_0x74.html | 2 +- docs/module-doc/globals_0x75.html | 2 +- docs/module-doc/globals_0x76.html | 2 +- docs/module-doc/globals_0x77.html | 2 +- docs/module-doc/globals_0x78.html | 2 +- docs/module-doc/globals_0x7a.html | 2 +- docs/module-doc/globals_defs.html | 2 +- docs/module-doc/globals_enum.html | 2 +- docs/module-doc/globals_eval.html | 2 +- docs/module-doc/globals_func.html | 2 +- docs/module-doc/globals_type.html | 2 +- docs/module-doc/globals_vars.html | 2 +- docs/module-doc/graph_legend.html | 2 +- docs/module-doc/hashcomp_8h-source.html | 2 +- docs/module-doc/hashcomp_8h.html | 2 +- docs/module-doc/hierarchy.html | 2 +- docs/module-doc/inherits.html | 2 +- docs/module-doc/inspircd__io_8h-source.html | 186 ++- docs/module-doc/inspircd__io_8h.html | 8 +- docs/module-doc/main.html | 2 +- docs/module-doc/message_8h-source.html | 2 +- docs/module-doc/message_8h.html | 14 +- docs/module-doc/mode_8h-source.html | 2 +- docs/module-doc/mode_8h.html | 4 +- docs/module-doc/modules_8cpp-source.html | 923 ++++++------ docs/module-doc/modules_8cpp.html | 10 +- docs/module-doc/modules_8h-source.html | 298 ++-- docs/module-doc/modules_8h.html | 30 +- docs/module-doc/namespaceirc.html | 2 +- docs/module-doc/namespacemembers.html | 2 +- docs/module-doc/namespacemembers_type.html | 2 +- docs/module-doc/namespacenspace.html | 2 +- docs/module-doc/namespaces.html | 2 +- docs/module-doc/namespacestd.html | 2 +- docs/module-doc/servers_8cpp-source.html | 575 -------- docs/module-doc/servers_8cpp.html | 290 ---- docs/module-doc/servers_8cpp__incl.gif | Bin 11979 -> 0 bytes docs/module-doc/servers_8h-source.html | 87 -- docs/module-doc/servers_8h.html | 94 -- docs/module-doc/servers_8h__dep__incl.gif | Bin 1726 -> 0 bytes docs/module-doc/servers_8h__incl.gif | Bin 2579 -> 0 bytes docs/module-doc/socket_8cpp-source.html | 2 +- docs/module-doc/socket_8cpp.html | 2 +- docs/module-doc/socket_8h-source.html | 2 +- docs/module-doc/socket_8h.html | 2 +- docs/module-doc/socketengine_8cpp-source.html | 2 +- docs/module-doc/socketengine_8cpp.html | 2 +- docs/module-doc/socketengine_8h-source.html | 2 +- docs/module-doc/socketengine_8h.html | 2 +- docs/module-doc/structdns__ip4list-members.html | 2 +- docs/module-doc/structdns__ip4list.html | 2 +- .../structirc_1_1InAddr__HashComp-members.html | 2 +- docs/module-doc/structirc_1_1InAddr__HashComp.html | 2 +- .../structirc_1_1StrHashComp-members.html | 2 +- docs/module-doc/structirc_1_1StrHashComp.html | 2 +- .../structirc_1_1irc__char__traits-members.html | 2 +- .../module-doc/structirc_1_1irc__char__traits.html | 2 +- ...ctnspace_1_1hash_3_01in__addr_01_4-members.html | 2 +- .../structnspace_1_1hash_3_01in__addr_01_4.html | 2 +- ...ructnspace_1_1hash_3_01string_01_4-members.html | 2 +- .../structnspace_1_1hash_3_01string_01_4.html | 2 +- docs/module-doc/typedefs_8h-source.html | 2 +- docs/module-doc/typedefs_8h.html | 2 +- docs/module-doc/userprocess_8h-source.html | 2 +- docs/module-doc/userprocess_8h.html | 2 +- docs/module-doc/users_8cpp-source.html | 2 +- docs/module-doc/users_8cpp.html | 2 +- docs/module-doc/users_8h-source.html | 2 +- docs/module-doc/users_8h.html | 2 +- docs/module-doc/xline_8h-source.html | 2 +- docs/module-doc/xline_8h.html | 22 +- 257 files changed, 2467 insertions(+), 7673 deletions(-) delete mode 100644 docs/man/man3/ircd_connector.3 delete mode 100644 docs/man/man3/serverrec.3 delete mode 100644 docs/man/man3/servers.cpp.3 delete mode 100644 docs/man/man3/servers.h.3 delete mode 100644 docs/module-doc/classircd__connector-members.html delete mode 100644 docs/module-doc/classircd__connector.html delete mode 100644 docs/module-doc/classircd__connector__coll__graph.gif delete mode 100644 docs/module-doc/classircd__connector__inherit__graph.gif delete mode 100644 docs/module-doc/classserverrec-members.html delete mode 100644 docs/module-doc/classserverrec.html delete mode 100644 docs/module-doc/classserverrec__coll__graph.gif delete mode 100644 docs/module-doc/classserverrec__inherit__graph.gif delete mode 100644 docs/module-doc/servers_8cpp-source.html delete mode 100644 docs/module-doc/servers_8cpp.html delete mode 100644 docs/module-doc/servers_8cpp__incl.gif delete mode 100644 docs/module-doc/servers_8h-source.html delete mode 100644 docs/module-doc/servers_8h.html delete mode 100644 docs/module-doc/servers_8h__dep__incl.gif delete mode 100644 docs/module-doc/servers_8h__incl.gif (limited to 'docs') diff --git a/docs/man/man3/ConfigReader.3 b/docs/man/man3/ConfigReader.3 index 009733cae..f0236bfe9 100644 --- a/docs/man/man3/ConfigReader.3 +++ b/docs/man/man3/ConfigReader.3 @@ -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 1525 of file modules.h. +Definition at line 1529 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 734 of file modules.cpp. +Definition at line 739 of file modules.cpp. .PP References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror. .PP .nf -735 { -736 Config->ClearStack(); -737 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -738 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -739 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog); -740 if (!this->readerror) -741 this->error = CONF_FILE_NOT_FOUND; -742 } +740 { +741 Config->ClearStack(); +742 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +743 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +744 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog); +745 if (!this->readerror) +746 this->error = CONF_FILE_NOT_FOUND; +747 } .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 754 of file modules.cpp. +Definition at line 759 of file modules.cpp. .PP References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror. .PP .nf -755 { -756 Config->ClearStack(); -757 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -758 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -759 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog); -760 if (!this->readerror) -761 this->error = CONF_FILE_NOT_FOUND; -762 }; +760 { +761 Config->ClearStack(); +762 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +763 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +764 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog); +765 if (!this->readerror) +766 this->error = CONF_FILE_NOT_FOUND; +767 }; .fi .PP .SS "ConfigReader::~ConfigReader ()" @@ -135,17 +135,17 @@ Default destructor. .PP This method destroys the ConfigReader class. .PP -Definition at line 745 of file modules.cpp. +Definition at line 750 of file modules.cpp. .PP References cache, and errorlog. .PP .nf -746 { -747 if (this->cache) -748 delete this->cache; -749 if (this->errorlog) -750 delete this->errorlog; -751 } +751 { +752 if (this->cache) +753 delete this->cache; +754 if (this->errorlog) +755 delete this->errorlog; +756 } .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 833 of file modules.cpp. +Definition at line 838 of file modules.cpp. .PP References errorlog, connection::fd, and userrec::nick. .PP .nf -834 { -835 if (bail) -836 { -837 printf('There were errors in your configuration:\n%s',errorlog->str().c_str()); -838 exit(0); -839 } -840 else +839 { +840 if (bail) 841 { -842 char dataline[1024]; -843 if (user) -844 { -845 WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick); -846 while (!errorlog->eof()) -847 { -848 errorlog->getline(dataline,1024); -849 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline); -850 } -851 } -852 else -853 { -854 WriteOpers('There were errors in the configuration file:',user->nick); -855 while (!errorlog->eof()) -856 { -857 errorlog->getline(dataline,1024); -858 WriteOpers(dataline); -859 } -860 } -861 return; -862 } -863 } +842 printf('There were errors in your configuration:\n%s',errorlog->str().c_str()); +843 exit(0); +844 } +845 else +846 { +847 char dataline[1024]; +848 if (user) +849 { +850 WriteServ(user->fd,'NOTICE %s :There were errors in the configuration file:',user->nick); +851 while (!errorlog->eof()) +852 { +853 errorlog->getline(dataline,1024); +854 WriteServ(user->fd,'NOTICE %s :%s',user->nick,dataline); +855 } +856 } +857 else +858 { +859 WriteOpers('There were errors in the configuration file:',user->nick); +860 while (!errorlog->eof()) +861 { +862 errorlog->getline(dataline,1024); +863 WriteOpers(dataline); +864 } +865 } +866 return; +867 } +868 } .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 866 of file modules.cpp. +Definition at line 871 of file modules.cpp. .PP References cache, and ServerConfig::EnumConf(). .PP .nf -867 { -868 return Config->EnumConf(cache,tag.c_str()); -869 } +872 { +873 return Config->EnumConf(cache,tag.c_str()); +874 } .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 then this function would return 2. Spaces and newlines both qualify as valid seperators between values. .PP -Definition at line 871 of file modules.cpp. +Definition at line 876 of file modules.cpp. .PP References cache, and ServerConfig::EnumValues(). .PP .nf -872 { -873 return Config->EnumValues(cache, tag.c_str(), index); -874 } +877 { +878 return Config->EnumValues(cache, tag.c_str(), index); +879 } .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 826 of file modules.cpp. +Definition at line 831 of file modules.cpp. .PP References error. .PP .nf -827 { -828 long olderr = this->error; -829 this->error = 0; -830 return olderr; -831 } +832 { +833 long olderr = this->error; +834 this->error = 0; +835 return olderr; +836 } .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 780 of file modules.cpp. +Definition at line 785 of file modules.cpp. .PP References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf(). .PP .nf -781 { -782 char val[MAXBUF]; -783 char t[MAXBUF]; -784 char n[MAXBUF]; -785 strlcpy(t,tag.c_str(),MAXBUF); -786 strlcpy(n,name.c_str(),MAXBUF); -787 int res = Config->ReadConf(cache,t,n,index,val); -788 if (!res) -789 { -790 this->error = CONF_VALUE_NOT_FOUND; -791 return false; -792 } -793 std::string s = val; -794 return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1')); -795 } +786 { +787 char val[MAXBUF]; +788 char t[MAXBUF]; +789 char n[MAXBUF]; +790 strlcpy(t,tag.c_str(),MAXBUF); +791 strlcpy(n,name.c_str(),MAXBUF); +792 int res = Config->ReadConf(cache,t,n,index,val); +793 if (!res) +794 { +795 this->error = CONF_VALUE_NOT_FOUND; +796 return false; +797 } +798 std::string s = val; +799 return ((s == 'yes') || (s == 'YES') || (s == 'true') || (s == 'TRUE') || (s == '1')); +800 } .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 797 of file modules.cpp. +Definition at line 802 of file modules.cpp. .PP References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf(). .PP .nf -798 { -799 char val[MAXBUF]; -800 char t[MAXBUF]; -801 char n[MAXBUF]; -802 strlcpy(t,tag.c_str(),MAXBUF); -803 strlcpy(n,name.c_str(),MAXBUF); -804 int res = Config->ReadConf(cache,t,n,index,val); -805 if (!res) -806 { -807 this->error = CONF_VALUE_NOT_FOUND; -808 return 0; -809 } -810 for (unsigned int i = 0; i < strlen(val); i++) +803 { +804 char val[MAXBUF]; +805 char t[MAXBUF]; +806 char n[MAXBUF]; +807 strlcpy(t,tag.c_str(),MAXBUF); +808 strlcpy(n,name.c_str(),MAXBUF); +809 int res = Config->ReadConf(cache,t,n,index,val); +810 if (!res) 811 { -812 if (!isdigit(val[i])) -813 { -814 this->error = CONF_NOT_A_NUMBER; -815 return 0; -816 } -817 } -818 if ((needs_unsigned) && (atoi(val)<0)) -819 { -820 this->error = CONF_NOT_UNSIGNED; -821 return 0; +812 this->error = CONF_VALUE_NOT_FOUND; +813 return 0; +814 } +815 for (unsigned int i = 0; i < strlen(val); i++) +816 { +817 if (!isdigit(val[i])) +818 { +819 this->error = CONF_NOT_A_NUMBER; +820 return 0; +821 } 822 } -823 return atoi(val); -824 } +823 if ((needs_unsigned) && (atoi(val)<0)) +824 { +825 this->error = CONF_NOT_UNSIGNED; +826 return 0; +827 } +828 return atoi(val); +829 } .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 764 of file modules.cpp. +Definition at line 769 of file modules.cpp. .PP References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf(). .PP .nf -765 { -766 char val[MAXBUF]; -767 char t[MAXBUF]; -768 char n[MAXBUF]; -769 strlcpy(t,tag.c_str(),MAXBUF); -770 strlcpy(n,name.c_str(),MAXBUF); -771 int res = Config->ReadConf(cache,t,n,index,val); -772 if (!res) -773 { -774 this->error = CONF_VALUE_NOT_FOUND; -775 return ''; -776 } -777 return val; -778 } +770 { +771 char val[MAXBUF]; +772 char t[MAXBUF]; +773 char n[MAXBUF]; +774 strlcpy(t,tag.c_str(),MAXBUF); +775 strlcpy(n,name.c_str(),MAXBUF); +776 int res = Config->ReadConf(cache,t,n,index,val); +777 if (!res) +778 { +779 this->error = CONF_VALUE_NOT_FOUND; +780 return ''; +781 } +782 return val; +783 } .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 876 of file modules.cpp. +Definition at line 881 of file modules.cpp. .PP References readerror. .PP .nf -877 { -878 return this->readerror; -879 } +882 { +883 return this->readerror; +884 } .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 1533 of file modules.h. +Definition at line 1537 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 1538 of file modules.h. +Definition at line 1542 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 1534 of file modules.h. +Definition at line 1538 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 1537 of file modules.h. +Definition at line 1541 of file modules.h. .PP Referenced by ConfigReader(), and Verify(). diff --git a/docs/man/man3/FileReader.3 b/docs/man/man3/FileReader.3 index 05fbaae25..f9688416d 100644 --- a/docs/man/man3/FileReader.3 +++ b/docs/man/man3/FileReader.3 @@ -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 1614 of file modules.h. +Definition at line 1618 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 889 of file modules.cpp. +Definition at line 894 of file modules.cpp. .PP .nf -890 { -891 } +895 { +896 } .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 882 of file modules.cpp. +Definition at line 887 of file modules.cpp. .PP References fc. .PP .nf -883 { -884 file_cache c; -885 readfile(c,filename.c_str()); -886 this->fc = c; -887 } +888 { +889 file_cache c; +890 readfile(c,filename.c_str()); +891 this->fc = c; +892 } .fi .PP .SS "FileReader::~FileReader ()" @@ -97,11 +97,11 @@ Default destructor. .PP This deletes the memory allocated to the file. .PP -Definition at line 901 of file modules.cpp. +Definition at line 906 of file modules.cpp. .PP .nf -902 { -903 } +907 { +908 } .fi .PP .SH "Member Function Documentation" @@ -110,21 +110,21 @@ Definition at line 901 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 905 of file modules.cpp. +Definition at line 910 of file modules.cpp. .PP References fc. .PP .nf -906 { -907 if (fc.size() == 0) -908 { -909 return(false); -910 } -911 else -912 { -913 return(true); -914 } -915 } +911 { +912 if (fc.size() == 0) +913 { +914 return(false); +915 } +916 else +917 { +918 return(true); +919 } +920 } .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 924 of file modules.cpp. +Definition at line 929 of file modules.cpp. .PP References fc. .PP .nf -925 { -926 return fc.size(); -927 } +930 { +931 return fc.size(); +932 } .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 917 of file modules.cpp. +Definition at line 922 of file modules.cpp. .PP References fc. .PP .nf -918 { -919 if ((x<0) || ((unsigned)x>fc.size())) -920 return ''; -921 return fc[x]; -922 } +923 { +924 if ((x<0) || ((unsigned)x>fc.size())) +925 return ''; +926 return fc[x]; +927 } .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 893 of file modules.cpp. +Definition at line 898 of file modules.cpp. .PP References fc. .PP .nf -894 { -895 file_cache c; -896 readfile(c,filename.c_str()); -897 this->fc = c; -898 } +899 { +900 file_cache c; +901 readfile(c,filename.c_str()); +902 this->fc = c; +903 } .fi .PP .SH "Member Data Documentation" .PP .SS "\fBfile_cache\fP \fBFileReader::fc\fP\fC [private]\fP" .PP -Definition at line 1616 of file modules.h. +Definition at line 1620 of file modules.h. .PP Referenced by Exists(), FileReader(), FileSize(), GetLine(), and LoadFile(). diff --git a/docs/man/man3/ModuleFactory.3 b/docs/man/man3/ModuleFactory.3 index c1964f216..476737145 100644 --- a/docs/man/man3/ModuleFactory.3 +++ b/docs/man/man3/ModuleFactory.3 @@ -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 1669 of file modules.h. +Definition at line 1673 of file modules.h. .SH "Constructor & Destructor Documentation" .PP .SS "ModuleFactory::ModuleFactory ()\fC [inline]\fP" .PP -Definition at line 1672 of file modules.h. +Definition at line 1676 of file modules.h. .PP .nf -1672 { } +1676 { } .fi .PP .SS "virtual ModuleFactory::~ModuleFactory ()\fC [inline, virtual]\fP" .PP -Definition at line 1673 of file modules.h. +Definition at line 1677 of file modules.h. .PP .nf -1673 { } +1677 { } .fi .PP .SH "Member Function Documentation" diff --git a/docs/man/man3/Server.3 b/docs/man/man3/Server.3 index 5ec1f020d..0584cb751 100644 --- a/docs/man/man3/Server.3 +++ b/docs/man/man3/Server.3 @@ -24,6 +24,10 @@ Inherits \fBclassbase\fP. .br .RI "\fIDefault destructor. \fP" .ti -1c +.RI "\fBServerConfig\fP * \fBGetConfig\fP ()" +.br +.RI "\fIObtains a pointer to the server's \fBServerConfig\fP object. \fP" +.ti -1c .RI "virtual void \fBSendOpers\fP (\fBstd::string\fP s)" .br .RI "\fISends text to all opers. \fP" @@ -293,14 +297,14 @@ typedef void (handlerfunc) (char**, int, userrec*); ... void \fBhandle_kill(char .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 414 of file modules.cpp. +Definition at line 419 of file modules.cpp. .PP References createcommand(). .PP .nf -415 { -416 createcommand(cmd,f,flags,minparams,source); -417 } +420 { +421 createcommand(cmd,f,flags,minparams,source); +422 } .fi .PP .SS "void Server::AddELine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP" @@ -309,14 +313,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 658 of file modules.cpp. +Definition at line 663 of file modules.cpp. .PP References add_eline(). .PP .nf -659 { -660 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -661 } +664 { +665 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +666 } .fi .PP .SS "bool Server::AddExtendedListMode (char modechar)\fC [virtual]\fP" @@ -335,17 +339,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 Server::Find 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 582 of file modules.cpp. +Definition at line 587 of file modules.cpp. .PP References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL. .PP .nf -583 { -584 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); -585 if (res) -586 ModeMakeList(modechar); -587 return res; -588 } +588 { +589 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); +590 if (res) +591 ModeMakeList(modechar); +592 return res; +593 } .fi .PP .SS "bool Server::AddExtendedMode (char modechar, int type, bool requires_oper, int params_when_on, int params_when_off)\fC [virtual]\fP" @@ -354,37 +358,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 554 of file modules.cpp. +Definition at line 559 of file modules.cpp. .PP References DEBUG, DoAddExtendedMode(), MT_CLIENT, and MT_SERVER. .PP .nf -555 { -556 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z'))) -557 { -558 if (type == MT_SERVER) -559 { -560 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion'); -561 return false; -562 } -563 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) +560 { +561 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z'))) +562 { +563 if (type == MT_SERVER) 564 { -565 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported'); +565 log(DEBUG,'*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion'); 566 return false; 567 } -568 if ((params_when_on>1) || (params_when_off>1)) +568 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) 569 { -570 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported'); +570 log(DEBUG,'*** API ERROR *** Parameters on MT_CLIENT modes are not supported'); 571 return false; 572 } -573 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); -574 } -575 else -576 { -577 log(DEBUG,'*** API ERROR *** Muppet modechar detected.'); -578 } -579 return false; -580 } +573 if ((params_when_on>1) || (params_when_off>1)) +574 { +575 log(DEBUG,'*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported'); +576 return false; +577 } +578 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); +579 } +580 else +581 { +582 log(DEBUG,'*** API ERROR *** Muppet modechar detected.'); +583 } +584 return false; +585 } .fi .PP .SS "void Server::AddGLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP" @@ -393,14 +397,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 638 of file modules.cpp. +Definition at line 643 of file modules.cpp. .PP References add_gline(). .PP .nf -639 { -640 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -641 } +644 { +645 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +646 } .fi .PP .SS "void Server::AddKLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP hostmask)\fC [virtual]\fP" @@ -409,14 +413,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 653 of file modules.cpp. +Definition at line 658 of file modules.cpp. .PP References add_kline(). .PP .nf -654 { -655 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); -656 } +659 { +660 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +661 } .fi .PP .SS "void Server::AddQLine (long duration, \fBstd::string\fP source, \fBstd::string\fP reason, \fBstd::string\fP nickname)\fC [virtual]\fP" @@ -425,14 +429,14 @@ 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 643 of file modules.cpp. +Definition at line 648 of file modules.cpp. .PP References add_qline(). .PP .nf -644 { -645 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); -646 } +649 { +650 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); +651 } .fi .PP .SS "void Server::AddSocket (\fBInspSocket\fP * sock)\fC [virtual]\fP" @@ -455,14 +459,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 648 of file modules.cpp. +Definition at line 653 of file modules.cpp. .PP References add_zline(). .PP .nf -649 { -650 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); -651 } +654 { +655 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); +656 } .fi .PP .SS "long Server::CalcDuration (\fBstd::string\fP duration)\fC [virtual]\fP" @@ -471,14 +475,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 688 of file modules.cpp. +Definition at line 693 of file modules.cpp. .PP References duration(). .PP .nf -689 { -690 return duration(delta.c_str()); -691 } +694 { +695 return duration(delta.c_str()); +696 } .fi .PP .SS "void Server::CallCommandHandler (\fBstd::string\fP commandname, char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP" @@ -489,12 +493,12 @@ 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 399 of file modules.cpp. +Definition at line 404 of file modules.cpp. .PP .nf -400 { -401 call_handler(commandname.c_str(),parameters,pcnt,user); -402 } +405 { +406 call_handler(commandname.c_str(),parameters,pcnt,user); +407 } .fi .PP .SS "void Server::ChangeGECOS (\fBuserrec\fP * user, \fBstd::string\fP gecos)\fC [virtual]\fP" @@ -503,14 +507,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 497 of file modules.cpp. +Definition at line 502 of file modules.cpp. .PP References ChangeName(). .PP .nf -498 { -499 ChangeName(user,gecos.c_str()); -500 } +503 { +504 ChangeName(user,gecos.c_str()); +505 } .fi .PP .SS "void Server::ChangeHost (\fBuserrec\fP * user, \fBstd::string\fP host)\fC [virtual]\fP" @@ -519,14 +523,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 492 of file modules.cpp. +Definition at line 497 of file modules.cpp. .PP References ChangeDisplayedHost(). .PP .nf -493 { -494 ChangeDisplayedHost(user,host.c_str()); -495 } +498 { +499 ChangeDisplayedHost(user,host.c_str()); +500 } .fi .PP .SS "void Server::ChangeUserNick (\fBuserrec\fP * user, \fBstd::string\fP nickname)\fC [virtual]\fP" @@ -535,12 +539,12 @@ 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 384 of file modules.cpp. +Definition at line 389 of file modules.cpp. .PP .nf -385 { -386 force_nickchange(user,nickname.c_str()); -387 } +390 { +391 force_nickchange(user,nickname.c_str()); +392 } .fi .PP .SS "\fBstd::string\fP Server::ChanMode (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP" @@ -549,14 +553,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 522 of file modules.cpp. +Definition at line 527 of file modules.cpp. .PP References cmode(). .PP .nf -523 { -524 return cmode(User,Chan); -525 } +528 { +529 return cmode(User,Chan); +530 } .fi .PP .SS "bool Server::CommonChannels (\fBuserrec\fP * u1, \fBuserrec\fP * u2)\fC [virtual]\fP" @@ -565,14 +569,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 470 of file modules.cpp. +Definition at line 475 of file modules.cpp. .PP References common_channels(). .PP .nf -471 { -472 return (common_channels(u1,u2) != 0); -473 } +476 { +477 return (common_channels(u1,u2) != 0); +478 } .fi .PP .SS "int Server::CountUsers (\fBchanrec\fP * c)\fC [virtual]\fP" @@ -581,103 +585,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 590 of file modules.cpp. +Definition at line 595 of file modules.cpp. .PP .nf -591 { -592 return usercount(c); -593 } +596 { +597 return usercount(c); +598 } .fi .PP .SS "bool Server::DelELine (\fBstd::string\fP hostmask)\fC [virtual]\fP" .PP Deletes a local E-Line. .PP -Definition at line 683 of file modules.cpp. +Definition at line 688 of file modules.cpp. .PP References del_eline(). .PP .nf -684 { -685 return del_eline(hostmask.c_str()); -686 } +689 { +690 return del_eline(hostmask.c_str()); +691 } .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 663 of file modules.cpp. +Definition at line 668 of file modules.cpp. .PP References del_gline(). .PP .nf -664 { -665 return del_gline(hostmask.c_str()); -666 } +669 { +670 return del_gline(hostmask.c_str()); +671 } .fi .PP .SS "bool Server::DelKLine (\fBstd::string\fP hostmask)\fC [virtual]\fP" .PP Deletes a local K-Line. .PP -Definition at line 678 of file modules.cpp. +Definition at line 683 of file modules.cpp. .PP References del_kline(). .PP .nf -679 { -680 return del_kline(hostmask.c_str()); -681 } +684 { +685 return del_kline(hostmask.c_str()); +686 } .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 668 of file modules.cpp. +Definition at line 673 of file modules.cpp. .PP References del_qline(). .PP .nf -669 { -670 return del_qline(nickname.c_str()); -671 } +674 { +675 return del_qline(nickname.c_str()); +676 } .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 332 of file modules.cpp. +Definition at line 337 of file modules.cpp. .PP References module_sockets. .PP .nf -333 { -334 for (std::vector::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) -335 { -336 if (*a == sock) -337 { -338 module_sockets.erase(a); -339 return; -340 } -341 } -342 } +338 { +339 for (std::vector::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) +340 { +341 if (*a == sock) +342 { +343 module_sockets.erase(a); +344 return; +345 } +346 } +347 } .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 673 of file modules.cpp. +Definition at line 678 of file modules.cpp. .PP References del_zline(). .PP .nf -674 { -675 return del_zline(ipaddr.c_str()); -676 } +679 { +680 return del_zline(ipaddr.c_str()); +681 } .fi .PP .SS "\fBchanrec\fP * Server::FindChannel (\fBstd::string\fP channel)\fC [virtual]\fP" @@ -686,12 +690,12 @@ 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 517 of file modules.cpp. +Definition at line 522 of file modules.cpp. .PP .nf -518 { -519 return FindChan(channel.c_str()); -520 } +523 { +524 return FindChan(channel.c_str()); +525 } .fi .PP .SS "\fBuserrec\fP * Server::FindDescriptor (int socket)\fC [virtual]\fP" @@ -700,12 +704,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 512 of file modules.cpp. +Definition at line 517 of file modules.cpp. .PP .nf -513 { -514 return (socket < 65536 ? fd_ref_table[socket] : NULL); -515 } +518 { +519 return (socket < 65536 ? fd_ref_table[socket] : NULL); +520 } .fi .PP .SS "\fBModule\fP * Server::FindModule (\fBstd::string\fP name)\fC [virtual]\fP" @@ -714,21 +718,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 722 of file modules.cpp. +Definition at line 727 of file modules.cpp. .PP References MODCOUNT, ServerConfig::module_names, and modules. .PP .nf -723 { -724 for (int i = 0; i <= MODCOUNT; i++) -725 { -726 if (Config->module_names[i] == name) -727 { -728 return modules[i]; -729 } -730 } -731 return NULL; -732 } +728 { +729 for (int i = 0; i <= MODCOUNT; i++) +730 { +731 if (Config->module_names[i] == name) +732 { +733 return modules[i]; +734 } +735 } +736 return NULL; +737 } .fi .PP .SS "\fBuserrec\fP * Server::FindNick (\fBstd::string\fP nick)\fC [virtual]\fP" @@ -737,12 +741,12 @@ 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 507 of file modules.cpp. +Definition at line 512 of file modules.cpp. .PP .nf -508 { -509 return Find(nick); -510 } +513 { +514 return Find(nick); +515 } .fi .PP .SS "\fBAdmin\fP Server::GetAdmin ()\fC [virtual]\fP" @@ -751,48 +755,62 @@ 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 547 of file modules.cpp. +Definition at line 552 of file modules.cpp. .PP .nf -548 { -549 return Admin(getadminname(),getadminemail(),getadminnick()); -550 } +553 { +554 return Admin(getadminname(),getadminemail(),getadminnick()); +555 } +.fi +.PP +.SS "\fBServerConfig\fP * Server::GetConfig ()" +.PP +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 332 of file modules.cpp. +.PP +.nf +333 { +334 return Config; +335 } .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 537 of file modules.cpp. +Definition at line 542 of file modules.cpp. .PP .nf -538 { -539 return getnetworkname(); -540 } +543 { +544 return getnetworkname(); +545 } .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 542 of file modules.cpp. +Definition at line 547 of file modules.cpp. .PP .nf -543 { -544 return getserverdesc(); -545 } +548 { +549 return getserverdesc(); +550 } .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 532 of file modules.cpp. +Definition at line 537 of file modules.cpp. .PP .nf -533 { -534 return getservername(); -535 } +538 { +539 return getservername(); +540 } .fi .PP .SS "\fBchanuserlist\fP Server::GetUsers (\fBchanrec\fP * chan)\fC [virtual]\fP" @@ -801,22 +819,22 @@ 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 372 of file modules.cpp. +Definition at line 377 of file modules.cpp. .PP References chanrec::GetUsers(). .PP .nf -373 { -374 chanuserlist userl; -375 userl.clear(); -376 std::vector *list = chan->GetUsers(); -377 for (std::vector::iterator i = list->begin(); i != list->end(); i++) -378 { -379 char* o = *i; -380 userl.push_back((userrec*)o); -381 } -382 return userl; -383 } +378 { +379 chanuserlist userl; +380 userl.clear(); +381 std::vector *list = chan->GetUsers(); +382 for (std::vector::iterator i = list->begin(); i != list->end(); i++) +383 { +384 char* o = *i; +385 userl.push_back((userrec*)o); +386 } +387 return userl; +388 } .fi .PP .SS "bool Server::IsNick (\fBstd::string\fP nick)\fC [virtual]\fP" @@ -825,14 +843,14 @@ Returns true if a nick is valid. .PP Nicks for unregistered connections will return false. .PP -Definition at line 502 of file modules.cpp. +Definition at line 507 of file modules.cpp. .PP References isnick(). .PP .nf -503 { -504 return (isnick(nick.c_str()) != 0); -505 } +508 { +509 return (isnick(nick.c_str()) != 0); +510 } .fi .PP .SS "bool Server::IsOnChannel (\fBuserrec\fP * User, \fBchanrec\fP * Chan)\fC [virtual]\fP" @@ -841,14 +859,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 527 of file modules.cpp. +Definition at line 532 of file modules.cpp. .PP References has_channel(). .PP .nf -528 { -529 return has_channel(User,Chan); -530 } +533 { +534 return has_channel(User,Chan); +535 } .fi .PP .SS "bool Server::IsUlined (\fBstd::string\fP server)\fC [virtual]\fP" @@ -857,60 +875,60 @@ 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 394 of file modules.cpp. +Definition at line 399 of file modules.cpp. .PP References is_uline(). .PP .nf -395 { -396 return is_uline(server.c_str()); -397 } +400 { +401 return is_uline(server.c_str()); +402 } .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 693 of file modules.cpp. +Definition at line 698 of file modules.cpp. .PP .nf -694 { -695 const char* dest = mask.c_str(); -696 if (strchr(dest,'!')==0) -697 return false; -698 if (strchr(dest,'@')==0) -699 return false; -700 for (unsigned int i = 0; i < strlen(dest); i++) -701 if (dest[i] < 32) -702 return false; -703 for (unsigned int i = 0; i < strlen(dest); i++) -704 if (dest[i] > 126) -705 return false; -706 unsigned int c = 0; -707 for (unsigned int i = 0; i < strlen(dest); i++) -708 if (dest[i] == '!') -709 c++; -710 if (c>1) -711 return false; -712 c = 0; -713 for (unsigned int i = 0; i < strlen(dest); i++) -714 if (dest[i] == '@') -715 c++; -716 if (c>1) -717 return false; -718 -719 return true; -720 } +699 { +700 const char* dest = mask.c_str(); +701 if (strchr(dest,'!')==0) +702 return false; +703 if (strchr(dest,'@')==0) +704 return false; +705 for (unsigned int i = 0; i < strlen(dest); i++) +706 if (dest[i] < 32) +707 return false; +708 for (unsigned int i = 0; i < strlen(dest); i++) +709 if (dest[i] > 126) +710 return false; +711 unsigned int c = 0; +712 for (unsigned int i = 0; i < strlen(dest); i++) +713 if (dest[i] == '!') +714 c++; +715 if (c>1) +716 return false; +717 c = 0; +718 for (unsigned int i = 0; i < strlen(dest); i++) +719 if (dest[i] == '@') +720 c++; +721 if (c>1) +722 return false; +723 +724 return true; +725 } .fi .PP .SS "bool Server::IsValidModuleCommand (\fBstd::string\fP commandname, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP" .PP -Definition at line 404 of file modules.cpp. +Definition at line 409 of file modules.cpp. .PP .nf -405 { -406 return is_valid_cmd(commandname.c_str(), pcnt, user); -407 } +410 { +411 return is_valid_cmd(commandname.c_str(), pcnt, user); +412 } .fi .PP .SS "\fBchanrec\fP * Server::JoinUserToChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP key)\fC [virtual]\fP" @@ -919,12 +937,12 @@ 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 362 of file modules.cpp. +Definition at line 367 of file modules.cpp. .PP .nf -363 { -364 return add_channel(user,cname.c_str(),key.c_str(),false); -365 } +368 { +369 return add_channel(user,cname.c_str(),key.c_str(),false); +370 } .fi .PP .SS "void Server::Log (int level, \fBstd::string\fP s)\fC [virtual]\fP" @@ -933,12 +951,12 @@ 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 409 of file modules.cpp. +Definition at line 414 of file modules.cpp. .PP .nf -410 { -411 log(level,'%s',s.c_str()); -412 } +415 { +416 log(level,'%s',s.c_str()); +417 } .fi .PP .SS "bool Server::MatchText (\fBstd::string\fP sliteral, \fBstd::string\fP spattern)\fC [virtual]\fP" @@ -947,15 +965,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 349 of file modules.cpp. +Definition at line 354 of file modules.cpp. .PP .nf -350 { -351 char literal[MAXBUF],pattern[MAXBUF]; -352 strlcpy(literal,sliteral.c_str(),MAXBUF); -353 strlcpy(pattern,spattern.c_str(),MAXBUF); -354 return match(literal,pattern); -355 } +355 { +356 char literal[MAXBUF],pattern[MAXBUF]; +357 strlcpy(literal,sliteral.c_str(),MAXBUF); +358 strlcpy(pattern,spattern.c_str(),MAXBUF); +359 return match(literal,pattern); +360 } .fi .PP .SS "\fBchanrec\fP * Server::PartUserFromChannel (\fBuserrec\fP * user, \fBstd::string\fP cname, \fBstd::string\fP reason)\fC [virtual]\fP" @@ -964,12 +982,12 @@ 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 367 of file modules.cpp. +Definition at line 372 of file modules.cpp. .PP .nf -368 { -369 return del_channel(user,cname.c_str(),reason.c_str(),false); -370 } +373 { +374 return del_channel(user,cname.c_str(),reason.c_str(),false); +375 } .fi .PP .SS "bool Server::PseudoToUser (\fBuserrec\fP * alive, \fBuserrec\fP * zombie, \fBstd::string\fP message)\fC [virtual]\fP" @@ -978,39 +996,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 608 of file modules.cpp. +Definition at line 613 of file modules.cpp. .PP References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, and chanrec::topicset. .PP .nf -609 { -610 zombie->fd = alive->fd; -611 alive->fd = FD_MAGIC_NUMBER; -612 alive->ClearBuffer(); -613 Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick); -614 kill_link(alive,message.c_str()); -615 fd_ref_table[zombie->fd] = zombie; -616 for (unsigned int i = 0; i < zombie->chans.size(); i++) -617 { -618 if (zombie->chans[i].channel != NULL) -619 { -620 if (zombie->chans[i].channel->name) -621 { -622 chanrec* Ptr = zombie->chans[i].channel; -623 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name); -624 if (Ptr->topicset) -625 { -626 WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic); -627 WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); -628 } -629 userlist(zombie,Ptr); -630 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name); -631 -632 } -633 } -634 } -635 return true; -636 } +614 { +615 zombie->fd = alive->fd; +616 alive->fd = FD_MAGIC_NUMBER; +617 alive->ClearBuffer(); +618 Write(zombie->fd,':%s!%s@%s NICK %s',alive->nick,alive->ident,alive->host,zombie->nick); +619 kill_link(alive,message.c_str()); +620 fd_ref_table[zombie->fd] = zombie; +621 for (unsigned int i = 0; i < zombie->chans.size(); i++) +622 { +623 if (zombie->chans[i].channel != NULL) +624 { +625 if (zombie->chans[i].channel->name) +626 { +627 chanrec* Ptr = zombie->chans[i].channel; +628 WriteFrom(zombie->fd,zombie,'JOIN %s',Ptr->name); +629 if (Ptr->topicset) +630 { +631 WriteServ(zombie->fd,'332 %s %s :%s', zombie->nick, Ptr->name, Ptr->topic); +632 WriteServ(zombie->fd,'333 %s %s %s %d', zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); +633 } +634 userlist(zombie,Ptr); +635 WriteServ(zombie->fd,'366 %s %s :End of /NAMES list.', zombie->nick, Ptr->name); +636 +637 } +638 } +639 } +640 return true; +641 } .fi .PP .SS "void Server::QuitUser (\fBuserrec\fP * user, \fBstd::string\fP reason)\fC [virtual]\fP" @@ -1023,12 +1041,12 @@ 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 389 of file modules.cpp. +Definition at line 394 of file modules.cpp. .PP .nf -390 { -391 kill_link(user,reason.c_str()); -392 } +395 { +396 kill_link(user,reason.c_str()); +397 } .fi .PP .SS "void Server::RehashServer ()\fC [virtual]\fP" @@ -1050,12 +1068,12 @@ 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 424 of file modules.cpp. +Definition at line 429 of file modules.cpp. .PP .nf -425 { -426 Write(Socket,'%s',s.c_str()); -427 } +430 { +431 Write(Socket,'%s',s.c_str()); +432 } .fi .PP .SS "void Server::SendChannel (\fBuserrec\fP * User, \fBchanrec\fP * Channel, \fBstd::string\fP s, bool IncludeSender)\fC [virtual]\fP" @@ -1064,19 +1082,19 @@ 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 458 of file modules.cpp. +Definition at line 463 of file modules.cpp. .PP .nf -459 { -460 if (IncludeSender) -461 { -462 WriteChannel(Channel,User,'%s',s.c_str()); -463 } -464 else -465 { -466 ChanExceptSender(Channel,User,'%s',s.c_str()); -467 } -468 } +464 { +465 if (IncludeSender) +466 { +467 WriteChannel(Channel,User,'%s',s.c_str()); +468 } +469 else +470 { +471 ChanExceptSender(Channel,User,'%s',s.c_str()); +472 } +473 } .fi .PP .SS "void Server::SendChannelServerNotice (\fBstd::string\fP ServName, \fBchanrec\fP * Channel, \fBstd::string\fP text)\fC [virtual]\fP" @@ -1085,12 +1103,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 453 of file modules.cpp. +Definition at line 458 of file modules.cpp. .PP .nf -454 { -455 WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str()); -456 } +459 { +460 WriteChannelWithServ((char*)ServName.c_str(), Channel, '%s', text.c_str()); +461 } .fi .PP .SS "void Server::SendCommon (\fBuserrec\fP * User, \fBstd::string\fP text, bool IncludeSender)\fC [virtual]\fP" @@ -1099,19 +1117,19 @@ 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 475 of file modules.cpp. +Definition at line 480 of file modules.cpp. .PP .nf -476 { -477 if (IncludeSender) -478 { -479 WriteCommon(User,'%s',text.c_str()); -480 } -481 else -482 { -483 WriteCommonExcept(User,'%s',text.c_str()); -484 } -485 } +481 { +482 if (IncludeSender) +483 { +484 WriteCommon(User,'%s',text.c_str()); +485 } +486 else +487 { +488 WriteCommonExcept(User,'%s',text.c_str()); +489 } +490 } .fi .PP .SS "void Server::SendFrom (int Socket, \fBuserrec\fP * User, \fBstd::string\fP s)\fC [virtual]\fP" @@ -1120,12 +1138,12 @@ 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 434 of file modules.cpp. +Definition at line 439 of file modules.cpp. .PP .nf -435 { -436 WriteFrom(Socket,User,'%s',s.c_str()); -437 } +440 { +441 WriteFrom(Socket,User,'%s',s.c_str()); +442 } .fi .PP .SS "void Server::SendMode (char ** parameters, int pcnt, \fBuserrec\fP * user)\fC [virtual]\fP" @@ -1148,14 +1166,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 419 of file modules.cpp. +Definition at line 424 of file modules.cpp. .PP References server_mode(). .PP .nf -420 { -421 server_mode(parameters,pcnt,user); -422 } +425 { +426 server_mode(parameters,pcnt,user); +427 } .fi .PP .SS "void Server::SendOpers (\fBstd::string\fP s)\fC [virtual]\fP" @@ -1164,12 +1182,12 @@ Sends text to all opers. .PP This method sends a server notice to all opers with the usermode +s. .PP -Definition at line 344 of file modules.cpp. +Definition at line 349 of file modules.cpp. .PP .nf -345 { -346 WriteOpers('%s',s.c_str()); -347 } +350 { +351 WriteOpers('%s',s.c_str()); +352 } .fi .PP .SS "void Server::SendServ (int Socket, \fBstd::string\fP s)\fC [virtual]\fP" @@ -1178,12 +1196,12 @@ 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 429 of file modules.cpp. +Definition at line 434 of file modules.cpp. .PP .nf -430 { -431 WriteServ(Socket,'%s',s.c_str()); -432 } +435 { +436 WriteServ(Socket,'%s',s.c_str()); +437 } .fi .PP .SS "void Server::SendTo (\fBuserrec\fP * Source, \fBuserrec\fP * Dest, \fBstd::string\fP s)\fC [virtual]\fP" @@ -1200,23 +1218,23 @@ The format will become: .PP Which is useful for numerics and server notices to single users, etc. .PP -Definition at line 439 of file modules.cpp. +Definition at line 444 of file modules.cpp. .PP References connection::fd. .PP .nf -440 { -441 if (!Source) -442 { -443 // if source is NULL, then the message originates from the local server -444 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str()); -445 } -446 else +445 { +446 if (!Source) 447 { -448 // otherwise it comes from the user specified -449 WriteTo(Source,Dest,'%s',s.c_str()); +448 // if source is NULL, then the message originates from the local server +449 Write(Dest->fd,':%s %s',this->GetServerName().c_str(),s.c_str()); 450 } -451 } +451 else +452 { +453 // otherwise it comes from the user specified +454 WriteTo(Source,Dest,'%s',s.c_str()); +455 } +456 } .fi .PP .SS "void Server::SendToModeMask (\fBstd::string\fP modes, int flags, \fBstd::string\fP text)\fC [virtual]\fP" @@ -1229,12 +1247,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 357 of file modules.cpp. +Definition at line 362 of file modules.cpp. .PP .nf -358 { -359 WriteMode(modes.c_str(),flags,'%s',text.c_str()); -360 } +363 { +364 WriteMode(modes.c_str(),flags,'%s',text.c_str()); +365 } .fi .PP .SS "void Server::SendWallops (\fBuserrec\fP * User, \fBstd::string\fP text)\fC [virtual]\fP" @@ -1243,12 +1261,12 @@ 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 487 of file modules.cpp. +Definition at line 492 of file modules.cpp. .PP .nf -488 { -489 WriteWallOps(User,false,'%s',text.c_str()); -490 } +493 { +494 WriteWallOps(User,false,'%s',text.c_str()); +495 } .fi .PP .SS "bool Server::UserToPseudo (\fBuserrec\fP * user, \fBstd::string\fP message)\fC [virtual]\fP" @@ -1257,21 +1275,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 596 of file modules.cpp. +Definition at line 601 of file modules.cpp. .PP References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, and userrec::ident. .PP .nf -597 { -598 unsigned int old_fd = user->fd; -599 user->fd = FD_MAGIC_NUMBER; -600 user->ClearBuffer(); -601 Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str()); -602 SE->DelFd(old_fd); -603 shutdown(old_fd,2); -604 close(old_fd); -605 return true; -606 } +602 { +603 unsigned int old_fd = user->fd; +604 user->fd = FD_MAGIC_NUMBER; +605 user->ClearBuffer(); +606 Write(old_fd,'ERROR :Closing link (%s@%s) [%s]',user->ident,user->host,message.c_str()); +607 SE->DelFd(old_fd); +608 shutdown(old_fd,2); +609 close(old_fd); +610 return true; +611 } .fi .PP diff --git a/docs/man/man3/ServerConfig.3 b/docs/man/man3/ServerConfig.3 index 9f5733197..8a713cdc1 100644 --- a/docs/man/man3/ServerConfig.3 +++ b/docs/man/man3/ServerConfig.3 @@ -2,7 +2,9 @@ .ad l .nh .SH NAME -ServerConfig \- +ServerConfig \- This class holds the bulk of the runtime configuration for the ircd. + +.PP .SH SYNOPSIS .br .PP @@ -19,9 +21,11 @@ Inherits \fBclassbase\fP. .ti -1c .RI "void \fBClearStack\fP ()" .br +.RI "\fIClears the include stack in preperation for a \fBRead()\fP call. \fP" .ti -1c .RI "void \fBRead\fP (bool bail, \fBuserrec\fP *user)" .br +.RI "\fIRead the entire configuration into memory and initialize this class. \fP" .ti -1c .RI "bool \fBLoadConf\fP (const char *filename, std::stringstream *target, std::stringstream *errorstream)" .br @@ -47,108 +51,142 @@ Inherits \fBclassbase\fP. .ti -1c .RI "char \fBServerName\fP [MAXBUF]" .br +.RI "\fIHolds the server name of the local server as defined by the administrator. \fP" .ti -1c .RI "char \fBNetwork\fP [MAXBUF]" .br .ti -1c .RI "char \fBServerDesc\fP [MAXBUF]" .br +.RI "\fIHolds the description of the local server as defined by the administrator. \fP" .ti -1c .RI "char \fBAdminName\fP [MAXBUF]" .br +.RI "\fIHolds the admin's name, for output in the /ADMIN command. \fP" .ti -1c .RI "char \fBAdminEmail\fP [MAXBUF]" .br +.RI "\fIHolds the email address of the admin, for output in the /ADMIN command. \fP" .ti -1c .RI "char \fBAdminNick\fP [MAXBUF]" .br +.RI "\fIHolds the admin's nickname, for output in the /ADMIN command. \fP" .ti -1c .RI "char \fBdiepass\fP [MAXBUF]" .br +.RI "\fIThe admin-configured /DIE password. \fP" .ti -1c .RI "char \fBrestartpass\fP [MAXBUF]" .br +.RI "\fIThe admin-configured /RESTART password. \fP" .ti -1c .RI "char \fBmotd\fP [MAXBUF]" .br +.RI "\fIThe pathname and filename of the message of the day file, as defined by the administrator. \fP" .ti -1c .RI "char \fBrules\fP [MAXBUF]" .br +.RI "\fIThe pathname and filename of the rules file, as defined by the administrator. \fP" .ti -1c .RI "char \fBPrefixQuit\fP [MAXBUF]" .br +.RI "\fIThe quit prefix in use, or an empty string. \fP" .ti -1c .RI "char \fBDieValue\fP [MAXBUF]" .br +.RI "\fIThe last string found within a tag, or an empty string. \fP" .ti -1c .RI "char \fBDNSServer\fP [MAXBUF]" .br +.RI "\fIThe \fBDNS\fP server to use for \fBDNS\fP queries. \fP" .ti -1c .RI "char \fBDisabledCommands\fP [MAXBUF]" .br +.RI "\fIThis variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers. \fP" .ti -1c .RI "char \fBModPath\fP [1024]" .br +.RI "\fIThe full path to the modules directory. \fP" .ti -1c .RI "char \fBMyExecutable\fP [1024]" .br +.RI "\fIThe full pathname to the executable, as given in argv[0] when the program starts. \fP" .ti -1c .RI "FILE * \fBlog_file\fP" .br +.RI "\fIThe file handle of the logfile. \fP" .ti -1c .RI "bool \fBnofork\fP" .br +.RI "\fIIf this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground. \fP" .ti -1c .RI "bool \fBunlimitcore\fP" .br +.RI "\fIIf 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. \fP" .ti -1c .RI "bool \fBAllowHalfop\fP" .br +.RI "\fIIf this value is true, halfops have been enabled in the configuration file. \fP" .ti -1c .RI "int \fBdns_timeout\fP" .br +.RI "\fIThe number of seconds the \fBDNS\fP subsystem will wait before timing out any request. \fP" .ti -1c .RI "int \fBNetBufferSize\fP" .br +.RI "\fIThe size of the read() buffer in the user handling code, used to read data into a user's recvQ. \fP" .ti -1c .RI "int \fBMaxConn\fP" .br +.RI "\fIThe value to be used for listen() backlogs as default. \fP" .ti -1c .RI "unsigned int \fBSoftLimit\fP" .br +.RI "\fIThe soft limit value assigned to the irc server. \fP" .ti -1c .RI "int \fBMaxWhoResults\fP" .br +.RI "\fIThe maximum number of /WHO results allowed in any single /WHO command. \fP" .ti -1c .RI "int \fBdebugging\fP" .br +.RI "\fITrue if the DEBUG loglevel is selected. \fP" .ti -1c .RI "int \fBLogLevel\fP" .br +.RI "\fIThe loglevel in use by the IRC server. \fP" .ti -1c .RI "int \fBDieDelay\fP" .br +.RI "\fIHow many seconds to wait before exiting the program when /DIE is correctly issued. \fP" .ti -1c .RI "char \fBaddrs\fP [MAXBUF][255]" .br +.RI "\fIA list of IP addresses the server is listening on. \fP" .ti -1c .RI "\fBfile_cache\fP \fBMOTD\fP" .br +.RI "\fIThe MOTD file, cached in a file_cache type. \fP" .ti -1c .RI "\fBfile_cache\fP \fBRULES\fP" .br +.RI "\fIThe RULES file, cached in a file_cache type. \fP" .ti -1c .RI "char \fBPID\fP [1024]" .br +.RI "\fIThe full pathname and filename of the PID file as defined in the configuration. \fP" .ti -1c .RI "std::stringstream \fBconfig_f\fP" .br +.RI "\fIThe parsed configuration file as a stringstream. \fP" .ti -1c .RI "\fBClassVector\fP \fBClasses\fP" .br +.RI "\fIThe connect classes in use by the IRC server. \fP" .ti -1c .RI "std::vector< \fBstd::string\fP > \fBmodule_names\fP" .br +.RI "\fIA list of module names (names only, no paths) which are currently loaded by the server. \fP" .in -1c .SS "Private Member Functions" @@ -156,9 +194,11 @@ Inherits \fBclassbase\fP. .ti -1c .RI "int \fBfgets_safe\fP (char *buffer, size_t maxsize, FILE *&file)" .br +.RI "\fIUsed by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g. \fP" .ti -1c .RI "\fBstd::string\fP \fBConfProcess\fP (char *buffer, long linenumber, std::stringstream *errorstream, bool &error, \fBstd::string\fP filename)" .br +.RI "\fIThis private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured. \fP" .in -1c .SS "Private Attributes" @@ -166,10 +206,15 @@ Inherits \fBclassbase\fP. .ti -1c .RI "std::vector< \fBstd::string\fP > \fBinclude_stack\fP" .br +.RI "\fIThis variable holds the names of all files included from the main one. \fP" .in -1c .SH "Detailed Description" .PP -Definition at line 34 of file inspircd_io.h. +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. .SH "Constructor & Destructor Documentation" .PP .SS "ServerConfig::ServerConfig ()" @@ -178,9 +223,13 @@ Definition at line 34 of file inspircd_io.h. .PP .SS "void ServerConfig::ClearStack ()" .PP +Clears the include stack in preperation for a \fBRead()\fP call. +.PP Referenced by ConfigReader::ConfigReader(). .SS "\fBstd::string\fP ServerConfig::ConfProcess (char * buffer, long linenumber, std::stringstream * errorstream, bool & error, \fBstd::string\fP filename)\fC [private]\fP" .PP +This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured. +.PP .SS "int ServerConfig::ConfValue (char * tag, char * var, int index, char * result, std::stringstream * config)" .PP Referenced by userrec::HasPermission(). @@ -194,11 +243,18 @@ Referenced by ConfigReader::Enumerate(). Referenced by ConfigReader::EnumerateValues(). .SS "int ServerConfig::fgets_safe (char * buffer, size_t maxsize, FILE *& file)\fC [private]\fP" .PP +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 "bool ServerConfig::LoadConf (const char * filename, std::stringstream * target, std::stringstream * errorstream)" .PP Referenced by ConfigReader::ConfigReader(). .SS "void ServerConfig::Read (bool bail, \fBuserrec\fP * user)" .PP +Read the entire configuration into memory and initialize this class. +.PP +All other methods should be used only by the core. +.PP Referenced by Server::RehashServer(). .SS "int ServerConfig::ReadConf (std::stringstream * config_f, const char * tag, const char * var, int index, char * result)" .PP @@ -207,118 +263,200 @@ Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigR .PP .SS "char \fBServerConfig::addrs\fP[MAXBUF][255]" .PP -Definition at line 70 of file inspircd_io.h. +A list of IP addresses the server is listening on. +.PP +Definition at line 216 of file inspircd_io.h. .SS "char \fBServerConfig::AdminEmail\fP[MAXBUF]" .PP -Definition at line 46 of file inspircd_io.h. +Holds the email address of the admin, for output in the /ADMIN command. +.PP +Definition at line 89 of file inspircd_io.h. .SS "char \fBServerConfig::AdminName\fP[MAXBUF]" .PP -Definition at line 45 of file inspircd_io.h. +Holds the admin's name, for output in the /ADMIN command. +.PP +Definition at line 84 of file inspircd_io.h. .SS "char \fBServerConfig::AdminNick\fP[MAXBUF]" .PP -Definition at line 47 of file inspircd_io.h. +Holds the admin's nickname, for output in the /ADMIN command. +.PP +Definition at line 94 of file inspircd_io.h. .SS "bool \fBServerConfig::AllowHalfop\fP" .PP -Definition at line 61 of file inspircd_io.h. +If this value is true, halfops have been enabled in the configuration file. +.PP +Definition at line 171 of file inspircd_io.h. .SS "\fBClassVector\fP \fBServerConfig::Classes\fP" .PP -Definition at line 75 of file inspircd_io.h. +The connect classes in use by the IRC server. +.PP +Definition at line 242 of file inspircd_io.h. .SS "std::stringstream \fBServerConfig::config_f\fP" .PP -Definition at line 74 of file inspircd_io.h. +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. .PP Referenced by userrec::HasPermission(). .SS "int \fBServerConfig::debugging\fP" .PP -Definition at line 67 of file inspircd_io.h. +True if the DEBUG loglevel is selected. +.PP +Definition at line 202 of file inspircd_io.h. .SS "int \fBServerConfig::DieDelay\fP" .PP -Definition at line 69 of file inspircd_io.h. +How many seconds to wait before exiting the program when /DIE is correctly issued. +.PP +Definition at line 211 of file inspircd_io.h. .SS "char \fBServerConfig::diepass\fP[MAXBUF]" .PP -Definition at line 48 of file inspircd_io.h. +The admin-configured /DIE password. +.PP +Definition at line 98 of file inspircd_io.h. .SS "char \fBServerConfig::DieValue\fP[MAXBUF]" .PP -Definition at line 53 of file inspircd_io.h. +The last string found within a tag, or an empty string. +.PP +Definition at line 121 of file inspircd_io.h. .SS "char \fBServerConfig::DisabledCommands\fP[MAXBUF]" .PP -Definition at line 55 of file inspircd_io.h. +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. .SS "int \fBServerConfig::dns_timeout\fP" .PP -Definition at line 62 of file inspircd_io.h. +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. .SS "char \fBServerConfig::DNSServer\fP[MAXBUF]" .PP -Definition at line 54 of file inspircd_io.h. +The \fBDNS\fP server to use for \fBDNS\fP queries. +.PP +Definition at line 125 of file inspircd_io.h. .SS "std::vector<\fBstd::string\fP> \fBServerConfig::include_stack\fP\fC [private]\fP" .PP -Definition at line 37 of file inspircd_io.h. +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. .SS "FILE* \fBServerConfig::log_file\fP" .PP -Definition at line 58 of file inspircd_io.h. +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. .SS "int \fBServerConfig::LogLevel\fP" .PP -Definition at line 68 of file inspircd_io.h. +The loglevel in use by the IRC server. +.PP +Definition at line 206 of file inspircd_io.h. .SS "int \fBServerConfig::MaxConn\fP" .PP -Definition at line 64 of file inspircd_io.h. +The value to be used for listen() backlogs as default. +.PP +Definition at line 187 of file inspircd_io.h. .SS "int \fBServerConfig::MaxWhoResults\fP" .PP -Definition at line 66 of file inspircd_io.h. +The maximum number of /WHO results allowed in any single /WHO command. +.PP +Definition at line 198 of file inspircd_io.h. .SS "char \fBServerConfig::ModPath\fP[1024]" .PP -Definition at line 56 of file inspircd_io.h. +The full path to the modules directory. +.PP +This is either set at compile time, or overridden in the configuration file via the tag. +.PP +Definition at line 138 of file inspircd_io.h. .SS "std::vector<\fBstd::string\fP> \fBServerConfig::module_names\fP" .PP -Definition at line 76 of file inspircd_io.h. +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. .PP Referenced by Server::FindModule(). .SS "\fBfile_cache\fP \fBServerConfig::MOTD\fP" .PP -Definition at line 71 of file inspircd_io.h. +The MOTD file, cached in a file_cache type. +.PP +Definition at line 220 of file inspircd_io.h. .SS "char \fBServerConfig::motd\fP[MAXBUF]" .PP -Definition at line 50 of file inspircd_io.h. +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. .SS "char \fBServerConfig::MyExecutable\fP[1024]" .PP -Definition at line 57 of file inspircd_io.h. +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. .SS "int \fBServerConfig::NetBufferSize\fP" .PP -Definition at line 63 of file inspircd_io.h. +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. .SS "char \fBServerConfig::Network\fP[MAXBUF]" .PP -Definition at line 43 of file inspircd_io.h. +Definition at line 74 of file inspircd_io.h. .SS "bool \fBServerConfig::nofork\fP" .PP -Definition at line 59 of file inspircd_io.h. +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. .SS "char \fBServerConfig::PID\fP[1024]" .PP -Definition at line 73 of file inspircd_io.h. +The full pathname and filename of the PID file as defined in the configuration. +.PP +Definition at line 229 of file inspircd_io.h. .SS "char \fBServerConfig::PrefixQuit\fP[MAXBUF]" .PP -Definition at line 52 of file inspircd_io.h. +The quit prefix in use, or an empty string. +.PP +Definition at line 116 of file inspircd_io.h. .SS "char \fBServerConfig::restartpass\fP[MAXBUF]" .PP -Definition at line 49 of file inspircd_io.h. +The admin-configured /RESTART password. +.PP +Definition at line 102 of file inspircd_io.h. .SS "\fBfile_cache\fP \fBServerConfig::RULES\fP" .PP -Definition at line 72 of file inspircd_io.h. +The RULES file, cached in a file_cache type. +.PP +Definition at line 224 of file inspircd_io.h. .SS "char \fBServerConfig::rules\fP[MAXBUF]" .PP -Definition at line 51 of file inspircd_io.h. +The pathname and filename of the rules file, as defined by the administrator. +.PP +Definition at line 112 of file inspircd_io.h. .SS "char \fBServerConfig::ServerDesc\fP[MAXBUF]" .PP -Definition at line 44 of file inspircd_io.h. +Holds the description of the local server as defined by the administrator. +.PP +Definition at line 79 of file inspircd_io.h. .SS "char \fBServerConfig::ServerName\fP[MAXBUF]" .PP -Definition at line 42 of file inspircd_io.h. +Holds the server name of the local server as defined by the administrator. +.PP +Definition at line 68 of file inspircd_io.h. .PP Referenced by userrec::userrec(). .SS "unsigned int \fBServerConfig::SoftLimit\fP" .PP -Definition at line 65 of file inspircd_io.h. +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. .SS "bool \fBServerConfig::unlimitcore\fP" .PP -Definition at line 60 of file inspircd_io.h. +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. .SH "Author" .PP diff --git a/docs/man/man3/channels.cpp.3 b/docs/man/man3/channels.cpp.3 index 429b0ccdd..0d5feb55c 100644 --- a/docs/man/man3/channels.cpp.3 +++ b/docs/man/man3/channels.cpp.3 @@ -135,7 +135,7 @@ Referenced by chanrec::GetModeParameter(), and chanrec::SetCustomModeParam(). .PP .SS "int \fBMODCOUNT\fP = -1" .PP -Definition at line 933 of file modules.cpp. +Definition at line 938 of file modules.cpp. .PP Referenced by Server::FindModule(). .SS "std::vector<\fBstd::string\fP> \fBmodule_names\fP" diff --git a/docs/man/man3/inspircd_io.h.3 b/docs/man/man3/inspircd_io.h.3 index b832da93e..fa150ea79 100644 --- a/docs/man/man3/inspircd_io.h.3 +++ b/docs/man/man3/inspircd_io.h.3 @@ -23,6 +23,7 @@ inspircd_io.h \- .ti -1c .RI "class \fBServerConfig\fP" .br +.RI "\fIThis class holds the bulk of the runtime configuration for the ircd. \fP" .in -1c .SS "Defines" @@ -30,6 +31,7 @@ inspircd_io.h \- .ti -1c .RI "#define \fBDEBUG\fP 10" .br +.RI "\fIFlags for use with log(). \fP" .ti -1c .RI "#define \fBVERBOSE\fP 20" .br @@ -72,6 +74,8 @@ inspircd_io.h \- .PP .SS "#define DEBUG 10" .PP +Flags for use with log(). +.PP Definition at line 28 of file inspircd_io.h. .PP Referenced by Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), SocketEngine::DelFd(), chanrec::DelUser(), InspSocket::InspSocket(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine(). diff --git a/docs/man/man3/ircd_connector.3 b/docs/man/man3/ircd_connector.3 deleted file mode 100644 index 7198b4947..000000000 --- a/docs/man/man3/ircd_connector.3 +++ /dev/null @@ -1,487 +0,0 @@ -.TH "ircd_connector" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*- -.ad l -.nh -.SH NAME -ircd_connector \- Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds. - -.PP -.SH SYNOPSIS -.br -.PP -\fC#include \fP -.PP -Inherits \fBExtensible\fP. -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "\fBircd_connector\fP ()" -.br -.RI "\fIConstructor clears the sendq and initialises the fd to -1. \fP" -.ti -1c -.RI "bool \fBMakeOutboundConnection\fP (char *newhost, int newport)" -.br -.RI "\fICreate an outbound connection to a listening socket. \fP" -.ti -1c -.RI "std::string \fBGetServerName\fP ()" -.br -.RI "\fIReturn the servername on this established connection. \fP" -.ti -1c -.RI "void \fBSetServerName\fP (std::string serv)" -.br -.RI "\fISet the server name of this connection. \fP" -.ti -1c -.RI "int \fBGetDescriptor\fP ()" -.br -.RI "\fIGet the file descriptor associated with this connection. \fP" -.ti -1c -.RI "void \fBSetDescriptor\fP (int \fBfd\fP)" -.br -.RI "\fISet the file descriptor for this connection. \fP" -.ti -1c -.RI "int \fBGetState\fP ()" -.br -.RI "\fIGet the state flags for this connection. \fP" -.ti -1c -.RI "void \fBSetState\fP (int \fBstate\fP)" -.br -.RI "\fISet the state flags for this connection. \fP" -.ti -1c -.RI "char * \fBGetServerIP\fP ()" -.br -.RI "\fIGet the ip address (not servername) associated with this connection. \fP" -.ti -1c -.RI "std::string \fBGetDescription\fP ()" -.br -.RI "\fIGet the server description of this connection. \fP" -.ti -1c -.RI "void \fBSetDescription\fP (std::string desc)" -.br -.RI "\fISet the server description of this connection. \fP" -.ti -1c -.RI "int \fBGetServerPort\fP ()" -.br -.RI "\fIGet the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in \fBGetServerIP()\fP. \fP" -.ti -1c -.RI "void \fBSetServerPort\fP (int p)" -.br -.RI "\fISet the port used by this connection. \fP" -.ti -1c -.RI "bool \fBSetHostAndPort\fP (char *newhost, int newport)" -.br -.RI "\fISet both the host and the port in one operation for this connection. \fP" -.ti -1c -.RI "void \fBCloseConnection\fP ()" -.br -.RI "\fIClose the connection by calling close() on its file descriptor This function call updates no other data. \fP" -.ti -1c -.RI "bool \fBAddBuffer\fP (std::string a)" -.br -.RI "\fIThis method adds text to the ircd connection's buffer. \fP" -.ti -1c -.RI "bool \fBBufferIsComplete\fP ()" -.br -.RI "\fIThis method returns true if the buffer contains at least one carriage return character, e.g. \fP" -.ti -1c -.RI "void \fBClearBuffer\fP ()" -.br -.RI "\fIThis method clears the server's buffer by setting it to an empty string. \fP" -.ti -1c -.RI "std::string \fBGetBuffer\fP ()" -.br -.RI "\fIThis method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). \fP" -.ti -1c -.RI "void \fBSetVersionString\fP (std::string newversion)" -.br -.RI "\fIThis method sets the version string of the remote server. \fP" -.ti -1c -.RI "std::string \fBGetVersionString\fP ()" -.br -.RI "\fIThis method returns the version string of the remote server. \fP" -.ti -1c -.RI "bool \fBAddWriteBuf\fP (std::string data)" -.br -.RI "\fIAdds data to the connection's sendQ to be flushed later. \fP" -.ti -1c -.RI "bool \fBFlushWriteBuf\fP ()" -.br -.RI "\fIFlushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. \fP" -.ti -1c -.RI "void \fBSetWriteError\fP (std::string error)" -.br -.RI "\fISets the error string for this connection. \fP" -.ti -1c -.RI "std::string \fBGetWriteError\fP ()" -.br -.RI "\fIGets the error string for this connection. \fP" -.ti -1c -.RI "bool \fBHasBufferedOutput\fP ()" -.br -.RI "\fIReturns true if there is data to be written that hasn't been sent yet. \fP" -.ti -1c -.RI "bool \fBCheckPing\fP ()" -.br -.RI "\fIChecks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. \fP" -.ti -1c -.RI "void \fBResetPing\fP ()" -.br -.RI "\fIResets the ping counter. \fP" -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "std::string \fBircdbuffer\fP" -.br -.RI "\fIIRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a -.br - seperator. \fP" -.ti -1c -.RI "char \fBhost\fP [MAXBUF]" -.br -.RI "\fIWhen MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. \fP" -.ti -1c -.RI "int \fBport\fP" -.br -.RI "\fIWhen MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. \fP" -.ti -1c -.RI "std::vector< std::string > \fBroutes\fP" -.br -.RI "\fI\fBServer\fP names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B. \fP" -.in -1c -.SS "Private Member Functions" - -.in +1c -.ti -1c -.RI "bool \fBSetHostAddress\fP (char *\fBhost\fP, int \fBport\fP)" -.br -.RI "\fIPRIVATE function to set the host address and port to connect to. \fP" -.in -1c -.SS "Private Attributes" - -.in +1c -.ti -1c -.RI "sockaddr_in \fBaddr\fP" -.br -.RI "\fISockaddr of the outbound ip and port. \fP" -.ti -1c -.RI "int \fBfd\fP" -.br -.RI "\fIFile descriptor of the connection. \fP" -.ti -1c -.RI "std::string \fBservername\fP" -.br -.RI "\fI\fBServer\fP name. \fP" -.ti -1c -.RI "std::string \fBdescription\fP" -.br -.RI "\fI\fBServer\fP 'GECOS'. \fP" -.ti -1c -.RI "char \fBstate\fP" -.br -.RI "\fIState. \fP" -.ti -1c -.RI "std::string \fBversion\fP" -.br -.RI "\fIThis string holds the ircd's version response. \fP" -.ti -1c -.RI "std::string \fBsendq\fP" -.br -.RI "\fISendQ of the outbound connector, does not have a limit. \fP" -.ti -1c -.RI "std::string \fBWriteError\fP" -.br -.RI "\fIWrite error of connection. \fP" -.ti -1c -.RI "time_t \fBnextping\fP" -.br -.RI "\fITime this connection was last pinged. \fP" -.ti -1c -.RI "bool \fBreplied\fP" -.br -.RI "\fIDid this connection reply to its last ping? \fP" -.in -1c -.SH "Detailed Description" -.PP -Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds. - -A listening socket that accepts server type connections is represented by one class serverrec. Class serverrec will instantiate several objects of type ircd_connector to represent each established connection, inbound or outbound. So, to determine all linked servers you must walk through all the serverrecs that the core defines, and in each one iterate through until you find connection(s) relating to the server you want information on. The core and module API provide functions for this. -.PP -Definition at line 56 of file connection.h. -.SH "Constructor & Destructor Documentation" -.PP -.SS "ircd_connector::ircd_connector ()" -.PP -Constructor clears the sendq and initialises the fd to -1. -.SH "Member Function Documentation" -.PP -.SS "bool ircd_connector::AddBuffer (std::string a)" -.PP -This method adds text to the ircd connection's buffer. \fBParameters:\fP -.RS 4 -\fIa\fP The text to add to the buffer up to a maximum size of 1MB -.RE -.PP -This buffer's maximum size is one megabyte, the method returning false if the buffer is full. -.PP -\fBReturns:\fP -.RS 4 -True on success, false if the buffer is full or the connection is down -.RE -.PP - -.SS "bool ircd_connector::AddWriteBuf (std::string data)" -.PP -Adds data to the connection's sendQ to be flushed later. \fBParameters:\fP -.RS 4 -\fIdata\fP The data to add to the write buffer -.RE -.PP -Fails if there is an error pending on the connection. -.PP -\fBReturns:\fP -.RS 4 -True on success, false if the connection is down or the buffer is full -.RE -.PP -Referenced by serverrec::SendPacket(). -.SS "bool ircd_connector::BufferIsComplete ()" -.PP -This method returns true if the buffer contains at least one carriage return character, e.g. one line can be read from the buffer successfully. -.PP -\fBReturns:\fP -.RS 4 -True if there is at least one complete line waiting to be processed -.RE -.PP - -.SS "bool ircd_connector::CheckPing ()" -.PP -Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. \fBReturns:\fP -.RS 4 -True if the server is still replying to pings -.RE -.PP - -.SS "void ircd_connector::ClearBuffer ()" -.PP -This method clears the server's buffer by setting it to an empty string. -.SS "void ircd_connector::CloseConnection ()" -.PP -Close the connection by calling close() on its file descriptor This function call updates no other data. Referenced by serverrec::SendPacket(). -.SS "bool ircd_connector::FlushWriteBuf ()" -.PP -Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. \fBReturns:\fP -.RS 4 -True if the flush succeeded, false if the connection is down -.RE -.PP -Referenced by serverrec::SendPacket(). -.SS "std::string ircd_connector::GetBuffer ()" -.PP -This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). \fBReturns:\fP -.RS 4 -The first line of the buffer up to a carriage return -.RE -.PP - -.SS "std::string ircd_connector::GetDescription ()" -.PP -Get the server description of this connection. \fBReturns:\fP -.RS 4 -The description (GECOS) of this connection -.RE -.PP - -.SS "int ircd_connector::GetDescriptor ()" -.PP -Get the file descriptor associated with this connection. \fBReturns:\fP -.RS 4 -The file descriptor associated with this connection -.RE -.PP - -.SS "char* ircd_connector::GetServerIP ()" -.PP -Get the ip address (not servername) associated with this connection. \fBReturns:\fP -.RS 4 -The connections IP address in dotted decimal form -.RE -.PP - -.SS "std::string ircd_connector::GetServerName ()" -.PP -Return the servername on this established connection. Referenced by serverrec::SendPacket(). -.SS "int ircd_connector::GetServerPort ()" -.PP -Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in \fBGetServerIP()\fP. \fBReturns:\fP -.RS 4 -The port number of this connection -.RE -.PP - -.SS "int ircd_connector::GetState ()" -.PP -Get the state flags for this connection. \fBReturns:\fP -.RS 4 -The state flags associated with this connection -.RE -.PP -Referenced by serverrec::SendPacket(). -.SS "std::string ircd_connector::GetVersionString ()" -.PP -This method returns the version string of the remote server. If the server has no version string an empty string is returned. -.PP -\fBReturns:\fP -.RS 4 -The version text of this connection -.RE -.PP - -.SS "std::string ircd_connector::GetWriteError ()" -.PP -Gets the error string for this connection. \fBReturns:\fP -.RS 4 -The last error to occur or an empty string -.RE -.PP -Referenced by serverrec::SendPacket(). -.SS "bool ircd_connector::HasBufferedOutput ()" -.PP -Returns true if there is data to be written that hasn't been sent yet. \fBReturns:\fP -.RS 4 -True if the buffer is not empty -.RE -.PP - -.SS "bool ircd_connector::MakeOutboundConnection (char * newhost, int newport)" -.PP -Create an outbound connection to a listening socket. Referenced by serverrec::BeginLink(), and serverrec::MeshCookie(). -.SS "void ircd_connector::ResetPing ()" -.PP -Resets the ping counter. -.SS "void ircd_connector::SetDescription (std::string desc)" -.PP -Set the server description of this connection. \fBParameters:\fP -.RS 4 -\fIdesc\fP The description (GECOS) of this connection to be set -.RE -.PP - -.SS "void ircd_connector::SetDescriptor (int fd)" -.PP -Set the file descriptor for this connection. \fBParameters:\fP -.RS 4 -\fIfd\fP The file descriptor to associate with the connection -.RE -.PP -Referenced by serverrec::AddIncoming(). -.SS "bool ircd_connector::SetHostAddress (char * host, int port)\fC [private]\fP" -.PP -PRIVATE function to set the host address and port to connect to. -.SS "bool ircd_connector::SetHostAndPort (char * newhost, int newport)" -.PP -Set both the host and the port in one operation for this connection. \fBParameters:\fP -.RS 4 -\fInewhost\fP The hostname to set for this connection -.br -\fInewport\fP The port number to set for this connection -.RE -.PP -\fBReturns:\fP -.RS 4 -True on success, false on failure -.RE -.PP -Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie(). -.SS "void ircd_connector::SetServerName (std::string serv)" -.PP -Set the server name of this connection. \fBParameters:\fP -.RS 4 -\fIserv\fP The server name to set -.RE -.PP -Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie(). -.SS "void ircd_connector::SetServerPort (int p)" -.PP -Set the port used by this connection. \fBParameters:\fP -.RS 4 -\fIp\fP The port number to set for this connection -.RE -.PP - -.SS "void ircd_connector::SetState (int state)" -.PP -Set the state flags for this connection. \fBParameters:\fP -.RS 4 -\fIstate\fP The state flags to set for this connection -.RE -.PP -Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), serverrec::MeshCookie(), and serverrec::SendPacket(). -.SS "void ircd_connector::SetVersionString (std::string newversion)" -.PP -This method sets the version string of the remote server. \fBParameters:\fP -.RS 4 -\fInewversion\fP The version string to set -.RE -.PP - -.SS "void ircd_connector::SetWriteError (std::string error)" -.PP -Sets the error string for this connection. \fBParameters:\fP -.RS 4 -\fIerror\fP The error string to set -.RE -.PP - -.SH "Member Data Documentation" -.PP -.SS "sockaddr_in \fBircd_connector::addr\fP\fC [private]\fP" -.PP -Sockaddr of the outbound ip and port. Definition at line 61 of file connection.h. -.SS "std::string \fBircd_connector::description\fP\fC [private]\fP" -.PP -\fBServer\fP 'GECOS'. Definition at line 73 of file connection.h. -.SS "int \fBircd_connector::fd\fP\fC [private]\fP" -.PP -File descriptor of the connection. Definition at line 65 of file connection.h. -.SS "char \fBircd_connector::host\fP[MAXBUF]" -.PP -When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 117 of file connection.h. -.SS "std::string \fBircd_connector::ircdbuffer\fP" -.PP -IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a -.br - seperator. Definition at line 110 of file connection.h. -.SS "time_t \fBircd_connector::nextping\fP\fC [private]\fP" -.PP -Time this connection was last pinged. Definition at line 98 of file connection.h. -.SS "int \fBircd_connector::port\fP" -.PP -When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. Definition at line 123 of file connection.h. -.SS "bool \fBircd_connector::replied\fP\fC [private]\fP" -.PP -Did this connection reply to its last ping? Definition at line 102 of file connection.h. -.SS "std::vector \fBircd_connector::routes\fP" -.PP -\fBServer\fP names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B. Definition at line 129 of file connection.h. -.SS "std::string \fBircd_connector::sendq\fP\fC [private]\fP" -.PP -SendQ of the outbound connector, does not have a limit. Definition at line 90 of file connection.h. -.SS "std::string \fBircd_connector::servername\fP\fC [private]\fP" -.PP -\fBServer\fP name. Definition at line 69 of file connection.h. -.SS "char \fBircd_connector::state\fP\fC [private]\fP" -.PP -State. STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTEDDefinition at line 78 of file connection.h. -.SS "std::string \fBircd_connector::version\fP\fC [private]\fP" -.PP -This string holds the ircd's version response. Definition at line 86 of file connection.h. -.SS "std::string \fBircd_connector::WriteError\fP\fC [private]\fP" -.PP -Write error of connection. Definition at line 94 of file connection.h. - -.SH "Author" -.PP -Generated automatically by Doxygen for InspIRCd from the source code. diff --git a/docs/man/man3/modules.cpp.3 b/docs/man/man3/modules.cpp.3 index 2b4dae325..b8eec9add 100644 --- a/docs/man/man3/modules.cpp.3 +++ b/docs/man/man3/modules.cpp.3 @@ -328,7 +328,7 @@ Referenced by DoAddExtendedMode(), ModeDefined(), ModeDefinedOff(), ModeDefinedO .PP .SS "int \fBMODCOUNT\fP = -1" .PP -Definition at line 933 of file modules.cpp. +Definition at line 938 of file modules.cpp. .SS "std::vector<\fBInspSocket\fP*> \fBmodule_sockets\fP" .PP Referenced by Server::AddSocket(), and Server::DelSocket(). diff --git a/docs/man/man3/modules.h.3 b/docs/man/man3/modules.h.3 index b65b4ac89..28f7e5404 100644 --- a/docs/man/man3/modules.h.3 +++ b/docs/man/man3/modules.h.3 @@ -242,22 +242,22 @@ Referenced by Module::OnAccessCheck(). Definition at line 38 of file modules.h. .SS "#define CONF_FILE_NOT_FOUND 0x000200" .PP -Definition at line 1516 of file modules.h. +Definition at line 1520 of file modules.h. .PP Referenced by ConfigReader::ConfigReader(). .SS "#define CONF_NOT_A_NUMBER 0x000010" .PP -Definition at line 1513 of file modules.h. +Definition at line 1517 of file modules.h. .PP Referenced by ConfigReader::ReadInteger(). .SS "#define CONF_NOT_UNSIGNED 0x000080" .PP -Definition at line 1514 of file modules.h. +Definition at line 1518 of file modules.h. .PP Referenced by ConfigReader::ReadInteger(). .SS "#define CONF_VALUE_NOT_FOUND 0x000100" .PP -Definition at line 1515 of file modules.h. +Definition at line 1519 of file modules.h. .PP Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue(). .SS "#define DEBUG 10" @@ -351,7 +351,7 @@ Low level definition of a \fBFileReader\fP classes file cache area. Definition at line 65 of file modules.h. .SS "typedef DLLFactory<\fBModuleFactory\fP> \fBircd_module\fP" .PP -Definition at line 1682 of file modules.h. +Definition at line 1686 of file modules.h. .SS "typedef \fBfile_cache\fP \fBstring_list\fP" .PP Definition at line 70 of file modules.h. diff --git a/docs/man/man3/serverrec.3 b/docs/man/man3/serverrec.3 deleted file mode 100644 index 428f509df..000000000 --- a/docs/man/man3/serverrec.3 +++ /dev/null @@ -1,733 +0,0 @@ -.TH "serverrec" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*- -.ad l -.nh -.SH NAME -serverrec \- A class that defines the local server or a remote server. - -.PP -.SH SYNOPSIS -.br -.PP -\fC#include \fP -.PP -Inherits \fBconnection\fP. -.PP -.SS "Public Member Functions" - -.in +1c -.ti -1c -.RI "\fBserverrec\fP ()" -.br -.RI "\fIConstructor. \fP" -.ti -1c -.RI "\fBserverrec\fP (char *n, long ver, bool jupe)" -.br -.RI "\fIConstructor which initialises some of the main variables. \fP" -.ti -1c -.RI "\fB~serverrec\fP ()" -.br -.RI "\fIDestructor. \fP" -.ti -1c -.RI "bool \fBCreateListener\fP (char *\fBhost\fP, int p)" -.br -.RI "\fICreate a listening socket on 'host' using port number 'p'. \fP" -.ti -1c -.RI "bool \fBBeginLink\fP (char *targethost, int \fBport\fP, char *password, char *servername, int myport)" -.br -.RI "\fIBegin an outbound link to another ircd at targethost. \fP" -.ti -1c -.RI "bool \fBMeshCookie\fP (char *targethost, int \fBport\fP, unsigned long cookie, char *servername)" -.br -.RI "\fIBegin an outbound mesh link to another ircd on a network you are already an authenticated member of. \fP" -.ti -1c -.RI "void \fBTerminateLink\fP (char *targethost)" -.br -.RI "\fITerminate a link to 'targethost' by calling the \fBircd_connector::CloseConnection\fP method. \fP" -.ti -1c -.RI "bool \fBSendPacket\fP (char *message, const char *\fBhost\fP)" -.br -.RI "\fISend a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. \fP" -.ti -1c -.RI "bool \fBRecvPacket\fP (std::deque< std::string > &messages, char *\fBhost\fP, std::deque< std::string > &sums)" -.br -.RI "\fIReturns the next available packet and returns true if data is available. \fP" -.ti -1c -.RI "\fBircd_connector\fP * \fBFindHost\fP (std::string \fBhost\fP)" -.br -.RI "\fIFind the \fBircd_connector\fP oject related to a certain servername given in 'host'. \fP" -.ti -1c -.RI "bool \fBAddIncoming\fP (int \fBfd\fP, char *targethost, int sourceport)" -.br -.RI "\fIAdd an incoming connection to the connection pool. \fP" -.ti -1c -.RI "void \fBFlushWriteBuffers\fP ()" -.br -.RI "\fIFlushes all data waiting to be written for all of this server's connections. \fP" -.in -1c -.SS "Public Attributes" - -.in +1c -.ti -1c -.RI "char \fBname\fP [MAXBUF]" -.br -.RI "\fIserver name \fP" -.ti -1c -.RI "long \fBpingtime\fP" -.br -.RI "\fIlast ping response (ms) \fP" -.ti -1c -.RI "long \fBusercount_i\fP" -.br -.RI "\fIinvisible users on server \fP" -.ti -1c -.RI "long \fBusercount\fP" -.br -.RI "\fInon-invisible users on server \fP" -.ti -1c -.RI "long \fBopercount\fP" -.br -.RI "\fIopers on server \fP" -.ti -1c -.RI "int \fBhops_away\fP" -.br -.RI "\fInumber of hops away (for quick access) \fP" -.ti -1c -.RI "long \fBversion\fP" -.br -.RI "\fIircd version \fP" -.ti -1c -.RI "bool \fBjupiter\fP" -.br -.RI "\fIis a JUPE server (faked to enforce a server ban) \fP" -.ti -1c -.RI "char \fBdescription\fP [MAXBUF]" -.br -.RI "\fIDescription of the server. \fP" -.ti -1c -.RI "char \fBnickserv\fP [NICKMAX]" -.br -.RI "\fIHolds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). \fP" -.ti -1c -.RI "bool \fBsync_soon\fP" -.br -.ti -1c -.RI "std::vector< \fBircd_connector\fP > \fBconnectors\fP" -.br -.RI "\fIWith a serverrec, this is a list of all established server connections. \fP" -.in -1c -.SH "Detailed Description" -.PP -A class that defines the local server or a remote server. Definition at line 30 of file servers.h. -.SH "Constructor & Destructor Documentation" -.PP -.SS "serverrec::serverrec ()" -.PP -Constructor. Definition at line 46 of file servers.cpp. -.PP -References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, pingtime, connection::signon, sync_soon, TIME, usercount, usercount_i, and version. -.PP -.nf -47 { -48 strlcpy(name,'',256); -49 pingtime = 0; -50 lastping = TIME; -51 usercount_i = usercount = opercount = version = 0; -52 hops_away = 1; -53 signon = TIME; -54 jupiter = false; -55 fd = 0; -56 sync_soon = false; -57 strlcpy(nickserv,'',NICKMAX); -58 connectors.clear(); -59 } -.fi -.SS "serverrec::serverrec (char * n, long ver, bool jupe)" -.PP -Constructor which initialises some of the main variables. Definition at line 66 of file servers.cpp. -.PP -References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, connection::signon, sync_soon, TIME, usercount, usercount_i, and version. -.PP -.nf -67 { -68 strlcpy(name,n,256); -69 lastping = TIME; -70 usercount_i = usercount = opercount = 0; -71 version = ver; -72 hops_away = 1; -73 signon = TIME; -74 jupiter = jupe; -75 fd = 0; -76 sync_soon = false; -77 strlcpy(nickserv,'',NICKMAX); -78 connectors.clear(); -79 } -.fi -.SS "serverrec::~\fBserverrec\fP ()" -.PP -Destructor. Definition at line 62 of file servers.cpp. -.PP -.nf -63 { -64 } -.fi -.SH "Member Function Documentation" -.PP -.SS "bool serverrec::AddIncoming (int fd, char * targethost, int sourceport)" -.PP -Add an incoming connection to the connection pool. (reserved for core use) Definition at line 212 of file servers.cpp. -.PP -References connectors, DEBUG, ircd_connector::SetDescriptor(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), and STATE_NOAUTH_INBOUND. -.PP -.nf -213 { -214 ircd_connector connector; -215 -216 // targethost has been turned into an ip... -217 // we dont want this as the server name. -218 connector.SetServerName(targethost); -219 connector.SetDescriptor(newfd); -220 connector.SetState(STATE_NOAUTH_INBOUND); -221 int flags = fcntl(newfd, F_GETFL, 0); -222 fcntl(newfd, F_SETFL, flags | O_NONBLOCK); -223 int sendbuf = 32768; -224 int recvbuf = 32768; -225 setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf)); -226 setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); -227 connector.SetHostAndPort(targethost, sourceport); -228 connector.SetState(STATE_NOAUTH_INBOUND); -229 log(DEBUG,'serverrec::AddIncoming() Added connection: %s:%d',targethost,sourceport); -230 this->connectors.push_back(connector); -231 return true; -232 } -.fi -.SS "bool serverrec::BeginLink (char * targethost, int port, char * password, char * servername, int myport)" -.PP -Begin an outbound link to another ircd at targethost. Definition at line 142 of file servers.cpp. -.PP -References connectors, connection::fd, FindHost(), ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND. -.PP -.nf -143 { -144 char connect[MAXBUF]; -145 -146 ircd_connector connector; -147 ircd_connector *cn = this->FindHost(servername); -148 -149 -150 if (cn) -151 { -152 WriteOpers('CONNECT aborted: Server %s already exists',servername); -153 return false; -154 } -155 -156 -157 if (this->fd) -158 { -159 if (connector.MakeOutboundConnection(targethost,newport)) -160 { -161 // targethost has been turned into an ip... -162 // we dont want this as the server name. -163 connector.SetServerName(servername); -164 snprintf(connect,MAXBUF,'S %s %s %lu %s :%s',getservername().c_str(),password,(unsigned long)myport,GetRevision().c_str(),getserverdesc().c_str()); -165 connector.SetState(STATE_NOAUTH_OUTBOUND); -166 connector.SetHostAndPort(targethost, newport); -167 this->connectors.push_back(connector); -168 // this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state -169 // queues outbound data until the socket is polled as writeable (e.g. the connection is established) -170 return this->SendPacket(connect, servername); -171 } -172 else -173 { -174 connector.SetState(STATE_DISCONNECTED); -175 WriteOpers('Could not create outbound connection to %s:%d',targethost,newport); -176 } -177 } -178 return false; -179 } -.fi -.SS "bool serverrec::CreateListener (char * host, int p)" -.PP -Create a listening socket on 'host' using port number 'p'. Definition at line 81 of file servers.cpp. -.PP -References connection::fd, MaxConn, and connection::port. -.PP -.nf -82 { -83 sockaddr_in host_address; -84 int flags; -85 in_addr addy; -86 int on = 0; -87 struct linger linger = { 0 }; -88 -89 this->port = p; -90 -91 fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); -92 if (fd <= 0) -93 { -94 return false; -95 } -96 -97 setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on)); -98 linger.l_onoff = 1; -99 linger.l_linger = 1; -100 setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger)); -101 -102 // attempt to increase socket sendq and recvq as high as its possible -103 // to get them on linux. -104 int sendbuf = 32768; -105 int recvbuf = 32768; -106 setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf)); -107 setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf)); -108 -109 memset((void*)&host_address, 0, sizeof(host_address)); -110 -111 host_address.sin_family = AF_INET; -112 -113 if (!strcmp(newhost,'')) -114 { -115 host_address.sin_addr.s_addr = htonl(INADDR_ANY); -116 } -117 else -118 { -119 inet_aton(newhost,&addy); -120 host_address.sin_addr = addy; -121 } -122 -123 host_address.sin_port = htons(p); -124 -125 if (bind(fd,(sockaddr*)&host_address,sizeof(host_address))<0) -126 { -127 return false; -128 } -129 -130 // make the socket non-blocking -131 flags = fcntl(fd, F_GETFL, 0); -132 fcntl(fd, F_SETFL, flags | O_NONBLOCK); -133 -134 this->port = p; -135 -136 listen(this->fd, MaxConn); -137 -138 return true; -139 } -.fi -.SS "\fBircd_connector\fP * serverrec::FindHost (std::string host)" -.PP -Find the \fBircd_connector\fP oject related to a certain servername given in 'host'. Definition at line 242 of file servers.cpp. -.PP -References connectors. -.PP -Referenced by BeginLink(), and SendPacket(). -.PP -.nf -243 { -244 for (int i = 0; i < this->connectors.size(); i++) -245 { -246 if (this->connectors[i].GetServerName() == findhost) -247 { -248 return &this->connectors[i]; -249 } -250 } -251 return NULL; -252 } -.fi -.SS "void serverrec::FlushWriteBuffers ()" -.PP -Flushes all data waiting to be written for all of this server's connections. Definition at line 274 of file servers.cpp. -.PP -References connectors, has_been_netsplit, IsRoutable(), STATE_DISCONNECTED, STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND, and TIME. -.PP -.nf -275 { -276 char buffer[MAXBUF]; -277 for (int i = 0; i < this->connectors.size(); i++) -278 { -279 // don't try and ping a NOAUTH_OUTBOUND state, its not authed yet! -280 if ((this->connectors[i].GetState() == STATE_NOAUTH_OUTBOUND) && (TIME > this->connectors[i].age+30)) -281 { -282 // however if we reach this timer its connected timed out :) -283 WriteOpers('*** Connection to %s timed out',this->connectors[i].GetServerName().c_str()); -284 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -285 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -286 DoSplit(this->connectors[i].GetServerName().c_str()); -287 return; -288 } -289 if ((this->connectors[i].GetState() == STATE_NOAUTH_INBOUND) && (TIME > this->connectors[i].age+30)) -290 { -291 WriteOpers('*** Connection from %s timed out',this->connectors[i].GetServerName().c_str()); -292 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -293 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -294 DoSplit(this->connectors[i].GetServerName().c_str()); -295 return; -296 } -297 if (this->connectors[i].GetState() != STATE_DISCONNECTED) -298 { -299 if (!this->connectors[i].CheckPing()) -300 { -301 WriteOpers('*** Lost single connection to %s: Ping timeout',this->connectors[i].GetServerName().c_str()); -302 this->connectors[i].CloseConnection(); -303 this->connectors[i].SetState(STATE_DISCONNECTED); -304 if (!IsRoutable(this->connectors[i].GetServerName())) -305 { -306 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str()); -307 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -308 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -309 DoSplit(this->connectors[i].GetServerName().c_str()); -310 } -311 has_been_netsplit = true; -312 } -313 } -314 if ((this->connectors[i].GetWriteError() !='') && (this->connectors[i].GetState() != STATE_DISCONNECTED)) -315 { -316 // if we're here the write() caused an error, we cannot proceed -317 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str()); -318 this->connectors[i].CloseConnection(); -319 this->connectors[i].SetState(STATE_DISCONNECTED); -320 if (!IsRoutable(this->connectors[i].GetServerName())) -321 { -322 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str()); -323 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -324 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -325 DoSplit(this->connectors[i].GetServerName().c_str()); -326 } -327 has_been_netsplit = true; -328 } -329 if ((this->connectors[i].HasBufferedOutput()) && (this->connectors[i].GetState() != STATE_DISCONNECTED)) -330 { -331 if (!this->connectors[i].FlushWriteBuf()) -332 { -333 // if we're here the write() caused an error, we cannot proceed -334 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str()); -335 this->connectors[i].CloseConnection(); -336 this->connectors[i].SetState(STATE_DISCONNECTED); -337 if (!IsRoutable(this->connectors[i].GetServerName())) -338 { -339 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str()); -340 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -341 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -342 DoSplit(this->connectors[i].GetServerName().c_str()); -343 } -344 has_been_netsplit = true; -345 } -346 } -347 } -348 } -.fi -.SS "bool serverrec::MeshCookie (char * targethost, int port, unsigned long cookie, char * servername)" -.PP -Begin an outbound mesh link to another ircd on a network you are already an authenticated member of. Definition at line 182 of file servers.cpp. -.PP -References connectors, connection::fd, ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND. -.PP -.nf -183 { -184 char connect[MAXBUF]; -185 -186 ircd_connector connector; -187 -188 WriteOpers('Establishing meshed link to %s:%d',servername,newport); -189 -190 if (this->fd) -191 { -192 if (connector.MakeOutboundConnection(targethost,newport)) -193 { -194 // targethost has been turned into an ip... -195 // we dont want this as the server name. -196 connector.SetServerName(servername); -197 snprintf(connect,MAXBUF,'- %lu %s :%s',cookie,getservername().c_str(),getserverdesc().c_str()); -198 connector.SetState(STATE_NOAUTH_OUTBOUND); -199 connector.SetHostAndPort(targethost, newport); -200 this->connectors.push_back(connector); -201 return this->SendPacket(connect, servername); -202 } -203 else -204 { -205 connector.SetState(STATE_DISCONNECTED); -206 WriteOpers('Could not create outbound connection to %s:%d',targethost,newport); -207 } -208 } -209 return false; -210 } -.fi -.SS "bool serverrec::RecvPacket (std::deque< std::string > & messages, char * host, std::deque< std::string > & sums)" -.PP -Returns the next available packet and returns true if data is available. Writes the servername the data came from to 'host'. If no data is available this function returns false. This function will automatically close broken links and reroute pathways, generating split messages on the network. Definition at line 445 of file servers.cpp. -.PP -References already_have_sum(), connectors, DEBUG, has_been_netsplit, IsRoutable(), and STATE_DISCONNECTED. -.PP -.nf -446 { -447 char data[65536],buffer[MAXBUF]; -448 memset(data, 0, 65536); -449 for (int i = 0; i < this->connectors.size(); i++) -450 { -451 if (this->connectors[i].GetState() != STATE_DISCONNECTED) -452 { -453 // returns false if the packet could not be sent (e.g. target host down) -454 int rcvsize = 0; -455 -456 // check if theres any data on this socket -457 // if not, continue onwards to the next. -458 pollfd polls; -459 polls.fd = this->connectors[i].GetDescriptor(); -460 polls.events = POLLIN; -461 int ret = poll(&polls,1,1); -462 if (ret <= 0) continue; -463 -464 rcvsize = recv(this->connectors[i].GetDescriptor(),data,65000,0); -465 data[rcvsize] = '\0'; -466 if (rcvsize == 0) -467 { -468 log(DEBUG,'recv() failed for serverrec::RecvPacket(): EOF'); -469 log(DEBUG,'Disabling connector: %s',this->connectors[i].GetServerName().c_str()); -470 this->connectors[i].CloseConnection(); -471 this->connectors[i].SetState(STATE_DISCONNECTED); -472 if (!IsRoutable(this->connectors[i].GetServerName())) -473 { -474 WriteOpers('*** Server %s is no longer routable, disconnecting (EOF)',this->connectors[i].GetServerName().c_str()); -475 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -476 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -477 DoSplit(this->connectors[i].GetServerName().c_str()); -478 } -479 has_been_netsplit = true; -480 } -481 if (rcvsize == -1) -482 { -483 if (errno != EAGAIN) -484 { -485 log(DEBUG,'recv() failed for serverrec::RecvPacket(): %s',strerror(errno)); -486 log(DEBUG,'Disabling connector: %s',this->connectors[i].GetServerName().c_str()); -487 this->connectors[i].CloseConnection(); -488 this->connectors[i].SetState(STATE_DISCONNECTED); -489 if (!IsRoutable(this->connectors[i].GetServerName())) -490 { -491 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str()); -492 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -493 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -494 DoSplit(this->connectors[i].GetServerName().c_str()); -495 } -496 has_been_netsplit = true; -497 } -498 } -499 int pushed = 0; -500 if (rcvsize > 0) -501 { -502 if (!this->connectors[i].AddBuffer(data)) -503 { -504 WriteOpers('*** Read buffer for %s exceeds maximum, closing connection!',this->connectors[i].GetServerName().c_str()); -505 this->connectors[i].CloseConnection(); -506 this->connectors[i].SetState(STATE_DISCONNECTED); -507 if (!IsRoutable(this->connectors[i].GetServerName())) -508 { -509 WriteOpers('*** Server %s is no longer routable, disconnecting.',this->connectors[i].GetServerName().c_str()); -510 snprintf(buffer,MAXBUF,'& %s',this->connectors[i].GetServerName().c_str()); -511 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer); -512 DoSplit(this->connectors[i].GetServerName().c_str()); -513 } -514 has_been_netsplit = true; -515 } -516 if (this->connectors[i].BufferIsComplete()) -517 { -518 this->connectors[i].ResetPing(); -519 while (this->connectors[i].BufferIsComplete()) -520 { -521 std::string text = this->connectors[i].GetBuffer(); -522 if (text != '') -523 { -524 if ((text[0] == ':') && (text.find(' ') != std::string::npos)) -525 { -526 std::string orig = text; -527 log(DEBUG,'Original: %s',text.c_str()); -528 std::string sum = text.substr(1,text.find(' ')-1); -529 text = text.substr(text.find(' ')+1,text.length()); -530 std::string possible_token = text.substr(1,text.find(' ')-1); -531 if (possible_token.length() > 1) -532 { -533 sums.push_back('*'); -534 text = orig; -535 log(DEBUG,'Non-mesh, non-tokenized string passed up the chain'); -536 } -537 else -538 { -539 log(DEBUG,'Packet sum: '%s'',sum.c_str()); -540 if ((already_have_sum(sum)) && (sum != '*')) -541 { -542 // we don't accept dupes -543 continue; -544 } -545 sums.push_back(sum.c_str()); -546 } -547 } -548 else sums.push_back('*'); -549 messages.push_back(text.c_str()); -550 strlcpy(recvhost,this->connectors[i].GetServerName().c_str(),160); -551 log(DEBUG,'serverrec::RecvPacket() %d:%s->%s',pushed++,recvhost,text.c_str()); -552 } -553 } -554 return true; -555 } -556 } -557 } -558 } -559 // nothing new yet -- message and host will be undefined -560 return false; -561 } -.fi -.SS "bool serverrec::SendPacket (char * message, const char * host)" -.PP -Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. Definition at line 350 of file servers.cpp. -.PP -References ircd_connector::AddWriteBuf(), ircd_connector::CloseConnection(), connectors, DEBUG, FindHost(), ircd_connector::FlushWriteBuf(), ircd_connector::GetServerName(), ircd_connector::GetState(), ircd_connector::GetWriteError(), ircd_connector::SetState(), and STATE_DISCONNECTED. -.PP -Referenced by BeginLink(), and MeshCookie(). -.PP -.nf -351 { -352 if ((!message) || (!sendhost)) -353 return true; -354 -355 ircd_connector* cn = this->FindHost(sendhost); -356 -357 if (!strchr(message,'\n')) -358 { -359 strlcat(message,'\n',MAXBUF); -360 } -361 -362 if (cn) -363 { -364 log(DEBUG,'main: serverrec::SendPacket() sent '%s' to %s',message,cn->GetServerName().c_str()); -365 -366 if (cn->GetState() == STATE_DISCONNECTED) -367 { -368 // fix: can only route one hop to avoid a loop -369 if (strncmp(message,'R ',2)) -370 { -371 log(DEBUG,'Not a double reroute'); -372 // this route is down, we must re-route the packet through an available point in the mesh. -373 for (int k = 0; k < this->connectors.size(); k++) -374 { -375 log(DEBUG,'Check connector %d: %s',k,this->connectors[k].GetServerName().c_str()); -376 // search for another point in the mesh which can 'reach' where we want to go -377 for (int m = 0; m < this->connectors[k].routes.size(); m++) -378 { -379 if (!strcasecmp(this->connectors[k].routes[m].c_str(),sendhost)) -380 { -381 log(DEBUG,'Found alternative route for packet: %s',this->connectors[k].GetServerName().c_str()); -382 char buffer[MAXBUF]; -383 snprintf(buffer,MAXBUF,'R %s %s',sendhost,message); -384 this->SendPacket(buffer,this->connectors[k].GetServerName().c_str()); -385 return true; -386 } -387 } -388 } -389 } -390 char buffer[MAXBUF]; -391 snprintf(buffer,MAXBUF,'& %s',sendhost); -392 WriteOpers('*** All connections to %s lost.',sendhost); -393 NetSendToAllExcept(sendhost,buffer); -394 DoSplit(sendhost); -395 return false; -396 } -397 -398 // returns false if the packet could not be sent (e.g. target host down) -399 if (!cn->AddWriteBuf(message)) -400 { -401 // if we're here, there was an error pending, and the send cannot proceed -402 log(DEBUG,'cn->AddWriteBuf() failed for serverrec::SendPacket(): %s',cn->GetWriteError().c_str()); -403 log(DEBUG,'Disabling connector: %s',cn->GetServerName().c_str()); -404 cn->CloseConnection(); -405 cn->SetState(STATE_DISCONNECTED); -406 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',cn->GetServerName().c_str(),cn->GetWriteError().c_str()); -407 // retry the packet along a new route so either arrival OR failure are gauranteed (bugfix) -408 return this->SendPacket(message,sendhost); -409 } -410 if (!cn->FlushWriteBuf()) -411 { -412 // if we're here the write() caused an error, we cannot proceed -413 log(DEBUG,'cn->FlushWriteBuf() failed for serverrec::SendPacket(): %s',cn->GetWriteError().c_str()); -414 log(DEBUG,'Disabling connector: %s',cn->GetServerName().c_str()); -415 cn->CloseConnection(); -416 cn->SetState(STATE_DISCONNECTED); -417 WriteOpers('*** Lost single connection to %s, link inactive and retrying: %s',cn->GetServerName().c_str(),cn->GetWriteError().c_str()); -418 // retry the packet along a new route so either arrival OR failure are gauranteed -419 return this->SendPacket(message,sendhost); -420 } -421 return true; -422 } -423 } -.fi -.SS "void serverrec::TerminateLink (char * targethost)" -.PP -Terminate a link to 'targethost' by calling the \fBircd_connector::CloseConnection\fP method. Definition at line 234 of file servers.cpp. -.PP -.nf -235 { -236 // this locates the targethost in the serverrec::connectors vector of the class, -237 // and terminates it by sending it an SQUIT token and closing its descriptor. -238 // TerminateLink with a null string causes a terminate of ALL links -239 } -.fi -.SH "Member Data Documentation" -.PP -.SS "std::vector<\fBircd_connector\fP> \fBserverrec::connectors\fP" -.PP -With a serverrec, this is a list of all established server connections. Definition at line 81 of file servers.h. -.PP -Referenced by AddIncoming(), BeginLink(), FindHost(), FlushWriteBuffers(), IsRoutable(), MeshCookie(), RecvPacket(), SendPacket(), and serverrec(). -.SS "char \fBserverrec::description\fP[MAXBUF]" -.PP -Description of the server. Definition at line 61 of file servers.h. -.SS "int \fBserverrec::hops_away\fP" -.PP -number of hops away (for quick access) Definition at line 51 of file servers.h. -.PP -Referenced by serverrec(). -.SS "bool \fBserverrec::jupiter\fP" -.PP -is a JUPE server (faked to enforce a server ban) Definition at line 57 of file servers.h. -.PP -Referenced by serverrec(). -.SS "char \fBserverrec::name\fP[MAXBUF]" -.PP -server name Definition at line 36 of file servers.h. -.PP -Referenced by serverrec(). -.SS "char \fBserverrec::nickserv\fP[NICKMAX]" -.PP -Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). Definition at line 65 of file servers.h. -.PP -Referenced by serverrec(). -.SS "long \fBserverrec::opercount\fP" -.PP -opers on server Definition at line 48 of file servers.h. -.PP -Referenced by serverrec(). -.SS "long \fBserverrec::pingtime\fP" -.PP -last ping response (ms) Definition at line 39 of file servers.h. -.PP -Referenced by serverrec(). -.SS "bool \fBserverrec::sync_soon\fP" -.PP -Definition at line 67 of file servers.h. -.PP -Referenced by serverrec(). -.SS "long \fBserverrec::usercount\fP" -.PP -non-invisible users on server Definition at line 45 of file servers.h. -.PP -Referenced by serverrec(). -.SS "long \fBserverrec::usercount_i\fP" -.PP -invisible users on server Definition at line 42 of file servers.h. -.PP -Referenced by serverrec(). -.SS "long \fBserverrec::version\fP" -.PP -ircd version Definition at line 54 of file servers.h. -.PP -Referenced by serverrec(). - -.SH "Author" -.PP -Generated automatically by Doxygen for InspIRCd from the source code. diff --git a/docs/man/man3/servers.cpp.3 b/docs/man/man3/servers.cpp.3 deleted file mode 100644 index ff4d1a736..000000000 --- a/docs/man/man3/servers.cpp.3 +++ /dev/null @@ -1,150 +0,0 @@ -.TH "servers.cpp" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*- -.ad l -.nh -.SH NAME -servers.cpp \- -.SH SYNOPSIS -.br -.PP -\fC#include 'inspircd_config.h'\fP -.br -\fC#include 'servers.h'\fP -.br -\fC#include 'inspircd.h'\fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include \fP -.br -\fC#include 'inspstring.h'\fP -.br -\fC#include 'helperfuncs.h'\fP -.br -\fC#include 'connection.h'\fP -.br - -.SS "Functions" - -.in +1c -.ti -1c -.RI "bool \fBIsRoutable\fP (std::string servername)" -.br -.ti -1c -.RI "bool \fBalready_have_sum\fP (std::string sum)" -.br -.in -1c -.SS "Variables" - -.in +1c -.ti -1c -.RI "time_t \fBTIME\fP" -.br -.ti -1c -.RI "int \fBMaxConn\fP" -.br -.ti -1c -.RI "\fBserverrec\fP * \fBme\fP [32]" -.br -.ti -1c -.RI "bool \fBhas_been_netsplit\fP" -.br -.ti -1c -.RI "std::deque< std::string > \fBxsums\fP" -.br -.in -1c -.SH "Function Documentation" -.PP -.SS "bool already_have_sum (std::string sum)" -.PP -Definition at line 425 of file servers.cpp. -.PP -References xsums. -.PP -Referenced by serverrec::RecvPacket(). -.PP -.nf -426 { -427 for (int i = 0; i < xsums.size(); i++) -428 { -429 if (xsums[i] == sum) -430 { -431 return true; -432 } -433 } -434 if (xsums.size() >= 128) -435 { -436 xsums.pop_front(); -437 } -438 xsums.push_back(sum); -439 return false; -440 } -.fi -.SS "bool IsRoutable (std::string servername)" -.PP -Definition at line 256 of file servers.cpp. -.PP -References serverrec::connectors, me, and STATE_DISCONNECTED. -.PP -Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket(). -.PP -.nf -257 { -258 int c = 0; -259 for (int x = 0; x < 32; x++) -260 if (me[x]) -261 { -262 for (int i = 0; i < me[x]->connectors.size(); i++) -263 { -264 if ((me[x]->connectors[i].GetServerName() == servername) && (me[x]->connectors[i].GetState() != STATE_DISCONNECTED)) -265 { -266 c++; -267 } -268 } -269 } -270 return (c != 0); -271 } -.fi -.SH "Variable Documentation" -.PP -.SS "bool \fBhas_been_netsplit\fP" -.PP -Definition at line 42 of file servers.cpp. -.PP -Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket(). -.SS "int \fBMaxConn\fP" -.PP -Definition at line 38 of file servers.cpp. -.PP -Referenced by serverrec::CreateListener(). -.SS "\fBserverrec\fP* \fBme\fP[32]" -.PP -Definition at line 40 of file servers.cpp. -.SS "time_t \fBTIME\fP" -.PP -Definition at line 37 of file servers.cpp. -.SS "std::deque \fBxsums\fP" -.PP -Definition at line 44 of file servers.cpp. -.PP -Referenced by already_have_sum(). -.SH "Author" -.PP -Generated automatically by Doxygen for InspIRCd from the source code. diff --git a/docs/man/man3/servers.h.3 b/docs/man/man3/servers.h.3 deleted file mode 100644 index 44c07711f..000000000 --- a/docs/man/man3/servers.h.3 +++ /dev/null @@ -1,46 +0,0 @@ -.TH "servers.h" 3 "30 May 2005" "InspIRCd" \" -*- nroff -*- -.ad l -.nh -.SH NAME -servers.h \- -.SH SYNOPSIS -.br -.PP -\fC#include 'inspircd_config.h'\fP -.br -\fC#include 'connection.h'\fP -.br -\fC#include \fP -.br -\fC#include \fP -.br - -.SS "Compounds" - -.in +1c -.ti -1c -.RI "class \fBserverrec\fP" -.br -.RI "\fIA class that defines the local server or a remote server. \fP" -.in -1c -.SS "Defines" - -.in +1c -.ti -1c -.RI "#define \fBLINK_ACTIVE\fP 1" -.br -.ti -1c -.RI "#define \fBLINK_INACTIVE\fP 0" -.br -.in -1c -.SH "Define Documentation" -.PP -.SS "#define LINK_ACTIVE 1" -.PP -Definition at line 25 of file servers.h. -.SS "#define LINK_INACTIVE 0" -.PP -Definition at line 26 of file servers.h. -.SH "Author" -.PP -Generated automatically by Doxygen for InspIRCd from the source code. diff --git a/docs/module-doc/annotated.html b/docs/module-doc/annotated.html index 953b3abef..4138116fc 100644 --- a/docs/module-doc/annotated.html +++ b/docs/module-doc/annotated.html @@ -41,7 +41,7 @@ QLineQLine class RequestUnicast message directed at a given module ServerAllows server output and query functions This class contains methods which allow a module to query the state of the irc server, and produce output to users and other servers - ServerConfig + ServerConfigThis class holds the bulk of the runtime configuration for the ircd SocketEngineThe actual socketengine class presents the same interface on all operating systems, but its private members and internal behaviour should be treated as blackboxed, and vary from system to system and upon the config settings chosen by the server admin irc::StrHashCompThis class returns true if two strings match ucrecHolds a user's modes on a channel This class associates a users privilages with a channel by creating a pointer link between a userrec and chanrec class @@ -51,7 +51,7 @@ XLineXLine is the base class for ban lines such as G lines and K lines ZLineZLine class -
Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/base_8h-source.html b/docs/module-doc/base_8h-source.html index 0f408fcca..48ac11d29 100644 --- a/docs/module-doc/base_8h-source.html +++ b/docs/module-doc/base_8h-source.html @@ -88,7 +88,7 @@ 00161 00162 #endif 00163 -
Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/base_8h.html b/docs/module-doc/base_8h.html index 96473e680..1468dbb28 100644 --- a/docs/module-doc/base_8h.html +++ b/docs/module-doc/base_8h.html @@ -68,7 +68,7 @@ This graph shows which files directly or indirectly include this file:

26 of file base.h. -
Generated on Wed Dec 14 14:49:18 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/channels_8cpp-source.html b/docs/module-doc/channels_8cpp-source.html index 64c350bcc..49355b4a8 100644 --- a/docs/module-doc/channels_8cpp-source.html +++ b/docs/module-doc/channels_8cpp-source.html @@ -196,7 +196,7 @@ 00187 { 00188 return &internal_userlist; 00189 } -
Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/channels_8cpp.html b/docs/module-doc/channels_8cpp.html index 2e0e6ea5e..996394eac 100644 --- a/docs/module-doc/channels_8cpp.html +++ b/docs/module-doc/channels_8cpp.html @@ -249,9 +249,9 @@ Referenced by chanrec::Get

-Definition at line 933 of file modules.cpp. +Definition at line 938 of file modules.cpp.

-Referenced by Server::FindModule(). +Referenced by Server::FindModule().

@@ -299,7 +299,7 @@ Referenced by Server::FindM

-Referenced by Server::FindModule(). +Referenced by Server::FindModule().

@@ -396,7 +396,7 @@ Referenced by userrec::userre -


Generated on Wed Dec 14 14:49:20 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/channels_8h-source.html b/docs/module-doc/channels_8h-source.html index 2d66f3926..b97c331ba 100644 --- a/docs/module-doc/channels_8h-source.html +++ b/docs/module-doc/channels_8h-source.html @@ -148,7 +148,7 @@ 00257 00258 #endif 00259 -
Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/channels_8h.html b/docs/module-doc/channels_8h.html index 5012b33ef..70eddfacb 100644 --- a/docs/module-doc/channels_8h.html +++ b/docs/module-doc/channels_8h.html @@ -451,7 +451,7 @@ Holds a complete invite list. Definition at line 95 of file channels.h. -
Generated on Wed Dec 14 14:49:20 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classAdmin-members.html b/docs/module-doc/classAdmin-members.html index 76da48ea6..083cbdaba 100644 --- a/docs/module-doc/classAdmin-members.html +++ b/docs/module-doc/classAdmin-members.html @@ -13,7 +13,7 @@ NameAdmin NickAdmin ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classAdmin.html b/docs/module-doc/classAdmin.html index b6052bb4f..a42bdad48 100644 --- a/docs/module-doc/classAdmin.html +++ b/docs/module-doc/classAdmin.html @@ -165,7 +165,7 @@ Definition at line 128 of
The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classBanItem-members.html b/docs/module-doc/classBanItem-members.html index f36451712..69799a6c7 100644 --- a/docs/module-doc/classBanItem-members.html +++ b/docs/module-doc/classBanItem-members.html @@ -14,7 +14,7 @@ set_timeHostItem ~classbase()classbase [inline] ~HostItem()HostItem [inline, virtual] -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classBanItem.html b/docs/module-doc/classBanItem.html index e716b98cd..a05193b22 100644 --- a/docs/module-doc/classBanItem.html +++ b/docs/module-doc/classBanItem.html @@ -30,7 +30,7 @@ A subclass of HostItem designed to h

Definition at line 52 of file channels.h.


The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classBoolSet-members.html b/docs/module-doc/classBoolSet-members.html index fa5588cd5..3b044c3fe 100644 --- a/docs/module-doc/classBoolSet-members.html +++ b/docs/module-doc/classBoolSet-members.html @@ -17,7 +17,7 @@ operator|(BoolSet other)BoolSet Set(int number)BoolSet Unset(int number)BoolSet -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classBoolSet.html b/docs/module-doc/classBoolSet.html index 8b69968c0..067b3beb3 100644 --- a/docs/module-doc/classBoolSet.html +++ b/docs/module-doc/classBoolSet.html @@ -405,7 +405,7 @@ Definition at line 106 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classConfigReader-members.html b/docs/module-doc/classConfigReader-members.html index c38b6e130..06a8d7d5d 100644 --- a/docs/module-doc/classConfigReader-members.html +++ b/docs/module-doc/classConfigReader-members.html @@ -24,7 +24,7 @@ Verify()ConfigReader ~classbase()classbase [inline] ~ConfigReader()ConfigReader -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classConfigReader.html b/docs/module-doc/classConfigReader.html index f5da7b3a4..24e0048aa 100644 --- a/docs/module-doc/classConfigReader.html +++ b/docs/module-doc/classConfigReader.html @@ -73,7 +73,7 @@ It may either be instantiated with one parameter or none. Constructing the class

-Definition at line 1525 of file modules.h.


Constructor & Destructor Documentation

+Definition at line 1529 of file modules.h.

Constructor & Destructor Documentation

@@ -102,16 +102,16 @@ Default constructor.

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

-Definition at line 734 of file modules.cpp. +Definition at line 739 of file modules.cpp.

-References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.

00735 {
-00736         Config->ClearStack();
-00737         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-00738         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-00739         this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
-00740         if (!this->readerror)
-00741                 this->error = CONF_FILE_NOT_FOUND;
-00742 }
+References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
00740 {
+00741         Config->ClearStack();
+00742         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+00743         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+00744         this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog);
+00745         if (!this->readerror)
+00746                 this->error = CONF_FILE_NOT_FOUND;
+00747 }
 

@@ -146,16 +146,16 @@ Overloaded constructor.

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

-Definition at line 754 of file modules.cpp. +Definition at line 759 of file modules.cpp.

-References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.

00755 {
-00756         Config->ClearStack();
-00757         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
-00758         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
-00759         this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
-00760         if (!this->readerror)
-00761                 this->error = CONF_FILE_NOT_FOUND;
-00762 };
+References cache, ServerConfig::ClearStack(), CONF_FILE_NOT_FOUND, error, errorlog, ServerConfig::LoadConf(), and readerror.
00760 {
+00761         Config->ClearStack();
+00762         this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out);
+00763         this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out);
+00764         this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog);
+00765         if (!this->readerror)
+00766                 this->error = CONF_FILE_NOT_FOUND;
+00767 };
 

@@ -189,14 +189,14 @@ Default destructor.

This method destroys the ConfigReader class.

-Definition at line 745 of file modules.cpp. +Definition at line 750 of file modules.cpp.

-References cache, and errorlog.

00746 {
-00747         if (this->cache)
-00748                 delete this->cache;
-00749         if (this->errorlog)
-00750                 delete this->errorlog;
-00751 }
+References cache, and errorlog.
00751 {
+00752         if (this->cache)
+00753                 delete this->cache;
+00754         if (this->errorlog)
+00755                 delete this->errorlog;
+00756 }
 

@@ -241,38 +241,38 @@ Dumps the list of errors in a config file to an output location.

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.

-Definition at line 833 of file modules.cpp. +Definition at line 838 of file modules.cpp.

-References errorlog, connection::fd, and userrec::nick.

00834 {
-00835         if (bail)
-00836         {
-00837                 printf("There were errors in your configuration:\n%s",errorlog->str().c_str());
-00838                 exit(0);
-00839         }
-00840         else
+References errorlog, connection::fd, and userrec::nick.
00839 {
+00840         if (bail)
 00841         {
-00842                 char dataline[1024];
-00843                 if (user)
-00844                 {
-00845                         WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick);
-00846                         while (!errorlog->eof())
-00847                         {
-00848                                 errorlog->getline(dataline,1024);
-00849                                 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline);
-00850                         }
-00851                 }
-00852                 else
-00853                 {
-00854                         WriteOpers("There were errors in the configuration file:",user->nick);
-00855                         while (!errorlog->eof())
-00856                         {
-00857                                 errorlog->getline(dataline,1024);
-00858                                 WriteOpers(dataline);
-00859                         }
-00860                 }
-00861                 return;
-00862         }
-00863 }
+00842                 printf("There were errors in your configuration:\n%s",errorlog->str().c_str());
+00843                 exit(0);
+00844         }
+00845         else
+00846         {
+00847                 char dataline[1024];
+00848                 if (user)
+00849                 {
+00850                         WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick);
+00851                         while (!errorlog->eof())
+00852                         {
+00853                                 errorlog->getline(dataline,1024);
+00854                                 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline);
+00855                         }
+00856                 }
+00857                 else
+00858                 {
+00859                         WriteOpers("There were errors in the configuration file:",user->nick);
+00860                         while (!errorlog->eof())
+00861                         {
+00862                                 errorlog->getline(dataline,1024);
+00863                                 WriteOpers(dataline);
+00864                         }
+00865                 }
+00866                 return;
+00867         }
+00868 }
 

@@ -307,11 +307,11 @@ Counts the number of times a given tag appears in the config file.

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

-Definition at line 866 of file modules.cpp. +Definition at line 871 of file modules.cpp.

-References cache, and ServerConfig::EnumConf().

00867 {
-00868         return Config->EnumConf(cache,tag.c_str());
-00869 }
+References cache, and ServerConfig::EnumConf().
00872 {
+00873         return Config->EnumConf(cache,tag.c_str());
+00874 }
 

@@ -355,11 +355,11 @@ Returns the number of items within a tag.

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.

-Definition at line 871 of file modules.cpp. +Definition at line 876 of file modules.cpp.

-References cache, and ServerConfig::EnumValues().

00872 {
-00873         return Config->EnumValues(cache, tag.c_str(), index);
-00874 }
+References cache, and ServerConfig::EnumValues().
00877 {
+00878         return Config->EnumValues(cache, tag.c_str(), index);
+00879 }
 

@@ -393,13 +393,13 @@ Returns the last error to occur.

Valid errors can be found by looking in modules.h. Any nonzero value indicates an error condition. A call to GetError() resets the error flag back to 0.

-Definition at line 826 of file modules.cpp. +Definition at line 831 of file modules.cpp.

-References error.

00827 {
-00828         long olderr = this->error;
-00829         this->error = 0;
-00830         return olderr;
-00831 }
+References error.
00832 {
+00833         long olderr = this->error;
+00834         this->error = 0;
+00835         return olderr;
+00836 }
 

@@ -449,23 +449,23 @@ Retrieves a boolean value from the config file.

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.

-Definition at line 780 of file modules.cpp. -

-References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00781 {
-00782         char val[MAXBUF];
-00783         char t[MAXBUF];
-00784         char n[MAXBUF];
-00785         strlcpy(t,tag.c_str(),MAXBUF);
-00786         strlcpy(n,name.c_str(),MAXBUF);
-00787         int res = Config->ReadConf(cache,t,n,index,val);
-00788         if (!res)
-00789         {
-00790                 this->error = CONF_VALUE_NOT_FOUND;
-00791                 return false;
-00792         }
-00793         std::string s = val;
-00794         return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1"));
-00795 }
+Definition at line 785 of file modules.cpp.
+

+References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00786 {
+00787         char val[MAXBUF];
+00788         char t[MAXBUF];
+00789         char n[MAXBUF];
+00790         strlcpy(t,tag.c_str(),MAXBUF);
+00791         strlcpy(n,name.c_str(),MAXBUF);
+00792         int res = Config->ReadConf(cache,t,n,index,val);
+00793         if (!res)
+00794         {
+00795                 this->error = CONF_VALUE_NOT_FOUND;
+00796                 return false;
+00797         }
+00798         std::string s = val;
+00799         return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1"));
+00800 }
 

@@ -521,35 +521,35 @@ Retrieves an integer value from the config file.

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 GetError() 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 GetError() will return CONF_NOT_UNSIGNED

-Definition at line 797 of file modules.cpp. -

-References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00798 {
-00799         char val[MAXBUF];
-00800         char t[MAXBUF];
-00801         char n[MAXBUF];
-00802         strlcpy(t,tag.c_str(),MAXBUF);
-00803         strlcpy(n,name.c_str(),MAXBUF);
-00804         int res = Config->ReadConf(cache,t,n,index,val);
-00805         if (!res)
-00806         {
-00807                 this->error = CONF_VALUE_NOT_FOUND;
-00808                 return 0;
-00809         }
-00810         for (unsigned int i = 0; i < strlen(val); i++)
+Definition at line 802 of file modules.cpp.
+

+References cache, CONF_NOT_A_NUMBER, CONF_NOT_UNSIGNED, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00803 {
+00804         char val[MAXBUF];
+00805         char t[MAXBUF];
+00806         char n[MAXBUF];
+00807         strlcpy(t,tag.c_str(),MAXBUF);
+00808         strlcpy(n,name.c_str(),MAXBUF);
+00809         int res = Config->ReadConf(cache,t,n,index,val);
+00810         if (!res)
 00811         {
-00812                 if (!isdigit(val[i]))
-00813                 {
-00814                         this->error = CONF_NOT_A_NUMBER;
-00815                         return 0;
-00816                 }
-00817         }
-00818         if ((needs_unsigned) && (atoi(val)<0))
-00819         {
-00820                 this->error = CONF_NOT_UNSIGNED;
-00821                 return 0;
+00812                 this->error = CONF_VALUE_NOT_FOUND;
+00813                 return 0;
+00814         }
+00815         for (unsigned int i = 0; i < strlen(val); i++)
+00816         {
+00817                 if (!isdigit(val[i]))
+00818                 {
+00819                         this->error = CONF_NOT_A_NUMBER;
+00820                         return 0;
+00821                 }
 00822         }
-00823         return atoi(val);
-00824 }
+00823         if ((needs_unsigned) && (atoi(val)<0))
+00824         {
+00825                 this->error = CONF_NOT_UNSIGNED;
+00826                 return 0;
+00827         }
+00828         return atoi(val);
+00829 }
 

@@ -599,22 +599,22 @@ Retrieves a value from the config file.

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

-Definition at line 764 of file modules.cpp. -

-References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00765 {
-00766         char val[MAXBUF];
-00767         char t[MAXBUF];
-00768         char n[MAXBUF];
-00769         strlcpy(t,tag.c_str(),MAXBUF);
-00770         strlcpy(n,name.c_str(),MAXBUF);
-00771         int res = Config->ReadConf(cache,t,n,index,val);
-00772         if (!res)
-00773         {
-00774                 this->error = CONF_VALUE_NOT_FOUND;
-00775                 return "";
-00776         }
-00777         return val;
-00778 }
+Definition at line 769 of file modules.cpp.
+

+References cache, CONF_VALUE_NOT_FOUND, error, and ServerConfig::ReadConf().

00770 {
+00771         char val[MAXBUF];
+00772         char t[MAXBUF];
+00773         char n[MAXBUF];
+00774         strlcpy(t,tag.c_str(),MAXBUF);
+00775         strlcpy(n,name.c_str(),MAXBUF);
+00776         int res = Config->ReadConf(cache,t,n,index,val);
+00777         if (!res)
+00778         {
+00779                 this->error = CONF_VALUE_NOT_FOUND;
+00780                 return "";
+00781         }
+00782         return val;
+00783 }
 

@@ -648,11 +648,11 @@ Returns true if a config file is valid.

This method is partially implemented and will only return false if the config file does not exist or could not be opened.

-Definition at line 876 of file modules.cpp. +Definition at line 881 of file modules.cpp.

-References readerror.

00877 {
-00878         return this->readerror;
-00879 }
+References readerror.
00882 {
+00883         return this->readerror;
+00884 }
 

@@ -683,9 +683,9 @@ The contents of the configuration file This protected member should never be acc

It will contain a pointer to the configuration file data with unneeded data (such as comments) stripped from it.

-Definition at line 1533 of file modules.h. +Definition at line 1537 of file modules.h.

-Referenced by ConfigReader(), Enumerate(), EnumerateValues(), ReadFlag(), ReadInteger(), ReadValue(), and ~ConfigReader(). +Referenced by ConfigReader(), Enumerate(), EnumerateValues(), ReadFlag(), ReadInteger(), ReadValue(), and ~ConfigReader().

@@ -710,9 +710,9 @@ Referenced by ConfigReader(

-Definition at line 1538 of file modules.h. +Definition at line 1542 of file modules.h.

-Referenced by ConfigReader(), GetError(), ReadFlag(), ReadInteger(), and ReadValue(). +Referenced by ConfigReader(), GetError(), ReadFlag(), ReadInteger(), and ReadValue().

@@ -737,9 +737,9 @@ Referenced by ConfigReader(

-Definition at line 1534 of file modules.h. +Definition at line 1538 of file modules.h.

-Referenced by ConfigReader(), DumpErrors(), and ~ConfigReader(). +Referenced by ConfigReader(), DumpErrors(), and ~ConfigReader().

@@ -766,14 +766,14 @@ Used to store errors.

-Definition at line 1537 of file modules.h. +Definition at line 1541 of file modules.h.

-Referenced by ConfigReader(), and Verify(). +Referenced by ConfigReader(), and Verify().


The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classConnectClass-members.html b/docs/module-doc/classConnectClass-members.html index c038bba90..8526cd42f 100644 --- a/docs/module-doc/classConnectClass-members.html +++ b/docs/module-doc/classConnectClass-members.html @@ -19,7 +19,7 @@ thresholdConnectClass typeConnectClass ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classConnectClass.html b/docs/module-doc/classConnectClass.html index 9a47bc371..eca316bed 100644 --- a/docs/module-doc/classConnectClass.html +++ b/docs/module-doc/classConnectClass.html @@ -363,7 +363,7 @@ Definition at line 53 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classDNS-members.html b/docs/module-doc/classDNS-members.html index f9ad9c12f..a42729e56 100644 --- a/docs/module-doc/classDNS-members.html +++ b/docs/module-doc/classDNS-members.html @@ -36,7 +36,7 @@ SetNS(std::string dnsserver)DNS tDNS [private] ~DNS()DNS -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classDNS.html b/docs/module-doc/classDNS.html index 34132e93b..8e6422155 100644 --- a/docs/module-doc/classDNS.html +++ b/docs/module-doc/classDNS.html @@ -961,7 +961,7 @@ Definition at line 41 of file
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classELine-members.html b/docs/module-doc/classELine-members.html index 53219dd60..059ffbd77 100644 --- a/docs/module-doc/classELine-members.html +++ b/docs/module-doc/classELine-members.html @@ -15,7 +15,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classELine.html b/docs/module-doc/classELine.html index 9930e3e49..0e6a9d2bb 100644 --- a/docs/module-doc/classELine.html +++ b/docs/module-doc/classELine.html @@ -59,7 +59,7 @@ Definition at line 93 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classEvent-members.html b/docs/module-doc/classEvent-members.html index 58be64f3b..38fa1817c 100644 --- a/docs/module-doc/classEvent-members.html +++ b/docs/module-doc/classEvent-members.html @@ -18,7 +18,7 @@ sourceEvent [protected] ~classbase()classbase [inline] ~ModuleMessage()ModuleMessage [inline, virtual] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classEvent.html b/docs/module-doc/classEvent.html index 92cb6514f..345726b9e 100644 --- a/docs/module-doc/classEvent.html +++ b/docs/module-doc/classEvent.html @@ -354,7 +354,7 @@ Referenced by GetSource()
The documentation for this class was generated from the following files:
-
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExemptItem-members.html b/docs/module-doc/classExemptItem-members.html index 82d6c61cb..19c71af5a 100644 --- a/docs/module-doc/classExemptItem-members.html +++ b/docs/module-doc/classExemptItem-members.html @@ -14,7 +14,7 @@ set_timeHostItem ~classbase()classbase [inline] ~HostItem()HostItem [inline, virtual] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExemptItem.html b/docs/module-doc/classExemptItem.html index ee474bfa8..7e9604702 100644 --- a/docs/module-doc/classExemptItem.html +++ b/docs/module-doc/classExemptItem.html @@ -30,7 +30,7 @@ A subclass of HostItem designed to h

Definition at line 60 of file channels.h.


The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExtMode-members.html b/docs/module-doc/classExtMode-members.html index 91bc4f1bd..256a367de 100644 --- a/docs/module-doc/classExtMode-members.html +++ b/docs/module-doc/classExtMode-members.html @@ -16,7 +16,7 @@ params_when_onExtMode typeExtMode ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExtMode.html b/docs/module-doc/classExtMode.html index 9e99d9982..b884de563 100644 --- a/docs/module-doc/classExtMode.html +++ b/docs/module-doc/classExtMode.html @@ -258,7 +258,7 @@ Definition at line 240 of
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExtensible-members.html b/docs/module-doc/classExtensible-members.html index 517c60378..605569d09 100644 --- a/docs/module-doc/classExtensible-members.html +++ b/docs/module-doc/classExtensible-members.html @@ -14,7 +14,7 @@ GetExtList(std::deque< std::string > &list)Extensible Shrink(std::string key)Extensible ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classExtensible.html b/docs/module-doc/classExtensible.html index 70253eef4..981e24c9d 100644 --- a/docs/module-doc/classExtensible.html +++ b/docs/module-doc/classExtensible.html @@ -236,7 +236,7 @@ Definition at line 55 of fil
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classFileReader-members.html b/docs/module-doc/classFileReader-members.html index 23fad510f..59000b532 100644 --- a/docs/module-doc/classFileReader-members.html +++ b/docs/module-doc/classFileReader-members.html @@ -17,7 +17,7 @@ LoadFile(std::string filename)FileReader ~classbase()classbase [inline] ~FileReader()FileReader -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classFileReader.html b/docs/module-doc/classFileReader.html index 04c1c960b..68ee50110 100644 --- a/docs/module-doc/classFileReader.html +++ b/docs/module-doc/classFileReader.html @@ -53,7 +53,7 @@ This class contains methods for read-only manipulation of a text file in memory.

-Definition at line 1614 of file modules.h.


Constructor & Destructor Documentation

+Definition at line 1618 of file modules.h.

Constructor & Destructor Documentation

@@ -82,8 +82,8 @@ Default constructor.

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

-Definition at line 889 of file modules.cpp.

00890 {
-00891 }
+Definition at line 894 of file modules.cpp.
00895 {
+00896 }
 

@@ -118,13 +118,13 @@ Secondary constructor.

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

-Definition at line 882 of file modules.cpp. +Definition at line 887 of file modules.cpp.

-References fc.

00883 {
-00884         file_cache c;
-00885         readfile(c,filename.c_str());
-00886         this->fc = c;
-00887 }
+References fc.
00888 {
+00889         file_cache c;
+00890         readfile(c,filename.c_str());
+00891         this->fc = c;
+00892 }
 

@@ -158,8 +158,8 @@ Default destructor.

This deletes the memory allocated to the file.

-Definition at line 901 of file modules.cpp.

00902 {
-00903 }
+Definition at line 906 of file modules.cpp.
00907 {
+00908 }
 

@@ -194,18 +194,18 @@ Returns true if the file exists This function will return false if the file coul

-Definition at line 905 of file modules.cpp. -

-References fc.

00906 {
-00907         if (fc.size() == 0)
-00908         {
-00909                 return(false);
-00910         }
-00911         else
-00912         {
-00913                 return(true);
-00914         }
-00915 }
+Definition at line 910 of file modules.cpp.
+

+References fc.

00911 {
+00912         if (fc.size() == 0)
+00913         {
+00914                 return(false);
+00915         }
+00916         else
+00917         {
+00918                 return(true);
+00919         }
+00920 }
 

@@ -239,11 +239,11 @@ Returns the size of the file in lines.

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

-Definition at line 924 of file modules.cpp. +Definition at line 929 of file modules.cpp.

-References fc.

00925 {
-00926         return fc.size();
-00927 }
+References fc.
00930 {
+00931         return fc.size();
+00932 }
 

@@ -278,13 +278,13 @@ Retrieve one line from the file.

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

-Definition at line 917 of file modules.cpp. +Definition at line 922 of file modules.cpp.

-References fc.

00918 {
-00919         if ((x<0) || ((unsigned)x>fc.size()))
-00920                 return "";
-00921         return fc[x];
-00922 }
+References fc.
00923 {
+00924         if ((x<0) || ((unsigned)x>fc.size()))
+00925                 return "";
+00926         return fc[x];
+00927 }
 

@@ -319,13 +319,13 @@ Used to load a file.

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

-Definition at line 893 of file modules.cpp. +Definition at line 898 of file modules.cpp.

-References fc.

00894 {
-00895         file_cache c;
-00896         readfile(c,filename.c_str());
-00897         this->fc = c;
-00898 }
+References fc.
00899 {
+00900         file_cache c;
+00901         readfile(c,filename.c_str());
+00902         this->fc = c;
+00903 }
 

@@ -354,14 +354,14 @@ References fc.

-Definition at line 1616 of file modules.h. +Definition at line 1620 of file modules.h.

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


The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classGLine-members.html b/docs/module-doc/classGLine-members.html index 92111ef1a..43c9572d7 100644 --- a/docs/module-doc/classGLine-members.html +++ b/docs/module-doc/classGLine-members.html @@ -15,7 +15,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classGLine.html b/docs/module-doc/classGLine.html index d566431e5..dbc12a0c4 100644 --- a/docs/module-doc/classGLine.html +++ b/docs/module-doc/classGLine.html @@ -62,7 +62,7 @@ Definition at line 84 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classHostItem-members.html b/docs/module-doc/classHostItem-members.html index bb46359fe..0c1672c7b 100644 --- a/docs/module-doc/classHostItem-members.html +++ b/docs/module-doc/classHostItem-members.html @@ -14,7 +14,7 @@ set_timeHostItem ~classbase()classbase [inline] ~HostItem()HostItem [inline, virtual] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classHostItem.html b/docs/module-doc/classHostItem.html index 519603b37..068f139c1 100644 --- a/docs/module-doc/classHostItem.html +++ b/docs/module-doc/classHostItem.html @@ -186,7 +186,7 @@ Definition at line 39 of
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInspSocket-members.html b/docs/module-doc/classInspSocket-members.html index ba8d98eaf..16d215b62 100644 --- a/docs/module-doc/classInspSocket-members.html +++ b/docs/module-doc/classInspSocket-members.html @@ -39,7 +39,7 @@ timeout_endInspSocket [private] Write(std::string data)InspSocket [virtual] ~InspSocket()InspSocket [virtual] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInspSocket.html b/docs/module-doc/classInspSocket.html index 755cb1ca0..7118cc2c1 100644 --- a/docs/module-doc/classInspSocket.html +++ b/docs/module-doc/classInspSocket.html @@ -1465,7 +1465,7 @@ Referenced by InspSocket()
The documentation for this class was generated from the following files:
-
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInviteItem-members.html b/docs/module-doc/classInviteItem-members.html index 87fc586f3..2baba93c3 100644 --- a/docs/module-doc/classInviteItem-members.html +++ b/docs/module-doc/classInviteItem-members.html @@ -14,7 +14,7 @@ set_timeHostItem ~classbase()classbase [inline] ~HostItem()HostItem [inline, virtual] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInviteItem.html b/docs/module-doc/classInviteItem.html index da205d319..ffdb356d1 100644 --- a/docs/module-doc/classInviteItem.html +++ b/docs/module-doc/classInviteItem.html @@ -30,7 +30,7 @@ A subclass of HostItem designed to h

Definition at line 68 of file channels.h.


The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInvited-members.html b/docs/module-doc/classInvited-members.html index 4483039d5..a96f81b00 100644 --- a/docs/module-doc/classInvited-members.html +++ b/docs/module-doc/classInvited-members.html @@ -10,7 +10,7 @@ channelInvited classbase()classbase [inline] ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classInvited.html b/docs/module-doc/classInvited.html index 37855ae92..311975774 100644 --- a/docs/module-doc/classInvited.html +++ b/docs/module-doc/classInvited.html @@ -59,7 +59,7 @@ Referenced by userrec::Invite
The documentation for this class was generated from the following file:
-
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classKLine-members.html b/docs/module-doc/classKLine-members.html index 6fde9c7a7..81ea4c30e 100644 --- a/docs/module-doc/classKLine-members.html +++ b/docs/module-doc/classKLine-members.html @@ -15,7 +15,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classKLine.html b/docs/module-doc/classKLine.html index 15da3a497..967be95a3 100644 --- a/docs/module-doc/classKLine.html +++ b/docs/module-doc/classKLine.html @@ -62,7 +62,7 @@ Definition at line 73 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModeParameter-members.html b/docs/module-doc/classModeParameter-members.html index 9b29ec516..83b9cd56f 100644 --- a/docs/module-doc/classModeParameter-members.html +++ b/docs/module-doc/classModeParameter-members.html @@ -12,7 +12,7 @@ modeModeParameter parameterModeParameter ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModeParameter.html b/docs/module-doc/classModeParameter.html index 09feccdd7..1504087e2 100644 --- a/docs/module-doc/classModeParameter.html +++ b/docs/module-doc/classModeParameter.html @@ -119,7 +119,7 @@ Referenced by chanrec::Set
The documentation for this class was generated from the following file:
-
Generated on Wed Dec 14 14:49:31 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:49 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModule-members.html b/docs/module-doc/classModule-members.html index 83252cb19..6afedb7df 100644 --- a/docs/module-doc/classModule-members.html +++ b/docs/module-doc/classModule-members.html @@ -89,7 +89,7 @@ ProtoSendMode(void *opaque, int target_type, void *target, std::string modeline)Module [virtual] ~classbase()classbase [inline] ~Module()Module [virtual] -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModule.html b/docs/module-doc/classModule.html index 64c512801..da8947364 100644 --- a/docs/module-doc/classModule.html +++ b/docs/module-doc/classModule.html @@ -4570,7 +4570,7 @@ Definition at line 289
The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModuleFactory-members.html b/docs/module-doc/classModuleFactory-members.html index ebc250794..7525c56fc 100644 --- a/docs/module-doc/classModuleFactory-members.html +++ b/docs/module-doc/classModuleFactory-members.html @@ -12,7 +12,7 @@ ModuleFactory()ModuleFactory [inline] ~classbase()classbase [inline] ~ModuleFactory()ModuleFactory [inline, virtual] -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModuleFactory.html b/docs/module-doc/classModuleFactory.html index 9efbcdbde..b85431e98 100644 --- a/docs/module-doc/classModuleFactory.html +++ b/docs/module-doc/classModuleFactory.html @@ -36,7 +36,7 @@ This is to allow for modules to create many different variants of

-Definition at line 1669 of file modules.h.


Constructor & Destructor Documentation

+Definition at line 1673 of file modules.h.

Constructor & Destructor Documentation

@@ -63,7 +63,7 @@ Definition at line 1669 o

-Definition at line 1672 of file modules.h.

01672 { }
+Definition at line 1676 of file modules.h.
01676 { }
 

@@ -95,7 +95,7 @@ Definition at line 1672 o

-Definition at line 1673 of file modules.h.

01673 { }
+Definition at line 1677 of file modules.h.
01677 { }
 

@@ -134,7 +134,7 @@ Your inherited class of ModuleFactory must return a pointer to your modules.h -


Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModuleMessage-members.html b/docs/module-doc/classModuleMessage-members.html index 6344dc7ec..c6b0fe1f9 100644 --- a/docs/module-doc/classModuleMessage-members.html +++ b/docs/module-doc/classModuleMessage-members.html @@ -11,7 +11,7 @@
-
Send()=0ModuleMessage [pure virtual]
~classbase()classbase [inline]
~ModuleMessage()ModuleMessage [inline, virtual]


Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classModuleMessage.html b/docs/module-doc/classModuleMessage.html index 15e7cf853..314d2a5be 100644 --- a/docs/module-doc/classModuleMessage.html +++ b/docs/module-doc/classModuleMessage.html @@ -101,7 +101,7 @@ Implemented in Request, an
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classQLine-members.html b/docs/module-doc/classQLine-members.html index 42df673a3..943dc5c4e 100644 --- a/docs/module-doc/classQLine-members.html +++ b/docs/module-doc/classQLine-members.html @@ -16,7 +16,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classQLine.html b/docs/module-doc/classQLine.html index 871d00756..e40dfe340 100644 --- a/docs/module-doc/classQLine.html +++ b/docs/module-doc/classQLine.html @@ -92,7 +92,7 @@ Definition at line 119 of f
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classRequest-members.html b/docs/module-doc/classRequest-members.html index 8a4b1022f..9db0d82ad 100644 --- a/docs/module-doc/classRequest-members.html +++ b/docs/module-doc/classRequest-members.html @@ -18,7 +18,7 @@ sourceRequest [protected] ~classbase()classbase [inline] ~ModuleMessage()ModuleMessage [inline, virtual] -
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classRequest.html b/docs/module-doc/classRequest.html index 7be89f99e..bab6382ae 100644 --- a/docs/module-doc/classRequest.html +++ b/docs/module-doc/classRequest.html @@ -360,7 +360,7 @@ Referenced by GetSource()
The documentation for this class was generated from the following files:
-
Generated on Wed Dec 14 14:49:32 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classServer-members.html b/docs/module-doc/classServer-members.html index 5e1b87e29..20ed4fe2c 100644 --- a/docs/module-doc/classServer-members.html +++ b/docs/module-doc/classServer-members.html @@ -36,6 +36,7 @@ FindModule(std::string name)Server [virtual] FindNick(std::string nick)Server [virtual] GetAdmin()Server [virtual] + GetConfig()Server GetNetworkName()Server [virtual] GetServerDescription()Server [virtual] GetServerName()Server [virtual] @@ -67,7 +68,7 @@ UserToPseudo(userrec *user, std::string message)Server [virtual] ~classbase()classbase [inline] ~Server()Server [virtual] -
Generated on Wed Dec 14 14:49:33 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classServer.html b/docs/module-doc/classServer.html index 8b98f4482..065d3386c 100644 --- a/docs/module-doc/classServer.html +++ b/docs/module-doc/classServer.html @@ -27,6 +27,9 @@ Inheritance diagram for Server:

virtual ~Server ()  Default destructor.
+ServerConfigGetConfig () + + Obtains a pointer to the server's ServerConfig object.
virtual void SendOpers (std::string s)  Sends text to all opers.
@@ -331,11 +334,11 @@ This allows modules to add extra commands into the command table. You must place typedef void (handlerfunc) (char**, int, userrec*); ... void handle_kill(char **parameters, int pcnt, userrec *user)

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.

-Definition at line 414 of file modules.cpp. +Definition at line 419 of file modules.cpp.

-References createcommand().

00415 {
-00416         createcommand(cmd,f,flags,minparams,source);
-00417 }
+References createcommand().
00420 {
+00421         createcommand(cmd,f,flags,minparams,source);
+00422 }
 

@@ -391,11 +394,11 @@ Adds a E-line The E-line is enforced as soon as it is added.

The duration must be in seconds, however you can use the Server::CalcDuration 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.

-Definition at line 658 of file modules.cpp. +Definition at line 663 of file modules.cpp.

-References add_eline().

00659 {
-00660         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00661 }
+References add_eline().
00664 {
+00665         add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00666 }
 

@@ -435,14 +438,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

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 Server::Find 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.

-Definition at line 582 of file modules.cpp. +Definition at line 587 of file modules.cpp.

-References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.

00583 {
-00584         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
-00585         if (res)
-00586                 ModeMakeList(modechar);
-00587         return res;
-00588 }
+References DoAddExtendedMode(), ModeMakeList(), and MT_CHANNEL.
00588 {
+00589         bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1);
+00590         if (res)
+00591                 ModeMakeList(modechar);
+00592         return res;
+00593 }
 

@@ -504,34 +507,34 @@ Adds an extended mode letter which is parsed by a module.

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.

-Definition at line 554 of file modules.cpp. -

-References DEBUG, DoAddExtendedMode(), MT_CLIENT, and MT_SERVER.

00555 {
-00556         if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
-00557         {
-00558                 if (type == MT_SERVER)
-00559                 {
-00560                         log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion");
-00561                         return false;
-00562                 }
-00563                 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
+Definition at line 559 of file modules.cpp.
+

+References DEBUG, DoAddExtendedMode(), MT_CLIENT, and MT_SERVER.

00560 {
+00561         if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z')))
+00562         {
+00563                 if (type == MT_SERVER)
 00564                 {
-00565                         log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported");
+00565                         log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion");
 00566                         return false;
 00567                 }
-00568                 if ((params_when_on>1) || (params_when_off>1))
+00568                 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT))
 00569                 {
-00570                         log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported");
+00570                         log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported");
 00571                         return false;
 00572                 }
-00573                 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
-00574         }
-00575         else
-00576         {
-00577                 log(DEBUG,"*** API ERROR *** Muppet modechar detected.");
-00578         }
-00579         return false;
-00580 }
+00573                 if ((params_when_on>1) || (params_when_off>1))
+00574                 {
+00575                         log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported");
+00576                         return false;
+00577                 }
+00578                 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off);
+00579         }
+00580         else
+00581         {
+00582                 log(DEBUG,"*** API ERROR *** Muppet modechar detected.");
+00583         }
+00584         return false;
+00585 }
 

@@ -587,11 +590,11 @@ Adds a G-line The G-line is propogated to all of the servers in the mesh and enf

The duration must be in seconds, however you can use the Server::CalcDuration 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.

-Definition at line 638 of file modules.cpp. +Definition at line 643 of file modules.cpp.

-References add_gline().

00639 {
-00640         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00641 }
+References add_gline().
00644 {
+00645         add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00646 }
 

@@ -647,11 +650,11 @@ Adds a K-line The K-line is enforced as soon as it is added.

The duration must be in seconds, however you can use the Server::CalcDuration 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.

-Definition at line 653 of file modules.cpp. +Definition at line 658 of file modules.cpp.

-References add_kline().

00654 {
-00655         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
-00656 }
+References add_kline().
00659 {
+00660         add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str());
+00661 }
 

@@ -707,11 +710,11 @@ Adds a Q-line The Q-line is propogated to all of the servers in the mesh and enf

The duration must be in seconds, however you can use the Server::CalcDuration 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.

-Definition at line 643 of file modules.cpp. +Definition at line 648 of file modules.cpp.

-References add_qline().

00644 {
-00645         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
-00646 }
+References add_qline().
00649 {
+00650         add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str());
+00651 }
 

@@ -806,11 +809,11 @@ Adds a Z-line The Z-line is propogated to all of the servers in the mesh and enf

The duration must be in seconds, however you can use the Server::CalcDuration 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.

-Definition at line 648 of file modules.cpp. +Definition at line 653 of file modules.cpp.

-References add_zline().

00649 {
-00650         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
-00651 }
+References add_zline().
00654 {
+00655         add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str());
+00656 }
 

@@ -845,11 +848,11 @@ Calculates a duration This method will take a string containing a formatted dura

"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.

-Definition at line 688 of file modules.cpp. +Definition at line 693 of file modules.cpp.

-References duration().

00689 {
-00690         return duration(delta.c_str());
-00691 }
+References duration().
00694 {
+00695         return duration(delta.c_str());
+00696 }
 

@@ -906,9 +909,9 @@ Calls the handler for a command, either implemented by the core or by another mo 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
) 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 AddCommand(). 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.

-Definition at line 399 of file modules.cpp.

00400 {
-00401         call_handler(commandname.c_str(),parameters,pcnt,user);
-00402 }
+Definition at line 404 of file modules.cpp.
00405 {
+00406         call_handler(commandname.c_str(),parameters,pcnt,user);
+00407 }
 

@@ -952,11 +955,11 @@ Change GECOS (fullname) of a user.

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.

-Definition at line 497 of file modules.cpp. +Definition at line 502 of file modules.cpp.

-References ChangeName().

00498 {
-00499         ChangeName(user,gecos.c_str());
-00500 }
+References ChangeName().
00503 {
+00504         ChangeName(user,gecos.c_str());
+00505 }
 

@@ -1000,11 +1003,11 @@ Change displayed hostname of a user.

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.

-Definition at line 492 of file modules.cpp. +Definition at line 497 of file modules.cpp.

-References ChangeDisplayedHost().

00493 {
-00494         ChangeDisplayedHost(user,host.c_str());
-00495 }
+References ChangeDisplayedHost().
00498 {
+00499         ChangeDisplayedHost(user,host.c_str());
+00500 }
 

@@ -1048,9 +1051,9 @@ Forces a user nickchange.

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.

-Definition at line 384 of file modules.cpp.

00385 {
-00386         force_nickchange(user,nickname.c_str());
-00387 }
+Definition at line 389 of file modules.cpp.
00390 {
+00391         force_nickchange(user,nickname.c_str());
+00392 }
 

@@ -1094,11 +1097,11 @@ Attempts to look up a user's privilages on a channel.

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

-Definition at line 522 of file modules.cpp. +Definition at line 527 of file modules.cpp.

-References cmode().

00523 {
-00524         return cmode(User,Chan);
-00525 }
+References cmode().
00528 {
+00529         return cmode(User,Chan);
+00530 }
 

@@ -1142,11 +1145,11 @@ Returns true if two users share a common channel.

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

-Definition at line 470 of file modules.cpp. +Definition at line 475 of file modules.cpp.

-References common_channels().

00471 {
-00472         return (common_channels(u1,u2) != 0);
-00473 }
+References common_channels().
00476 {
+00477         return (common_channels(u1,u2) != 0);
+00478 }
 

@@ -1181,9 +1184,9 @@ Returns a count of the number of users on a channel.

This will NEVER be 0, as if the chanrec exists, it will have at least one user in the channel.

-Definition at line 590 of file modules.cpp.

00591 {
-00592         return usercount(c);
-00593 }
+Definition at line 595 of file modules.cpp.
00596 {
+00597         return usercount(c);
+00598 }
 

@@ -1218,11 +1221,11 @@ Deletes a local E-Line.

-Definition at line 683 of file modules.cpp. +Definition at line 688 of file modules.cpp.

-References del_eline().

00684 {
-00685         return del_eline(hostmask.c_str());
-00686 }
+References del_eline().
00689 {
+00690         return del_eline(hostmask.c_str());
+00691 }
 

@@ -1257,11 +1260,11 @@ Deletes a G-Line from all servers on the mesh.

-Definition at line 663 of file modules.cpp. +Definition at line 668 of file modules.cpp.

-References del_gline().

00664 {
-00665         return del_gline(hostmask.c_str());
-00666 }
+References del_gline().
00669 {
+00670         return del_gline(hostmask.c_str());
+00671 }
 

@@ -1296,11 +1299,11 @@ Deletes a local K-Line.

-Definition at line 678 of file modules.cpp. +Definition at line 683 of file modules.cpp.

-References del_kline().

00679 {
-00680         return del_kline(hostmask.c_str());
-00681 }
+References del_kline().
00684 {
+00685         return del_kline(hostmask.c_str());
+00686 }
 

@@ -1335,11 +1338,11 @@ Deletes a Q-Line from all servers on the mesh.

-Definition at line 668 of file modules.cpp. +Definition at line 673 of file modules.cpp.

-References del_qline().

00669 {
-00670         return del_qline(nickname.c_str());
-00671 }
+References del_qline().
00674 {
+00675         return del_qline(nickname.c_str());
+00676 }
 

@@ -1374,18 +1377,18 @@ Deletes a class derived from InspSocke

-Definition at line 332 of file modules.cpp. +Definition at line 337 of file modules.cpp.

-References module_sockets.

00333 {
-00334         for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
-00335         {
-00336                 if (*a == sock)
-00337                 {
-00338                         module_sockets.erase(a);
-00339                         return;
-00340                 }
-00341         }
-00342 }
+References module_sockets.
00338 {
+00339         for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
+00340         {
+00341                 if (*a == sock)
+00342                 {
+00343                         module_sockets.erase(a);
+00344                         return;
+00345                 }
+00346         }
+00347 }
 

@@ -1420,11 +1423,11 @@ Deletes a Z-Line from all servers on the mesh.

-Definition at line 673 of file modules.cpp. +Definition at line 678 of file modules.cpp.

-References del_zline().

00674 {
-00675         return del_zline(ipaddr.c_str());
-00676 }
+References del_zline().
00679 {
+00680         return del_zline(ipaddr.c_str());
+00681 }
 

@@ -1459,9 +1462,9 @@ Attempts to look up a channel and return a pointer to it.

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

-Definition at line 517 of file modules.cpp.

00518 {
-00519         return FindChan(channel.c_str());
-00520 }
+Definition at line 522 of file modules.cpp.
00523 {
+00524         return FindChan(channel.c_str());
+00525 }
 

@@ -1496,9 +1499,9 @@ Attempts to look up a nick using the file descriptor associated with that nick.

This function will return NULL if the file descriptor is not associated with a valid user.

-Definition at line 512 of file modules.cpp.

00513 {
-00514         return (socket < 65536 ? fd_ref_table[socket] : NULL);
-00515 }
+Definition at line 517 of file modules.cpp.
00518 {
+00519         return (socket < 65536 ? fd_ref_table[socket] : NULL);
+00520 }
 

@@ -1533,18 +1536,18 @@ This function finds a module by name.

You must provide the filename of the module. If the module cannot be found (is not loaded) the function will return NULL.

-Definition at line 722 of file modules.cpp. -

-References MODCOUNT, ServerConfig::module_names, and modules.

00723 {
-00724         for (int i = 0; i <= MODCOUNT; i++)
-00725         {
-00726                 if (Config->module_names[i] == name)
-00727                 {
-00728                         return modules[i];
-00729                 }
-00730         }
-00731         return NULL;
-00732 }
+Definition at line 727 of file modules.cpp.
+

+References MODCOUNT, ServerConfig::module_names, and modules.

00728 {
+00729         for (int i = 0; i <= MODCOUNT; i++)
+00730         {
+00731                 if (Config->module_names[i] == name)
+00732                 {
+00733                         return modules[i];
+00734                 }
+00735         }
+00736         return NULL;
+00737 }
 

@@ -1579,9 +1582,9 @@ Attempts to look up a nick and return a pointer to it.

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

-Definition at line 507 of file modules.cpp.

00508 {
-00509         return Find(nick);
-00510 }
+Definition at line 512 of file modules.cpp.
00513 {
+00514         return Find(nick);
+00515 }
 

@@ -1615,9 +1618,45 @@ Returns the information of the server as returned by the /ADMIN command.

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

-Definition at line 547 of file modules.cpp.

00548 {
-00549         return Admin(getadminname(),getadminemail(),getadminnick());
-00550 }
+Definition at line 552 of file modules.cpp.
00553 {
+00554         return Admin(getadminname(),getadminemail(),getadminnick());
+00555 }
+
+

+ + + +

+ + + + +
+ + + + + + + + +
ServerConfig * Server::GetConfig  ) 
+
+ + + + @@ -1651,9 +1690,9 @@ Returns the network name, global to all linked servers.

-Definition at line 537 of file modules.cpp.

00538 {
-00539         return getnetworkname();
-00540 }
+Definition at line 542 of file modules.cpp.
00543 {
+00544         return getnetworkname();
+00545 }
 

@@ -1687,9 +1726,9 @@ Returns the server description string of the local server.

-Definition at line 542 of file modules.cpp.

00543 {
-00544         return getserverdesc();
-00545 }
+Definition at line 547 of file modules.cpp.
00548 {
+00549         return getserverdesc();
+00550 }
 

@@ -1723,9 +1762,9 @@ Returns the server name of the server where the module is loaded.

-Definition at line 532 of file modules.cpp.

00533 {
-00534         return getservername();
-00535 }
+Definition at line 537 of file modules.cpp.
00538 {
+00539         return getservername();
+00540 }
 

@@ -1760,19 +1799,19 @@ Fetches the userlist of a channel.

This function must be here and not a member of userrec or chanrec due to include constraints.

-Definition at line 372 of file modules.cpp. -

-References chanrec::GetUsers().

00373 {
-00374         chanuserlist userl;
-00375         userl.clear();
-00376         std::vector<char*> *list = chan->GetUsers();
-00377         for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
-00378         {
-00379                 char* o = *i;
-00380                 userl.push_back((userrec*)o);
-00381         }
-00382         return userl;
-00383 }
+Definition at line 377 of file modules.cpp.
+

+References chanrec::GetUsers().

00378 {
+00379         chanuserlist userl;
+00380         userl.clear();
+00381         std::vector<char*> *list = chan->GetUsers();
+00382         for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++)
+00383         {
+00384                 char* o = *i;
+00385                 userl.push_back((userrec*)o);
+00386         }
+00387         return userl;
+00388 }
 

@@ -1807,11 +1846,11 @@ Returns true if a nick is valid.

Nicks for unregistered connections will return false.

-Definition at line 502 of file modules.cpp. +Definition at line 507 of file modules.cpp.

-References isnick().

00503 {
-00504         return (isnick(nick.c_str()) != 0);
-00505 }
+References isnick().
00508 {
+00509         return (isnick(nick.c_str()) != 0);
+00510 }
 

@@ -1855,11 +1894,11 @@ Checks if a user is on a channel.

This function will return true or false to indicate if user 'User' is on channel 'Chan'.

-Definition at line 527 of file modules.cpp. +Definition at line 532 of file modules.cpp.

-References has_channel().

00528 {
-00529         return has_channel(User,Chan);
-00530 }
+References has_channel().
00533 {
+00534         return has_channel(User,Chan);
+00535 }
 

@@ -1894,11 +1933,11 @@ Returns true if the servername you give is ulined.

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.

-Definition at line 394 of file modules.cpp. +Definition at line 399 of file modules.cpp.

-References is_uline().

00395 {
-00396         return is_uline(server.c_str());
-00397 }
+References is_uline().
00400 {
+00401         return is_uline(server.c_str());
+00402 }
 

@@ -1933,33 +1972,33 @@ Returns true if a nick!ident string is correctly formatted, false if otherwise.

-Definition at line 693 of file modules.cpp.

00694 {
-00695         const char* dest = mask.c_str();
-00696         if (strchr(dest,'!')==0)
-00697                 return false;
-00698         if (strchr(dest,'@')==0)
-00699                 return false;
-00700         for (unsigned int i = 0; i < strlen(dest); i++)
-00701                 if (dest[i] < 32)
-00702                         return false;
-00703         for (unsigned int i = 0; i < strlen(dest); i++)
-00704                 if (dest[i] > 126)
-00705                         return false;
-00706         unsigned int c = 0;
-00707         for (unsigned int i = 0; i < strlen(dest); i++)
-00708                 if (dest[i] == '!')
-00709                         c++;
-00710         if (c>1)
-00711                 return false;
-00712         c = 0;
-00713         for (unsigned int i = 0; i < strlen(dest); i++)
-00714                 if (dest[i] == '@')
-00715                         c++;
-00716         if (c>1)
-00717                 return false;
-00718 
-00719         return true;
-00720 }
+Definition at line 698 of file modules.cpp.
00699 {
+00700         const char* dest = mask.c_str();
+00701         if (strchr(dest,'!')==0)
+00702                 return false;
+00703         if (strchr(dest,'@')==0)
+00704                 return false;
+00705         for (unsigned int i = 0; i < strlen(dest); i++)
+00706                 if (dest[i] < 32)
+00707                         return false;
+00708         for (unsigned int i = 0; i < strlen(dest); i++)
+00709                 if (dest[i] > 126)
+00710                         return false;
+00711         unsigned int c = 0;
+00712         for (unsigned int i = 0; i < strlen(dest); i++)
+00713                 if (dest[i] == '!')
+00714                         c++;
+00715         if (c>1)
+00716                 return false;
+00717         c = 0;
+00718         for (unsigned int i = 0; i < strlen(dest); i++)
+00719                 if (dest[i] == '@')
+00720                         c++;
+00721         if (c>1)
+00722                 return false;
+00723 
+00724         return true;
+00725 }
 

@@ -2007,9 +2046,9 @@ Definition at line 693

-Definition at line 404 of file modules.cpp.

00405 {
-00406         return is_valid_cmd(commandname.c_str(), pcnt, user);
-00407 }
+Definition at line 409 of file modules.cpp.
00410 {
+00411         return is_valid_cmd(commandname.c_str(), pcnt, user);
+00412 }
 

@@ -2059,9 +2098,9 @@ Forces a user to join a channel.

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.

-Definition at line 362 of file modules.cpp.

00363 {
-00364         return add_channel(user,cname.c_str(),key.c_str(),false);
-00365 }
+Definition at line 367 of file modules.cpp.
00368 {
+00369         return add_channel(user,cname.c_str(),key.c_str(),false);
+00370 }
 

@@ -2105,9 +2144,9 @@ Writes a log string.

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.

-Definition at line 409 of file modules.cpp.

00410 {
-00411         log(level,"%s",s.c_str());
-00412 }
+Definition at line 414 of file modules.cpp.
00415 {
+00416         log(level,"%s",s.c_str());
+00417 }
 

@@ -2151,12 +2190,12 @@ Matches text against a glob pattern.

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.

-Definition at line 349 of file modules.cpp.

00350 {
-00351         char literal[MAXBUF],pattern[MAXBUF];
-00352         strlcpy(literal,sliteral.c_str(),MAXBUF);
-00353         strlcpy(pattern,spattern.c_str(),MAXBUF);
-00354         return match(literal,pattern);
-00355 }
+Definition at line 354 of file modules.cpp.
00355 {
+00356         char literal[MAXBUF],pattern[MAXBUF];
+00357         strlcpy(literal,sliteral.c_str(),MAXBUF);
+00358         strlcpy(pattern,spattern.c_str(),MAXBUF);
+00359         return match(literal,pattern);
+00360 }
 

@@ -2206,9 +2245,9 @@ Forces a user to part a channel.

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.

-Definition at line 367 of file modules.cpp.

00368 {
-00369         return del_channel(user,cname.c_str(),reason.c_str(),false);
-00370 }
+Definition at line 372 of file modules.cpp.
00373 {
+00374         return del_channel(user,cname.c_str(),reason.c_str(),false);
+00375 }
 

@@ -2258,36 +2297,36 @@ This user takes one user, and switches their file descriptor with another user,

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.

-Definition at line 608 of file modules.cpp. -

-References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, and chanrec::topicset.

00609 {
-00610         zombie->fd = alive->fd;
-00611         alive->fd = FD_MAGIC_NUMBER;
-00612         alive->ClearBuffer();
-00613         Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick);
-00614         kill_link(alive,message.c_str());
-00615         fd_ref_table[zombie->fd] = zombie;
-00616         for (unsigned int i = 0; i < zombie->chans.size(); i++)
-00617         {
-00618                 if (zombie->chans[i].channel != NULL)
-00619                 {
-00620                         if (zombie->chans[i].channel->name)
-00621                         {
-00622                                 chanrec* Ptr = zombie->chans[i].channel;
-00623                                 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name);
-00624                                 if (Ptr->topicset)
-00625                                 {
-00626                                         WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic);
-00627                                         WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
-00628                                 }
-00629                                 userlist(zombie,Ptr);
-00630                                 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name);
-00631 
-00632                         }
-00633                 }
-00634         }
-00635         return true;
-00636 }
+Definition at line 613 of file modules.cpp.
+

+References userrec::chans, userrec::ClearBuffer(), connection::fd, FD_MAGIC_NUMBER, connection::host, userrec::ident, chanrec::name, userrec::nick, chanrec::setby, chanrec::topic, and chanrec::topicset.

00614 {
+00615         zombie->fd = alive->fd;
+00616         alive->fd = FD_MAGIC_NUMBER;
+00617         alive->ClearBuffer();
+00618         Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick);
+00619         kill_link(alive,message.c_str());
+00620         fd_ref_table[zombie->fd] = zombie;
+00621         for (unsigned int i = 0; i < zombie->chans.size(); i++)
+00622         {
+00623                 if (zombie->chans[i].channel != NULL)
+00624                 {
+00625                         if (zombie->chans[i].channel->name)
+00626                         {
+00627                                 chanrec* Ptr = zombie->chans[i].channel;
+00628                                 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name);
+00629                                 if (Ptr->topicset)
+00630                                 {
+00631                                         WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic);
+00632                                         WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset);
+00633                                 }
+00634                                 userlist(zombie,Ptr);
+00635                                 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name);
+00636 
+00637                         }
+00638                 }
+00639         }
+00640         return true;
+00641 }
 

@@ -2333,9 +2372,9 @@ To the user, it will appear as if they typed /QUIT themselves, except for the fa WARNING!

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.

-Definition at line 389 of file modules.cpp.

00390 {
-00391         kill_link(user,reason.c_str());
-00392 }
+Definition at line 394 of file modules.cpp.
00395 {
+00396         kill_link(user,reason.c_str());
+00397 }
 

@@ -2416,9 +2455,9 @@ Sends a line of text down a TCP/IP socket.

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

-Definition at line 424 of file modules.cpp.

00425 {
-00426         Write(Socket,"%s",s.c_str());
-00427 }
+Definition at line 429 of file modules.cpp.
00430 {
+00431         Write(Socket,"%s",s.c_str());
+00432 }
 

@@ -2474,16 +2513,16 @@ Sends text from a user to a channel (mulicast).

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

-Definition at line 458 of file modules.cpp.

00459 {
-00460         if (IncludeSender)
-00461         {
-00462                 WriteChannel(Channel,User,"%s",s.c_str());
-00463         }
-00464         else
-00465         {
-00466                 ChanExceptSender(Channel,User,"%s",s.c_str());
-00467         }
-00468 }
+Definition at line 463 of file modules.cpp.
00464 {
+00465         if (IncludeSender)
+00466         {
+00467                 WriteChannel(Channel,User,"%s",s.c_str());
+00468         }
+00469         else
+00470         {
+00471                 ChanExceptSender(Channel,User,"%s",s.c_str());
+00472         }
+00473 }
 

@@ -2533,9 +2572,9 @@ Writes text to a channel, but from a server, including all.

This can be used to send server notices to a group of users.

-Definition at line 453 of file modules.cpp.

00454 {
-00455         WriteChannelWithServ((char*)ServName.c_str(), Channel, "%s", text.c_str());
-00456 }
+Definition at line 458 of file modules.cpp.
00459 {
+00460         WriteChannelWithServ((char*)ServName.c_str(), Channel, "%s", text.c_str());
+00461 }
 

@@ -2585,16 +2624,16 @@ Sends text from a user to one or more channels (mulicast).

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

-Definition at line 475 of file modules.cpp.

00476 {
-00477         if (IncludeSender)
-00478         {
-00479                 WriteCommon(User,"%s",text.c_str());
-00480         }
-00481         else
-00482         {
-00483                 WriteCommonExcept(User,"%s",text.c_str());
-00484         }
-00485 }
+Definition at line 480 of file modules.cpp.
00481 {
+00482         if (IncludeSender)
+00483         {
+00484                 WriteCommon(User,"%s",text.c_str());
+00485         }
+00486         else
+00487         {
+00488                 WriteCommonExcept(User,"%s",text.c_str());
+00489         }
+00490 }
 

@@ -2644,9 +2683,9 @@ Sends text from a user to a socket.

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

-Definition at line 434 of file modules.cpp.

00435 {
-00436         WriteFrom(Socket,User,"%s",s.c_str());
-00437 }
+Definition at line 439 of file modules.cpp.
00440 {
+00441         WriteFrom(Socket,User,"%s",s.c_str());
+00442 }
 

@@ -2703,11 +2742,11 @@ modes[2] = user->nick;

Srv->SendMode(modes,3,user);

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!

-Definition at line 419 of file modules.cpp. +Definition at line 424 of file modules.cpp.

-References server_mode().

00420 {
-00421         server_mode(parameters,pcnt,user);
-00422 }
+References server_mode().
00425 {
+00426         server_mode(parameters,pcnt,user);
+00427 }
 

@@ -2742,9 +2781,9 @@ Sends text to all opers.

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

-Definition at line 344 of file modules.cpp.

00345 {
-00346         WriteOpers("%s",s.c_str());
-00347 }
+Definition at line 349 of file modules.cpp.
00350 {
+00351         WriteOpers("%s",s.c_str());
+00352 }
 

@@ -2788,9 +2827,9 @@ Sends text from the server to a socket.

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

-Definition at line 429 of file modules.cpp.

00430 {
-00431         WriteServ(Socket,"%s",s.c_str());
-00432 }
+Definition at line 434 of file modules.cpp.
00435 {
+00436         WriteServ(Socket,"%s",s.c_str());
+00437 }
 

@@ -2844,20 +2883,20 @@ The format will become:

:localserver TEXT

Which is useful for numerics and server notices to single users, etc.

-Definition at line 439 of file modules.cpp. +Definition at line 444 of file modules.cpp.

-References connection::fd.

00440 {
-00441         if (!Source)
-00442         {
-00443                 // if source is NULL, then the message originates from the local server
-00444                 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str());
-00445         }
-00446         else
+References connection::fd.
00445 {
+00446         if (!Source)
 00447         {
-00448                 // otherwise it comes from the user specified
-00449                 WriteTo(Source,Dest,"%s",s.c_str());
+00448                 // if source is NULL, then the message originates from the local server
+00449                 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str());
 00450         }
-00451 }
+00451         else
+00452         {
+00453                 // otherwise it comes from the user specified
+00454                 WriteTo(Source,Dest,"%s",s.c_str());
+00455         }
+00456 }
 

@@ -2909,9 +2948,9 @@ These can be RFC specified modes such as +i, or module provided modes, including Serv->SendToModeMask("xi", WM_OR, "m00");

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.

-Definition at line 357 of file modules.cpp.

00358 {
-00359         WriteMode(modes.c_str(),flags,"%s",text.c_str());
-00360 }
+Definition at line 362 of file modules.cpp.
00363 {
+00364         WriteMode(modes.c_str(),flags,"%s",text.c_str());
+00365 }
 

@@ -2955,9 +2994,9 @@ Sends a WALLOPS message.

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

-Definition at line 487 of file modules.cpp.

00488 {
-00489         WriteWallOps(User,false,"%s",text.c_str());
-00490 }
+Definition at line 492 of file modules.cpp.
00493 {
+00494         WriteWallOps(User,false,"%s",text.c_str());
+00495 }
 

@@ -3001,18 +3040,18 @@ Remove a user's connection to the irc server, but leave their client in existenc

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.

-Definition at line 596 of file modules.cpp. -

-References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, and userrec::ident.

00597 {
-00598         unsigned int old_fd = user->fd;
-00599         user->fd = FD_MAGIC_NUMBER;
-00600         user->ClearBuffer();
-00601         Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str());
-00602         SE->DelFd(old_fd);
-00603         shutdown(old_fd,2);
-00604         close(old_fd);
-00605         return true;
-00606 }
+Definition at line 601 of file modules.cpp.
+

+References userrec::ClearBuffer(), SocketEngine::DelFd(), connection::fd, FD_MAGIC_NUMBER, connection::host, and userrec::ident.

00602 {
+00603         unsigned int old_fd = user->fd;
+00604         user->fd = FD_MAGIC_NUMBER;
+00605         user->ClearBuffer();
+00606         Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str());
+00607         SE->DelFd(old_fd);
+00608         shutdown(old_fd,2);
+00609         close(old_fd);
+00610         return true;
+00611 }
 

@@ -3020,7 +3059,7 @@ References userrec::ClearBuff

+   + + +

+Obtains a pointer to the server's ServerConfig object. +

+The ServerConfig object contains most of the configuration data of the IRC server, as read from the config file by the core. +

+Definition at line 332 of file modules.cpp.

00333 {
+00334         return Config;
+00335 }
 


The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:33 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:50 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classServerConfig-members.html b/docs/module-doc/classServerConfig-members.html index 927a91cc5..5e30ba1de 100644 --- a/docs/module-doc/classServerConfig-members.html +++ b/docs/module-doc/classServerConfig-members.html @@ -56,7 +56,7 @@ SoftLimitServerConfig unlimitcoreServerConfig ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classServerConfig.html b/docs/module-doc/classServerConfig.html index 7991b1f19..c359b2c7d 100644 --- a/docs/module-doc/classServerConfig.html +++ b/docs/module-doc/classServerConfig.html @@ -5,7 +5,10 @@ -

ServerConfig Class Reference

#include <inspircd_io.h> +

ServerConfig Class Reference

This class holds the bulk of the runtime configuration for the ircd. +More... +

+#include <inspircd_io.h>

Inheritance diagram for ServerConfig:

Inheritance graph
@@ -22,8 +25,10 @@ Inheritance diagram for ServerConfig:

void ClearStack () + Clears the include stack in preperation for a Read() call.
void Read (bool bail, userrec *user) + Read the entire configuration into memory and initialize this class.
bool LoadConf (const char *filename, std::stringstream *target, std::stringstream *errorstream) int ConfValue (char *tag, char *var, int index, char *result, std::stringstream *config) @@ -39,89 +44,128 @@ Inheritance diagram for ServerConfig:


Public Attributes

char ServerName [MAXBUF] + Holds the server name of the local server as defined by the administrator.
char Network [MAXBUF] char ServerDesc [MAXBUF] + Holds the description of the local server as defined by the administrator.
char AdminName [MAXBUF] + Holds the admin's name, for output in the /ADMIN command.
char AdminEmail [MAXBUF] + Holds the email address of the admin, for output in the /ADMIN command.
char AdminNick [MAXBUF] + Holds the admin's nickname, for output in the /ADMIN command.
char diepass [MAXBUF] + The admin-configured /DIE password.
char restartpass [MAXBUF] + The admin-configured /RESTART password.
char motd [MAXBUF] + The pathname and filename of the message of the day file, as defined by the administrator.
char rules [MAXBUF] + The pathname and filename of the rules file, as defined by the administrator.
char PrefixQuit [MAXBUF] + The quit prefix in use, or an empty string.
char DieValue [MAXBUF] + The last string found within a <die> tag, or an empty string.
char DNSServer [MAXBUF] + The DNS server to use for DNS queries.
char DisabledCommands [MAXBUF] + This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers.
char ModPath [1024] + The full path to the modules directory.
char MyExecutable [1024] + The full pathname to the executable, as given in argv[0] when the program starts.
FILE * log_file + The file handle of the logfile.
bool nofork + If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground.
bool unlimitcore + 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.
bool AllowHalfop + If this value is true, halfops have been enabled in the configuration file.
int dns_timeout + The number of seconds the DNS subsystem will wait before timing out any request.
int NetBufferSize + The size of the read() buffer in the user handling code, used to read data into a user's recvQ.
int MaxConn + The value to be used for listen() backlogs as default.
unsigned int SoftLimit + The soft limit value assigned to the irc server.
int MaxWhoResults + The maximum number of /WHO results allowed in any single /WHO command.
int debugging + True if the DEBUG loglevel is selected.
int LogLevel + The loglevel in use by the IRC server.
int DieDelay + How many seconds to wait before exiting the program when /DIE is correctly issued.
char addrs [MAXBUF][255] + A list of IP addresses the server is listening on.
file_cache MOTD + The MOTD file, cached in a file_cache type.
file_cache RULES + The RULES file, cached in a file_cache type.
char PID [1024] + The full pathname and filename of the PID file as defined in the configuration.
std::stringstream config_f + The parsed configuration file as a stringstream.
ClassVector Classes + The connect classes in use by the IRC server.
std::vector< std::stringmodule_names + A list of module names (names only, no paths) which are currently loaded by the server.

Private Member Functions

int fgets_safe (char *buffer, size_t maxsize, FILE *&file) + Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g.
std::string ConfProcess (char *buffer, long linenumber, std::stringstream *errorstream, bool &error, std::string filename) + This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured.

Private Attributes

std::vector< std::stringinclude_stack + This variable holds the names of all files included from the main one.

Detailed Description

- +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.

-Definition at line 34 of file inspircd_io.h.


Constructor & Destructor Documentation

+Definition at line 39 of file inspircd_io.h.

Constructor & Destructor Documentation

@@ -174,9 +218,11 @@ Definition at line 34

+Clears the include stack in preperation for a Read() call. +

-Referenced by ConfigReader::ConfigReader(). +Referenced by ConfigReader::ConfigReader().

@@ -230,6 +276,8 @@ Referenced by ConfigReader: +

+This private method processes one line of configutation, appending errors to errorstream and setting error if an error has occured.

@@ -364,7 +412,7 @@ Referenced by userrec::HasPer

-Referenced by ConfigReader::Enumerate(). +Referenced by ConfigReader::Enumerate().

@@ -409,7 +457,7 @@ Referenced by ConfigReader:

-Referenced by ConfigReader::EnumerateValues(). +Referenced by ConfigReader::EnumerateValues().

@@ -452,7 +500,9 @@ Referenced by ConfigReader:

- +Used by the config file subsystem to safely read a C-style string without dependency upon any certain style of linefeed, e.g. +

+it can read both windows and UNIX style linefeeds transparently.

@@ -497,7 +547,7 @@ Referenced by ConfigReader:

-Referenced by ConfigReader::ConfigReader(). +Referenced by ConfigReader::ConfigReader().

@@ -534,7 +584,9 @@ Referenced by ConfigReader:

- +Read the entire configuration into memory and initialize this class. +

+All other methods should be used only by the core.

Referenced by Server::RehashServer(). @@ -593,7 +645,7 @@ Referenced by Server::Rehas

-Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue(). +Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().


Member Data Documentation

@@ -617,9 +669,11 @@ Referenced by ConfigReader:

+A list of IP addresses the server is listening on. +

-Definition at line 70 of file inspircd_io.h. +Definition at line 216 of file inspircd_io.h.

@@ -642,9 +696,11 @@ Definition at line 70

+Holds the email address of the admin, for output in the /ADMIN command. +

-Definition at line 46 of file inspircd_io.h. +Definition at line 89 of file inspircd_io.h.

@@ -667,9 +723,11 @@ Definition at line 46

+Holds the admin's name, for output in the /ADMIN command. +

-Definition at line 45 of file inspircd_io.h. +Definition at line 84 of file inspircd_io.h.

@@ -692,9 +750,11 @@ Definition at line 45

+Holds the admin's nickname, for output in the /ADMIN command. +

-Definition at line 47 of file inspircd_io.h. +Definition at line 94 of file inspircd_io.h.

@@ -717,9 +777,11 @@ Definition at line 47

+If this value is true, halfops have been enabled in the configuration file. +

-Definition at line 61 of file inspircd_io.h. +Definition at line 171 of file inspircd_io.h.

@@ -742,9 +804,11 @@ Definition at line 61

+The connect classes in use by the IRC server. +

-Definition at line 75 of file inspircd_io.h. +Definition at line 242 of file inspircd_io.h.

@@ -767,9 +831,11 @@ Definition at line 75

- +The parsed configuration file as a stringstream.

-Definition at line 74 of file inspircd_io.h. +You should pass this to any configuration methods of this class, and not access it directly. It is recommended that modules use ConfigReader instead which provides a simpler abstraction of configuration files. +

+Definition at line 238 of file inspircd_io.h.

Referenced by userrec::HasPermission(). @@ -794,9 +860,11 @@ Referenced by userrec::HasPer

+True if the DEBUG loglevel is selected. +

-Definition at line 67 of file inspircd_io.h. +Definition at line 202 of file inspircd_io.h.

@@ -819,9 +887,11 @@ Definition at line 67

+How many seconds to wait before exiting the program when /DIE is correctly issued. +

-Definition at line 69 of file inspircd_io.h. +Definition at line 211 of file inspircd_io.h.

@@ -844,9 +914,11 @@ Definition at line 69

+The admin-configured /DIE password. +

-Definition at line 48 of file inspircd_io.h. +Definition at line 98 of file inspircd_io.h.

@@ -869,9 +941,11 @@ Definition at line 48

+The last string found within a <die> tag, or an empty string. +

-Definition at line 53 of file inspircd_io.h. +Definition at line 121 of file inspircd_io.h.

@@ -894,9 +968,11 @@ Definition at line 53

+This variable contains a space-seperated list of commands which are disabled by the administrator of the server for non-opers. +

-Definition at line 55 of file inspircd_io.h. +Definition at line 131 of file inspircd_io.h.

@@ -919,9 +995,11 @@ Definition at line 55

+The number of seconds the DNS subsystem will wait before timing out any request. +

-Definition at line 62 of file inspircd_io.h. +Definition at line 176 of file inspircd_io.h.

@@ -944,9 +1022,11 @@ Definition at line 62

+The DNS server to use for DNS queries. +

-Definition at line 54 of file inspircd_io.h. +Definition at line 125 of file inspircd_io.h.

@@ -969,9 +1049,11 @@ Definition at line 54

- +This variable holds the names of all files included from the main one.

-Definition at line 37 of file inspircd_io.h. +This is used to make sure that no files are recursively included. +

+Definition at line 47 of file inspircd_io.h.

@@ -994,9 +1076,11 @@ Definition at line 37

- +The file handle of the logfile. +

+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!).

-Definition at line 58 of file inspircd_io.h. +Definition at line 151 of file inspircd_io.h.

@@ -1019,9 +1103,11 @@ Definition at line 58

+The loglevel in use by the IRC server. +

-Definition at line 68 of file inspircd_io.h. +Definition at line 206 of file inspircd_io.h.

@@ -1044,9 +1130,11 @@ Definition at line 68

+The value to be used for listen() backlogs as default. +

-Definition at line 64 of file inspircd_io.h. +Definition at line 187 of file inspircd_io.h.

@@ -1069,9 +1157,11 @@ Definition at line 64

+The maximum number of /WHO results allowed in any single /WHO command. +

-Definition at line 66 of file inspircd_io.h. +Definition at line 198 of file inspircd_io.h.

@@ -1094,9 +1184,11 @@ Definition at line 66

- +The full path to the modules directory. +

+This is either set at compile time, or overridden in the configuration file via the <options> tag.

-Definition at line 56 of file inspircd_io.h. +Definition at line 138 of file inspircd_io.h.

@@ -1119,11 +1211,13 @@ Definition at line 56

+A list of module names (names only, no paths) which are currently loaded by the server. +

-Definition at line 76 of file inspircd_io.h. +Definition at line 247 of file inspircd_io.h.

-Referenced by Server::FindModule(). +Referenced by Server::FindModule().

@@ -1146,9 +1240,11 @@ Referenced by Server::FindM

+The MOTD file, cached in a file_cache type. +

-Definition at line 71 of file inspircd_io.h. +Definition at line 220 of file inspircd_io.h.

@@ -1171,9 +1267,11 @@ Definition at line 71

+The pathname and filename of the message of the day file, as defined by the administrator. +

-Definition at line 50 of file inspircd_io.h. +Definition at line 107 of file inspircd_io.h.

@@ -1196,9 +1294,11 @@ Definition at line 50

+The full pathname to the executable, as given in argv[0] when the program starts. +

-Definition at line 57 of file inspircd_io.h. +Definition at line 143 of file inspircd_io.h.

@@ -1221,9 +1321,11 @@ Definition at line 57

+The size of the read() buffer in the user handling code, used to read data into a user's recvQ. +

-Definition at line 63 of file inspircd_io.h. +Definition at line 182 of file inspircd_io.h.

@@ -1248,7 +1350,7 @@ Definition at line 63

-Definition at line 43 of file inspircd_io.h. +Definition at line 74 of file inspircd_io.h.

@@ -1271,9 +1373,11 @@ Definition at line 43

+If this value is true, the owner of the server specified -nofork on the command line, causing the daemon to stay in the foreground. +

-Definition at line 59 of file inspircd_io.h. +Definition at line 158 of file inspircd_io.h.

@@ -1296,9 +1400,11 @@ Definition at line 59

+The full pathname and filename of the PID file as defined in the configuration. +

-Definition at line 73 of file inspircd_io.h. +Definition at line 229 of file inspircd_io.h.

@@ -1321,9 +1427,11 @@ Definition at line 73

+The quit prefix in use, or an empty string. +

-Definition at line 52 of file inspircd_io.h. +Definition at line 116 of file inspircd_io.h.

@@ -1346,9 +1454,11 @@ Definition at line 52

+The admin-configured /RESTART password. +

-Definition at line 49 of file inspircd_io.h. +Definition at line 102 of file inspircd_io.h.

@@ -1371,9 +1481,11 @@ Definition at line 49

+The RULES file, cached in a file_cache type. +

-Definition at line 72 of file inspircd_io.h. +Definition at line 224 of file inspircd_io.h.

@@ -1396,9 +1508,11 @@ Definition at line 72

+The pathname and filename of the rules file, as defined by the administrator. +

-Definition at line 51 of file inspircd_io.h. +Definition at line 112 of file inspircd_io.h.

@@ -1421,9 +1535,11 @@ Definition at line 51

+Holds the description of the local server as defined by the administrator. +

-Definition at line 44 of file inspircd_io.h. +Definition at line 79 of file inspircd_io.h.

@@ -1446,9 +1562,11 @@ Definition at line 44

+Holds the server name of the local server as defined by the administrator. +

-Definition at line 42 of file inspircd_io.h. +Definition at line 68 of file inspircd_io.h.

Referenced by userrec::userrec(). @@ -1473,9 +1591,11 @@ Referenced by userrec::userre

- +The soft limit value assigned to the irc server.

-Definition at line 65 of file inspircd_io.h. +The IRC server will not allow more than this number of local users. +

+Definition at line 193 of file inspircd_io.h.

@@ -1498,14 +1618,16 @@ Definition at line 65

- +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. +

+This is often used when debugging.

-Definition at line 60 of file inspircd_io.h. +Definition at line 166 of file inspircd_io.h.


The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classSocketEngine-members.html b/docs/module-doc/classSocketEngine-members.html index 920035deb..a19d6103a 100644 --- a/docs/module-doc/classSocketEngine-members.html +++ b/docs/module-doc/classSocketEngine-members.html @@ -17,7 +17,7 @@ tsSocketEngine [private] Wait(std::vector< int > &fdlist)SocketEngine ~SocketEngine()SocketEngine -
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classSocketEngine.html b/docs/module-doc/classSocketEngine.html index 96c5a96e2..772f60752 100644 --- a/docs/module-doc/classSocketEngine.html +++ b/docs/module-doc/classSocketEngine.html @@ -264,7 +264,7 @@ Definition at line 103

References DEBUG, EngineHandle, fds, ref, and X_READBIT.

-Referenced by InspSocket::Poll(), and Server::UserToPseudo().

00104 {
+Referenced by InspSocket::Poll(), and Server::UserToPseudo().
00104 {
 00105         log(DEBUG,"SocketEngine::DelFd(%d)",fd);
 00106 
 00107         if ((fd < 0) || (fd > 65535))
@@ -589,7 +589,7 @@ Referenced by Wait()
 
The documentation for this class was generated from the following files:
-
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classVersion-members.html b/docs/module-doc/classVersion-members.html index cfb859e88..807f49cea 100644 --- a/docs/module-doc/classVersion-members.html +++ b/docs/module-doc/classVersion-members.html @@ -15,7 +15,7 @@ RevisionVersion Version(int major, int minor, int revision, int build, int flags)Version ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classVersion.html b/docs/module-doc/classVersion.html index 07fa12a14..245964d99 100644 --- a/docs/module-doc/classVersion.html +++ b/docs/module-doc/classVersion.html @@ -231,7 +231,7 @@ Definition at line 116 of
The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classWhoWasUser-members.html b/docs/module-doc/classWhoWasUser-members.html index 3e9351ddc..d7492b9e1 100644 --- a/docs/module-doc/classWhoWasUser-members.html +++ b/docs/module-doc/classWhoWasUser-members.html @@ -13,7 +13,7 @@ nickWhoWasUser serverWhoWasUser signonWhoWasUser -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classWhoWasUser.html b/docs/module-doc/classWhoWasUser.html index 6fdfa0518..31b53e3e2 100644 --- a/docs/module-doc/classWhoWasUser.html +++ b/docs/module-doc/classWhoWasUser.html @@ -212,7 +212,7 @@ Definition at line 341 of f
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classXLine-members.html b/docs/module-doc/classXLine-members.html index ef2188e8e..d17c0a1c6 100644 --- a/docs/module-doc/classXLine-members.html +++ b/docs/module-doc/classXLine-members.html @@ -14,7 +14,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classXLine.html b/docs/module-doc/classXLine.html index 2f9771cb2..813b8cac1 100644 --- a/docs/module-doc/classXLine.html +++ b/docs/module-doc/classXLine.html @@ -185,7 +185,7 @@ Definition at line 53 of fi
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classZLine-members.html b/docs/module-doc/classZLine-members.html index fc8645ecf..2e483c05d 100644 --- a/docs/module-doc/classZLine-members.html +++ b/docs/module-doc/classZLine-members.html @@ -16,7 +16,7 @@ set_timeXLine sourceXLine ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classZLine.html b/docs/module-doc/classZLine.html index 84dfd5be4..769ce9807 100644 --- a/docs/module-doc/classZLine.html +++ b/docs/module-doc/classZLine.html @@ -92,7 +92,7 @@ Definition at line 108 of f
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classchanrec-members.html b/docs/module-doc/classchanrec-members.html index 11464dd07..3cc7f0f90 100644 --- a/docs/module-doc/classchanrec-members.html +++ b/docs/module-doc/classchanrec-members.html @@ -34,7 +34,7 @@ topicsetchanrec ~chanrec()chanrec [inline, virtual] ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classchanrec.html b/docs/module-doc/classchanrec.html index 808cabf95..eaa2780f0 100644 --- a/docs/module-doc/classchanrec.html +++ b/docs/module-doc/classchanrec.html @@ -398,7 +398,7 @@ Definition at line 186

References internal_userlist.

-Referenced by Server::GetUsers().

00187 {
+Referenced by Server::GetUsers().
00187 {
 00188         return &internal_userlist;
 00189 }
 
@@ -839,7 +839,7 @@ The channels name.

Definition at line 106 of file channels.h.

-Referenced by chanrec(), DelUser(), and Server::PseudoToUser(). +Referenced by chanrec(), DelUser(), and Server::PseudoToUser().

@@ -868,7 +868,7 @@ If this member is an empty string, no topic was ever set.

Definition at line 131 of file channels.h.

-Referenced by chanrec(), and Server::PseudoToUser(). +Referenced by chanrec(), and Server::PseudoToUser().

@@ -897,7 +897,7 @@ If this is an empty string, no channel topic is set.

Definition at line 120 of file channels.h.

-Referenced by chanrec(), and Server::PseudoToUser(). +Referenced by chanrec(), and Server::PseudoToUser().

@@ -926,12 +926,12 @@ If no topic was ever set, this will be equal to 127 of file channels.h.

-Referenced by chanrec(), and Server::PseudoToUser(). +Referenced by chanrec(), and Server::PseudoToUser().


The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classclassbase-members.html b/docs/module-doc/classclassbase-members.html index 970fa0896..501d7adb1 100644 --- a/docs/module-doc/classclassbase-members.html +++ b/docs/module-doc/classclassbase-members.html @@ -9,7 +9,7 @@ ageclassbase classbase()classbase [inline] ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classclassbase.html b/docs/module-doc/classclassbase.html index b5c474bf1..db3b992fd 100644 --- a/docs/module-doc/classclassbase.html +++ b/docs/module-doc/classclassbase.html @@ -150,7 +150,7 @@ Referenced by classbase().
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classcommand__t-members.html b/docs/module-doc/classcommand__t-members.html index e6a640d17..1d7a72aae 100644 --- a/docs/module-doc/classcommand__t-members.html +++ b/docs/module-doc/classcommand__t-members.html @@ -20,7 +20,7 @@ total_bytescommand_t use_countcommand_t ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classcommand__t.html b/docs/module-doc/classcommand__t.html index 4442940b4..51c0d9577 100644 --- a/docs/module-doc/classcommand__t.html +++ b/docs/module-doc/classcommand__t.html @@ -242,7 +242,7 @@ Definition at line 43 of
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classconnection-members.html b/docs/module-doc/classconnection-members.html index f2d0f5a26..cdf28dcb6 100644 --- a/docs/module-doc/classconnection-members.html +++ b/docs/module-doc/classconnection-members.html @@ -28,7 +28,7 @@ Shrink(std::string key)Extensible signonconnection ~classbase()classbase [inline] -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classconnection.html b/docs/module-doc/classconnection.html index b412af793..bf0ea2c46 100644 --- a/docs/module-doc/classconnection.html +++ b/docs/module-doc/classconnection.html @@ -258,7 +258,7 @@ File descriptor of the connection.

Definition at line 42 of file connection.h.

-Referenced by connection(), ConfigReader::DumpErrors(), Server::PseudoToUser(), Server::SendTo(), userrec::userrec(), and Server::UserToPseudo(). +Referenced by connection(), ConfigReader::DumpErrors(), Server::PseudoToUser(), Server::SendTo(), userrec::userrec(), and Server::UserToPseudo().

@@ -316,7 +316,7 @@ Not used if this is a serverrec

Definition at line 46 of file connection.h.

-Referenced by userrec::GetFullRealHost(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo(). +Referenced by userrec::GetFullRealHost(), Server::PseudoToUser(), userrec::userrec(), and Server::UserToPseudo().

@@ -524,7 +524,7 @@ Referenced by userrec::userre


The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classes.html b/docs/module-doc/classes.html index 29a5189f7..aa4fe2804 100644 --- a/docs/module-doc/classes.html +++ b/docs/module-doc/classes.html @@ -27,7 +27,7 @@ ConnectClass   
  G  
KLine   SocketEngine   ZLine   connection   GLine   
  M  

A | B | C | D | E | F | G | H | I | K | M | Q | R | S | U | V | W | X | Z

-


Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classircd__connector-members.html b/docs/module-doc/classircd__connector-members.html deleted file mode 100644 index 8d838171f..000000000 --- a/docs/module-doc/classircd__connector-members.html +++ /dev/null @@ -1,63 +0,0 @@ - - -InspIRCd: Member List - - - - -

ircd_connector Member List

This is the complete list of members for ircd_connector, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AddBuffer(std::string a)ircd_connector
addrircd_connector [private]
AddWriteBuf(std::string data)ircd_connector
ageclassbase
BufferIsComplete()ircd_connector
CheckPing()ircd_connector
classbase()classbase [inline]
ClearBuffer()ircd_connector
CloseConnection()ircd_connector
descriptionircd_connector [private]
Extend(std::string key, char *p)Extensible
fdircd_connector [private]
FlushWriteBuf()ircd_connector
GetBuffer()ircd_connector
GetDescription()ircd_connector
GetDescriptor()ircd_connector
GetExt(std::string key)Extensible
GetServerIP()ircd_connector
GetServerName()ircd_connector
GetServerPort()ircd_connector
GetState()ircd_connector
GetVersionString()ircd_connector
GetWriteError()ircd_connector
HasBufferedOutput()ircd_connector
hostircd_connector
ircd_connector()ircd_connector
ircdbufferircd_connector
MakeOutboundConnection(char *newhost, int newport)ircd_connector
nextpingircd_connector [private]
portircd_connector
repliedircd_connector [private]
ResetPing()ircd_connector
routesircd_connector
sendqircd_connector [private]
servernameircd_connector [private]
SetDescription(std::string desc)ircd_connector
SetDescriptor(int fd)ircd_connector
SetHostAddress(char *host, int port)ircd_connector [private]
SetHostAndPort(char *newhost, int newport)ircd_connector
SetServerName(std::string serv)ircd_connector
SetServerPort(int p)ircd_connector
SetState(int state)ircd_connector
SetVersionString(std::string newversion)ircd_connector
SetWriteError(std::string error)ircd_connector
Shrink(std::string key)Extensible
stateircd_connector [private]
versionircd_connector [private]
WriteErrorircd_connector [private]
~classbase()classbase [inline]

Generated on Mon May 30 05:17:18 2005 for InspIRCd by - -doxygen -1.3.3
- - diff --git a/docs/module-doc/classircd__connector.html b/docs/module-doc/classircd__connector.html deleted file mode 100644 index 930a30da1..000000000 --- a/docs/module-doc/classircd__connector.html +++ /dev/null @@ -1,1542 +0,0 @@ - - -InspIRCd: ircd_connector class Reference - - - - -

ircd_connector Class Reference

Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds. -More... -

-#include <connection.h> -

-Inheritance diagram for ircd_connector:

Inheritance graph
- - - - -
[legend]
Collaboration diagram for ircd_connector:

Collaboration graph
- - - -
[legend]
List of all members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 ircd_connector ()
 Constructor clears the sendq and initialises the fd to -1.

bool MakeOutboundConnection (char *newhost, int newport)
 Create an outbound connection to a listening socket.

std::string GetServerName ()
 Return the servername on this established connection.

void SetServerName (std::string serv)
 Set the server name of this connection.

int GetDescriptor ()
 Get the file descriptor associated with this connection.

void SetDescriptor (int fd)
 Set the file descriptor for this connection.

int GetState ()
 Get the state flags for this connection.

void SetState (int state)
 Set the state flags for this connection.

char * GetServerIP ()
 Get the ip address (not servername) associated with this connection.

std::string GetDescription ()
 Get the server description of this connection.

void SetDescription (std::string desc)
 Set the server description of this connection.

int GetServerPort ()
 Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in GetServerIP().

void SetServerPort (int p)
 Set the port used by this connection.

bool SetHostAndPort (char *newhost, int newport)
 Set both the host and the port in one operation for this connection.

void CloseConnection ()
 Close the connection by calling close() on its file descriptor This function call updates no other data.

bool AddBuffer (std::string a)
 This method adds text to the ircd connection's buffer.

bool BufferIsComplete ()
 This method returns true if the buffer contains at least one carriage return character, e.g.

void ClearBuffer ()
 This method clears the server's buffer by setting it to an empty string.

std::string GetBuffer ()
 This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok().

void SetVersionString (std::string newversion)
 This method sets the version string of the remote server.

std::string GetVersionString ()
 This method returns the version string of the remote server.

bool AddWriteBuf (std::string data)
 Adds data to the connection's sendQ to be flushed later.

bool FlushWriteBuf ()
 Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left.

void SetWriteError (std::string error)
 Sets the error string for this connection.

std::string GetWriteError ()
 Gets the error string for this connection.

bool HasBufferedOutput ()
 Returns true if there is data to be written that hasn't been sent yet.

bool CheckPing ()
 Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false.

void ResetPing ()
 Resets the ping counter.


Public Attributes

std::string ircdbuffer
 IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a
- seperator.

char host [MAXBUF]
 When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference.

int port
 When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference.

std::vector< std::string > routes
 Server names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B.


Private Member Functions

bool SetHostAddress (char *host, int port)
 PRIVATE function to set the host address and port to connect to.


Private Attributes

sockaddr_in addr
 Sockaddr of the outbound ip and port.

int fd
 File descriptor of the connection.

std::string servername
 Server name.

std::string description
 Server 'GECOS'.

char state
 State.

std::string version
 This string holds the ircd's version response.

std::string sendq
 SendQ of the outbound connector, does not have a limit.

std::string WriteError
 Write error of connection.

time_t nextping
 Time this connection was last pinged.

bool replied
 Did this connection reply to its last ping?

-

Detailed Description

-Each connection has one or more of these each represents ONE outbound connection to another ircd so each inbound has multiple outbounds. -

-A listening socket that accepts server type connections is represented by one class serverrec. Class serverrec will instantiate several objects of type ircd_connector to represent each established connection, inbound or outbound. So, to determine all linked servers you must walk through all the serverrecs that the core defines, and in each one iterate through until you find connection(s) relating to the server you want information on. The core and module API provide functions for this. -

- -

-Definition at line 56 of file connection.h.


Constructor & Destructor Documentation

-

- - - - -
- - - - - - - - - -
ircd_connector::ircd_connector  ) 
-
- - - - - -
-   - - -

-Constructor clears the sendq and initialises the fd to -1. -

-

-


Member Function Documentation

-

- - - - -
- - - - - - - - - - -
bool ircd_connector::AddBuffer std::string  a  ) 
-
- - - - - -
-   - - -

-This method adds text to the ircd connection's buffer. -

-

Parameters:
- - -
a The text to add to the buffer up to a maximum size of 1MB
-
-This buffer's maximum size is one megabyte, the method returning false if the buffer is full.

-

Returns:
True on success, false if the buffer is full or the connection is down
-
-

- - - - -
- - - - - - - - - - -
bool ircd_connector::AddWriteBuf std::string  data  ) 
-
- - - - - -
-   - - -

-Adds data to the connection's sendQ to be flushed later. -

-

Parameters:
- - -
data The data to add to the write buffer
-
-Fails if there is an error pending on the connection.

-

Returns:
True on success, false if the connection is down or the buffer is full
- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
bool ircd_connector::BufferIsComplete  ) 
-
- - - - - -
-   - - -

-This method returns true if the buffer contains at least one carriage return character, e.g. -

-one line can be read from the buffer successfully.

-

Returns:
True if there is at least one complete line waiting to be processed
-
-

- - - - -
- - - - - - - - - -
bool ircd_connector::CheckPing  ) 
-
- - - - - -
-   - - -

-Checks if the connection replied to its last ping, and if it did sends another and returns true, if not, returns false. -

-

Returns:
True if the server is still replying to pings
-
-

- - - - -
- - - - - - - - - -
void ircd_connector::ClearBuffer  ) 
-
- - - - - -
-   - - -

-This method clears the server's buffer by setting it to an empty string. -

-

-

- - - - -
- - - - - - - - - -
void ircd_connector::CloseConnection  ) 
-
- - - - - -
-   - - -

-Close the connection by calling close() on its file descriptor This function call updates no other data. -

- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
bool ircd_connector::FlushWriteBuf  ) 
-
- - - - - -
-   - - -

-Flushes as much of the data from the buffer as possible, and advances the queue pointer to what is left. -

-

Returns:
True if the flush succeeded, false if the connection is down
- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
std::string ircd_connector::GetBuffer  ) 
-
- - - - - -
-   - - -

-This method retrieves the first string from the tail end of the buffer and advances the tail end of the buffer past the returned string, in a similar manner to strtok(). -

-

Returns:
The first line of the buffer up to a carriage return
-
-

- - - - -
- - - - - - - - - -
std::string ircd_connector::GetDescription  ) 
-
- - - - - -
-   - - -

-Get the server description of this connection. -

-

Returns:
The description (GECOS) of this connection
-
-

- - - - -
- - - - - - - - - -
int ircd_connector::GetDescriptor  ) 
-
- - - - - -
-   - - -

-Get the file descriptor associated with this connection. -

-

Returns:
The file descriptor associated with this connection
-
-

- - - - -
- - - - - - - - - -
char* ircd_connector::GetServerIP  ) 
-
- - - - - -
-   - - -

-Get the ip address (not servername) associated with this connection. -

-

Returns:
The connections IP address in dotted decimal form
-
-

- - - - -
- - - - - - - - - -
std::string ircd_connector::GetServerName  ) 
-
- - - - - -
-   - - -

-Return the servername on this established connection. -

- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
int ircd_connector::GetServerPort  ) 
-
- - - - - -
-   - - -

-Get the port number being used for this connection If the connection is outbound this will be the remote port otherwise it will be the local port, so it can always be gautanteed as open at the address given in GetServerIP(). -

-

Returns:
The port number of this connection
-
-

- - - - -
- - - - - - - - - -
int ircd_connector::GetState  ) 
-
- - - - - -
-   - - -

-Get the state flags for this connection. -

-

Returns:
The state flags associated with this connection
- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
std::string ircd_connector::GetVersionString  ) 
-
- - - - - -
-   - - -

-This method returns the version string of the remote server. -

-If the server has no version string an empty string is returned.

-

Returns:
The version text of this connection
-
-

- - - - -
- - - - - - - - - -
std::string ircd_connector::GetWriteError  ) 
-
- - - - - -
-   - - -

-Gets the error string for this connection. -

-

Returns:
The last error to occur or an empty string
- -

-Referenced by serverrec::SendPacket().

-

- - - - -
- - - - - - - - - -
bool ircd_connector::HasBufferedOutput  ) 
-
- - - - - -
-   - - -

-Returns true if there is data to be written that hasn't been sent yet. -

-

Returns:
True if the buffer is not empty
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - -
bool ircd_connector::MakeOutboundConnection char *  newhost,
int  newport
-
- - - - - -
-   - - -

-Create an outbound connection to a listening socket. -

- -

-Referenced by serverrec::BeginLink(), and serverrec::MeshCookie().

-

- - - - -
- - - - - - - - - -
void ircd_connector::ResetPing  ) 
-
- - - - - -
-   - - -

-Resets the ping counter. -

-

-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetDescription std::string  desc  ) 
-
- - - - - -
-   - - -

-Set the server description of this connection. -

-

Parameters:
- - -
desc The description (GECOS) of this connection to be set
-
-
-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetDescriptor int  fd  ) 
-
- - - - - -
-   - - -

-Set the file descriptor for this connection. -

-

Parameters:
- - -
fd The file descriptor to associate with the connection
-
- -

-Referenced by serverrec::AddIncoming().

-

- - - - -
- - - - - - - - - - - - - - - - - - - -
bool ircd_connector::SetHostAddress char *  host,
int  port
[private]
-
- - - - - -
-   - - -

-PRIVATE function to set the host address and port to connect to. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - -
bool ircd_connector::SetHostAndPort char *  newhost,
int  newport
-
- - - - - -
-   - - -

-Set both the host and the port in one operation for this connection. -

-

Parameters:
- - - -
newhost The hostname to set for this connection
newport The port number to set for this connection
-
-
Returns:
True on success, false on failure
- -

-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie().

-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetServerName std::string  serv  ) 
-
- - - - - -
-   - - -

-Set the server name of this connection. -

-

Parameters:
- - -
serv The server name to set
-
- -

-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), and serverrec::MeshCookie().

-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetServerPort int  p  ) 
-
- - - - - -
-   - - -

-Set the port used by this connection. -

-

Parameters:
- - -
p The port number to set for this connection
-
-
-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetState int  state  ) 
-
- - - - - -
-   - - -

-Set the state flags for this connection. -

-

Parameters:
- - -
state The state flags to set for this connection
-
- -

-Referenced by serverrec::AddIncoming(), serverrec::BeginLink(), serverrec::MeshCookie(), and serverrec::SendPacket().

-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetVersionString std::string  newversion  ) 
-
- - - - - -
-   - - -

-This method sets the version string of the remote server. -

-

Parameters:
- - -
newversion The version string to set
-
-
-

- - - - -
- - - - - - - - - - -
void ircd_connector::SetWriteError std::string  error  ) 
-
- - - - - -
-   - - -

-Sets the error string for this connection. -

-

Parameters:
- - -
error The error string to set
-
-
-


Member Data Documentation

-

- - - - -
- - -
sockaddr_in ircd_connector::addr [private] -
-
- - - - - -
-   - - -

-Sockaddr of the outbound ip and port. -

- -

-Definition at line 61 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::description [private] -
-
- - - - - -
-   - - -

-Server 'GECOS'. -

- -

-Definition at line 73 of file connection.h.

-

- - - - -
- - -
int ircd_connector::fd [private] -
-
- - - - - -
-   - - -

-File descriptor of the connection. -

- -

-Definition at line 65 of file connection.h.

-

- - - - -
- - -
char ircd_connector::host[MAXBUF] -
-
- - - - - -
-   - - -

-When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. -

- -

-Definition at line 117 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::ircdbuffer -
-
- - - - - -
-   - - -

-IRCD Buffer for input characters, holds as many lines as are pending - Note that the final line may not be complete and should only be read when there is a
- seperator. -

- -

-Definition at line 110 of file connection.h.

-

- - - - -
- - -
time_t ircd_connector::nextping [private] -
-
- - - - - -
-   - - -

-Time this connection was last pinged. -

- -

-Definition at line 98 of file connection.h.

-

- - - - -
- - -
int ircd_connector::port -
-
- - - - - -
-   - - -

-When MakeOutboundConnection is called, these public members are filled with the details passed to the function, for future reference. -

- -

-Definition at line 123 of file connection.h.

-

- - - - -
- - -
bool ircd_connector::replied [private] -
-
- - - - - -
-   - - -

-Did this connection reply to its last ping? -

- -

-Definition at line 102 of file connection.h.

-

- - - - -
- - -
std::vector<std::string> ircd_connector::routes -
-
- - - - - -
-   - - -

-Server names of servers that this server is linked to So for A->B->C, if this was the record for B it would contain A and C whilever both servers are connected to B. -

- -

-Definition at line 129 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::sendq [private] -
-
- - - - - -
-   - - -

-SendQ of the outbound connector, does not have a limit. -

- -

-Definition at line 90 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::servername [private] -
-
- - - - - -
-   - - -

-Server name. -

- -

-Definition at line 69 of file connection.h.

-

- - - - -
- - -
char ircd_connector::state [private] -
-
- - - - - -
-   - - -

-State. -

-STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND STATE_SYNC, STATE_DISCONNECTED, STATE_CONNECTED -

-Definition at line 78 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::version [private] -
-
- - - - - -
-   - - -

-This string holds the ircd's version response. -

- -

-Definition at line 86 of file connection.h.

-

- - - - -
- - -
std::string ircd_connector::WriteError [private] -
-
- - - - - -
-   - - -

-Write error of connection. -

- -

-Definition at line 94 of file connection.h.

-


The documentation for this class was generated from the following file: -
Generated on Mon May 30 05:17:18 2005 for InspIRCd by - -doxygen -1.3.3
- - diff --git a/docs/module-doc/classircd__connector__coll__graph.gif b/docs/module-doc/classircd__connector__coll__graph.gif deleted file mode 100644 index 28d7dd681..000000000 Binary files a/docs/module-doc/classircd__connector__coll__graph.gif and /dev/null differ diff --git a/docs/module-doc/classircd__connector__inherit__graph.gif b/docs/module-doc/classircd__connector__inherit__graph.gif deleted file mode 100644 index 573bf4bae..000000000 Binary files a/docs/module-doc/classircd__connector__inherit__graph.gif and /dev/null differ diff --git a/docs/module-doc/classserverrec-members.html b/docs/module-doc/classserverrec-members.html deleted file mode 100644 index c2bf7d4d3..000000000 --- a/docs/module-doc/classserverrec-members.html +++ /dev/null @@ -1,59 +0,0 @@ - - -InspIRCd: Member List - - - - -

serverrec Member List

This is the complete list of members for serverrec, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AddIncoming(int fd, char *targethost, int sourceport)serverrec
ageclassbase
BeginLink(char *targethost, int port, char *password, char *servername, int myport)serverrec
bytes_inconnection
bytes_outconnection
classbase()classbase [inline]
cmds_inconnection
cmds_outconnection
connection()connection
connectorsserverrec
CreateListener(char *host, int p)serverrec
descriptionserverrec
Extend(std::string key, char *p)Extensible
fdconnection
FindHost(std::string host)serverrec
FlushWriteBuffers()serverrec
GetExt(std::string key)Extensible
haspassedconnection
hops_awayserverrec
hostconnection
idle_lastmsgconnection
ipconnection
jupiterserverrec
lastpingconnection
MeshCookie(char *targethost, int port, unsigned long cookie, char *servername)serverrec
nameserverrec
nickservserverrec
npingconnection
opercountserverrec
pingtimeserverrec
portconnection
RecvPacket(std::deque< std::string > &messages, char *host, std::deque< std::string > &sums)serverrec
registeredconnection
SendPacket(char *message, const char *host)serverrec
serverrec()serverrec
serverrec(char *n, long ver, bool jupe)serverrec
Shrink(std::string key)Extensible
signonconnection
sync_soonserverrec
TerminateLink(char *targethost)serverrec
usercountserverrec
usercount_iserverrec
versionserverrec
~classbase()classbase [inline]
~serverrec()serverrec

Generated on Mon May 30 05:17:37 2005 for InspIRCd by - -doxygen -1.3.3
- - diff --git a/docs/module-doc/classserverrec.html b/docs/module-doc/classserverrec.html deleted file mode 100644 index 87775403b..000000000 --- a/docs/module-doc/classserverrec.html +++ /dev/null @@ -1,1447 +0,0 @@ - - -InspIRCd: serverrec class Reference - - - - -

serverrec Class Reference

A class that defines the local server or a remote server. -More... -

-#include <servers.h> -

-Inheritance diagram for serverrec:

Inheritance graph
- - - - - -
[legend]
Collaboration diagram for serverrec:

Collaboration graph
- - - -
[legend]
List of all members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 serverrec ()
 Constructor.

 serverrec (char *n, long ver, bool jupe)
 Constructor which initialises some of the main variables.

 ~serverrec ()
 Destructor.

bool CreateListener (char *host, int p)
 Create a listening socket on 'host' using port number 'p'.

bool BeginLink (char *targethost, int port, char *password, char *servername, int myport)
 Begin an outbound link to another ircd at targethost.

bool MeshCookie (char *targethost, int port, unsigned long cookie, char *servername)
 Begin an outbound mesh link to another ircd on a network you are already an authenticated member of.

void TerminateLink (char *targethost)
 Terminate a link to 'targethost' by calling the ircd_connector::CloseConnection method.

bool SendPacket (char *message, const char *host)
 Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false.

bool RecvPacket (std::deque< std::string > &messages, char *host, std::deque< std::string > &sums)
 Returns the next available packet and returns true if data is available.

ircd_connectorFindHost (std::string host)
 Find the ircd_connector oject related to a certain servername given in 'host'.

bool AddIncoming (int fd, char *targethost, int sourceport)
 Add an incoming connection to the connection pool.

void FlushWriteBuffers ()
 Flushes all data waiting to be written for all of this server's connections.


Public Attributes

char name [MAXBUF]
 server name

long pingtime
 last ping response (ms)

long usercount_i
 invisible users on server

long usercount
 non-invisible users on server

long opercount
 opers on server

int hops_away
 number of hops away (for quick access)

long version
 ircd version

bool jupiter
 is a JUPE server (faked to enforce a server ban)

char description [MAXBUF]
 Description of the server.

char nickserv [NICKMAX]
 Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/).

bool sync_soon
std::vector< ircd_connectorconnectors
 With a serverrec, this is a list of all established server connections.

-

Detailed Description

-A class that defines the local server or a remote server. -

- -

-Definition at line 30 of file servers.h.


Constructor & Destructor Documentation

-

- - - - -
- - - - - - - - - -
serverrec::serverrec  ) 
-
- - - - - -
-   - - -

-Constructor. -

- -

-Definition at line 46 of file servers.cpp. -

-References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, pingtime, connection::signon, sync_soon, TIME, usercount, usercount_i, and version. -

-

00047 {
-00048         strlcpy(name,"",256);
-00049         pingtime = 0;
-00050         lastping = TIME;
-00051         usercount_i = usercount = opercount = version = 0;
-00052         hops_away = 1;
-00053         signon = TIME;
-00054         jupiter = false;
-00055         fd = 0;
-00056         sync_soon = false;
-00057         strlcpy(nickserv,"",NICKMAX);
-00058         connectors.clear();
-00059 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
serverrec::serverrec char *  n,
long  ver,
bool  jupe
-
- - - - - -
-   - - -

-Constructor which initialises some of the main variables. -

- -

-Definition at line 66 of file servers.cpp. -

-References connectors, connection::fd, hops_away, jupiter, connection::lastping, name, nickserv, opercount, connection::signon, sync_soon, TIME, usercount, usercount_i, and version. -

-

00067 {
-00068         strlcpy(name,n,256);
-00069         lastping = TIME;
-00070         usercount_i = usercount = opercount = 0;
-00071         version = ver;
-00072         hops_away = 1;
-00073         signon = TIME;
-00074         jupiter = jupe;
-00075         fd = 0;
-00076         sync_soon = false;
-00077         strlcpy(nickserv,"",NICKMAX);
-00078         connectors.clear();
-00079 }
-
-

- - - - -
- - - - - - - - - -
serverrec::~serverrec  ) 
-
- - - - - -
-   - - -

-Destructor. -

- -

-Definition at line 62 of file servers.cpp. -

-

00063 {
-00064 }
-
-


Member Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
bool serverrec::AddIncoming int  fd,
char *  targethost,
int  sourceport
-
- - - - - -
-   - - -

-Add an incoming connection to the connection pool. -

-(reserved for core use) -

-Definition at line 212 of file servers.cpp. -

-References connectors, DEBUG, ircd_connector::SetDescriptor(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), and STATE_NOAUTH_INBOUND. -

-

00213 {
-00214         ircd_connector connector;
-00215 
-00216         // targethost has been turned into an ip...
-00217         // we dont want this as the server name.
-00218         connector.SetServerName(targethost);
-00219         connector.SetDescriptor(newfd);
-00220         connector.SetState(STATE_NOAUTH_INBOUND);
-00221         int flags = fcntl(newfd, F_GETFL, 0);
-00222         fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
-00223         int sendbuf = 32768;
-00224         int recvbuf = 32768;
-00225         setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
-00226         setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
-00227         connector.SetHostAndPort(targethost, sourceport);
-00228         connector.SetState(STATE_NOAUTH_INBOUND);
-00229         log(DEBUG,"serverrec::AddIncoming() Added connection: %s:%d",targethost,sourceport);
-00230         this->connectors.push_back(connector);
-00231         return true;
-00232 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool serverrec::BeginLink char *  targethost,
int  port,
char *  password,
char *  servername,
int  myport
-
- - - - - -
-   - - -

-Begin an outbound link to another ircd at targethost. -

- -

-Definition at line 142 of file servers.cpp. -

-References connectors, connection::fd, FindHost(), ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND. -

-

00143 {
-00144         char connect[MAXBUF];
-00145 
-00146         ircd_connector connector;
-00147         ircd_connector *cn = this->FindHost(servername);
-00148 
-00149 
-00150         if (cn)
-00151         {
-00152                 WriteOpers("CONNECT aborted: Server %s already exists",servername);
-00153                 return false;
-00154         }
-00155 
-00156 
-00157         if (this->fd)
-00158         {
-00159                 if (connector.MakeOutboundConnection(targethost,newport))
-00160                 {
-00161                         // targethost has been turned into an ip...
-00162                         // we dont want this as the server name.
-00163                         connector.SetServerName(servername);
-00164                         snprintf(connect,MAXBUF,"S %s %s %lu %s :%s",getservername().c_str(),password,(unsigned long)myport,GetRevision().c_str(),getserverdesc().c_str());
-00165                         connector.SetState(STATE_NOAUTH_OUTBOUND);
-00166                         connector.SetHostAndPort(targethost, newport);
-00167                         this->connectors.push_back(connector);
-00168                         // this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state
-00169                         // queues outbound data until the socket is polled as writeable (e.g. the connection is established)
-00170                         return this->SendPacket(connect, servername);
-00171                 }
-00172                 else
-00173                 {
-00174                         connector.SetState(STATE_DISCONNECTED);
-00175                         WriteOpers("Could not create outbound connection to %s:%d",targethost,newport);
-00176                 }
-00177         }
-00178         return false;
-00179 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - -
bool serverrec::CreateListener char *  host,
int  p
-
- - - - - -
-   - - -

-Create a listening socket on 'host' using port number 'p'. -

- -

-Definition at line 81 of file servers.cpp. -

-References connection::fd, MaxConn, and connection::port. -

-

00082 {
-00083         sockaddr_in host_address;
-00084         int flags;
-00085         in_addr addy;
-00086         int on = 0;
-00087         struct linger linger = { 0 };
-00088 
-00089         this->port = p;
-00090 
-00091         fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-00092         if (fd <= 0)
-00093         {
-00094                 return false;
-00095         }
-00096 
-00097         setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on));
-00098         linger.l_onoff = 1;
-00099         linger.l_linger = 1;
-00100         setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger));
-00101 
-00102         // attempt to increase socket sendq and recvq as high as its possible
-00103         // to get them on linux.
-00104         int sendbuf = 32768;
-00105         int recvbuf = 32768;
-00106         setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
-00107         setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
-00108 
-00109         memset((void*)&host_address, 0, sizeof(host_address));
-00110 
-00111         host_address.sin_family = AF_INET;
-00112 
-00113         if (!strcmp(newhost,""))
-00114         {
-00115                 host_address.sin_addr.s_addr = htonl(INADDR_ANY);
-00116         }
-00117         else
-00118         {
-00119                 inet_aton(newhost,&addy);
-00120                 host_address.sin_addr = addy;
-00121         }
-00122 
-00123         host_address.sin_port = htons(p);
-00124 
-00125         if (bind(fd,(sockaddr*)&host_address,sizeof(host_address))<0)
-00126         {
-00127                 return false;
-00128         }
-00129 
-00130         // make the socket non-blocking
-00131         flags = fcntl(fd, F_GETFL, 0);
-00132         fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-00133 
-00134         this->port = p;
-00135 
-00136         listen(this->fd, MaxConn);
-00137 
-00138         return true;
-00139 }
-
-

- - - - -
- - - - - - - - - - -
ircd_connector * serverrec::FindHost std::string  host  ) 
-
- - - - - -
-   - - -

-Find the ircd_connector oject related to a certain servername given in 'host'. -

- -

-Definition at line 242 of file servers.cpp. -

-References connectors. -

-Referenced by BeginLink(), and SendPacket(). -

-

00243 {
-00244         for (int i = 0; i < this->connectors.size(); i++)
-00245         {
-00246                 if (this->connectors[i].GetServerName() == findhost)
-00247                 {
-00248                         return &this->connectors[i];
-00249                 }
-00250         }
-00251         return NULL;
-00252 }
-
-

- - - - -
- - - - - - - - - -
void serverrec::FlushWriteBuffers  ) 
-
- - - - - -
-   - - -

-Flushes all data waiting to be written for all of this server's connections. -

- -

-Definition at line 274 of file servers.cpp. -

-References connectors, has_been_netsplit, IsRoutable(), STATE_DISCONNECTED, STATE_NOAUTH_INBOUND, STATE_NOAUTH_OUTBOUND, and TIME. -

-

00275 {
-00276         char buffer[MAXBUF];
-00277         for (int i = 0; i < this->connectors.size(); i++)
-00278         {
-00279                 // don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!
-00280                 if ((this->connectors[i].GetState() == STATE_NOAUTH_OUTBOUND) && (TIME > this->connectors[i].age+30))
-00281                 {
-00282                         // however if we reach this timer its connected timed out :)
-00283                         WriteOpers("*** Connection to %s timed out",this->connectors[i].GetServerName().c_str());
-00284                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00285                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00286                         DoSplit(this->connectors[i].GetServerName().c_str());
-00287                         return;
-00288                 }
-00289                 if ((this->connectors[i].GetState() == STATE_NOAUTH_INBOUND) && (TIME > this->connectors[i].age+30))
-00290                 {
-00291                         WriteOpers("*** Connection from %s timed out",this->connectors[i].GetServerName().c_str());
-00292                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00293                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00294                         DoSplit(this->connectors[i].GetServerName().c_str());
-00295                         return;
-00296                 }
-00297                 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
-00298                 {
-00299                         if (!this->connectors[i].CheckPing())
-00300                         {
-00301                                 WriteOpers("*** Lost single connection to %s: Ping timeout",this->connectors[i].GetServerName().c_str());
-00302                                 this->connectors[i].CloseConnection();
-00303                                 this->connectors[i].SetState(STATE_DISCONNECTED);
-00304                                 if (!IsRoutable(this->connectors[i].GetServerName()))
-00305                                 {
-00306                                         WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
-00307                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00308                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00309                                         DoSplit(this->connectors[i].GetServerName().c_str());
-00310                                 }
-00311                                 has_been_netsplit = true;
-00312                         }
-00313                 }
-00314                 if ((this->connectors[i].GetWriteError() !="") && (this->connectors[i].GetState() != STATE_DISCONNECTED))
-00315                 {
-00316                         // if we're here the write() caused an error, we cannot proceed
-00317                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
-00318                         this->connectors[i].CloseConnection();
-00319                         this->connectors[i].SetState(STATE_DISCONNECTED);
-00320                         if (!IsRoutable(this->connectors[i].GetServerName()))
-00321                         {
-00322                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
-00323                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00324                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00325                                 DoSplit(this->connectors[i].GetServerName().c_str());
-00326                         }
-00327                         has_been_netsplit = true;
-00328                 }
-00329                 if ((this->connectors[i].HasBufferedOutput()) && (this->connectors[i].GetState() != STATE_DISCONNECTED))
-00330                 {
-00331                         if (!this->connectors[i].FlushWriteBuf())
-00332                         {
-00333                                 // if we're here the write() caused an error, we cannot proceed
-00334                                 WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
-00335                                 this->connectors[i].CloseConnection();
-00336                                 this->connectors[i].SetState(STATE_DISCONNECTED);
-00337                                 if (!IsRoutable(this->connectors[i].GetServerName()))
-00338                                 {
-00339                                         WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
-00340                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00341                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00342                                         DoSplit(this->connectors[i].GetServerName().c_str());
-00343                                 }
-00344                                 has_been_netsplit = true;
-00345                         }
-00346                 }
-00347         }
-00348 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool serverrec::MeshCookie char *  targethost,
int  port,
unsigned long  cookie,
char *  servername
-
- - - - - -
-   - - -

-Begin an outbound mesh link to another ircd on a network you are already an authenticated member of. -

- -

-Definition at line 182 of file servers.cpp. -

-References connectors, connection::fd, ircd_connector::MakeOutboundConnection(), SendPacket(), ircd_connector::SetHostAndPort(), ircd_connector::SetServerName(), ircd_connector::SetState(), STATE_DISCONNECTED, and STATE_NOAUTH_OUTBOUND. -

-

00183 {
-00184         char connect[MAXBUF];
-00185 
-00186         ircd_connector connector;
-00187 
-00188         WriteOpers("Establishing meshed link to %s:%d",servername,newport);
-00189 
-00190         if (this->fd)
-00191         {
-00192                 if (connector.MakeOutboundConnection(targethost,newport))
-00193                 {
-00194                         // targethost has been turned into an ip...
-00195                         // we dont want this as the server name.
-00196                         connector.SetServerName(servername);
-00197                         snprintf(connect,MAXBUF,"- %lu %s :%s",cookie,getservername().c_str(),getserverdesc().c_str());
-00198                         connector.SetState(STATE_NOAUTH_OUTBOUND);
-00199                         connector.SetHostAndPort(targethost, newport);
-00200                         this->connectors.push_back(connector);
-00201                         return this->SendPacket(connect, servername);
-00202                 }
-00203                 else
-00204                 {
-00205                         connector.SetState(STATE_DISCONNECTED);
-00206                         WriteOpers("Could not create outbound connection to %s:%d",targethost,newport);
-00207                 }
-00208         }
-00209         return false;
-00210 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
bool serverrec::RecvPacket std::deque< std::string > &  messages,
char *  host,
std::deque< std::string > &  sums
-
- - - - - -
-   - - -

-Returns the next available packet and returns true if data is available. -

-Writes the servername the data came from to 'host'. If no data is available this function returns false. This function will automatically close broken links and reroute pathways, generating split messages on the network. -

-Definition at line 445 of file servers.cpp. -

-References already_have_sum(), connectors, DEBUG, has_been_netsplit, IsRoutable(), and STATE_DISCONNECTED. -

-

00446 {
-00447         char data[65536],buffer[MAXBUF];
-00448         memset(data, 0, 65536);
-00449         for (int i = 0; i < this->connectors.size(); i++)
-00450         {
-00451                 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
-00452                 {
-00453                         // returns false if the packet could not be sent (e.g. target host down)
-00454                         int rcvsize = 0;
-00455 
-00456                         // check if theres any data on this socket
-00457                         // if not, continue onwards to the next.
-00458                         pollfd polls;
-00459                         polls.fd = this->connectors[i].GetDescriptor();
-00460                         polls.events = POLLIN;
-00461                         int ret = poll(&polls,1,1);
-00462                         if (ret <= 0) continue;
-00463 
-00464                         rcvsize = recv(this->connectors[i].GetDescriptor(),data,65000,0);
-00465                         data[rcvsize] = '\0';
-00466                         if (rcvsize == 0)
-00467                         {
-00468                                 log(DEBUG,"recv() failed for serverrec::RecvPacket(): EOF");
-00469                                 log(DEBUG,"Disabling connector: %s",this->connectors[i].GetServerName().c_str());
-00470                                 this->connectors[i].CloseConnection();
-00471                                 this->connectors[i].SetState(STATE_DISCONNECTED);
-00472                                 if (!IsRoutable(this->connectors[i].GetServerName()))
-00473                                 {
-00474                                         WriteOpers("*** Server %s is no longer routable, disconnecting (EOF)",this->connectors[i].GetServerName().c_str());
-00475                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00476                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00477                                         DoSplit(this->connectors[i].GetServerName().c_str());
-00478                                 }
-00479                                 has_been_netsplit = true;
-00480                         }
-00481                         if (rcvsize == -1)
-00482                         {
-00483                                 if (errno != EAGAIN)
-00484                                 {
-00485                                         log(DEBUG,"recv() failed for serverrec::RecvPacket(): %s",strerror(errno));
-00486                                         log(DEBUG,"Disabling connector: %s",this->connectors[i].GetServerName().c_str());
-00487                                         this->connectors[i].CloseConnection();
-00488                                         this->connectors[i].SetState(STATE_DISCONNECTED);
-00489                                         if (!IsRoutable(this->connectors[i].GetServerName()))
-00490                                         {
-00491                                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
-00492                                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00493                                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00494                                                 DoSplit(this->connectors[i].GetServerName().c_str());
-00495                                         }
-00496                                         has_been_netsplit = true;
-00497                                 }
-00498                         }
-00499                         int pushed = 0;
-00500                         if (rcvsize > 0)
-00501                         {
-00502                                 if (!this->connectors[i].AddBuffer(data))
-00503                                 {
-00504                                         WriteOpers("*** Read buffer for %s exceeds maximum, closing connection!",this->connectors[i].GetServerName().c_str());
-00505                                         this->connectors[i].CloseConnection();
-00506                                         this->connectors[i].SetState(STATE_DISCONNECTED);
-00507                                         if (!IsRoutable(this->connectors[i].GetServerName()))
-00508                                         {
-00509                                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
-00510                                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
-00511                                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
-00512                                                 DoSplit(this->connectors[i].GetServerName().c_str());
-00513                                         }
-00514                                         has_been_netsplit = true;
-00515                                 }
-00516                                 if (this->connectors[i].BufferIsComplete())
-00517                                 {
-00518                                         this->connectors[i].ResetPing();
-00519                                         while (this->connectors[i].BufferIsComplete())
-00520                                         {
-00521                                                 std::string text = this->connectors[i].GetBuffer();
-00522                                                 if (text != "")
-00523                                                 {
-00524                                                         if ((text[0] == ':') && (text.find(" ") != std::string::npos))
-00525                                                         {
-00526                                                                 std::string orig = text;
-00527                                                                 log(DEBUG,"Original: %s",text.c_str());
-00528                                                                 std::string sum = text.substr(1,text.find(" ")-1);
-00529                                                                 text = text.substr(text.find(" ")+1,text.length());
-00530                                                                 std::string possible_token = text.substr(1,text.find(" ")-1);
-00531                                                                 if (possible_token.length() > 1)
-00532                                                                 {
-00533                                                                         sums.push_back("*");
-00534                                                                         text = orig;
-00535                                                                         log(DEBUG,"Non-mesh, non-tokenized string passed up the chain");
-00536                                                                 }
-00537                                                                 else
-00538                                                                 {
-00539                                                                         log(DEBUG,"Packet sum: '%s'",sum.c_str());
-00540                                                                         if ((already_have_sum(sum)) && (sum != "*"))
-00541                                                                         {
-00542                                                                                 // we don't accept dupes
-00543                                                                                 continue;
-00544                                                                         }
-00545                                                                         sums.push_back(sum.c_str());
-00546                                                                 }
-00547                                                         }
-00548                                                         else sums.push_back("*");
-00549                                                         messages.push_back(text.c_str());
-00550                                                         strlcpy(recvhost,this->connectors[i].GetServerName().c_str(),160);
-00551                                                         log(DEBUG,"serverrec::RecvPacket() %d:%s->%s",pushed++,recvhost,text.c_str());
-00552                                                 }
-00553                                         }
-00554                                         return true;
-00555                                 }
-00556                         }
-00557                 }
-00558         }
-00559         // nothing new yet -- message and host will be undefined
-00560         return false;
-00561 }
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - -
bool serverrec::SendPacket char *  message,
const char *  host
-
- - - - - -
-   - - -

-Send a message to a server by name, if the server is unavailable directly route the packet via another server If the server still cannot be reached after attempting to route the message remotely, returns false. -

- -

-Definition at line 350 of file servers.cpp. -

-References ircd_connector::AddWriteBuf(), ircd_connector::CloseConnection(), connectors, DEBUG, FindHost(), ircd_connector::FlushWriteBuf(), ircd_connector::GetServerName(), ircd_connector::GetState(), ircd_connector::GetWriteError(), ircd_connector::SetState(), and STATE_DISCONNECTED. -

-Referenced by BeginLink(), and MeshCookie(). -

-

00351 {
-00352         if ((!message) || (!sendhost))
-00353                 return true;
-00354 
-00355         ircd_connector* cn = this->FindHost(sendhost);
-00356 
-00357         if (!strchr(message,'\n'))
-00358         {
-00359                 strlcat(message,"\n",MAXBUF);
-00360         }
-00361 
-00362         if (cn)
-00363         {
-00364                 log(DEBUG,"main: serverrec::SendPacket() sent '%s' to %s",message,cn->GetServerName().c_str());
-00365 
-00366                 if (cn->GetState() == STATE_DISCONNECTED)
-00367                 {
-00368                         // fix: can only route one hop to avoid a loop
-00369                         if (strncmp(message,"R ",2))
-00370                         {
-00371                                 log(DEBUG,"Not a double reroute");
-00372                                 // this route is down, we must re-route the packet through an available point in the mesh.
-00373                                 for (int k = 0; k < this->connectors.size(); k++)
-00374                                 {
-00375                                         log(DEBUG,"Check connector %d: %s",k,this->connectors[k].GetServerName().c_str());
-00376                                         // search for another point in the mesh which can 'reach' where we want to go
-00377                                         for (int m = 0; m < this->connectors[k].routes.size(); m++)
-00378                                         {
-00379                                                 if (!strcasecmp(this->connectors[k].routes[m].c_str(),sendhost))
-00380                                                 {
-00381                                                         log(DEBUG,"Found alternative route for packet: %s",this->connectors[k].GetServerName().c_str());
-00382                                                         char buffer[MAXBUF];
-00383                                                         snprintf(buffer,MAXBUF,"R %s %s",sendhost,message);
-00384                                                         this->SendPacket(buffer,this->connectors[k].GetServerName().c_str());
-00385                                                         return true;
-00386                                                 }
-00387                                         }
-00388                                 }
-00389                         }
-00390                         char buffer[MAXBUF];
-00391                         snprintf(buffer,MAXBUF,"& %s",sendhost);
-00392                         WriteOpers("*** All connections to %s lost.",sendhost);
-00393                         NetSendToAllExcept(sendhost,buffer);
-00394                         DoSplit(sendhost);
-00395                         return false;
-00396                 }
-00397 
-00398                 // returns false if the packet could not be sent (e.g. target host down)
-00399                 if (!cn->AddWriteBuf(message))
-00400                 {
-00401                         // if we're here, there was an error pending, and the send cannot proceed
-00402                         log(DEBUG,"cn->AddWriteBuf() failed for serverrec::SendPacket(): %s",cn->GetWriteError().c_str());
-00403                         log(DEBUG,"Disabling connector: %s",cn->GetServerName().c_str());
-00404                         cn->CloseConnection();
-00405                         cn->SetState(STATE_DISCONNECTED);
-00406                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",cn->GetServerName().c_str(),cn->GetWriteError().c_str());
-00407                         // retry the packet along a new route so either arrival OR failure are gauranteed (bugfix)
-00408                         return this->SendPacket(message,sendhost);
-00409                 }
-00410                 if (!cn->FlushWriteBuf())
-00411                 {
-00412                         // if we're here the write() caused an error, we cannot proceed
-00413                         log(DEBUG,"cn->FlushWriteBuf() failed for serverrec::SendPacket(): %s",cn->GetWriteError().c_str());
-00414                         log(DEBUG,"Disabling connector: %s",cn->GetServerName().c_str());
-00415                         cn->CloseConnection();
-00416                         cn->SetState(STATE_DISCONNECTED);
-00417                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",cn->GetServerName().c_str(),cn->GetWriteError().c_str());
-00418                         // retry the packet along a new route so either arrival OR failure are gauranteed
-00419                         return this->SendPacket(message,sendhost);
-00420                 }
-00421                 return true;
-00422         }
-00423 }
-
-

- - - - -
- - - - - - - - - - -
void serverrec::TerminateLink char *  targethost  ) 
-
- - - - - -
-   - - -

-Terminate a link to 'targethost' by calling the ircd_connector::CloseConnection method. -

- -

-Definition at line 234 of file servers.cpp. -

-

00235 {
-00236         // this locates the targethost in the serverrec::connectors vector of the class,
-00237        // and terminates it by sending it an SQUIT token and closing its descriptor.
-00238         // TerminateLink with a null string causes a terminate of ALL links
-00239 }
-
-


Member Data Documentation

-

- - - - -
- - -
std::vector<ircd_connector> serverrec::connectors -
-
- - - - - -
-   - - -

-With a serverrec, this is a list of all established server connections. -

- -

-Definition at line 81 of file servers.h. -

-Referenced by AddIncoming(), BeginLink(), FindHost(), FlushWriteBuffers(), IsRoutable(), MeshCookie(), RecvPacket(), SendPacket(), and serverrec().

-

- - - - -
- - -
char serverrec::description[MAXBUF] -
-
- - - - - -
-   - - -

-Description of the server. -

- -

-Definition at line 61 of file servers.h.

-

- - - - -
- - -
int serverrec::hops_away -
-
- - - - - -
-   - - -

-number of hops away (for quick access) -

- -

-Definition at line 51 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
bool serverrec::jupiter -
-
- - - - - -
-   - - -

-is a JUPE server (faked to enforce a server ban) -

- -

-Definition at line 57 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
char serverrec::name[MAXBUF] -
-
- - - - - -
-   - - -

-server name -

- -

-Definition at line 36 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
char serverrec::nickserv[NICKMAX] -
-
- - - - - -
-   - - -

-Holds nickserv's name on U:lined (services) servers (this is a kludge for ircservices which ASSUMES things :/). -

- -

-Definition at line 65 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
long serverrec::opercount -
-
- - - - - -
-   - - -

-opers on server -

- -

-Definition at line 48 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
long serverrec::pingtime -
-
- - - - - -
-   - - -

-last ping response (ms) -

- -

-Definition at line 39 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
bool serverrec::sync_soon -
-
- - - - - -
-   - - -

- -

-Definition at line 67 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
long serverrec::usercount -
-
- - - - - -
-   - - -

-non-invisible users on server -

- -

-Definition at line 45 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
long serverrec::usercount_i -
-
- - - - - -
-   - - -

-invisible users on server -

- -

-Definition at line 42 of file servers.h. -

-Referenced by serverrec().

-

- - - - -
- - -
long serverrec::version -
-
- - - - - -
-   - - -

-ircd version -

- -

-Definition at line 54 of file servers.h. -

-Referenced by serverrec().

-


The documentation for this class was generated from the following files: -
Generated on Mon May 30 05:17:37 2005 for InspIRCd by - -doxygen -1.3.3
- - diff --git a/docs/module-doc/classserverrec__coll__graph.gif b/docs/module-doc/classserverrec__coll__graph.gif deleted file mode 100644 index 05abae634..000000000 Binary files a/docs/module-doc/classserverrec__coll__graph.gif and /dev/null differ diff --git a/docs/module-doc/classserverrec__inherit__graph.gif b/docs/module-doc/classserverrec__inherit__graph.gif deleted file mode 100644 index e14cc4145..000000000 Binary files a/docs/module-doc/classserverrec__inherit__graph.gif and /dev/null differ diff --git a/docs/module-doc/classstd_1_1char__traits.html b/docs/module-doc/classstd_1_1char__traits.html index 211fbdbb3..880c4e4ee 100644 --- a/docs/module-doc/classstd_1_1char__traits.html +++ b/docs/module-doc/classstd_1_1char__traits.html @@ -14,7 +14,7 @@
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classucrec-members.html b/docs/module-doc/classucrec-members.html index 74bc24deb..a5c3c529a 100644 --- a/docs/module-doc/classucrec-members.html +++ b/docs/module-doc/classucrec-members.html @@ -13,7 +13,7 @@ ucrec()ucrec [inline] ~classbase()classbase [inline] ~ucrec()ucrec [inline, virtual] -
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classucrec.html b/docs/module-doc/classucrec.html index 73fd8c3d4..67682559c 100644 --- a/docs/module-doc/classucrec.html +++ b/docs/module-doc/classucrec.html @@ -163,7 +163,7 @@ Definition at line 247 o
The documentation for this class was generated from the following file: -
Generated on Wed Dec 14 14:49:34 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classuserrec-members.html b/docs/module-doc/classuserrec-members.html index 284a62c2d..5a1fa02a5 100644 --- a/docs/module-doc/classuserrec-members.html +++ b/docs/module-doc/classuserrec-members.html @@ -70,7 +70,7 @@ WriteErroruserrec ~classbase()classbase [inline] ~userrec()userrec [virtual] -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/classuserrec.html b/docs/module-doc/classuserrec.html index e6360b99e..9592f072d 100644 --- a/docs/module-doc/classuserrec.html +++ b/docs/module-doc/classuserrec.html @@ -182,7 +182,7 @@ Definition at line 111 of f

Definition at line 36 of file users.cpp.

-References awaymsg, connection::bytes_in, connection::bytes_out, chans, connection::cmds_in, connection::cmds_out, dhost, dns_done, connection::fd, 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.

00037 {
+References awaymsg, connection::bytes_in, connection::bytes_out, chans, connection::cmds_in, connection::cmds_out, dhost, dns_done, connection::fd, 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.
00037 {
 00038         // the PROPER way to do it, AVOID bzero at *ALL* costs
 00039         strcpy(nick,"");
 00040         strcpy(ip,"127.0.0.1");
@@ -427,7 +427,7 @@ Definition at line 232 of
 

References recvq.

-Referenced by Server::PseudoToUser(), and Server::UserToPseudo().

00233 {
+Referenced by Server::PseudoToUser(), and Server::UserToPseudo().
00233 {
 00234         recvq = "";
 00235 }
 
@@ -764,7 +764,7 @@ This is done by looking up their oper type from 144 of file users.cpp.

-References ServerConfig::config_f, ServerConfig::ConfValue(), and is_uline().

00145 {
+References ServerConfig::config_f, ServerConfig::ConfValue(), and is_uline().
00145 {
 00146         char TypeName[MAXBUF],Classes[MAXBUF],ClassName[MAXBUF],CommandList[MAXBUF];
 00147         char* mycmd;
 00148         char* savept;
@@ -1113,7 +1113,7 @@ Referenced by userrec().
 

Definition at line 149 of file users.h.

-Referenced by Server::PseudoToUser(), and userrec(). +Referenced by Server::PseudoToUser(), and userrec().

@@ -1258,7 +1258,7 @@ Two characters are added to the user-defined limit to compensate for the tilde e

Definition at line 129 of file users.h.

-Referenced by GetFullHost(), GetFullRealHost(), Server::PseudoToUser(), userrec(), and Server::UserToPseudo(). +Referenced by GetFullHost(), GetFullRealHost(), Server::PseudoToUser(), userrec(), and Server::UserToPseudo().

@@ -1374,7 +1374,7 @@ An invalid nickname indicates an unregistered connection prior to the NICK comma

Definition at line 124 of file users.h.

-Referenced by ConfigReader::DumpErrors(), GetFullHost(), GetFullRealHost(), Server::PseudoToUser(), and userrec(). +Referenced by ConfigReader::DumpErrors(), GetFullHost(), GetFullRealHost(), Server::PseudoToUser(), and userrec().

@@ -1715,7 +1715,7 @@ Referenced by GetWriteError()


The documentation for this class was generated from the following files: -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/commands_8h-source.html b/docs/module-doc/commands_8h-source.html index 2439e45c3..46b8db3d3 100644 --- a/docs/module-doc/commands_8h-source.html +++ b/docs/module-doc/commands_8h-source.html @@ -97,7 +97,7 @@ 00094 void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long idle, char* nick); 00095 00096 #endif -

Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/commands_8h.html b/docs/module-doc/commands_8h.html index 6fc6be221..c960cfd65 100644 --- a/docs/module-doc/commands_8h.html +++ b/docs/module-doc/commands_8h.html @@ -232,7 +232,7 @@ Other useful functions.

-Referenced by Server::CalcDuration(). +Referenced by Server::CalcDuration().

@@ -2459,10 +2459,10 @@ Functions for u:lined servers.

-Referenced by userrec::HasPermission(), and Server::IsUlined(). +Referenced by userrec::HasPermission(), and Server::IsUlined(). -


Generated on Wed Dec 14 14:49:20 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/connection_8h-source.html b/docs/module-doc/connection_8h-source.html index d4440247a..35ad1f235 100644 --- a/docs/module-doc/connection_8h-source.html +++ b/docs/module-doc/connection_8h-source.html @@ -82,7 +82,7 @@ 00107 #endif 00108 00109 -

Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/connection_8h.html b/docs/module-doc/connection_8h.html index fa0594791..62f2424db 100644 --- a/docs/module-doc/connection_8h.html +++ b/docs/module-doc/connection_8h.html @@ -51,7 +51,7 @@ This graph shows which files directly or indirectly include this file:

 Please note: classes serverrec and userrec both inherit from class connection. More...
-
Generated on Wed Dec 14 14:49:21 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/ctables_8h-source.html b/docs/module-doc/ctables_8h-source.html index c69bbe5ce..7f6998b81 100644 --- a/docs/module-doc/ctables_8h-source.html +++ b/docs/module-doc/ctables_8h-source.html @@ -44,7 +44,7 @@ 00051 00052 #endif 00053 -

Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/ctables_8h.html b/docs/module-doc/ctables_8h.html index 299e74444..eddf9defc 100644 --- a/docs/module-doc/ctables_8h.html +++ b/docs/module-doc/ctables_8h.html @@ -34,7 +34,7 @@ This graph shows which files directly or indirectly include this file:

 A structure that defines a command. More...
-
Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000000.html b/docs/module-doc/dir_000000.html index ac517be3a..e07329a5b 100644 --- a/docs/module-doc/dir_000000.html +++ b/docs/module-doc/dir_000000.html @@ -20,7 +20,7 @@ directory  brain -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000001.html b/docs/module-doc/dir_000001.html index e0d09e519..9a0e80022 100644 --- a/docs/module-doc/dir_000001.html +++ b/docs/module-doc/dir_000001.html @@ -21,7 +21,7 @@ directory  inspircd-cvs -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:51 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000002.html b/docs/module-doc/dir_000002.html index a3add89ff..d2f1799fa 100644 --- a/docs/module-doc/dir_000002.html +++ b/docs/module-doc/dir_000002.html @@ -21,7 +21,7 @@ directory  inspircd -
Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000003.html b/docs/module-doc/dir_000003.html index 85a188e03..bd1c212a2 100644 --- a/docs/module-doc/dir_000003.html +++ b/docs/module-doc/dir_000003.html @@ -26,7 +26,7 @@ directory  src -
Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000004.html b/docs/module-doc/dir_000004.html index 7e8fbc290..f7af0bb30 100644 --- a/docs/module-doc/dir_000004.html +++ b/docs/module-doc/dir_000004.html @@ -52,7 +52,7 @@ file  xline.h [code] -
Generated on Wed Dec 14 14:49:36 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000005.html b/docs/module-doc/dir_000005.html index d1c9ad25f..b4752fb9d 100644 --- a/docs/module-doc/dir_000005.html +++ b/docs/module-doc/dir_000005.html @@ -31,7 +31,7 @@ file  users.cpp [code] -
Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dir_000005_000004.html b/docs/module-doc/dir_000005_000004.html index f4aabd513..d038bdadd 100644 --- a/docs/module-doc/dir_000005_000004.html +++ b/docs/module-doc/dir_000005_000004.html @@ -7,7 +7,7 @@ -

src → include Relation

File in home » brain » inspircd-cvs » inspircd » srcIncludes file in home » brain » inspircd-cvs » inspircd » include
channels.cppctables.h
channels.cppinspircd_io.h
channels.cppmessage.h
channels.cppmode.h
channels.cppmodules.h
channels.cppusers.h
channels.cppxline.h
modules.cppcommands.h
modules.cppctables.h
modules.cpphashcomp.h
modules.cppinspircd_io.h
modules.cppmessage.h
modules.cppmode.h
modules.cppmodules.h
modules.cppsocket.h
modules.cppsocketengine.h
modules.cpptypedefs.h
modules.cppusers.h
modules.cppxline.h
socket.cppinspircd_io.h
socket.cppsocket.h
socket.cppsocketengine.h
socketengine.cppsocketengine.h
users.cppchannels.h
users.cppcommands.h
users.cppconnection.h
users.cppusers.h

Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +

src → include Relation

File in home » brain » inspircd-cvs » inspircd » srcIncludes file in home » brain » inspircd-cvs » inspircd » include
channels.cppctables.h
channels.cppinspircd_io.h
channels.cppmessage.h
channels.cppmode.h
channels.cppmodules.h
channels.cppusers.h
channels.cppxline.h
modules.cppcommands.h
modules.cppctables.h
modules.cpphashcomp.h
modules.cppinspircd_io.h
modules.cppmessage.h
modules.cppmode.h
modules.cppmodules.h
modules.cppsocket.h
modules.cppsocketengine.h
modules.cpptypedefs.h
modules.cppusers.h
modules.cppxline.h
socket.cppinspircd_io.h
socket.cppsocket.h
socket.cppsocketengine.h
socketengine.cppsocketengine.h
users.cppchannels.h
users.cppcommands.h
users.cppconnection.h
users.cppusers.h

Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dirs.html b/docs/module-doc/dirs.html index 8b6681f4b..17ae8e33b 100644 --- a/docs/module-doc/dirs.html +++ b/docs/module-doc/dirs.html @@ -21,7 +21,7 @@ -
Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dns_8h-source.html b/docs/module-doc/dns_8h-source.html index 8419d55ac..0da4207ee 100644 --- a/docs/module-doc/dns_8h-source.html +++ b/docs/module-doc/dns_8h-source.html @@ -75,7 +75,7 @@ 00098 }; 00099 00100 #endif -

Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/dns_8h.html b/docs/module-doc/dns_8h.html index d7c8b4325..40c455429 100644 --- a/docs/module-doc/dns_8h.html +++ b/docs/module-doc/dns_8h.html @@ -25,7 +25,7 @@ Include dependency graph for dns.h:

 The DNS class allows fast nonblocking resolution of hostnames and ip addresses. More...
-
Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/files.html b/docs/module-doc/files.html index 645b1618f..9d421391e 100644 --- a/docs/module-doc/files.html +++ b/docs/module-doc/files.html @@ -29,7 +29,7 @@ users.h [code] xline.h [code] -
Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +
Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
diff --git a/docs/module-doc/functions.html b/docs/module-doc/functions.html index b52346652..0f445f587 100644 --- a/docs/module-doc/functions.html +++ b/docs/module-doc/functions.html @@ -36,7 +36,7 @@ Here is a list of all class members with links to the classes they belong to: : classbase
  • AllowHalfop : ServerConfig
  • awaymsg : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x62.html b/docs/module-doc/functions_0x62.html index f333302fb..55731bcdb 100644 --- a/docs/module-doc/functions_0x62.html +++ b/docs/module-doc/functions_0x62.html @@ -22,7 +22,7 @@ Here is a list of all class members with links to the classes they belong to: : Version
  • bytes_in : connection
  • bytes_out : connection -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x63.html b/docs/module-doc/functions_0x63.html index 3fe20333f..20d86f976 100644 --- a/docs/module-doc/functions_0x63.html +++ b/docs/module-doc/functions_0x63.html @@ -46,7 +46,7 @@ Here is a list of all class members with links to the classes they belong to: : chanrec
  • CreateModule() : ModuleFactory
  • custom_modes : chanrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x64.html b/docs/module-doc/functions_0x64.html index b486d1deb..0ee844213 100644 --- a/docs/module-doc/functions_0x64.html +++ b/docs/module-doc/functions_0x64.html @@ -49,7 +49,7 @@ Here is a list of all class members with links to the classes they belong to: : ServerConfig
  • DumpErrors() : ConfigReader
  • duration : XLine -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x65.html b/docs/module-doc/functions_0x65.html index 2af57be17..74cbd6e7e 100644 --- a/docs/module-doc/functions_0x65.html +++ b/docs/module-doc/functions_0x65.html @@ -27,7 +27,7 @@ Here is a list of all class members with links to the classes they belong to: : Extensible
  • Extension_Items : Extensible
  • ExtMode() : ExtMode -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x66.html b/docs/module-doc/functions_0x66.html index cbd3f80e6..e94f4d12d 100644 --- a/docs/module-doc/functions_0x66.html +++ b/docs/module-doc/functions_0x66.html @@ -30,7 +30,7 @@ Here is a list of all class members with links to the classes they belong to: : userrec
  • ForwardLookup() : DNS
  • fullname : WhoWasUser, userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x67.html b/docs/module-doc/functions_0x67.html index 84208512d..26ce0f1e7 100644 --- a/docs/module-doc/functions_0x67.html +++ b/docs/module-doc/functions_0x67.html @@ -15,7 +15,8 @@ Here is a list of all class members with links to the classes they belong to:
  • Get() : BoolSet
  • GetAdmin() : Server
  • GetBuffer() -: userrec
  • GetData() +: userrec
  • GetConfig() +: Server
  • GetData() : Event, Request
  • GetDest() : Request
  • GetError() : ConfigReader
  • GetEventID() @@ -43,7 +44,7 @@ Here is a list of all class members with links to the classes they belong to: : Server, chanrec
  • GetVersion() : Module
  • GetWriteError() : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x68.html b/docs/module-doc/functions_0x68.html index 7a3f1f224..3a117572c 100644 --- a/docs/module-doc/functions_0x68.html +++ b/docs/module-doc/functions_0x68.html @@ -20,7 +20,7 @@ Here is a list of all class members with links to the classes they belong to: : WhoWasUser, ConnectClass, InspSocket, connection
  • HostItem() : HostItem
  • hostmask : ELine, GLine, KLine -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x69.html b/docs/module-doc/functions_0x69.html index d49e30262..a13bf5c02 100644 --- a/docs/module-doc/functions_0x69.html +++ b/docs/module-doc/functions_0x69.html @@ -34,7 +34,7 @@ Here is a list of all class members with links to the classes they belong to: : Server
  • IsValidMask() : Server
  • IsValidModuleCommand() : Server -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6a.html b/docs/module-doc/functions_0x6a.html index 5830615d0..28b99da0e 100644 --- a/docs/module-doc/functions_0x6a.html +++ b/docs/module-doc/functions_0x6a.html @@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:

    - j -

    -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6b.html b/docs/module-doc/functions_0x6b.html index 171af41b5..857dc82b3 100644 --- a/docs/module-doc/functions_0x6b.html +++ b/docs/module-doc/functions_0x6b.html @@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
  • ke_list : SocketEngine
  • key : chanrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6c.html b/docs/module-doc/functions_0x6c.html index 8192b194d..c5e7db11c 100644 --- a/docs/module-doc/functions_0x6c.html +++ b/docs/module-doc/functions_0x6c.html @@ -25,7 +25,7 @@ Here is a list of all class members with links to the classes they belong to: : ServerConfig
  • LogLevel : ServerConfig
  • lt() : irc::irc_char_traits -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6d.html b/docs/module-doc/functions_0x6d.html index b6093d0d0..52511f8c0 100644 --- a/docs/module-doc/functions_0x6d.html +++ b/docs/module-doc/functions_0x6d.html @@ -30,7 +30,7 @@ Here is a list of all class members with links to the classes they belong to: : ServerConfig
  • MyExecutable : ServerConfig
  • myfd : DNS -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6e.html b/docs/module-doc/functions_0x6e.html index ca6207929..c79e25497 100644 --- a/docs/module-doc/functions_0x6e.html +++ b/docs/module-doc/functions_0x6e.html @@ -25,7 +25,7 @@ Here is a list of all class members with links to the classes they belong to: : Admin
  • nofork : ServerConfig
  • nping : connection -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x6f.html b/docs/module-doc/functions_0x6f.html index f51e50ade..d72f64cc3 100644 --- a/docs/module-doc/functions_0x6f.html +++ b/docs/module-doc/functions_0x6f.html @@ -101,7 +101,7 @@ Here is a list of all class members with links to the classes they belong to: : BoolSet
  • operator==() : BoolSet
  • operator|() : BoolSet -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x70.html b/docs/module-doc/functions_0x70.html index 49e7020ad..06285b174 100644 --- a/docs/module-doc/functions_0x70.html +++ b/docs/module-doc/functions_0x70.html @@ -28,7 +28,7 @@ Here is a list of all class members with links to the classes they belong to: : Module
  • ProtoSendMode() : Module
  • PseudoToUser() : Server -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x71.html b/docs/module-doc/functions_0x71.html index 47f71a836..f82053366 100644 --- a/docs/module-doc/functions_0x71.html +++ b/docs/module-doc/functions_0x71.html @@ -14,7 +14,7 @@ Here is a list of all class members with links to the classes they belong to:

    - q -

    -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x72.html b/docs/module-doc/functions_0x72.html index 5a5585f90..af3f0fb10 100644 --- a/docs/module-doc/functions_0x72.html +++ b/docs/module-doc/functions_0x72.html @@ -32,10 +32,10 @@ Here is a list of all class members with links to the classes they belong to: : ServerConfig
  • result : DNS
  • ReverseLookup() : DNS
  • Revision -: Version
  • rules -: ServerConfig
  • RULES -: ServerConfig -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +: Version
  • RULES +: ServerConfig
  • rules +: ServerConfig +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x73.html b/docs/module-doc/functions_0x73.html index ff0059cad..51ffe74be 100644 --- a/docs/module-doc/functions_0x73.html +++ b/docs/module-doc/functions_0x73.html @@ -25,9 +25,9 @@ Here is a list of all class members with links to the classes they belong to: : Server
  • SendTo() : Server
  • SendToModeMask() : Server
  • SendWallops() -: Server
  • Server() -: Server
  • server -: WhoWasUser, userrec, InspSocket
  • ServerConfig() +: Server
  • server +: WhoWasUser, userrec, InspSocket
  • Server() +: Server
  • ServerConfig() : ServerConfig
  • ServerDesc : ServerConfig
  • ServerName : ServerConfig
  • Set() @@ -46,7 +46,7 @@ Here is a list of all class members with links to the classes they belong to: : ServerConfig
  • source : XLine, Event, Request, command_t
  • state : InspSocket -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x74.html b/docs/module-doc/functions_0x74.html index 628fe57a4..b5c75256b 100644 --- a/docs/module-doc/functions_0x74.html +++ b/docs/module-doc/functions_0x74.html @@ -14,16 +14,16 @@ Here is a list of all class members with links to the classes they belong to:

    - t -

    -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x75.html b/docs/module-doc/functions_0x75.html index c1c6931dd..9b7b71bf8 100644 --- a/docs/module-doc/functions_0x75.html +++ b/docs/module-doc/functions_0x75.html @@ -20,7 +20,7 @@ Here is a list of all class members with links to the classes they belong to: : command_t
  • userrec() : userrec
  • UserToPseudo() : Server -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x76.html b/docs/module-doc/functions_0x76.html index 31fec288f..0c2ff4e67 100644 --- a/docs/module-doc/functions_0x76.html +++ b/docs/module-doc/functions_0x76.html @@ -15,7 +15,7 @@ Here is a list of all class members with links to the classes they belong to:
  • Verify() : ConfigReader
  • Version() : Version -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x77.html b/docs/module-doc/functions_0x77.html index 6ca8111cf..d6efa6441 100644 --- a/docs/module-doc/functions_0x77.html +++ b/docs/module-doc/functions_0x77.html @@ -16,7 +16,7 @@ Here is a list of all class members with links to the classes they belong to: : SocketEngine
  • Write() : InspSocket
  • WriteError : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_0x7e.html b/docs/module-doc/functions_0x7e.html index db3305a53..2ba9f41ca 100644 --- a/docs/module-doc/functions_0x7e.html +++ b/docs/module-doc/functions_0x7e.html @@ -27,7 +27,7 @@ Here is a list of all class members with links to the classes they belong to: : SocketEngine
  • ~ucrec() : ucrec
  • ~userrec() : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func.html b/docs/module-doc/functions_func.html index ad0b484df..251b34177 100644 --- a/docs/module-doc/functions_func.html +++ b/docs/module-doc/functions_func.html @@ -27,7 +27,7 @@ : userrec
  • AddZLine() : Server
  • Admin() : Admin -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x62.html b/docs/module-doc/functions_func_0x62.html index c30d20d1c..9c96c00ec 100644 --- a/docs/module-doc/functions_func_0x62.html +++ b/docs/module-doc/functions_func_0x62.html @@ -15,7 +15,7 @@
  • BoolSet() : BoolSet
  • BufferIsReady() : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x63.html b/docs/module-doc/functions_func_0x63.html index 640cc3cf5..fa45ea0f6 100644 --- a/docs/module-doc/functions_func_0x63.html +++ b/docs/module-doc/functions_func_0x63.html @@ -35,7 +35,7 @@ : connection
  • CountUsers() : Server
  • CreateModule() : ModuleFactory -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x64.html b/docs/module-doc/functions_func_0x64.html index 2ab41542c..5f00c56df 100644 --- a/docs/module-doc/functions_func_0x64.html +++ b/docs/module-doc/functions_func_0x64.html @@ -37,7 +37,7 @@ : DNS
  • dns_ntoa4_s() : DNS
  • DumpErrors() : ConfigReader -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x65.html b/docs/module-doc/functions_func_0x65.html index e23bdecfb..840ec03ea 100644 --- a/docs/module-doc/functions_func_0x65.html +++ b/docs/module-doc/functions_func_0x65.html @@ -22,7 +22,7 @@ : FileReader
  • Extend() : Extensible
  • ExtMode() : ExtMode -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x66.html b/docs/module-doc/functions_func_0x66.html index 0e2d42193..4e4b0f6a9 100644 --- a/docs/module-doc/functions_func_0x66.html +++ b/docs/module-doc/functions_func_0x66.html @@ -23,7 +23,7 @@ : Server
  • FlushWriteBuf() : userrec
  • ForwardLookup() : DNS -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x67.html b/docs/module-doc/functions_func_0x67.html index e1f310d6b..76ab5f268 100644 --- a/docs/module-doc/functions_func_0x67.html +++ b/docs/module-doc/functions_func_0x67.html @@ -15,7 +15,8 @@
  • Get() : BoolSet
  • GetAdmin() : Server
  • GetBuffer() -: userrec
  • GetData() +: userrec
  • GetConfig() +: Server
  • GetData() : Event, Request
  • GetDest() : Request
  • GetError() : ConfigReader
  • GetEventID() @@ -43,7 +44,7 @@ : Server, chanrec
  • GetVersion() : Module
  • GetWriteError() : userrec -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x68.html b/docs/module-doc/functions_func_0x68.html index 82953a94a..957813b80 100644 --- a/docs/module-doc/functions_func_0x68.html +++ b/docs/module-doc/functions_func_0x68.html @@ -16,7 +16,7 @@ : userrec
  • HasResult() : DNS
  • HostItem() : HostItem -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x69.html b/docs/module-doc/functions_func_0x69.html index f7b844dc7..29bf2dd4b 100644 --- a/docs/module-doc/functions_func_0x69.html +++ b/docs/module-doc/functions_func_0x69.html @@ -23,7 +23,7 @@ : Server
  • IsValidMask() : Server
  • IsValidModuleCommand() : Server -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x6a.html b/docs/module-doc/functions_func_0x6a.html index 2a881d52f..973fa4e50 100644 --- a/docs/module-doc/functions_func_0x6a.html +++ b/docs/module-doc/functions_func_0x6a.html @@ -14,7 +14,7 @@

    - j -

    -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x6c.html b/docs/module-doc/functions_func_0x6c.html index 1e3cd2bf6..44f16456a 100644 --- a/docs/module-doc/functions_func_0x6c.html +++ b/docs/module-doc/functions_func_0x6c.html @@ -17,7 +17,7 @@ : FileReader
  • Log() : Server
  • lt() : irc::irc_char_traits -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x6d.html b/docs/module-doc/functions_func_0x6d.html index 35a36040a..82ce85721 100644 --- a/docs/module-doc/functions_func_0x6d.html +++ b/docs/module-doc/functions_func_0x6d.html @@ -16,7 +16,7 @@ : Server
  • Module() : Module
  • ModuleFactory() : ModuleFactory -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x6e.html b/docs/module-doc/functions_func_0x6e.html index 79765436c..b71ef73cf 100644 --- a/docs/module-doc/functions_func_0x6e.html +++ b/docs/module-doc/functions_func_0x6e.html @@ -14,7 +14,7 @@

    - n -

    -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x6f.html b/docs/module-doc/functions_func_0x6f.html index 55b1e196d..1aa4c4439 100644 --- a/docs/module-doc/functions_func_0x6f.html +++ b/docs/module-doc/functions_func_0x6f.html @@ -100,7 +100,7 @@ : BoolSet
  • operator==() : BoolSet
  • operator|() : BoolSet -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x70.html b/docs/module-doc/functions_func_0x70.html index e955bc3c0..a41d0b8dc 100644 --- a/docs/module-doc/functions_func_0x70.html +++ b/docs/module-doc/functions_func_0x70.html @@ -18,7 +18,7 @@ : Module
  • ProtoSendMode() : Module
  • PseudoToUser() : Server -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x71.html b/docs/module-doc/functions_func_0x71.html index 71a14778e..25bfe62b2 100644 --- a/docs/module-doc/functions_func_0x71.html +++ b/docs/module-doc/functions_func_0x71.html @@ -14,7 +14,7 @@

    - q -

    -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x72.html b/docs/module-doc/functions_func_0x72.html index ae30a71bb..a2a774d06 100644 --- a/docs/module-doc/functions_func_0x72.html +++ b/docs/module-doc/functions_func_0x72.html @@ -23,7 +23,7 @@ : userrec
  • Request() : Request
  • ReverseLookup() : DNS -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x73.html b/docs/module-doc/functions_func_0x73.html index d8411a688..d0163e702 100644 --- a/docs/module-doc/functions_func_0x73.html +++ b/docs/module-doc/functions_func_0x73.html @@ -34,7 +34,7 @@ : userrec
  • Shrink() : Extensible
  • SocketEngine() : SocketEngine -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x74.html b/docs/module-doc/functions_func_0x74.html index e6e95fd87..02ca5bfba 100644 --- a/docs/module-doc/functions_func_0x74.html +++ b/docs/module-doc/functions_func_0x74.html @@ -14,7 +14,7 @@

    - t -

    -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x75.html b/docs/module-doc/functions_func_0x75.html index e58b673d0..3c34d3db5 100644 --- a/docs/module-doc/functions_func_0x75.html +++ b/docs/module-doc/functions_func_0x75.html @@ -17,7 +17,7 @@ : BoolSet
  • userrec() : userrec
  • UserToPseudo() : Server -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x76.html b/docs/module-doc/functions_func_0x76.html index 6c1009524..252461733 100644 --- a/docs/module-doc/functions_func_0x76.html +++ b/docs/module-doc/functions_func_0x76.html @@ -15,7 +15,7 @@
  • Verify() : ConfigReader
  • Version() : Version -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x77.html b/docs/module-doc/functions_func_0x77.html index 057b8a056..9e83806e4 100644 --- a/docs/module-doc/functions_func_0x77.html +++ b/docs/module-doc/functions_func_0x77.html @@ -15,7 +15,7 @@
  • Wait() : SocketEngine
  • Write() : InspSocket -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_func_0x7e.html b/docs/module-doc/functions_func_0x7e.html index a5df81d15..6dea30f34 100644 --- a/docs/module-doc/functions_func_0x7e.html +++ b/docs/module-doc/functions_func_0x7e.html @@ -27,7 +27,7 @@ : SocketEngine
  • ~ucrec() : ucrec
  • ~userrec() : userrec -
    Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/functions_vars.html b/docs/module-doc/functions_vars.html index 9fb59da5d..4253b3c55 100644 --- a/docs/module-doc/functions_vars.html +++ b/docs/module-doc/functions_vars.html @@ -162,9 +162,9 @@ : userrec
  • restartpass : ServerConfig
  • result : DNS
  • Revision -: Version
  • rules -: ServerConfig
  • RULES -: ServerConfig +: Version
  • RULES +: ServerConfig
  • rules +: ServerConfig

    - s -

    • sendq : userrec
    • sendqmax @@ -198,7 +198,7 @@

      - w -

      -
      Generated on Wed Dec 14 14:49:29 2005 for InspIRCd by  +
      Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
      diff --git a/docs/module-doc/globals.html b/docs/module-doc/globals.html index 32ed3bd7b..71b12d781 100644 --- a/docs/module-doc/globals.html +++ b/docs/module-doc/globals.html @@ -39,7 +39,7 @@ Here is a list of all file members with links to the files they belong to: : xline.h
    • APPLY_QLINES : xline.h
    • APPLY_ZLINES : xline.h
    -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x62.html b/docs/module-doc/globals_0x62.html index 426e8c622..b5059fd27 100644 --- a/docs/module-doc/globals_0x62.html +++ b/docs/module-doc/globals_0x62.html @@ -17,7 +17,7 @@ Here is a list of all file members with links to the files they belong to: : inspircd_io.h
  • Blocking() : message.h
  • boundPortCount : socket.cpp, modules.cpp, channels.cpp -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x63.html b/docs/module-doc/globals_0x63.html index d7d0a80ff..004f8c42b 100644 --- a/docs/module-doc/globals_0x63.html +++ b/docs/module-doc/globals_0x63.html @@ -47,7 +47,7 @@ Here is a list of all file members with links to the files they belong to: : modules.h
  • cstatus() : message.h
  • custom_mode_params : channels.cpp -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x64.html b/docs/module-doc/globals_0x64.html index 2920aa66c..8d2cd301a 100644 --- a/docs/module-doc/globals_0x64.html +++ b/docs/module-doc/globals_0x64.html @@ -25,7 +25,7 @@ Here is a list of all file members with links to the files they belong to: : modules.cpp
  • DoBackgroundUserStuff() : userprocess.h
  • duration() : commands.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x65.html b/docs/module-doc/globals_0x65.html index 3a2cf9570..191696224 100644 --- a/docs/module-doc/globals_0x65.html +++ b/docs/module-doc/globals_0x65.html @@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to: : xline.h
  • ExtModeList : typedefs.h
  • ExtModeListIter : typedefs.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x66.html b/docs/module-doc/globals_0x66.html index cb4013876..d0eae47b3 100644 --- a/docs/module-doc/globals_0x66.html +++ b/docs/module-doc/globals_0x66.html @@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to: : inspircd_io.h
  • FOREACH_MOD : modules.h
  • FOREACH_RESULT : modules.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x67.html b/docs/module-doc/globals_0x67.html index 388bdfb1b..263e5e63e 100644 --- a/docs/module-doc/globals_0x67.html +++ b/docs/module-doc/globals_0x67.html @@ -17,7 +17,7 @@ Here is a list of all file members with links to the files they belong to: : mode.h
  • give_voice() : mode.h
  • gline_set_creation_time() : xline.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x68.html b/docs/module-doc/globals_0x68.html index daa1712b6..72535bc39 100644 --- a/docs/module-doc/globals_0x68.html +++ b/docs/module-doc/globals_0x68.html @@ -67,7 +67,7 @@ Here is a list of all file members with links to the files they belong to: : commands.h
  • has_channel() : message.h
  • hasumode() : message.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x69.html b/docs/module-doc/globals_0x69.html index da6ab59dc..0e570fca0 100644 --- a/docs/module-doc/globals_0x69.html +++ b/docs/module-doc/globals_0x69.html @@ -31,7 +31,7 @@ Here is a list of all file members with links to the files they belong to: : commands.h
  • isident() : message.h
  • isnick() : message.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x6c.html b/docs/module-doc/globals_0x6c.html index 0af135f9c..022ae2629 100644 --- a/docs/module-doc/globals_0x6c.html +++ b/docs/module-doc/globals_0x6c.html @@ -14,7 +14,7 @@ Here is a list of all file members with links to the files they belong to:

    - l -

    -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x6d.html b/docs/module-doc/globals_0x6d.html index 55a3cc39f..cfbde6472 100644 --- a/docs/module-doc/globals_0x6d.html +++ b/docs/module-doc/globals_0x6d.html @@ -33,7 +33,7 @@ Here is a list of all file members with links to the files they belong to: : modules.h
  • MT_CLIENT : modules.h
  • MT_SERVER : modules.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x6e.html b/docs/module-doc/globals_0x6e.html index bda58d3d6..24808a7ea 100644 --- a/docs/module-doc/globals_0x6e.html +++ b/docs/module-doc/globals_0x6e.html @@ -16,7 +16,7 @@ Here is a list of all file members with links to the files they belong to: : message.h
  • NONE : modules.h, inspircd_io.h
  • nspace : hashcomp.h, channels.cpp -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x6f.html b/docs/module-doc/globals_0x6f.html index 82748c8bb..61c4a5c72 100644 --- a/docs/module-doc/globals_0x6f.html +++ b/docs/module-doc/globals_0x6f.html @@ -16,7 +16,7 @@ Here is a list of all file members with links to the files they belong to: : userprocess.h
  • openSockfd : socket.cpp
  • OpenTCPSocket() : inspircd_io.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x70.html b/docs/module-doc/globals_0x70.html index 3fe8470ee..07b308c06 100644 --- a/docs/module-doc/globals_0x70.html +++ b/docs/module-doc/globals_0x70.html @@ -18,7 +18,7 @@ Here is a list of all file members with links to the files they belong to: : mode.h
  • process_module_umode() : mode.h
  • ProcessUser() : userprocess.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x71.html b/docs/module-doc/globals_0x71.html index 80788e913..5ef20bf47 100644 --- a/docs/module-doc/globals_0x71.html +++ b/docs/module-doc/globals_0x71.html @@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
  • qline_make_global() : xline.h
  • qline_set_creation_time() : xline.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x72.html b/docs/module-doc/globals_0x72.html index 2b5acd8d5..a420f0540 100644 --- a/docs/module-doc/globals_0x72.html +++ b/docs/module-doc/globals_0x72.html @@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
  • read_xline_defaults() : xline.h
  • ref : socketengine.cpp -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x73.html b/docs/module-doc/globals_0x73.html index 701b40539..1c37b1e40 100644 --- a/docs/module-doc/globals_0x73.html +++ b/docs/module-doc/globals_0x73.html @@ -32,7 +32,7 @@ Here is a list of all file members with links to the files they belong to: : users.h
  • string : hashcomp.h
  • string_list : modules.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x74.html b/docs/module-doc/globals_0x74.html index c5928f80e..be2b2793f 100644 --- a/docs/module-doc/globals_0x74.html +++ b/docs/module-doc/globals_0x74.html @@ -20,7 +20,7 @@ Here is a list of all file members with links to the files they belong to: : message.h
  • tidystring() : message.h
  • TIME : users.cpp, socket.cpp, modules.cpp, channels.cpp -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x75.html b/docs/module-doc/globals_0x75.html index bd8905e78..72817cac7 100644 --- a/docs/module-doc/globals_0x75.html +++ b/docs/module-doc/globals_0x75.html @@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to: : channels.h
  • UCMODE_VOICE : channels.h
  • user_hash : typedefs.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x76.html b/docs/module-doc/globals_0x76.html index 61ed3360c..885147170 100644 --- a/docs/module-doc/globals_0x76.html +++ b/docs/module-doc/globals_0x76.html @@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to: : modules.h
  • VF_VENDOR : modules.h
  • VoidPointer : base.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x77.html b/docs/module-doc/globals_0x77.html index 5b03af87a..a4f5cb61f 100644 --- a/docs/module-doc/globals_0x77.html +++ b/docs/module-doc/globals_0x77.html @@ -18,7 +18,7 @@ Here is a list of all file members with links to the files they belong to: : modules.cpp, channels.cpp
  • WHOWAS_STALE : modules.cpp, channels.cpp
  • WritePID() : inspircd_io.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x78.html b/docs/module-doc/globals_0x78.html index b9d5f36c7..a3a35f44b 100644 --- a/docs/module-doc/globals_0x78.html +++ b/docs/module-doc/globals_0x78.html @@ -19,7 +19,7 @@ Here is a list of all file members with links to the files they belong to: : socketengine.h
  • X_LISTEN : socketengine.h
  • X_READBIT : socketengine.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_0x7a.html b/docs/module-doc/globals_0x7a.html index d1c40cf44..2162b0839 100644 --- a/docs/module-doc/globals_0x7a.html +++ b/docs/module-doc/globals_0x7a.html @@ -15,7 +15,7 @@ Here is a list of all file members with links to the files they belong to:
  • zline_make_global() : xline.h
  • zline_set_creation_time() : xline.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_defs.html b/docs/module-doc/globals_defs.html index faa848260..c1f6f95cf 100644 --- a/docs/module-doc/globals_defs.html +++ b/docs/module-doc/globals_defs.html @@ -78,7 +78,7 @@ : modules.h
  • VF_STATIC : modules.h
  • VF_VENDOR : modules.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_enum.html b/docs/module-doc/globals_enum.html index 72f29fe7c..aa397a6e2 100644 --- a/docs/module-doc/globals_enum.html +++ b/docs/module-doc/globals_enum.html @@ -12,7 +12,7 @@
  • InspSocketError : socket.h
  • InspSocketState : socket.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_eval.html b/docs/module-doc/globals_eval.html index 1b9879ba7..f066ce86e 100644 --- a/docs/module-doc/globals_eval.html +++ b/docs/module-doc/globals_eval.html @@ -19,7 +19,7 @@ : socket.h
  • I_ERROR : socket.h
  • I_LISTENING : socket.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_func.html b/docs/module-doc/globals_func.html index cf9bb3501..630b2d087 100644 --- a/docs/module-doc/globals_func.html +++ b/docs/module-doc/globals_func.html @@ -190,7 +190,7 @@
  • zline_make_global() : xline.h
  • zline_set_creation_time() : xline.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_type.html b/docs/module-doc/globals_type.html index 8bea88b90..8c2f6cab1 100644 --- a/docs/module-doc/globals_type.html +++ b/docs/module-doc/globals_type.html @@ -29,7 +29,7 @@ : typedefs.h
  • VoidPointer : base.h
  • whowas_hash : typedefs.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/globals_vars.html b/docs/module-doc/globals_vars.html index bd909da15..6fe946e60 100644 --- a/docs/module-doc/globals_vars.html +++ b/docs/module-doc/globals_vars.html @@ -76,7 +76,7 @@ : socketengine.h
  • X_LISTEN : socketengine.h
  • X_READBIT : socketengine.h -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/graph_legend.html b/docs/module-doc/graph_legend.html index 3737e5375..d1df49f64 100644 --- a/docs/module-doc/graph_legend.html +++ b/docs/module-doc/graph_legend.html @@ -67,7 +67,7 @@ A purple dashed arrow is used if a class is contained or used by another class.
  • 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.
  • -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:53 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/hashcomp_8h-source.html b/docs/module-doc/hashcomp_8h-source.html index aa9b29253..1e0fa4622 100644 --- a/docs/module-doc/hashcomp_8h-source.html +++ b/docs/module-doc/hashcomp_8h-source.html @@ -109,7 +109,7 @@ 00130 } 00131 00132 #endif -

    Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/hashcomp_8h.html b/docs/module-doc/hashcomp_8h.html index 277bce791..8c1e6e7c3 100644 --- a/docs/module-doc/hashcomp_8h.html +++ b/docs/module-doc/hashcomp_8h.html @@ -78,7 +78,7 @@ This graph shows which files directly or indirectly include this file:

    44 of file hashcomp.h. -
    Generated on Wed Dec 14 14:49:22 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/hierarchy.html b/docs/module-doc/hierarchy.html index 2f41e34b2..dd52dc05e 100644 --- a/docs/module-doc/hierarchy.html +++ b/docs/module-doc/hierarchy.html @@ -67,7 +67,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically: -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/inherits.html b/docs/module-doc/inherits.html index 85f6f35c2..d9f95000c 100644 --- a/docs/module-doc/inherits.html +++ b/docs/module-doc/inherits.html @@ -89,7 +89,7 @@ -
    Generated on Wed Dec 14 14:49:38 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:53 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/inspircd__io_8h-source.html b/docs/module-doc/inspircd__io_8h-source.html index 1d9d839b9..adb91f08c 100644 --- a/docs/module-doc/inspircd__io_8h-source.html +++ b/docs/module-doc/inspircd__io_8h-source.html @@ -11,7 +11,7 @@ 00002 * | Inspire Internet Relay Chat Daemon | 00003 * +------------------------------------+ 00004 * -00005 * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. +00005 * Inspire is copyright (C) 2002-2005 ChatSpike-Dev. 00006 * E-mail: 00007 * <brain@chatspike.net> 00008 * <Craig@chatspike.net> @@ -32,88 +32,122 @@ 00023 #include "inspircd.h" 00024 #include "globals.h" 00025 -00026 // flags for use with log() -00027 00028 #define DEBUG 10 00029 #define VERBOSE 20 00030 #define DEFAULT 30 00031 #define SPARSE 40 00032 #define NONE 50 00033 -00034 class ServerConfig : public classbase -00035 { -00036 private: -00037 std::vector<std::string> include_stack; -00038 int fgets_safe(char* buffer, size_t maxsize, FILE* &file); -00039 std::string ConfProcess(char* buffer, long linenumber, std::stringstream* errorstream, bool &error, std::string filename); -00040 -00041 public: -00042 char ServerName[MAXBUF]; -00043 char Network[MAXBUF]; -00044 char ServerDesc[MAXBUF]; -00045 char AdminName[MAXBUF]; -00046 char AdminEmail[MAXBUF]; -00047 char AdminNick[MAXBUF]; -00048 char diepass[MAXBUF]; -00049 char restartpass[MAXBUF]; -00050 char motd[MAXBUF]; -00051 char rules[MAXBUF]; -00052 char PrefixQuit[MAXBUF]; -00053 char DieValue[MAXBUF]; -00054 char DNSServer[MAXBUF]; -00055 char DisabledCommands[MAXBUF]; -00056 char ModPath[1024]; -00057 char MyExecutable[1024]; -00058 FILE *log_file; -00059 bool nofork; -00060 bool unlimitcore; -00061 bool AllowHalfop; -00062 int dns_timeout; -00063 int NetBufferSize; // NetBufferSize used as the buffer size for all read() ops -00064 int MaxConn; // size of accept() backlog (128 by default on *BSD) -00065 unsigned int SoftLimit; -00066 int MaxWhoResults; -00067 int debugging; -00068 int LogLevel; -00069 int DieDelay; -00070 char addrs[MAXBUF][255]; -00071 file_cache MOTD; -00072 file_cache RULES; -00073 char PID[1024]; -00074 std::stringstream config_f; -00075 ClassVector Classes; -00076 std::vector<std::string> module_names; -00077 -00078 ServerConfig(); -00079 void ClearStack(); -00080 void Read(bool bail, userrec* user); -00081 bool LoadConf(const char* filename, std::stringstream *target, std::stringstream* errorstream); -00082 int ConfValue(char* tag, char* var, int index, char *result, std::stringstream *config); -00083 int ReadConf(std::stringstream *config_f,const char* tag, const char* var, int index, char *result); -00084 int ConfValueEnum(char* tag,std::stringstream *config); -00085 int EnumConf(std::stringstream *config_f,const char* tag); -00086 int EnumValues(std::stringstream *config, const char* tag, int index); -00087 }; -00088 -00089 -00090 void Exit (int); -00091 void Start (void); -00092 int DaemonSeed (void); -00093 bool FileExists (const char* file); -00094 int OpenTCPSocket (void); -00095 int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr); -00096 -00097 /*bool LoadConf(const char* filename, std::stringstream *target, std::stringstream* errorstream); -00098 int ConfValue(char* tag, char* var, int index, char *result, std::stringstream *config); -00099 int ReadConf(std::stringstream *config_f,const char* tag, const char* var, int index, char *result); -00100 int ConfValueEnum(char* tag,std::stringstream *config); -00101 int EnumConf(std::stringstream *config_f,const char* tag); -00102 int EnumValues(std::stringstream *config, const char* tag, int index);*/ +00039 class ServerConfig : public classbase +00040 { +00041 private: +00047 std::vector<std::string> include_stack; +00048 +00055 int fgets_safe(char* buffer, size_t maxsize, FILE* &file); +00056 +00061 std::string ConfProcess(char* buffer, long linenumber, std::stringstream* errorstream, bool &error, std::string filename); +00062 +00063 public: +00064 +00068 char ServerName[MAXBUF]; +00069 +00070 /* Holds the network name the local server +00071 * belongs to. This is an arbitary field defined +00072 * by the administrator. +00073 */ +00074 char Network[MAXBUF]; +00075 +00079 char ServerDesc[MAXBUF]; +00080 +00084 char AdminName[MAXBUF]; +00085 +00089 char AdminEmail[MAXBUF]; +00090 +00094 char AdminNick[MAXBUF]; +00095 +00098 char diepass[MAXBUF]; +00099 +00102 char restartpass[MAXBUF]; 00103 -00104 void WritePID(std::string filename); -00105 -00106 #endif -

    Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +00107 char motd[MAXBUF]; +00108 +00112 char rules[MAXBUF]; +00113 +00116 char PrefixQuit[MAXBUF]; +00117 +00121 char DieValue[MAXBUF]; +00122 +00125 char DNSServer[MAXBUF]; +00126 +00131 char DisabledCommands[MAXBUF]; +00132 +00138 char ModPath[1024]; +00139 +00143 char MyExecutable[1024]; +00144 +00151 FILE *log_file; +00152 +00158 bool nofork; +00159 +00166 bool unlimitcore; +00167 +00171 bool AllowHalfop; +00172 +00176 int dns_timeout; +00177 +00182 int NetBufferSize; +00183 +00187 int MaxConn; +00188 +00193 unsigned int SoftLimit; +00194 +00198 int MaxWhoResults; +00199 +00202 int debugging; +00203 +00206 int LogLevel; +00207 +00211 int DieDelay; +00212 +00216 char addrs[MAXBUF][255]; +00217 +00220 file_cache MOTD; +00221 +00224 file_cache RULES; +00225 +00229 char PID[1024]; +00230 +00238 std::stringstream config_f; +00239 +00242 ClassVector Classes; +00243 +00247 std::vector<std::string> module_names; +00248 +00249 ServerConfig(); +00250 +00254 void ClearStack(); +00255 +00260 void Read(bool bail, userrec* user); +00261 +00262 bool LoadConf(const char* filename, std::stringstream *target, std::stringstream* errorstream); +00263 int ConfValue(char* tag, char* var, int index, char *result, std::stringstream *config); +00264 int ReadConf(std::stringstream *config_f,const char* tag, const char* var, int index, char *result); +00265 int ConfValueEnum(char* tag,std::stringstream *config); +00266 int EnumConf(std::stringstream *config_f,const char* tag); +00267 int EnumValues(std::stringstream *config, const char* tag, int index); +00268 }; +00269 +00270 +00271 void Exit (int); +00272 void Start (void); +00273 int DaemonSeed (void); +00274 bool FileExists (const char* file); +00275 int OpenTCPSocket (void); +00276 int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr); +00277 void WritePID(std::string filename); +00278 +00279 #endif +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/inspircd__io_8h.html b/docs/module-doc/inspircd__io_8h.html index 85773d0a1..37dd23863 100644 --- a/docs/module-doc/inspircd__io_8h.html +++ b/docs/module-doc/inspircd__io_8h.html @@ -30,9 +30,11 @@ This graph shows which files directly or indirectly include this file:


    Classes

    class  ServerConfig + This class holds the bulk of the runtime configuration for the ircd. More...

    Defines

    #define DEBUG   10 + Flags for use with log().
    #define VERBOSE   20 #define DEFAULT   30 @@ -78,11 +80,13 @@ This graph shows which files directly or indirectly include this file:

    +Flags for use with log(). +

    Definition at line 28 of file inspircd_io.h.

    -Referenced by Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), SocketEngine::DelFd(), chanrec::DelUser(), InspSocket::InspSocket(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine(). +Referenced by Server::AddExtendedMode(), SocketEngine::AddFd(), chanrec::AddUser(), SocketEngine::DelFd(), chanrec::DelUser(), InspSocket::InspSocket(), InspSocket::Read(), userrec::RemoveInvite(), chanrec::SetCustomMode(), chanrec::SetCustomModeParam(), InspSocket::SetState(), userrec::SetWriteError(), SocketEngine::SocketEngine(), and SocketEngine::~SocketEngine().

    @@ -413,7 +417,7 @@ Referenced by InspSocket::In -


    Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/main.html b/docs/module-doc/main.html index 730e7e55f..cc6fc63b3 100644 --- a/docs/module-doc/main.html +++ b/docs/module-doc/main.html @@ -7,7 +7,7 @@

    InspIRCd Documentation

    -

    1.0Betareleases


    Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

    1.0Betareleases


    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/message_8h-source.html b/docs/module-doc/message_8h-source.html index 22bba55ae..6d5e580d7 100644 --- a/docs/module-doc/message_8h-source.html +++ b/docs/module-doc/message_8h-source.html @@ -57,7 +57,7 @@ 00048 void send_network_quit(const char* nick, const char* reason); 00049 00050 #endif -

    Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/message_8h.html b/docs/module-doc/message_8h.html index a9d4b46f0..ec2abd1ed 100644 --- a/docs/module-doc/message_8h.html +++ b/docs/module-doc/message_8h.html @@ -165,7 +165,7 @@ This graph shows which files directly or indirectly include this file:

    -Referenced by Server::ChangeHost(). +Referenced by Server::ChangeHost().

    @@ -204,7 +204,7 @@ Referenced by Server::Chang

    -Referenced by Server::ChangeGECOS(). +Referenced by Server::ChangeGECOS().

    @@ -345,7 +345,7 @@ Referenced by Server::Chang

    -Referenced by Server::ChanMode(). +Referenced by Server::ChanMode().

    @@ -384,7 +384,7 @@ Referenced by Server::ChanM

    -Referenced by Server::CommonChannels(). +Referenced by Server::CommonChannels().

    @@ -460,7 +460,7 @@ Referenced by Server::Commo

    -Referenced by Server::IsOnChannel(). +Referenced by Server::IsOnChannel().

    @@ -555,7 +555,7 @@ Referenced by Server::IsOnC

    -Referenced by Server::IsNick(). +Referenced by Server::IsNick().

    @@ -679,7 +679,7 @@ Referenced by Server::IsNic -


    Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/mode_8h-source.html b/docs/module-doc/mode_8h-source.html index b184dbb57..1c5287364 100644 --- a/docs/module-doc/mode_8h-source.html +++ b/docs/module-doc/mode_8h-source.html @@ -55,7 +55,7 @@ 00046 00047 00048 #endif -

    Generated on Wed Dec 14 14:49:16 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/mode_8h.html b/docs/module-doc/mode_8h.html index a1d6e7eed..5848b0695 100644 --- a/docs/module-doc/mode_8h.html +++ b/docs/module-doc/mode_8h.html @@ -593,7 +593,7 @@ This graph shows which files directly or indirectly include this file:

    -Referenced by Server::SendMode(). +Referenced by Server::SendMode().

    @@ -792,7 +792,7 @@ Referenced by Server::SendM -


    Generated on Wed Dec 14 14:49:23 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/modules_8cpp-source.html b/docs/module-doc/modules_8cpp-source.html index 9a36d4e5b..0ecd0c95b 100644 --- a/docs/module-doc/modules_8cpp-source.html +++ b/docs/module-doc/modules_8cpp-source.html @@ -338,611 +338,616 @@ 00329 Config->Read(false,NULL); 00330 } 00331 -00332 void Server::DelSocket(InspSocket* sock) +00332 ServerConfig* Server::GetConfig() 00333 { -00334 for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) -00335 { -00336 if (*a == sock) -00337 { -00338 module_sockets.erase(a); -00339 return; -00340 } -00341 } -00342 } -00343 -00344 void Server::SendOpers(std::string s) -00345 { -00346 WriteOpers("%s",s.c_str()); +00334 return Config; +00335 } +00336 +00337 void Server::DelSocket(InspSocket* sock) +00338 { +00339 for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) +00340 { +00341 if (*a == sock) +00342 { +00343 module_sockets.erase(a); +00344 return; +00345 } +00346 } 00347 } 00348 -00349 bool Server::MatchText(std::string sliteral, std::string spattern) +00349 void Server::SendOpers(std::string s) 00350 { -00351 char literal[MAXBUF],pattern[MAXBUF]; -00352 strlcpy(literal,sliteral.c_str(),MAXBUF); -00353 strlcpy(pattern,spattern.c_str(),MAXBUF); -00354 return match(literal,pattern); -00355 } -00356 -00357 void Server::SendToModeMask(std::string modes, int flags, std::string text) -00358 { -00359 WriteMode(modes.c_str(),flags,"%s",text.c_str()); +00351 WriteOpers("%s",s.c_str()); +00352 } +00353 +00354 bool Server::MatchText(std::string sliteral, std::string spattern) +00355 { +00356 char literal[MAXBUF],pattern[MAXBUF]; +00357 strlcpy(literal,sliteral.c_str(),MAXBUF); +00358 strlcpy(pattern,spattern.c_str(),MAXBUF); +00359 return match(literal,pattern); 00360 } 00361 -00362 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) +00362 void Server::SendToModeMask(std::string modes, int flags, std::string text) 00363 { -00364 return add_channel(user,cname.c_str(),key.c_str(),false); +00364 WriteMode(modes.c_str(),flags,"%s",text.c_str()); 00365 } 00366 -00367 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) +00367 chanrec* Server::JoinUserToChannel(userrec* user, std::string cname, std::string key) 00368 { -00369 return del_channel(user,cname.c_str(),reason.c_str(),false); +00369 return add_channel(user,cname.c_str(),key.c_str(),false); 00370 } 00371 -00372 chanuserlist Server::GetUsers(chanrec* chan) +00372 chanrec* Server::PartUserFromChannel(userrec* user, std::string cname, std::string reason) 00373 { -00374 chanuserlist userl; -00375 userl.clear(); -00376 std::vector<char*> *list = chan->GetUsers(); -00377 for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++) -00378 { -00379 char* o = *i; -00380 userl.push_back((userrec*)o); -00381 } -00382 return userl; -00383 } -00384 void Server::ChangeUserNick(userrec* user, std::string nickname) -00385 { -00386 force_nickchange(user,nickname.c_str()); -00387 } -00388 -00389 void Server::QuitUser(userrec* user, std::string reason) +00374 return del_channel(user,cname.c_str(),reason.c_str(),false); +00375 } +00376 +00377 chanuserlist Server::GetUsers(chanrec* chan) +00378 { +00379 chanuserlist userl; +00380 userl.clear(); +00381 std::vector<char*> *list = chan->GetUsers(); +00382 for (std::vector<char*>::iterator i = list->begin(); i != list->end(); i++) +00383 { +00384 char* o = *i; +00385 userl.push_back((userrec*)o); +00386 } +00387 return userl; +00388 } +00389 void Server::ChangeUserNick(userrec* user, std::string nickname) 00390 { -00391 kill_link(user,reason.c_str()); +00391 force_nickchange(user,nickname.c_str()); 00392 } 00393 -00394 bool Server::IsUlined(std::string server) +00394 void Server::QuitUser(userrec* user, std::string reason) 00395 { -00396 return is_uline(server.c_str()); +00396 kill_link(user,reason.c_str()); 00397 } 00398 -00399 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) +00399 bool Server::IsUlined(std::string server) 00400 { -00401 call_handler(commandname.c_str(),parameters,pcnt,user); +00401 return is_uline(server.c_str()); 00402 } 00403 -00404 bool Server::IsValidModuleCommand(std::string commandname, int pcnt, userrec* user) +00404 void Server::CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user) 00405 { -00406 return is_valid_cmd(commandname.c_str(), pcnt, user); +00406 call_handler(commandname.c_str(),parameters,pcnt,user); 00407 } 00408 -00409 void Server::Log(int level, std::string s) +00409 bool Server::IsValidModuleCommand(std::string commandname, int pcnt, userrec* user) 00410 { -00411 log(level,"%s",s.c_str()); +00411 return is_valid_cmd(commandname.c_str(), pcnt, user); 00412 } 00413 -00414 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source) +00414 void Server::Log(int level, std::string s) 00415 { -00416 createcommand(cmd,f,flags,minparams,source); +00416 log(level,"%s",s.c_str()); 00417 } 00418 -00419 void Server::SendMode(char **parameters, int pcnt, userrec *user) +00419 void Server::AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source) 00420 { -00421 server_mode(parameters,pcnt,user); +00421 createcommand(cmd,f,flags,minparams,source); 00422 } 00423 -00424 void Server::Send(int Socket, std::string s) +00424 void Server::SendMode(char **parameters, int pcnt, userrec *user) 00425 { -00426 Write(Socket,"%s",s.c_str()); +00426 server_mode(parameters,pcnt,user); 00427 } 00428 -00429 void Server::SendServ(int Socket, std::string s) +00429 void Server::Send(int Socket, std::string s) 00430 { -00431 WriteServ(Socket,"%s",s.c_str()); +00431 Write(Socket,"%s",s.c_str()); 00432 } 00433 -00434 void Server::SendFrom(int Socket, userrec* User, std::string s) +00434 void Server::SendServ(int Socket, std::string s) 00435 { -00436 WriteFrom(Socket,User,"%s",s.c_str()); +00436 WriteServ(Socket,"%s",s.c_str()); 00437 } 00438 -00439 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) +00439 void Server::SendFrom(int Socket, userrec* User, std::string s) 00440 { -00441 if (!Source) -00442 { -00443 // if source is NULL, then the message originates from the local server -00444 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); -00445 } -00446 else +00441 WriteFrom(Socket,User,"%s",s.c_str()); +00442 } +00443 +00444 void Server::SendTo(userrec* Source, userrec* Dest, std::string s) +00445 { +00446 if (!Source) 00447 { -00448 // otherwise it comes from the user specified -00449 WriteTo(Source,Dest,"%s",s.c_str()); +00448 // if source is NULL, then the message originates from the local server +00449 Write(Dest->fd,":%s %s",this->GetServerName().c_str(),s.c_str()); 00450 } -00451 } -00452 -00453 void Server::SendChannelServerNotice(std::string ServName, chanrec* Channel, std::string text) -00454 { -00455 WriteChannelWithServ((char*)ServName.c_str(), Channel, "%s", text.c_str()); +00451 else +00452 { +00453 // otherwise it comes from the user specified +00454 WriteTo(Source,Dest,"%s",s.c_str()); +00455 } 00456 } 00457 -00458 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) +00458 void Server::SendChannelServerNotice(std::string ServName, chanrec* Channel, std::string text) 00459 { -00460 if (IncludeSender) -00461 { -00462 WriteChannel(Channel,User,"%s",s.c_str()); -00463 } -00464 else -00465 { -00466 ChanExceptSender(Channel,User,"%s",s.c_str()); -00467 } -00468 } -00469 -00470 bool Server::CommonChannels(userrec* u1, userrec* u2) -00471 { -00472 return (common_channels(u1,u2) != 0); +00460 WriteChannelWithServ((char*)ServName.c_str(), Channel, "%s", text.c_str()); +00461 } +00462 +00463 void Server::SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender) +00464 { +00465 if (IncludeSender) +00466 { +00467 WriteChannel(Channel,User,"%s",s.c_str()); +00468 } +00469 else +00470 { +00471 ChanExceptSender(Channel,User,"%s",s.c_str()); +00472 } 00473 } 00474 -00475 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) +00475 bool Server::CommonChannels(userrec* u1, userrec* u2) 00476 { -00477 if (IncludeSender) -00478 { -00479 WriteCommon(User,"%s",text.c_str()); -00480 } -00481 else -00482 { -00483 WriteCommonExcept(User,"%s",text.c_str()); -00484 } -00485 } -00486 -00487 void Server::SendWallops(userrec* User, std::string text) -00488 { -00489 WriteWallOps(User,false,"%s",text.c_str()); +00477 return (common_channels(u1,u2) != 0); +00478 } +00479 +00480 void Server::SendCommon(userrec* User, std::string text,bool IncludeSender) +00481 { +00482 if (IncludeSender) +00483 { +00484 WriteCommon(User,"%s",text.c_str()); +00485 } +00486 else +00487 { +00488 WriteCommonExcept(User,"%s",text.c_str()); +00489 } 00490 } 00491 -00492 void Server::ChangeHost(userrec* user, std::string host) +00492 void Server::SendWallops(userrec* User, std::string text) 00493 { -00494 ChangeDisplayedHost(user,host.c_str()); +00494 WriteWallOps(User,false,"%s",text.c_str()); 00495 } 00496 -00497 void Server::ChangeGECOS(userrec* user, std::string gecos) +00497 void Server::ChangeHost(userrec* user, std::string host) 00498 { -00499 ChangeName(user,gecos.c_str()); +00499 ChangeDisplayedHost(user,host.c_str()); 00500 } 00501 -00502 bool Server::IsNick(std::string nick) +00502 void Server::ChangeGECOS(userrec* user, std::string gecos) 00503 { -00504 return (isnick(nick.c_str()) != 0); +00504 ChangeName(user,gecos.c_str()); 00505 } 00506 -00507 userrec* Server::FindNick(std::string nick) +00507 bool Server::IsNick(std::string nick) 00508 { -00509 return Find(nick); +00509 return (isnick(nick.c_str()) != 0); 00510 } 00511 -00512 userrec* Server::FindDescriptor(int socket) +00512 userrec* Server::FindNick(std::string nick) 00513 { -00514 return (socket < 65536 ? fd_ref_table[socket] : NULL); +00514 return Find(nick); 00515 } 00516 -00517 chanrec* Server::FindChannel(std::string channel) +00517 userrec* Server::FindDescriptor(int socket) 00518 { -00519 return FindChan(channel.c_str()); +00519 return (socket < 65536 ? fd_ref_table[socket] : NULL); 00520 } 00521 -00522 std::string Server::ChanMode(userrec* User, chanrec* Chan) +00522 chanrec* Server::FindChannel(std::string channel) 00523 { -00524 return cmode(User,Chan); +00524 return FindChan(channel.c_str()); 00525 } 00526 -00527 bool Server::IsOnChannel(userrec* User, chanrec* Chan) +00527 std::string Server::ChanMode(userrec* User, chanrec* Chan) 00528 { -00529 return has_channel(User,Chan); +00529 return cmode(User,Chan); 00530 } 00531 -00532 std::string Server::GetServerName() +00532 bool Server::IsOnChannel(userrec* User, chanrec* Chan) 00533 { -00534 return getservername(); +00534 return has_channel(User,Chan); 00535 } 00536 -00537 std::string Server::GetNetworkName() +00537 std::string Server::GetServerName() 00538 { -00539 return getnetworkname(); +00539 return getservername(); 00540 } 00541 -00542 std::string Server::GetServerDescription() +00542 std::string Server::GetNetworkName() 00543 { -00544 return getserverdesc(); +00544 return getnetworkname(); 00545 } 00546 -00547 Admin Server::GetAdmin() +00547 std::string Server::GetServerDescription() 00548 { -00549 return Admin(getadminname(),getadminemail(),getadminnick()); +00549 return getserverdesc(); 00550 } 00551 -00552 -00553 -00554 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) -00555 { -00556 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z'))) -00557 { -00558 if (type == MT_SERVER) -00559 { -00560 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); -00561 return false; -00562 } -00563 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) +00552 Admin Server::GetAdmin() +00553 { +00554 return Admin(getadminname(),getadminemail(),getadminnick()); +00555 } +00556 +00557 +00558 +00559 bool Server::AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off) +00560 { +00561 if (((modechar >= 'A') && (modechar <= 'Z')) || ((modechar >= 'a') && (modechar <= 'z'))) +00562 { +00563 if (type == MT_SERVER) 00564 { -00565 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); +00565 log(DEBUG,"*** API ERROR *** Modes of type MT_SERVER are reserved for future expansion"); 00566 return false; 00567 } -00568 if ((params_when_on>1) || (params_when_off>1)) +00568 if (((params_when_on>0) || (params_when_off>0)) && (type == MT_CLIENT)) 00569 { -00570 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); +00570 log(DEBUG,"*** API ERROR *** Parameters on MT_CLIENT modes are not supported"); 00571 return false; 00572 } -00573 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); -00574 } -00575 else -00576 { -00577 log(DEBUG,"*** API ERROR *** Muppet modechar detected."); -00578 } -00579 return false; -00580 } -00581 -00582 bool Server::AddExtendedListMode(char modechar) -00583 { -00584 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); -00585 if (res) -00586 ModeMakeList(modechar); -00587 return res; -00588 } -00589 -00590 int Server::CountUsers(chanrec* c) -00591 { -00592 return usercount(c); +00573 if ((params_when_on>1) || (params_when_off>1)) +00574 { +00575 log(DEBUG,"*** API ERROR *** More than one parameter for an MT_CHANNEL mode is not yet supported"); +00576 return false; +00577 } +00578 return DoAddExtendedMode(modechar,type,requires_oper,params_when_on,params_when_off); +00579 } +00580 else +00581 { +00582 log(DEBUG,"*** API ERROR *** Muppet modechar detected."); +00583 } +00584 return false; +00585 } +00586 +00587 bool Server::AddExtendedListMode(char modechar) +00588 { +00589 bool res = DoAddExtendedMode(modechar,MT_CHANNEL,false,1,1); +00590 if (res) +00591 ModeMakeList(modechar); +00592 return res; 00593 } 00594 -00595 -00596 bool Server::UserToPseudo(userrec* user,std::string message) -00597 { -00598 unsigned int old_fd = user->fd; -00599 user->fd = FD_MAGIC_NUMBER; -00600 user->ClearBuffer(); -00601 Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str()); -00602 SE->DelFd(old_fd); -00603 shutdown(old_fd,2); -00604 close(old_fd); -00605 return true; -00606 } -00607 -00608 bool Server::PseudoToUser(userrec* alive,userrec* zombie,std::string message) -00609 { -00610 zombie->fd = alive->fd; -00611 alive->fd = FD_MAGIC_NUMBER; -00612 alive->ClearBuffer(); -00613 Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick); -00614 kill_link(alive,message.c_str()); -00615 fd_ref_table[zombie->fd] = zombie; -00616 for (unsigned int i = 0; i < zombie->chans.size(); i++) -00617 { -00618 if (zombie->chans[i].channel != NULL) -00619 { -00620 if (zombie->chans[i].channel->name) -00621 { -00622 chanrec* Ptr = zombie->chans[i].channel; -00623 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name); -00624 if (Ptr->topicset) -00625 { -00626 WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic); -00627 WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); -00628 } -00629 userlist(zombie,Ptr); -00630 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name); -00631 -00632 } -00633 } -00634 } -00635 return true; -00636 } -00637 -00638 void Server::AddGLine(long duration, std::string source, std::string reason, std::string hostmask) -00639 { -00640 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00595 int Server::CountUsers(chanrec* c) +00596 { +00597 return usercount(c); +00598 } +00599 +00600 +00601 bool Server::UserToPseudo(userrec* user,std::string message) +00602 { +00603 unsigned int old_fd = user->fd; +00604 user->fd = FD_MAGIC_NUMBER; +00605 user->ClearBuffer(); +00606 Write(old_fd,"ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str()); +00607 SE->DelFd(old_fd); +00608 shutdown(old_fd,2); +00609 close(old_fd); +00610 return true; +00611 } +00612 +00613 bool Server::PseudoToUser(userrec* alive,userrec* zombie,std::string message) +00614 { +00615 zombie->fd = alive->fd; +00616 alive->fd = FD_MAGIC_NUMBER; +00617 alive->ClearBuffer(); +00618 Write(zombie->fd,":%s!%s@%s NICK %s",alive->nick,alive->ident,alive->host,zombie->nick); +00619 kill_link(alive,message.c_str()); +00620 fd_ref_table[zombie->fd] = zombie; +00621 for (unsigned int i = 0; i < zombie->chans.size(); i++) +00622 { +00623 if (zombie->chans[i].channel != NULL) +00624 { +00625 if (zombie->chans[i].channel->name) +00626 { +00627 chanrec* Ptr = zombie->chans[i].channel; +00628 WriteFrom(zombie->fd,zombie,"JOIN %s",Ptr->name); +00629 if (Ptr->topicset) +00630 { +00631 WriteServ(zombie->fd,"332 %s %s :%s", zombie->nick, Ptr->name, Ptr->topic); +00632 WriteServ(zombie->fd,"333 %s %s %s %d", zombie->nick, Ptr->name, Ptr->setby, Ptr->topicset); +00633 } +00634 userlist(zombie,Ptr); +00635 WriteServ(zombie->fd,"366 %s %s :End of /NAMES list.", zombie->nick, Ptr->name); +00636 +00637 } +00638 } +00639 } +00640 return true; 00641 } 00642 -00643 void Server::AddQLine(long duration, std::string source, std::string reason, std::string nickname) +00643 void Server::AddGLine(long duration, std::string source, std::string reason, std::string hostmask) 00644 { -00645 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); +00645 add_gline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00646 } 00647 -00648 void Server::AddZLine(long duration, std::string source, std::string reason, std::string ipaddr) +00648 void Server::AddQLine(long duration, std::string source, std::string reason, std::string nickname) 00649 { -00650 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); +00650 add_qline(duration, source.c_str(), reason.c_str(), nickname.c_str()); 00651 } 00652 -00653 void Server::AddKLine(long duration, std::string source, std::string reason, std::string hostmask) +00653 void Server::AddZLine(long duration, std::string source, std::string reason, std::string ipaddr) 00654 { -00655 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00655 add_zline(duration, source.c_str(), reason.c_str(), ipaddr.c_str()); 00656 } 00657 -00658 void Server::AddELine(long duration, std::string source, std::string reason, std::string hostmask) +00658 void Server::AddKLine(long duration, std::string source, std::string reason, std::string hostmask) 00659 { -00660 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); +00660 add_kline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00661 } 00662 -00663 bool Server::DelGLine(std::string hostmask) +00663 void Server::AddELine(long duration, std::string source, std::string reason, std::string hostmask) 00664 { -00665 return del_gline(hostmask.c_str()); +00665 add_eline(duration, source.c_str(), reason.c_str(), hostmask.c_str()); 00666 } 00667 -00668 bool Server::DelQLine(std::string nickname) +00668 bool Server::DelGLine(std::string hostmask) 00669 { -00670 return del_qline(nickname.c_str()); +00670 return del_gline(hostmask.c_str()); 00671 } 00672 -00673 bool Server::DelZLine(std::string ipaddr) +00673 bool Server::DelQLine(std::string nickname) 00674 { -00675 return del_zline(ipaddr.c_str()); +00675 return del_qline(nickname.c_str()); 00676 } 00677 -00678 bool Server::DelKLine(std::string hostmask) +00678 bool Server::DelZLine(std::string ipaddr) 00679 { -00680 return del_kline(hostmask.c_str()); +00680 return del_zline(ipaddr.c_str()); 00681 } 00682 -00683 bool Server::DelELine(std::string hostmask) +00683 bool Server::DelKLine(std::string hostmask) 00684 { -00685 return del_eline(hostmask.c_str()); +00685 return del_kline(hostmask.c_str()); 00686 } 00687 -00688 long Server::CalcDuration(std::string delta) +00688 bool Server::DelELine(std::string hostmask) 00689 { -00690 return duration(delta.c_str()); +00690 return del_eline(hostmask.c_str()); 00691 } 00692 -00693 bool Server::IsValidMask(std::string mask) +00693 long Server::CalcDuration(std::string delta) 00694 { -00695 const char* dest = mask.c_str(); -00696 if (strchr(dest,'!')==0) -00697 return false; -00698 if (strchr(dest,'@')==0) -00699 return false; -00700 for (unsigned int i = 0; i < strlen(dest); i++) -00701 if (dest[i] < 32) -00702 return false; -00703 for (unsigned int i = 0; i < strlen(dest); i++) -00704 if (dest[i] > 126) -00705 return false; -00706 unsigned int c = 0; -00707 for (unsigned int i = 0; i < strlen(dest); i++) -00708 if (dest[i] == '!') -00709 c++; -00710 if (c>1) -00711 return false; -00712 c = 0; -00713 for (unsigned int i = 0; i < strlen(dest); i++) -00714 if (dest[i] == '@') -00715 c++; -00716 if (c>1) -00717 return false; -00718 -00719 return true; -00720 } -00721 -00722 Module* Server::FindModule(std::string name) -00723 { -00724 for (int i = 0; i <= MODCOUNT; i++) -00725 { -00726 if (Config->module_names[i] == name) -00727 { -00728 return modules[i]; -00729 } -00730 } -00731 return NULL; -00732 } -00733 -00734 ConfigReader::ConfigReader() -00735 { -00736 Config->ClearStack(); -00737 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00738 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -00739 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog); -00740 if (!this->readerror) -00741 this->error = CONF_FILE_NOT_FOUND; -00742 } -00743 -00744 -00745 ConfigReader::~ConfigReader() -00746 { -00747 if (this->cache) -00748 delete this->cache; -00749 if (this->errorlog) -00750 delete this->errorlog; -00751 } -00752 -00753 -00754 ConfigReader::ConfigReader(std::string filename) -00755 { -00756 Config->ClearStack(); -00757 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); -00758 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); -00759 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog); -00760 if (!this->readerror) -00761 this->error = CONF_FILE_NOT_FOUND; -00762 }; -00763 -00764 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) -00765 { -00766 char val[MAXBUF]; -00767 char t[MAXBUF]; -00768 char n[MAXBUF]; -00769 strlcpy(t,tag.c_str(),MAXBUF); -00770 strlcpy(n,name.c_str(),MAXBUF); -00771 int res = Config->ReadConf(cache,t,n,index,val); -00772 if (!res) -00773 { -00774 this->error = CONF_VALUE_NOT_FOUND; -00775 return ""; -00776 } -00777 return val; -00778 } -00779 -00780 bool ConfigReader::ReadFlag(std::string tag, std::string name, int index) -00781 { -00782 char val[MAXBUF]; -00783 char t[MAXBUF]; -00784 char n[MAXBUF]; -00785 strlcpy(t,tag.c_str(),MAXBUF); -00786 strlcpy(n,name.c_str(),MAXBUF); -00787 int res = Config->ReadConf(cache,t,n,index,val); -00788 if (!res) -00789 { -00790 this->error = CONF_VALUE_NOT_FOUND; -00791 return false; -00792 } -00793 std::string s = val; -00794 return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1")); -00795 } -00796 -00797 long ConfigReader::ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned) -00798 { -00799 char val[MAXBUF]; -00800 char t[MAXBUF]; -00801 char n[MAXBUF]; -00802 strlcpy(t,tag.c_str(),MAXBUF); -00803 strlcpy(n,name.c_str(),MAXBUF); -00804 int res = Config->ReadConf(cache,t,n,index,val); -00805 if (!res) -00806 { -00807 this->error = CONF_VALUE_NOT_FOUND; -00808 return 0; -00809 } -00810 for (unsigned int i = 0; i < strlen(val); i++) +00695 return duration(delta.c_str()); +00696 } +00697 +00698 bool Server::IsValidMask(std::string mask) +00699 { +00700 const char* dest = mask.c_str(); +00701 if (strchr(dest,'!')==0) +00702 return false; +00703 if (strchr(dest,'@')==0) +00704 return false; +00705 for (unsigned int i = 0; i < strlen(dest); i++) +00706 if (dest[i] < 32) +00707 return false; +00708 for (unsigned int i = 0; i < strlen(dest); i++) +00709 if (dest[i] > 126) +00710 return false; +00711 unsigned int c = 0; +00712 for (unsigned int i = 0; i < strlen(dest); i++) +00713 if (dest[i] == '!') +00714 c++; +00715 if (c>1) +00716 return false; +00717 c = 0; +00718 for (unsigned int i = 0; i < strlen(dest); i++) +00719 if (dest[i] == '@') +00720 c++; +00721 if (c>1) +00722 return false; +00723 +00724 return true; +00725 } +00726 +00727 Module* Server::FindModule(std::string name) +00728 { +00729 for (int i = 0; i <= MODCOUNT; i++) +00730 { +00731 if (Config->module_names[i] == name) +00732 { +00733 return modules[i]; +00734 } +00735 } +00736 return NULL; +00737 } +00738 +00739 ConfigReader::ConfigReader() +00740 { +00741 Config->ClearStack(); +00742 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00743 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +00744 this->readerror = Config->LoadConf(CONFIG_FILE,this->cache,this->errorlog); +00745 if (!this->readerror) +00746 this->error = CONF_FILE_NOT_FOUND; +00747 } +00748 +00749 +00750 ConfigReader::~ConfigReader() +00751 { +00752 if (this->cache) +00753 delete this->cache; +00754 if (this->errorlog) +00755 delete this->errorlog; +00756 } +00757 +00758 +00759 ConfigReader::ConfigReader(std::string filename) +00760 { +00761 Config->ClearStack(); +00762 this->cache = new std::stringstream(std::stringstream::in | std::stringstream::out); +00763 this->errorlog = new std::stringstream(std::stringstream::in | std::stringstream::out); +00764 this->readerror = Config->LoadConf(filename.c_str(),this->cache,this->errorlog); +00765 if (!this->readerror) +00766 this->error = CONF_FILE_NOT_FOUND; +00767 }; +00768 +00769 std::string ConfigReader::ReadValue(std::string tag, std::string name, int index) +00770 { +00771 char val[MAXBUF]; +00772 char t[MAXBUF]; +00773 char n[MAXBUF]; +00774 strlcpy(t,tag.c_str(),MAXBUF); +00775 strlcpy(n,name.c_str(),MAXBUF); +00776 int res = Config->ReadConf(cache,t,n,index,val); +00777 if (!res) +00778 { +00779 this->error = CONF_VALUE_NOT_FOUND; +00780 return ""; +00781 } +00782 return val; +00783 } +00784 +00785 bool ConfigReader::ReadFlag(std::string tag, std::string name, int index) +00786 { +00787 char val[MAXBUF]; +00788 char t[MAXBUF]; +00789 char n[MAXBUF]; +00790 strlcpy(t,tag.c_str(),MAXBUF); +00791 strlcpy(n,name.c_str(),MAXBUF); +00792 int res = Config->ReadConf(cache,t,n,index,val); +00793 if (!res) +00794 { +00795 this->error = CONF_VALUE_NOT_FOUND; +00796 return false; +00797 } +00798 std::string s = val; +00799 return ((s == "yes") || (s == "YES") || (s == "true") || (s == "TRUE") || (s == "1")); +00800 } +00801 +00802 long ConfigReader::ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned) +00803 { +00804 char val[MAXBUF]; +00805 char t[MAXBUF]; +00806 char n[MAXBUF]; +00807 strlcpy(t,tag.c_str(),MAXBUF); +00808 strlcpy(n,name.c_str(),MAXBUF); +00809 int res = Config->ReadConf(cache,t,n,index,val); +00810 if (!res) 00811 { -00812 if (!isdigit(val[i])) -00813 { -00814 this->error = CONF_NOT_A_NUMBER; -00815 return 0; -00816 } -00817 } -00818 if ((needs_unsigned) && (atoi(val)<0)) -00819 { -00820 this->error = CONF_NOT_UNSIGNED; -00821 return 0; +00812 this->error = CONF_VALUE_NOT_FOUND; +00813 return 0; +00814 } +00815 for (unsigned int i = 0; i < strlen(val); i++) +00816 { +00817 if (!isdigit(val[i])) +00818 { +00819 this->error = CONF_NOT_A_NUMBER; +00820 return 0; +00821 } 00822 } -00823 return atoi(val); -00824 } -00825 -00826 long ConfigReader::GetError() -00827 { -00828 long olderr = this->error; -00829 this->error = 0; -00830 return olderr; -00831 } -00832 -00833 void ConfigReader::DumpErrors(bool bail, userrec* user) -00834 { -00835 if (bail) -00836 { -00837 printf("There were errors in your configuration:\n%s",errorlog->str().c_str()); -00838 exit(0); -00839 } -00840 else +00823 if ((needs_unsigned) && (atoi(val)<0)) +00824 { +00825 this->error = CONF_NOT_UNSIGNED; +00826 return 0; +00827 } +00828 return atoi(val); +00829 } +00830 +00831 long ConfigReader::GetError() +00832 { +00833 long olderr = this->error; +00834 this->error = 0; +00835 return olderr; +00836 } +00837 +00838 void ConfigReader::DumpErrors(bool bail, userrec* user) +00839 { +00840 if (bail) 00841 { -00842 char dataline[1024]; -00843 if (user) -00844 { -00845 WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick); -00846 while (!errorlog->eof()) -00847 { -00848 errorlog->getline(dataline,1024); -00849 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline); -00850 } -00851 } -00852 else -00853 { -00854 WriteOpers("There were errors in the configuration file:",user->nick); -00855 while (!errorlog->eof()) -00856 { -00857 errorlog->getline(dataline,1024); -00858 WriteOpers(dataline); -00859 } -00860 } -00861 return; -00862 } -00863 } -00864 -00865 -00866 int ConfigReader::Enumerate(std::string tag) -00867 { -00868 return Config->EnumConf(cache,tag.c_str()); -00869 } +00842 printf("There were errors in your configuration:\n%s",errorlog->str().c_str()); +00843 exit(0); +00844 } +00845 else +00846 { +00847 char dataline[1024]; +00848 if (user) +00849 { +00850 WriteServ(user->fd,"NOTICE %s :There were errors in the configuration file:",user->nick); +00851 while (!errorlog->eof()) +00852 { +00853 errorlog->getline(dataline,1024); +00854 WriteServ(user->fd,"NOTICE %s :%s",user->nick,dataline); +00855 } +00856 } +00857 else +00858 { +00859 WriteOpers("There were errors in the configuration file:",user->nick); +00860 while (!errorlog->eof()) +00861 { +00862 errorlog->getline(dataline,1024); +00863 WriteOpers(dataline); +00864 } +00865 } +00866 return; +00867 } +00868 } +00869 00870 -00871 int ConfigReader::EnumerateValues(std::string tag, int index) +00871 int ConfigReader::Enumerate(std::string tag) 00872 { -00873 return Config->EnumValues(cache, tag.c_str(), index); +00873 return Config->EnumConf(cache,tag.c_str()); 00874 } 00875 -00876 bool ConfigReader::Verify() +00876 int ConfigReader::EnumerateValues(std::string tag, int index) 00877 { -00878 return this->readerror; +00878 return Config->EnumValues(cache, tag.c_str(), index); 00879 } 00880 -00881 -00882 FileReader::FileReader(std::string filename) -00883 { -00884 file_cache c; -00885 readfile(c,filename.c_str()); -00886 this->fc = c; -00887 } -00888 -00889 FileReader::FileReader() -00890 { -00891 } -00892 -00893 void FileReader::LoadFile(std::string filename) -00894 { -00895 file_cache c; -00896 readfile(c,filename.c_str()); -00897 this->fc = c; -00898 } -00899 -00900 -00901 FileReader::~FileReader() -00902 { +00881 bool ConfigReader::Verify() +00882 { +00883 return this->readerror; +00884 } +00885 +00886 +00887 FileReader::FileReader(std::string filename) +00888 { +00889 file_cache c; +00890 readfile(c,filename.c_str()); +00891 this->fc = c; +00892 } +00893 +00894 FileReader::FileReader() +00895 { +00896 } +00897 +00898 void FileReader::LoadFile(std::string filename) +00899 { +00900 file_cache c; +00901 readfile(c,filename.c_str()); +00902 this->fc = c; 00903 } 00904 -00905 bool FileReader::Exists() -00906 { -00907 if (fc.size() == 0) -00908 { -00909 return(false); -00910 } -00911 else -00912 { -00913 return(true); -00914 } -00915 } -00916 -00917 std::string FileReader::GetLine(int x) -00918 { -00919 if ((x<0) || ((unsigned)x>fc.size())) -00920 return ""; -00921 return fc[x]; -00922 } -00923 -00924 int FileReader::FileSize() -00925 { -00926 return fc.size(); +00905 +00906 FileReader::~FileReader() +00907 { +00908 } +00909 +00910 bool FileReader::Exists() +00911 { +00912 if (fc.size() == 0) +00913 { +00914 return(false); +00915 } +00916 else +00917 { +00918 return(true); +00919 } +00920 } +00921 +00922 std::string FileReader::GetLine(int x) +00923 { +00924 if ((x<0) || ((unsigned)x>fc.size())) +00925 return ""; +00926 return fc[x]; 00927 } 00928 -00929 -00930 std::vector<Module*> modules(255); -00931 std::vector<ircd_module*> factory(255); -00932 -00933 int MODCOUNT = -1; +00929 int FileReader::FileSize() +00930 { +00931 return fc.size(); +00932 } +00933 00934 -00935 -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +00935 std::vector<Module*> modules(255); +00936 std::vector<ircd_module*> factory(255); +00937 +00938 int MODCOUNT = -1; +00939 +00940 +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/modules_8cpp.html b/docs/module-doc/modules_8cpp.html index cbc72e984..d6774b4b9 100644 --- a/docs/module-doc/modules_8cpp.html +++ b/docs/module-doc/modules_8cpp.html @@ -177,7 +177,7 @@ Definition at line 142

    References EMode, and ModeDefined().

    -Referenced by Server::AddExtendedListMode(), and Server::AddExtendedMode().

    00143 {
    +Referenced by Server::AddExtendedListMode(), and Server::AddExtendedMode().
    00143 {
     00144         if (ModeDefined(modechar,type)) {
     00145                 return false;
     00146         }
    @@ -515,7 +515,7 @@ Definition at line 152
     

    References EMode, and MT_CHANNEL.

    -Referenced by Server::AddExtendedListMode().

    00153 {
    +Referenced by Server::AddExtendedListMode().
    00153 {
     00154         for (ExtModeListIter i = EMode.begin(); i < EMode.end(); i++)
     00155         {
     00156                 if ((i->modechar == modechar) && (i->type == MT_CHANNEL))
    @@ -793,7 +793,7 @@ Referenced by DoAddExtended
     

    -Definition at line 933 of file modules.cpp. +Definition at line 938 of file modules.cpp.

    @@ -818,7 +818,7 @@ Definition at line 933

    -Referenced by Server::AddSocket(), and Server::DelSocket(). +Referenced by Server::AddSocket(), and Server::DelSocket().

    @@ -1028,7 +1028,7 @@ Referenced by Server::AddSo -


    Generated on Wed Dec 14 14:49:24 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html index d1efc44d8..e1258b2ec 100644 --- a/docs/module-doc/modules_8h-source.html +++ b/docs/module-doc/modules_8h-source.html @@ -366,164 +366,164 @@ 01098 public: 01102 Server(); 01106 virtual ~Server(); -01107 -01111 virtual void SendOpers(std::string s); -01116 virtual void Log(int level, std::string s); -01121 virtual void Send(int Socket, std::string s); -01126 virtual void SendServ(int Socket, std::string s); -01130 virtual void SendChannelServerNotice(std::string ServName, chanrec* Channel, std::string text); -01135 virtual void SendFrom(int Socket, userrec* User, std::string s); -01150 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); -01157 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); -01162 virtual bool CommonChannels(userrec* u1, userrec* u2); -01170 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); -01175 virtual void SendWallops(userrec* User, std::string text); -01176 -01180 virtual bool IsNick(std::string nick); -01184 virtual int CountUsers(chanrec* c); -01188 virtual userrec* FindNick(std::string nick); -01192 virtual userrec* FindDescriptor(int socket); -01196 virtual chanrec* FindChannel(std::string channel); -01201 virtual std::string ChanMode(userrec* User, chanrec* Chan); -01205 virtual bool IsOnChannel(userrec* User, chanrec* Chan); -01208 virtual std::string GetServerName(); -01211 virtual std::string GetNetworkName(); -01214 virtual std::string GetServerDescription(); -01220 virtual Admin GetAdmin(); -01239 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); -01240 -01262 virtual bool AddExtendedListMode(char modechar); -01263 -01281 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source); -01282 -01304 virtual void SendMode(char **parameters, int pcnt, userrec *user); -01305 -01318 virtual void SendToModeMask(std::string modes, int flags, std::string text); -01319 -01325 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); -01326 -01332 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); -01333 -01339 virtual void ChangeUserNick(userrec* user, std::string nickname); -01340 -01351 virtual void QuitUser(userrec* user, std::string reason); -01352 -01357 virtual bool MatchText(std::string sliteral, std::string spattern); -01358 -01370 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); -01371 -01372 virtual bool IsValidModuleCommand(std::string commandname, int pcnt, userrec* user); -01373 -01379 virtual void ChangeHost(userrec* user, std::string host); -01380 -01386 virtual void ChangeGECOS(userrec* user, std::string gecos); -01387 -01396 virtual bool IsUlined(std::string server); -01397 -01401 virtual chanuserlist GetUsers(chanrec* chan); -01402 -01409 virtual bool UserToPseudo(userrec* user,std::string message); -01410 -01417 virtual bool PseudoToUser(userrec* alive,userrec* zombie,std::string message); -01418 -01426 virtual void AddGLine(long duration, std::string source, std::string reason, std::string hostmask); -01427 -01435 virtual void AddQLine(long duration, std::string source, std::string reason, std::string nickname); -01436 -01444 virtual void AddZLine(long duration, std::string source, std::string reason, std::string ipaddr); -01445 -01453 virtual void AddKLine(long duration, std::string source, std::string reason, std::string hostmask); -01454 -01462 virtual void AddELine(long duration, std::string source, std::string reason, std::string hostmask); -01463 -01466 virtual bool DelGLine(std::string hostmask); +01111 ServerConfig* GetConfig(); +01115 virtual void SendOpers(std::string s); +01120 virtual void Log(int level, std::string s); +01125 virtual void Send(int Socket, std::string s); +01130 virtual void SendServ(int Socket, std::string s); +01134 virtual void SendChannelServerNotice(std::string ServName, chanrec* Channel, std::string text); +01139 virtual void SendFrom(int Socket, userrec* User, std::string s); +01154 virtual void SendTo(userrec* Source, userrec* Dest, std::string s); +01161 virtual void SendChannel(userrec* User, chanrec* Channel, std::string s,bool IncludeSender); +01166 virtual bool CommonChannels(userrec* u1, userrec* u2); +01174 virtual void SendCommon(userrec* User, std::string text,bool IncludeSender); +01179 virtual void SendWallops(userrec* User, std::string text); +01180 +01184 virtual bool IsNick(std::string nick); +01188 virtual int CountUsers(chanrec* c); +01192 virtual userrec* FindNick(std::string nick); +01196 virtual userrec* FindDescriptor(int socket); +01200 virtual chanrec* FindChannel(std::string channel); +01205 virtual std::string ChanMode(userrec* User, chanrec* Chan); +01209 virtual bool IsOnChannel(userrec* User, chanrec* Chan); +01212 virtual std::string GetServerName(); +01215 virtual std::string GetNetworkName(); +01218 virtual std::string GetServerDescription(); +01224 virtual Admin GetAdmin(); +01243 virtual bool AddExtendedMode(char modechar, int type, bool requires_oper, int params_when_on, int params_when_off); +01244 +01266 virtual bool AddExtendedListMode(char modechar); +01267 +01285 virtual void AddCommand(char* cmd, handlerfunc f, char flags, int minparams, char* source); +01286 +01308 virtual void SendMode(char **parameters, int pcnt, userrec *user); +01309 +01322 virtual void SendToModeMask(std::string modes, int flags, std::string text); +01323 +01329 virtual chanrec* JoinUserToChannel(userrec* user, std::string cname, std::string key); +01330 +01336 virtual chanrec* PartUserFromChannel(userrec* user, std::string cname, std::string reason); +01337 +01343 virtual void ChangeUserNick(userrec* user, std::string nickname); +01344 +01355 virtual void QuitUser(userrec* user, std::string reason); +01356 +01361 virtual bool MatchText(std::string sliteral, std::string spattern); +01362 +01374 virtual void CallCommandHandler(std::string commandname, char** parameters, int pcnt, userrec* user); +01375 +01376 virtual bool IsValidModuleCommand(std::string commandname, int pcnt, userrec* user); +01377 +01383 virtual void ChangeHost(userrec* user, std::string host); +01384 +01390 virtual void ChangeGECOS(userrec* user, std::string gecos); +01391 +01400 virtual bool IsUlined(std::string server); +01401 +01405 virtual chanuserlist GetUsers(chanrec* chan); +01406 +01413 virtual bool UserToPseudo(userrec* user,std::string message); +01414 +01421 virtual bool PseudoToUser(userrec* alive,userrec* zombie,std::string message); +01422 +01430 virtual void AddGLine(long duration, std::string source, std::string reason, std::string hostmask); +01431 +01439 virtual void AddQLine(long duration, std::string source, std::string reason, std::string nickname); +01440 +01448 virtual void AddZLine(long duration, std::string source, std::string reason, std::string ipaddr); +01449 +01457 virtual void AddKLine(long duration, std::string source, std::string reason, std::string hostmask); +01458 +01466 virtual void AddELine(long duration, std::string source, std::string reason, std::string hostmask); 01467 -01470 virtual bool DelQLine(std::string nickname); +01470 virtual bool DelGLine(std::string hostmask); 01471 -01474 virtual bool DelZLine(std::string ipaddr); +01474 virtual bool DelQLine(std::string nickname); 01475 -01478 virtual bool DelKLine(std::string hostmask); +01478 virtual bool DelZLine(std::string ipaddr); 01479 -01482 virtual bool DelELine(std::string hostmask); +01482 virtual bool DelKLine(std::string hostmask); 01483 -01489 virtual long CalcDuration(std::string duration); -01490 -01493 virtual bool IsValidMask(std::string mask); +01486 virtual bool DelELine(std::string hostmask); +01487 +01493 virtual long CalcDuration(std::string duration); 01494 -01499 virtual Module* FindModule(std::string name); -01500 -01503 virtual void AddSocket(InspSocket* sock); +01497 virtual bool IsValidMask(std::string mask); +01498 +01503 virtual Module* FindModule(std::string name); 01504 -01507 virtual void DelSocket(InspSocket* sock); +01507 virtual void AddSocket(InspSocket* sock); 01508 -01509 virtual void RehashServer(); -01510 }; -01511 +01511 virtual void DelSocket(InspSocket* sock); 01512 -01513 #define CONF_NOT_A_NUMBER 0x000010 -01514 #define CONF_NOT_UNSIGNED 0x000080 -01515 #define CONF_VALUE_NOT_FOUND 0x000100 -01516 #define CONF_FILE_NOT_FOUND 0x000200 -01517 -01518 -01525 class ConfigReader : public classbase -01526 { -01527 protected: -01533 std::stringstream *cache; -01534 std::stringstream *errorlog; -01537 bool readerror; -01538 long error; -01539 -01540 public: -01545 ConfigReader(); // default constructor reads ircd.conf -01549 ConfigReader(std::string filename); // read a module-specific config -01553 ~ConfigReader(); -01558 std::string ReadValue(std::string tag, std::string name, int index); -01564 bool ReadFlag(std::string tag, std::string name, int index); -01573 long ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned); -01578 long GetError(); -01585 int Enumerate(std::string tag); -01590 bool Verify(); -01597 void DumpErrors(bool bail,userrec* user); -01598 -01604 int EnumerateValues(std::string tag, int index); -01605 }; -01606 -01607 -01608 -01614 class FileReader : public classbase -01615 { -01616 file_cache fc; -01617 public: -01622 FileReader(); -01623 -01629 FileReader(std::string filename); -01630 -01634 ~FileReader(); -01635 -01641 void LoadFile(std::string filename); -01642 -01646 bool Exists(); -01647 -01652 std::string GetLine(int x); -01653 -01659 int FileSize(); -01660 }; -01661 -01662 -01669 class ModuleFactory : public classbase -01670 { -01671 public: -01672 ModuleFactory() { } -01673 virtual ~ModuleFactory() { } -01678 virtual Module * CreateModule(Server* Me) = 0; -01679 }; -01680 -01681 -01682 typedef DLLFactory<ModuleFactory> ircd_module; -01683 -01684 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +01513 virtual void RehashServer(); +01514 }; +01515 +01516 +01517 #define CONF_NOT_A_NUMBER 0x000010 +01518 #define CONF_NOT_UNSIGNED 0x000080 +01519 #define CONF_VALUE_NOT_FOUND 0x000100 +01520 #define CONF_FILE_NOT_FOUND 0x000200 +01521 +01522 +01529 class ConfigReader : public classbase +01530 { +01531 protected: +01537 std::stringstream *cache; +01538 std::stringstream *errorlog; +01541 bool readerror; +01542 long error; +01543 +01544 public: +01549 ConfigReader(); // default constructor reads ircd.conf +01553 ConfigReader(std::string filename); // read a module-specific config +01557 ~ConfigReader(); +01562 std::string ReadValue(std::string tag, std::string name, int index); +01568 bool ReadFlag(std::string tag, std::string name, int index); +01577 long ReadInteger(std::string tag, std::string name, int index, bool needs_unsigned); +01582 long GetError(); +01589 int Enumerate(std::string tag); +01594 bool Verify(); +01601 void DumpErrors(bool bail,userrec* user); +01602 +01608 int EnumerateValues(std::string tag, int index); +01609 }; +01610 +01611 +01612 +01618 class FileReader : public classbase +01619 { +01620 file_cache fc; +01621 public: +01626 FileReader(); +01627 +01633 FileReader(std::string filename); +01634 +01638 ~FileReader(); +01639 +01645 void LoadFile(std::string filename); +01646 +01650 bool Exists(); +01651 +01656 std::string GetLine(int x); +01657 +01663 int FileSize(); +01664 }; +01665 +01666 +01673 class ModuleFactory : public classbase +01674 { +01675 public: +01676 ModuleFactory() { } +01677 virtual ~ModuleFactory() { } +01682 virtual Module * CreateModule(Server* Me) = 0; +01683 }; +01684 +01685 +01686 typedef DLLFactory<ModuleFactory> ircd_module; +01687 +01688 #endif +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/modules_8h.html b/docs/module-doc/modules_8h.html index 53cd259b8..82ac53cf0 100644 --- a/docs/module-doc/modules_8h.html +++ b/docs/module-doc/modules_8h.html @@ -479,9 +479,9 @@ Definition at line 38 of

    -Definition at line 1516 of file modules.h. +Definition at line 1520 of file modules.h.

    -Referenced by ConfigReader::ConfigReader(). +Referenced by ConfigReader::ConfigReader().

    @@ -506,9 +506,9 @@ Referenced by ConfigReader:

    -Definition at line 1513 of file modules.h. +Definition at line 1517 of file modules.h.

    -Referenced by ConfigReader::ReadInteger(). +Referenced by ConfigReader::ReadInteger().

    @@ -533,9 +533,9 @@ Referenced by ConfigReader:

    -Definition at line 1514 of file modules.h. +Definition at line 1518 of file modules.h.

    -Referenced by ConfigReader::ReadInteger(). +Referenced by ConfigReader::ReadInteger().

    @@ -560,9 +560,9 @@ Referenced by ConfigReader:

    -Definition at line 1515 of file modules.h. +Definition at line 1519 of file modules.h.

    -Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue(). +Referenced by ConfigReader::ReadFlag(), ConfigReader::ReadInteger(), and ConfigReader::ReadValue().

    @@ -641,7 +641,7 @@ Definition at line 25 of

    Definition at line 101 of file modules.h.

    -Referenced by Server::PseudoToUser(), and Server::UserToPseudo(). +Referenced by Server::PseudoToUser(), and Server::UserToPseudo().

    @@ -736,7 +736,7 @@ Used with OnExtendedMode() method of modules.

    Definition at line 31 of file modules.h.

    -Referenced by Server::AddExtendedListMode(), and ModeMakeList(). +Referenced by Server::AddExtendedListMode(), and ModeMakeList().

    @@ -763,7 +763,7 @@ Referenced by Server::AddEx

    Definition at line 32 of file modules.h.

    -Referenced by Server::AddExtendedMode(). +Referenced by Server::AddExtendedMode().

    @@ -790,7 +790,7 @@ Referenced by Server::AddEx

    Definition at line 33 of file modules.h.

    -Referenced by Server::AddExtendedMode(). +Referenced by Server::AddExtendedMode().

    @@ -1049,7 +1049,7 @@ Definition at line 65 of

    -Definition at line 1682 of file modules.h. +Definition at line 1686 of file modules.h.

    @@ -1132,7 +1132,7 @@ Definition at line 70 of

    -Referenced by Server::AddCommand(). +Referenced by Server::AddCommand().

    @@ -1178,7 +1178,7 @@ Referenced by Server::AddCo -


    Generated on Wed Dec 14 14:49:25 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespaceirc.html b/docs/module-doc/namespaceirc.html index 39cf69d8c..4b88e75aa 100644 --- a/docs/module-doc/namespaceirc.html +++ b/docs/module-doc/namespaceirc.html @@ -56,7 +56,7 @@ This typedef declares irc::string< Definition at line 129 of file hashcomp.h. -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespacemembers.html b/docs/module-doc/namespacemembers.html index 1a737aed5..961504d53 100644 --- a/docs/module-doc/namespacemembers.html +++ b/docs/module-doc/namespacemembers.html @@ -11,7 +11,7 @@ Here is a list of all namespace members with links to the namespace documentatio -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespacemembers_type.html b/docs/module-doc/namespacemembers_type.html index facd5858b..52cb8e943 100644 --- a/docs/module-doc/namespacemembers_type.html +++ b/docs/module-doc/namespacemembers_type.html @@ -11,7 +11,7 @@ -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespacenspace.html b/docs/module-doc/namespacenspace.html index 2fe1f7d8f..9cad80e78 100644 --- a/docs/module-doc/namespacenspace.html +++ b/docs/module-doc/namespacenspace.html @@ -15,7 +15,7 @@ struct  hash< string > -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespaces.html b/docs/module-doc/namespaces.html index a74f24753..d1c7861ce 100644 --- a/docs/module-doc/namespaces.html +++ b/docs/module-doc/namespaces.html @@ -10,7 +10,7 @@ nspace std -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/namespacestd.html b/docs/module-doc/namespacestd.html index 60c022406..cf6bf7068 100644 --- a/docs/module-doc/namespacestd.html +++ b/docs/module-doc/namespacestd.html @@ -10,7 +10,7 @@
    -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/servers_8cpp-source.html b/docs/module-doc/servers_8cpp-source.html deleted file mode 100644 index 297f887fa..000000000 --- a/docs/module-doc/servers_8cpp-source.html +++ /dev/null @@ -1,575 +0,0 @@ - - -InspIRCd: servers.cpp Source File - - - - -

    servers.cpp

    Go to the documentation of this file.
    00001 /*       +------------------------------------+
    -00002  *       | Inspire Internet Relay Chat Daemon |
    -00003  *       +------------------------------------+
    -00004  *
    -00005  *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
    -00006  *                       E-mail:
    -00007  *                <brain@chatspike.net>
    -00008  *                <Craig@chatspike.net>
    -00009  *     
    -00010  * Written by Craig Edwards, Craig McLure, and others.
    -00011  * This program is free but copyrighted software; see
    -00012  *            the file COPYING for details.
    -00013  *
    -00014  * ---------------------------------------------------
    -00015  */
    -00016 
    -00017 using namespace std;
    -00018 
    -00019 #include "inspircd_config.h" 
    -00020 #include "servers.h"
    -00021 #include "inspircd.h"
    -00022 #include <unistd.h>
    -00023 #include <fcntl.h>
    -00024 #include <poll.h>
    -00025 #include <sys/errno.h>
    -00026 #include <sys/ioctl.h>
    -00027 #include <sys/utsname.h>
    -00028 #include <vector>
    -00029 #include <string>
    -00030 #include <deque>
    -00031 #include <sstream>
    -00032 #include <map>
    -00033 #include "inspstring.h"
    -00034 #include "helperfuncs.h"
    -00035 #include "connection.h"
    -00036 
    -00037 extern time_t TIME;
    -00038 extern int MaxConn;
    -00039 
    -00040 extern serverrec* me[32];
    -00041 
    -00042 extern bool has_been_netsplit;
    -00043 
    -00044 std::deque<std::string> xsums;
    -00045 
    -00046 serverrec::serverrec()
    -00047 {
    -00048         strlcpy(name,"",256);
    -00049         pingtime = 0;
    -00050         lastping = TIME;
    -00051         usercount_i = usercount = opercount = version = 0;
    -00052         hops_away = 1;
    -00053         signon = TIME;
    -00054         jupiter = false;
    -00055         fd = 0;
    -00056         sync_soon = false;
    -00057         strlcpy(nickserv,"",NICKMAX);
    -00058         connectors.clear();
    -00059 }
    -00060 
    -00061  
    -00062 serverrec::~serverrec()
    -00063 {
    -00064 }
    -00065 
    -00066 serverrec::serverrec(char* n, long ver, bool jupe)
    -00067 {
    -00068         strlcpy(name,n,256);
    -00069         lastping = TIME;
    -00070         usercount_i = usercount = opercount = 0;
    -00071         version = ver;
    -00072         hops_away = 1;
    -00073         signon = TIME;
    -00074         jupiter = jupe;
    -00075         fd = 0;
    -00076         sync_soon = false;
    -00077         strlcpy(nickserv,"",NICKMAX);
    -00078         connectors.clear();
    -00079 }
    -00080 
    -00081 bool serverrec::CreateListener(char* newhost, int p)
    -00082 {
    -00083         sockaddr_in host_address;
    -00084         int flags;
    -00085         in_addr addy;
    -00086         int on = 0;
    -00087         struct linger linger = { 0 };
    -00088 
    -00089         this->port = p;
    -00090 
    -00091         fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    -00092         if (fd <= 0)
    -00093         {
    -00094                 return false;
    -00095         }
    -00096 
    -00097         setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(const char*)&on,sizeof(on));
    -00098         linger.l_onoff = 1;
    -00099         linger.l_linger = 1;
    -00100         setsockopt(fd,SOL_SOCKET,SO_LINGER,(const char*)&linger,sizeof(linger));
    -00101 
    -00102         // attempt to increase socket sendq and recvq as high as its possible
    -00103         // to get them on linux.
    -00104         int sendbuf = 32768;
    -00105         int recvbuf = 32768;
    -00106         setsockopt(fd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
    -00107         setsockopt(fd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
    -00108 
    -00109         memset((void*)&host_address, 0, sizeof(host_address));
    -00110 
    -00111         host_address.sin_family = AF_INET;
    -00112 
    -00113         if (!strcmp(newhost,""))
    -00114         {
    -00115                 host_address.sin_addr.s_addr = htonl(INADDR_ANY);
    -00116         }
    -00117         else
    -00118         {
    -00119                 inet_aton(newhost,&addy);
    -00120                 host_address.sin_addr = addy;
    -00121         }
    -00122 
    -00123         host_address.sin_port = htons(p);
    -00124 
    -00125         if (bind(fd,(sockaddr*)&host_address,sizeof(host_address))<0)
    -00126         {
    -00127                 return false;
    -00128         }
    -00129 
    -00130         // make the socket non-blocking
    -00131         flags = fcntl(fd, F_GETFL, 0);
    -00132         fcntl(fd, F_SETFL, flags | O_NONBLOCK);
    -00133 
    -00134         this->port = p;
    -00135 
    -00136         listen(this->fd, MaxConn);
    -00137 
    -00138         return true;
    -00139 }
    -00140 
    -00141 
    -00142 bool serverrec::BeginLink(char* targethost, int newport, char* password, char* servername, int myport)
    -00143 {
    -00144         char connect[MAXBUF];
    -00145 
    -00146         ircd_connector connector;
    -00147         ircd_connector *cn = this->FindHost(servername);
    -00148 
    -00149 
    -00150         if (cn)
    -00151         {
    -00152                 WriteOpers("CONNECT aborted: Server %s already exists",servername);
    -00153                 return false;
    -00154         }
    -00155 
    -00156 
    -00157         if (this->fd)
    -00158         {
    -00159                 if (connector.MakeOutboundConnection(targethost,newport))
    -00160                 {
    -00161                         // targethost has been turned into an ip...
    -00162                         // we dont want this as the server name.
    -00163                         connector.SetServerName(servername);
    -00164                         snprintf(connect,MAXBUF,"S %s %s %lu %s :%s",getservername().c_str(),password,(unsigned long)myport,GetRevision().c_str(),getserverdesc().c_str());
    -00165                         connector.SetState(STATE_NOAUTH_OUTBOUND);
    -00166                         connector.SetHostAndPort(targethost, newport);
    -00167                         this->connectors.push_back(connector);
    -00168                         // this packet isn't actually sent until the socket connects -- the STATE_NOAUTH_OUTBOUND state
    -00169                         // queues outbound data until the socket is polled as writeable (e.g. the connection is established)
    -00170                         return this->SendPacket(connect, servername);
    -00171                 }
    -00172                 else
    -00173                 {
    -00174                         connector.SetState(STATE_DISCONNECTED);
    -00175                         WriteOpers("Could not create outbound connection to %s:%d",targethost,newport);
    -00176                 }
    -00177         }
    -00178         return false;
    -00179 }
    -00180 
    -00181 
    -00182 bool serverrec::MeshCookie(char* targethost, int newport, unsigned long cookie, char* servername)
    -00183 {
    -00184         char connect[MAXBUF];
    -00185 
    -00186         ircd_connector connector;
    -00187 
    -00188         WriteOpers("Establishing meshed link to %s:%d",servername,newport);
    -00189 
    -00190         if (this->fd)
    -00191         {
    -00192                 if (connector.MakeOutboundConnection(targethost,newport))
    -00193                 {
    -00194                         // targethost has been turned into an ip...
    -00195                         // we dont want this as the server name.
    -00196                         connector.SetServerName(servername);
    -00197                         snprintf(connect,MAXBUF,"- %lu %s :%s",cookie,getservername().c_str(),getserverdesc().c_str());
    -00198                         connector.SetState(STATE_NOAUTH_OUTBOUND);
    -00199                         connector.SetHostAndPort(targethost, newport);
    -00200                         this->connectors.push_back(connector);
    -00201                         return this->SendPacket(connect, servername);
    -00202                 }
    -00203                 else
    -00204                 {
    -00205                         connector.SetState(STATE_DISCONNECTED);
    -00206                         WriteOpers("Could not create outbound connection to %s:%d",targethost,newport);
    -00207                 }
    -00208         }
    -00209         return false;
    -00210 }
    -00211 
    -00212 bool serverrec::AddIncoming(int newfd, char* targethost, int sourceport)
    -00213 {
    -00214         ircd_connector connector;
    -00215 
    -00216         // targethost has been turned into an ip...
    -00217         // we dont want this as the server name.
    -00218         connector.SetServerName(targethost);
    -00219         connector.SetDescriptor(newfd);
    -00220         connector.SetState(STATE_NOAUTH_INBOUND);
    -00221         int flags = fcntl(newfd, F_GETFL, 0);
    -00222         fcntl(newfd, F_SETFL, flags | O_NONBLOCK);
    -00223         int sendbuf = 32768;
    -00224         int recvbuf = 32768;
    -00225         setsockopt(newfd,SOL_SOCKET,SO_SNDBUF,(const void *)&sendbuf,sizeof(sendbuf));
    -00226         setsockopt(newfd,SOL_SOCKET,SO_RCVBUF,(const void *)&recvbuf,sizeof(sendbuf));
    -00227         connector.SetHostAndPort(targethost, sourceport);
    -00228         connector.SetState(STATE_NOAUTH_INBOUND);
    -00229         log(DEBUG,"serverrec::AddIncoming() Added connection: %s:%d",targethost,sourceport);
    -00230         this->connectors.push_back(connector);
    -00231         return true;
    -00232 }
    -00233 
    -00234 void serverrec::TerminateLink(char* targethost)
    -00235 {
    -00236         // this locates the targethost in the serverrec::connectors vector of the class,
    -00237        // and terminates it by sending it an SQUIT token and closing its descriptor.
    -00238         // TerminateLink with a null string causes a terminate of ALL links
    -00239 }
    -00240 
    -00241 // Returns a pointer to the connector for 'host'
    -00242 ircd_connector* serverrec::FindHost(std::string findhost)
    -00243 {
    -00244         for (int i = 0; i < this->connectors.size(); i++)
    -00245         {
    -00246                 if (this->connectors[i].GetServerName() == findhost)
    -00247                 {
    -00248                         return &this->connectors[i];
    -00249                 }
    -00250         }
    -00251         return NULL;
    -00252 }
    -00253 
    -00254 
    -00255 // Checks to see if we can still reach a server at all (e.g. is it in ANY routing table?)
    -00256 bool IsRoutable(std::string servername)
    -00257 {
    -00258         int c = 0;
    -00259         for (int x = 0; x < 32; x++)
    -00260         if (me[x])
    -00261         {
    -00262                 for (int i = 0; i < me[x]->connectors.size(); i++)
    -00263                 {
    -00264                         if ((me[x]->connectors[i].GetServerName() == servername) && (me[x]->connectors[i].GetState() != STATE_DISCONNECTED))
    -00265                         {
    -00266                                 c++;
    -00267                         }
    -00268                 }
    -00269         }
    -00270         return (c != 0);
    -00271 }
    -00272 
    -00273 
    -00274 void serverrec::FlushWriteBuffers()
    -00275 {
    -00276         char buffer[MAXBUF];
    -00277         for (int i = 0; i < this->connectors.size(); i++)
    -00278         {
    -00279                 // don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!
    -00280                 if ((this->connectors[i].GetState() == STATE_NOAUTH_OUTBOUND) && (TIME > this->connectors[i].age+30))
    -00281                 {
    -00282                         // however if we reach this timer its connected timed out :)
    -00283                         WriteOpers("*** Connection to %s timed out",this->connectors[i].GetServerName().c_str());
    -00284                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00285                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00286                         DoSplit(this->connectors[i].GetServerName().c_str());
    -00287                         return;
    -00288                 }
    -00289                 if ((this->connectors[i].GetState() == STATE_NOAUTH_INBOUND) && (TIME > this->connectors[i].age+30))
    -00290                 {
    -00291                         WriteOpers("*** Connection from %s timed out",this->connectors[i].GetServerName().c_str());
    -00292                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00293                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00294                         DoSplit(this->connectors[i].GetServerName().c_str());
    -00295                         return;
    -00296                 }
    -00297                 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
    -00298                 {
    -00299                         if (!this->connectors[i].CheckPing())
    -00300                         {
    -00301                                 WriteOpers("*** Lost single connection to %s: Ping timeout",this->connectors[i].GetServerName().c_str());
    -00302                                 this->connectors[i].CloseConnection();
    -00303                                 this->connectors[i].SetState(STATE_DISCONNECTED);
    -00304                                 if (!IsRoutable(this->connectors[i].GetServerName()))
    -00305                                 {
    -00306                                         WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
    -00307                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00308                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00309                                         DoSplit(this->connectors[i].GetServerName().c_str());
    -00310                                 }
    -00311                                 has_been_netsplit = true;
    -00312                         }
    -00313                 }
    -00314                 if ((this->connectors[i].GetWriteError() !="") && (this->connectors[i].GetState() != STATE_DISCONNECTED))
    -00315                 {
    -00316                         // if we're here the write() caused an error, we cannot proceed
    -00317                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
    -00318                         this->connectors[i].CloseConnection();
    -00319                         this->connectors[i].SetState(STATE_DISCONNECTED);
    -00320                         if (!IsRoutable(this->connectors[i].GetServerName()))
    -00321                         {
    -00322                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
    -00323                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00324                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00325                                 DoSplit(this->connectors[i].GetServerName().c_str());
    -00326                         }
    -00327                         has_been_netsplit = true;
    -00328                 }
    -00329                 if ((this->connectors[i].HasBufferedOutput()) && (this->connectors[i].GetState() != STATE_DISCONNECTED))
    -00330                 {
    -00331                         if (!this->connectors[i].FlushWriteBuf())
    -00332                         {
    -00333                                 // if we're here the write() caused an error, we cannot proceed
    -00334                                 WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",this->connectors[i].GetServerName().c_str(),this->connectors[i].GetWriteError().c_str());
    -00335                                 this->connectors[i].CloseConnection();
    -00336                                 this->connectors[i].SetState(STATE_DISCONNECTED);
    -00337                                 if (!IsRoutable(this->connectors[i].GetServerName()))
    -00338                                 {
    -00339                                         WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
    -00340                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00341                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00342                                         DoSplit(this->connectors[i].GetServerName().c_str());
    -00343                                 }
    -00344                                 has_been_netsplit = true;
    -00345                         }
    -00346                 }
    -00347         }
    -00348 }
    -00349 
    -00350 bool serverrec::SendPacket(char *message, const char* sendhost)
    -00351 {
    -00352         if ((!message) || (!sendhost))
    -00353                 return true;
    -00354 
    -00355         ircd_connector* cn = this->FindHost(sendhost);
    -00356 
    -00357         if (!strchr(message,'\n'))
    -00358         {
    -00359                 strlcat(message,"\n",MAXBUF);
    -00360         }
    -00361 
    -00362         if (cn)
    -00363         {
    -00364                 log(DEBUG,"main: serverrec::SendPacket() sent '%s' to %s",message,cn->GetServerName().c_str());
    -00365 
    -00366                 if (cn->GetState() == STATE_DISCONNECTED)
    -00367                 {
    -00368                         // fix: can only route one hop to avoid a loop
    -00369                         if (strncmp(message,"R ",2))
    -00370                         {
    -00371                                 log(DEBUG,"Not a double reroute");
    -00372                                 // this route is down, we must re-route the packet through an available point in the mesh.
    -00373                                 for (int k = 0; k < this->connectors.size(); k++)
    -00374                                 {
    -00375                                         log(DEBUG,"Check connector %d: %s",k,this->connectors[k].GetServerName().c_str());
    -00376                                         // search for another point in the mesh which can 'reach' where we want to go
    -00377                                         for (int m = 0; m < this->connectors[k].routes.size(); m++)
    -00378                                         {
    -00379                                                 if (!strcasecmp(this->connectors[k].routes[m].c_str(),sendhost))
    -00380                                                 {
    -00381                                                         log(DEBUG,"Found alternative route for packet: %s",this->connectors[k].GetServerName().c_str());
    -00382                                                         char buffer[MAXBUF];
    -00383                                                         snprintf(buffer,MAXBUF,"R %s %s",sendhost,message);
    -00384                                                         this->SendPacket(buffer,this->connectors[k].GetServerName().c_str());
    -00385                                                         return true;
    -00386                                                 }
    -00387                                         }
    -00388                                 }
    -00389                         }
    -00390                         char buffer[MAXBUF];
    -00391                         snprintf(buffer,MAXBUF,"& %s",sendhost);
    -00392                         WriteOpers("*** All connections to %s lost.",sendhost);
    -00393                         NetSendToAllExcept(sendhost,buffer);
    -00394                         DoSplit(sendhost);
    -00395                         return false;
    -00396                 }
    -00397 
    -00398                 // returns false if the packet could not be sent (e.g. target host down)
    -00399                 if (!cn->AddWriteBuf(message))
    -00400                 {
    -00401                         // if we're here, there was an error pending, and the send cannot proceed
    -00402                         log(DEBUG,"cn->AddWriteBuf() failed for serverrec::SendPacket(): %s",cn->GetWriteError().c_str());
    -00403                         log(DEBUG,"Disabling connector: %s",cn->GetServerName().c_str());
    -00404                         cn->CloseConnection();
    -00405                         cn->SetState(STATE_DISCONNECTED);
    -00406                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",cn->GetServerName().c_str(),cn->GetWriteError().c_str());
    -00407                         // retry the packet along a new route so either arrival OR failure are gauranteed (bugfix)
    -00408                         return this->SendPacket(message,sendhost);
    -00409                 }
    -00410                 if (!cn->FlushWriteBuf())
    -00411                 {
    -00412                         // if we're here the write() caused an error, we cannot proceed
    -00413                         log(DEBUG,"cn->FlushWriteBuf() failed for serverrec::SendPacket(): %s",cn->GetWriteError().c_str());
    -00414                         log(DEBUG,"Disabling connector: %s",cn->GetServerName().c_str());
    -00415                         cn->CloseConnection();
    -00416                         cn->SetState(STATE_DISCONNECTED);
    -00417                         WriteOpers("*** Lost single connection to %s, link inactive and retrying: %s",cn->GetServerName().c_str(),cn->GetWriteError().c_str());
    -00418                         // retry the packet along a new route so either arrival OR failure are gauranteed
    -00419                         return this->SendPacket(message,sendhost);
    -00420                 }
    -00421                 return true;
    -00422         }
    -00423 }
    -00424 
    -00425 bool already_have_sum(std::string sum)
    -00426 {
    -00427         for (int i = 0; i < xsums.size(); i++)
    -00428         {
    -00429                 if (xsums[i] == sum)
    -00430                 {
    -00431                         return true;
    -00432                 }
    -00433         }
    -00434         if (xsums.size() >= 128)
    -00435         {
    -00436                 xsums.pop_front();
    -00437         }
    -00438         xsums.push_back(sum);
    -00439         return false;
    -00440 }
    -00441 
    -00442 // receives a packet from any where there is data waiting, first come, first served
    -00443 // fills the message and host values with the host where the data came from.
    -00444 
    -00445 bool serverrec::RecvPacket(std::deque<std::string> &messages, char* recvhost,std::deque<std::string> &sums)
    -00446 {
    -00447         char data[65536],buffer[MAXBUF];
    -00448         memset(data, 0, 65536);
    -00449         for (int i = 0; i < this->connectors.size(); i++)
    -00450         {
    -00451                 if (this->connectors[i].GetState() != STATE_DISCONNECTED)
    -00452                 {
    -00453                         // returns false if the packet could not be sent (e.g. target host down)
    -00454                         int rcvsize = 0;
    -00455 
    -00456                         // check if theres any data on this socket
    -00457                         // if not, continue onwards to the next.
    -00458                         pollfd polls;
    -00459                         polls.fd = this->connectors[i].GetDescriptor();
    -00460                         polls.events = POLLIN;
    -00461                         int ret = poll(&polls,1,1);
    -00462                         if (ret <= 0) continue;
    -00463 
    -00464                         rcvsize = recv(this->connectors[i].GetDescriptor(),data,65000,0);
    -00465                         data[rcvsize] = '\0';
    -00466                         if (rcvsize == 0)
    -00467                         {
    -00468                                 log(DEBUG,"recv() failed for serverrec::RecvPacket(): EOF");
    -00469                                 log(DEBUG,"Disabling connector: %s",this->connectors[i].GetServerName().c_str());
    -00470                                 this->connectors[i].CloseConnection();
    -00471                                 this->connectors[i].SetState(STATE_DISCONNECTED);
    -00472                                 if (!IsRoutable(this->connectors[i].GetServerName()))
    -00473                                 {
    -00474                                         WriteOpers("*** Server %s is no longer routable, disconnecting (EOF)",this->connectors[i].GetServerName().c_str());
    -00475                                         snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00476                                         NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00477                                         DoSplit(this->connectors[i].GetServerName().c_str());
    -00478                                 }
    -00479                                 has_been_netsplit = true;
    -00480                         }
    -00481                         if (rcvsize == -1)
    -00482                         {
    -00483                                 if (errno != EAGAIN)
    -00484                                 {
    -00485                                         log(DEBUG,"recv() failed for serverrec::RecvPacket(): %s",strerror(errno));
    -00486                                         log(DEBUG,"Disabling connector: %s",this->connectors[i].GetServerName().c_str());
    -00487                                         this->connectors[i].CloseConnection();
    -00488                                         this->connectors[i].SetState(STATE_DISCONNECTED);
    -00489                                         if (!IsRoutable(this->connectors[i].GetServerName()))
    -00490                                         {
    -00491                                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
    -00492                                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00493                                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00494                                                 DoSplit(this->connectors[i].GetServerName().c_str());
    -00495                                         }
    -00496                                         has_been_netsplit = true;
    -00497                                 }
    -00498                         }
    -00499                         int pushed = 0;
    -00500                         if (rcvsize > 0)
    -00501                         {
    -00502                                 if (!this->connectors[i].AddBuffer(data))
    -00503                                 {
    -00504                                         WriteOpers("*** Read buffer for %s exceeds maximum, closing connection!",this->connectors[i].GetServerName().c_str());
    -00505                                         this->connectors[i].CloseConnection();
    -00506                                         this->connectors[i].SetState(STATE_DISCONNECTED);
    -00507                                         if (!IsRoutable(this->connectors[i].GetServerName()))
    -00508                                         {
    -00509                                                 WriteOpers("*** Server %s is no longer routable, disconnecting.",this->connectors[i].GetServerName().c_str());
    -00510                                                 snprintf(buffer,MAXBUF,"& %s",this->connectors[i].GetServerName().c_str());
    -00511                                                 NetSendToAllExcept(this->connectors[i].GetServerName().c_str(),buffer);
    -00512                                                 DoSplit(this->connectors[i].GetServerName().c_str());
    -00513                                         }
    -00514                                         has_been_netsplit = true;
    -00515                                 }
    -00516                                 if (this->connectors[i].BufferIsComplete())
    -00517                                 {
    -00518                                         this->connectors[i].ResetPing();
    -00519                                         while (this->connectors[i].BufferIsComplete())
    -00520                                         {
    -00521                                                 std::string text = this->connectors[i].GetBuffer();
    -00522                                                 if (text != "")
    -00523                                                 {
    -00524                                                         if ((text[0] == ':') && (text.find(" ") != std::string::npos))
    -00525                                                         {
    -00526                                                                 std::string orig = text;
    -00527                                                                 log(DEBUG,"Original: %s",text.c_str());
    -00528                                                                 std::string sum = text.substr(1,text.find(" ")-1);
    -00529                                                                 text = text.substr(text.find(" ")+1,text.length());
    -00530                                                                 std::string possible_token = text.substr(1,text.find(" ")-1);
    -00531                                                                 if (possible_token.length() > 1)
    -00532                                                                 {
    -00533                                                                         sums.push_back("*");
    -00534                                                                         text = orig;
    -00535                                                                         log(DEBUG,"Non-mesh, non-tokenized string passed up the chain");
    -00536                                                                 }
    -00537                                                                 else
    -00538                                                                 {
    -00539                                                                         log(DEBUG,"Packet sum: '%s'",sum.c_str());
    -00540                                                                         if ((already_have_sum(sum)) && (sum != "*"))
    -00541                                                                         {
    -00542                                                                                 // we don't accept dupes
    -00543                                                                                 continue;
    -00544                                                                         }
    -00545                                                                         sums.push_back(sum.c_str());
    -00546                                                                 }
    -00547                                                         }
    -00548                                                         else sums.push_back("*");
    -00549                                                         messages.push_back(text.c_str());
    -00550                                                         strlcpy(recvhost,this->connectors[i].GetServerName().c_str(),160);
    -00551                                                         log(DEBUG,"serverrec::RecvPacket() %d:%s->%s",pushed++,recvhost,text.c_str());
    -00552                                                 }
    -00553                                         }
    -00554                                         return true;
    -00555                                 }
    -00556                         }
    -00557                 }
    -00558         }
    -00559         // nothing new yet -- message and host will be undefined
    -00560         return false;
    -00561 }
    -00562 
    -

    Generated on Mon May 30 05:15:21 2005 for InspIRCd by - -doxygen -1.3.3
    - - diff --git a/docs/module-doc/servers_8cpp.html b/docs/module-doc/servers_8cpp.html deleted file mode 100644 index f13acac36..000000000 --- a/docs/module-doc/servers_8cpp.html +++ /dev/null @@ -1,290 +0,0 @@ - - -InspIRCd: servers.cpp File Reference - - - - -

    servers.cpp File Reference

    #include "inspircd_config.h"
    -#include "servers.h"
    -#include "inspircd.h"
    -#include <unistd.h>
    -#include <fcntl.h>
    -#include <poll.h>
    -#include <sys/errno.h>
    -#include <sys/ioctl.h>
    -#include <sys/utsname.h>
    -#include <vector>
    -#include <string>
    -#include <deque>
    -#include <sstream>
    -#include <map>
    -#include "inspstring.h"
    -#include "helperfuncs.h"
    -#include "connection.h"
    - -

    -Include dependency graph for servers.cpp:

    Include dependency graph
    - - - - - -

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

    Functions

    bool IsRoutable (std::string servername)
    bool already_have_sum (std::string sum)

    Variables

    time_t TIME
    int MaxConn
    serverrecme [32]
    bool has_been_netsplit
    std::deque< std::string > xsums
    -


    Function Documentation

    -

    - - - - -
    - - - - - - - - - - -
    bool already_have_sum std::string  sum  ) 
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 425 of file servers.cpp. -

    -References xsums. -

    -Referenced by serverrec::RecvPacket(). -

    -

    00426 {
    -00427         for (int i = 0; i < xsums.size(); i++)
    -00428         {
    -00429                 if (xsums[i] == sum)
    -00430                 {
    -00431                         return true;
    -00432                 }
    -00433         }
    -00434         if (xsums.size() >= 128)
    -00435         {
    -00436                 xsums.pop_front();
    -00437         }
    -00438         xsums.push_back(sum);
    -00439         return false;
    -00440 }
    -
    -

    - - - - -
    - - - - - - - - - - -
    bool IsRoutable std::string  servername  ) 
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 256 of file servers.cpp. -

    -References serverrec::connectors, me, and STATE_DISCONNECTED. -

    -Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket(). -

    -

    00257 {
    -00258         int c = 0;
    -00259         for (int x = 0; x < 32; x++)
    -00260         if (me[x])
    -00261         {
    -00262                 for (int i = 0; i < me[x]->connectors.size(); i++)
    -00263                 {
    -00264                         if ((me[x]->connectors[i].GetServerName() == servername) && (me[x]->connectors[i].GetState() != STATE_DISCONNECTED))
    -00265                         {
    -00266                                 c++;
    -00267                         }
    -00268                 }
    -00269         }
    -00270         return (c != 0);
    -00271 }
    -
    -


    Variable Documentation

    -

    - - - - -
    - - -
    bool has_been_netsplit -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 42 of file servers.cpp. -

    -Referenced by serverrec::FlushWriteBuffers(), and serverrec::RecvPacket().

    -

    - - - - -
    - - -
    int MaxConn -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 38 of file servers.cpp. -

    -Referenced by serverrec::CreateListener().

    -

    - - - - -
    - - -
    serverrec* me[32] -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 40 of file servers.cpp.

    -

    - - - - -
    - - -
    time_t TIME -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 37 of file servers.cpp.

    -

    - - - - -
    - - -
    std::deque<std::string> xsums -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 44 of file servers.cpp. -

    -Referenced by already_have_sum().

    -


    Generated on Mon May 30 05:16:12 2005 for InspIRCd by - -doxygen -1.3.3
    - - diff --git a/docs/module-doc/servers_8cpp__incl.gif b/docs/module-doc/servers_8cpp__incl.gif deleted file mode 100644 index b2f91580d..000000000 Binary files a/docs/module-doc/servers_8cpp__incl.gif and /dev/null differ diff --git a/docs/module-doc/servers_8h-source.html b/docs/module-doc/servers_8h-source.html deleted file mode 100644 index fcd6e5a65..000000000 --- a/docs/module-doc/servers_8h-source.html +++ /dev/null @@ -1,87 +0,0 @@ - - -InspIRCd: servers.h Source File - - - - -

    servers.h

    Go to the documentation of this file.
    00001 /*       +------------------------------------+
    -00002  *       | Inspire Internet Relay Chat Daemon |
    -00003  *       +------------------------------------+
    -00004  *
    -00005  *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.
    -00006  *                       E-mail:
    -00007  *                <brain@chatspike.net>
    -00008  *                <Craig@chatspike.net>
    -00009  *     
    -00010  * Written by Craig Edwards, Craig McLure, and others.
    -00011  * This program is free but copyrighted software; see
    -00012  *            the file COPYING for details.
    -00013  *
    -00014  * ---------------------------------------------------
    -00015  */
    -00016 
    -00017 #include "inspircd_config.h" 
    -00018 #include "connection.h"
    -00019 #include <string>
    -00020 #include <map>
    -00021  
    -00022 #ifndef __SERVERS_H__ 
    -00023 #define __SERVERS_H__ 
    -00024  
    -00025 #define LINK_ACTIVE     1
    -00026 #define LINK_INACTIVE   0
    -00027 
    -00030 class serverrec : public connection
    -00031 {
    -00032  private:
    -00033  public:
    -00036         char name[MAXBUF];
    -00039         long pingtime;
    -00042         long usercount_i;
    -00045         long usercount;
    -00048         long opercount;
    -00051         int hops_away;
    -00054         long version;
    -00057         bool jupiter;
    -00058         
    -00061         char description[MAXBUF];
    -00062 
    -00065         char nickserv[NICKMAX];
    -00066         
    -00067         bool sync_soon;
    -00068 
    -00071         serverrec();
    -00074         serverrec(char* n, long ver, bool jupe);
    -00077         ~serverrec();
    -00078 
    -00081         std::vector<ircd_connector> connectors;
    -00082 
    -00083 
    -00086         bool CreateListener(char* host, int p);
    -00087 
    -00090         bool BeginLink(char* targethost, int port, char* password, char* servername, int myport);
    -00091 
    -00094         bool MeshCookie(char* targethost, int port, unsigned long cookie, char* servername);
    -00095 
    -00098         void TerminateLink(char* targethost);
    -00099 
    -00103         bool SendPacket(char *message, const char* host);
    -00104 
    -00109         bool RecvPacket(std::deque<std::string> &messages, char* host, std::deque<std::string> &sums);
    -00110 
    -00113         ircd_connector* FindHost(std::string host);
    -00114 
    -00118         bool AddIncoming(int fd,char* targethost, int sourceport);      
    -00119 
    -00122         void FlushWriteBuffers();
    -00123 };
    -00124 
    -00125 #endif
    -00126 
    -

    Generated on Mon May 30 05:15:21 2005 for InspIRCd by - -doxygen -1.3.3
    - - diff --git a/docs/module-doc/servers_8h.html b/docs/module-doc/servers_8h.html deleted file mode 100644 index 116bd61c4..000000000 --- a/docs/module-doc/servers_8h.html +++ /dev/null @@ -1,94 +0,0 @@ - - -InspIRCd: servers.h File Reference - - - - -

    servers.h File Reference

    #include "inspircd_config.h"
    -#include "connection.h"
    -#include <string>
    -#include <map>
    - -

    -Include dependency graph for servers.h:

    Include dependency graph
    - - - - -

    -This graph shows which files directly or indirectly include this file:

    Included by dependency graph
    - - - - - - -

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

    Compounds

    class  serverrec
     A class that defines the local server or a remote server. More...


    Defines

    #define LINK_ACTIVE   1
    #define LINK_INACTIVE   0
    -


    Define Documentation

    -

    - - - - -
    - - -
    #define LINK_ACTIVE   1 -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 25 of file servers.h.

    -

    - - - - -
    - - -
    #define LINK_INACTIVE   0 -
    -
    - - - - - -
    -   - - -

    - -

    -Definition at line 26 of file servers.h.

    -


    Generated on Mon May 30 05:16:14 2005 for InspIRCd by - -doxygen -1.3.3
    - - diff --git a/docs/module-doc/servers_8h__dep__incl.gif b/docs/module-doc/servers_8h__dep__incl.gif deleted file mode 100644 index 635e0059e..000000000 Binary files a/docs/module-doc/servers_8h__dep__incl.gif and /dev/null differ diff --git a/docs/module-doc/servers_8h__incl.gif b/docs/module-doc/servers_8h__incl.gif deleted file mode 100644 index 777dc0922..000000000 Binary files a/docs/module-doc/servers_8h__incl.gif and /dev/null differ diff --git a/docs/module-doc/socket_8cpp-source.html b/docs/module-doc/socket_8cpp-source.html index 301f525b4..0d6f107da 100644 --- a/docs/module-doc/socket_8cpp-source.html +++ b/docs/module-doc/socket_8cpp-source.html @@ -287,7 +287,7 @@ 00278 int BindSocket (int sockfd, struct sockaddr_in client, struct sockaddr_in server, int port, char* addr) 00279 int OpenTCPSocket (void) 00280 */ -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socket_8cpp.html b/docs/module-doc/socket_8cpp.html index 506657c69..5a0ca11e5 100644 --- a/docs/module-doc/socket_8cpp.html +++ b/docs/module-doc/socket_8cpp.html @@ -169,7 +169,7 @@ Definition at line 46 of -
    Generated on Wed Dec 14 14:49:25 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socket_8h-source.html b/docs/module-doc/socket_8h-source.html index f6c76d043..4e579d9d5 100644 --- a/docs/module-doc/socket_8h-source.html +++ b/docs/module-doc/socket_8h-source.html @@ -110,7 +110,7 @@ 00302 }; 00303 00304 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socket_8h.html b/docs/module-doc/socket_8h.html index 65f86a55e..d0a1f37ee 100644 --- a/docs/module-doc/socket_8h.html +++ b/docs/module-doc/socket_8h.html @@ -140,7 +140,7 @@ Definition at line 29 of f -
    Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socketengine_8cpp-source.html b/docs/module-doc/socketengine_8cpp-source.html index 54fd76fc4..b2e2c627a 100644 --- a/docs/module-doc/socketengine_8cpp-source.html +++ b/docs/module-doc/socketengine_8cpp-source.html @@ -212,7 +212,7 @@ 00203 #endif 00204 return "misconfigured"; 00205 } -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socketengine_8cpp.html b/docs/module-doc/socketengine_8cpp.html index 6c02070b0..10630b1ef 100644 --- a/docs/module-doc/socketengine_8cpp.html +++ b/docs/module-doc/socketengine_8cpp.html @@ -55,7 +55,7 @@ Definition at line 33< Referenced by SocketEngine::AddFd(), SocketEngine::DelFd(), SocketEngine::GetType(), and SocketEngine::Wait(). -
    Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socketengine_8h-source.html b/docs/module-doc/socketengine_8h-source.html index a9b9340c5..2efbade7a 100644 --- a/docs/module-doc/socketengine_8h-source.html +++ b/docs/module-doc/socketengine_8h-source.html @@ -82,7 +82,7 @@ 00142 }; 00143 00144 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:46 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/socketengine_8h.html b/docs/module-doc/socketengine_8h.html index d98efd075..61e72cb4f 100644 --- a/docs/module-doc/socketengine_8h.html +++ b/docs/module-doc/socketengine_8h.html @@ -211,7 +211,7 @@ Definition at line 55SocketEngine::AddFd(), SocketEngine::DelFd(), and SocketEngine::Wait(). -
    Generated on Wed Dec 14 14:49:26 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structdns__ip4list-members.html b/docs/module-doc/structdns__ip4list-members.html index 289af1dd0..e37bb09dc 100644 --- a/docs/module-doc/structdns__ip4list-members.html +++ b/docs/module-doc/structdns__ip4list-members.html @@ -8,7 +8,7 @@

    dns_ip4list Member List

    This is the complete list of members for dns_ip4list, including all inherited members.

    -
    ipdns_ip4list
    nextdns_ip4list


    Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structdns__ip4list.html b/docs/module-doc/structdns__ip4list.html index 253c29fc6..d0a80f758 100644 --- a/docs/module-doc/structdns__ip4list.html +++ b/docs/module-doc/structdns__ip4list.html @@ -74,7 +74,7 @@ Definition at line 28 of file
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:30 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:48 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1InAddr__HashComp-members.html b/docs/module-doc/structirc_1_1InAddr__HashComp-members.html index a37cd2c2d..8bb5fa75b 100644 --- a/docs/module-doc/structirc_1_1InAddr__HashComp-members.html +++ b/docs/module-doc/structirc_1_1InAddr__HashComp-members.html @@ -7,7 +7,7 @@

    irc::InAddr_HashComp Member List

    This is the complete list of members for irc::InAddr_HashComp, including all inherited members.

    -
    operator()(const in_addr &s1, const in_addr &s2) const irc::InAddr_HashComp


    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1InAddr__HashComp.html b/docs/module-doc/structirc_1_1InAddr__HashComp.html index fd121ce96..aaa89e086 100644 --- a/docs/module-doc/structirc_1_1InAddr__HashComp.html +++ b/docs/module-doc/structirc_1_1InAddr__HashComp.html @@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1StrHashComp-members.html b/docs/module-doc/structirc_1_1StrHashComp-members.html index c74828c81..f4cab5bc4 100644 --- a/docs/module-doc/structirc_1_1StrHashComp-members.html +++ b/docs/module-doc/structirc_1_1StrHashComp-members.html @@ -7,7 +7,7 @@

    irc::StrHashComp Member List

    This is the complete list of members for irc::StrHashComp, including all inherited members.

    -
    operator()(const std::string &s1, const std::string &s2) const irc::StrHashComp


    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1StrHashComp.html b/docs/module-doc/structirc_1_1StrHashComp.html index 1abcc2304..34d737256 100644 --- a/docs/module-doc/structirc_1_1StrHashComp.html +++ b/docs/module-doc/structirc_1_1StrHashComp.html @@ -68,7 +68,7 @@ The operator () does the actual comparison in hash_map.
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1irc__char__traits-members.html b/docs/module-doc/structirc_1_1irc__char__traits-members.html index f4bb52951..b45193bfd 100644 --- a/docs/module-doc/structirc_1_1irc__char__traits-members.html +++ b/docs/module-doc/structirc_1_1irc__char__traits-members.html @@ -11,7 +11,7 @@ find(const char *s1, int n, char c)irc::irc_char_traits [static] lt(char c1st, char c2nd)irc::irc_char_traits [static] ne(char c1st, char c2nd)irc::irc_char_traits [static] -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structirc_1_1irc__char__traits.html b/docs/module-doc/structirc_1_1irc__char__traits.html index c85d4331c..23b6f8de3 100644 --- a/docs/module-doc/structirc_1_1irc__char__traits.html +++ b/docs/module-doc/structirc_1_1irc__char__traits.html @@ -256,7 +256,7 @@ Check if two chars do NOT match.
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html index 831baf385..2488cad9e 100644 --- a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html +++ b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4-members.html @@ -7,7 +7,7 @@

    nspace::hash< in_addr > Member List

    This is the complete list of members for nspace::hash< in_addr >, including all inherited members.

    -
    operator()(const struct in_addr &a) const nspace::hash< in_addr >


    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html index 3cfadbcc5..b5facdffe 100644 --- a/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html +++ b/docs/module-doc/structnspace_1_1hash_3_01in__addr_01_4.html @@ -54,7 +54,7 @@ Definition at line 54 of
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html b/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html index 020a922aa..dc3d2c7a6 100644 --- a/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html +++ b/docs/module-doc/structnspace_1_1hash_3_01string_01_4-members.html @@ -7,7 +7,7 @@

    nspace::hash< string > Member List

    This is the complete list of members for nspace::hash< string >, including all inherited members.

    -
    operator()(const string &s) const nspace::hash< string >


    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html b/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html index ce45bfe89..4134ee3ba 100644 --- a/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html +++ b/docs/module-doc/structnspace_1_1hash_3_01string_01_4.html @@ -54,7 +54,7 @@ Definition at line 62 of
    The documentation for this struct was generated from the following file: -
    Generated on Wed Dec 14 14:49:37 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:52 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/typedefs_8h-source.html b/docs/module-doc/typedefs_8h-source.html index 35b7b586f..1aab71ba1 100644 --- a/docs/module-doc/typedefs_8h-source.html +++ b/docs/module-doc/typedefs_8h-source.html @@ -36,7 +36,7 @@ 00027 typedef ExtModeList::iterator ExtModeListIter; 00028 00029 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/typedefs_8h.html b/docs/module-doc/typedefs_8h.html index 45b02de74..6d202cd46 100644 --- a/docs/module-doc/typedefs_8h.html +++ b/docs/module-doc/typedefs_8h.html @@ -265,7 +265,7 @@ Definition at line 20 of Definition at line 23 of file typedefs.h. -
    Generated on Wed Dec 14 14:49:27 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/userprocess_8h-source.html b/docs/module-doc/userprocess_8h-source.html index 982522ae5..543a02f45 100644 --- a/docs/module-doc/userprocess_8h-source.html +++ b/docs/module-doc/userprocess_8h-source.html @@ -20,7 +20,7 @@ 00011 void ProcessUser(userrec* cu); 00012 00013 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/userprocess_8h.html b/docs/module-doc/userprocess_8h.html index 1e60a7526..e3f6af7d8 100644 --- a/docs/module-doc/userprocess_8h.html +++ b/docs/module-doc/userprocess_8h.html @@ -209,7 +209,7 @@ Include dependency graph for userprocess.h:

    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/users_8cpp-source.html b/docs/module-doc/users_8cpp-source.html index 2ada48e14..25ddfcaed 100644 --- a/docs/module-doc/users_8cpp-source.html +++ b/docs/module-doc/users_8cpp-source.html @@ -310,7 +310,7 @@ 00301 { 00302 return this->WriteError; 00303 } -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/users_8cpp.html b/docs/module-doc/users_8cpp.html index 772f374d9..e2253edbc 100644 --- a/docs/module-doc/users_8cpp.html +++ b/docs/module-doc/users_8cpp.html @@ -82,7 +82,7 @@ Include dependency graph for users.cpp:

    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/users_8h-source.html b/docs/module-doc/users_8h-source.html index d3dec62be..160eea818 100644 --- a/docs/module-doc/users_8h-source.html +++ b/docs/module-doc/users_8h-source.html @@ -192,7 +192,7 @@ 00342 }; 00343 00344 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/users_8h.html b/docs/module-doc/users_8h.html index e64cb27de..29b7734f4 100644 --- a/docs/module-doc/users_8h.html +++ b/docs/module-doc/users_8h.html @@ -277,7 +277,7 @@ Holds a complete list of all channels to which a user has been invited and has n Definition at line 97 of file users.h. -
    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/xline_8h-source.html b/docs/module-doc/xline_8h-source.html index 19224f400..157a4ca95 100644 --- a/docs/module-doc/xline_8h-source.html +++ b/docs/module-doc/xline_8h-source.html @@ -129,7 +129,7 @@ 00161 bool qline_make_global(const char* nickname); 00162 00163 #endif -

    Generated on Wed Dec 14 14:49:17 2005 for InspIRCd by  +

    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    diff --git a/docs/module-doc/xline_8h.html b/docs/module-doc/xline_8h.html index cc11181c6..d6d6a5705 100644 --- a/docs/module-doc/xline_8h.html +++ b/docs/module-doc/xline_8h.html @@ -172,7 +172,7 @@ This graph shows which files directly or indirectly include this file:

    -Referenced by Server::AddELine(). +Referenced by Server::AddELine().

    @@ -223,7 +223,7 @@ Referenced by Server::AddEL

    -Referenced by Server::AddGLine(). +Referenced by Server::AddGLine().

    @@ -274,7 +274,7 @@ Referenced by Server::AddGL

    -Referenced by Server::AddKLine(). +Referenced by Server::AddKLine().

    @@ -325,7 +325,7 @@ Referenced by Server::AddKL

    -Referenced by Server::AddQLine(). +Referenced by Server::AddQLine().

    @@ -376,7 +376,7 @@ Referenced by Server::AddQL

    -Referenced by Server::AddZLine(). +Referenced by Server::AddZLine().

    @@ -434,7 +434,7 @@ Referenced by Server::AddZL

    -Referenced by Server::DelELine(). +Referenced by Server::DelELine().

    @@ -464,7 +464,7 @@ Referenced by Server::DelEL

    -Referenced by Server::DelGLine(). +Referenced by Server::DelGLine().

    @@ -494,7 +494,7 @@ Referenced by Server::DelGL

    -Referenced by Server::DelKLine(). +Referenced by Server::DelKLine().

    @@ -524,7 +524,7 @@ Referenced by Server::DelKL

    -Referenced by Server::DelQLine(). +Referenced by Server::DelQLine().

    @@ -554,7 +554,7 @@ Referenced by Server::DelQL

    -Referenced by Server::DelZLine(). +Referenced by Server::DelZLine().

    @@ -1221,7 +1221,7 @@ Definition at line 33 of fi Definition at line 34 of file xline.h. -


    Generated on Wed Dec 14 14:49:28 2005 for InspIRCd by  +
    Generated on Wed Dec 14 15:55:47 2005 for InspIRCd by  doxygen 1.4.4-20050815
    -- cgit v1.2.3