-/* +------------------------------------+
- * | Inspire Internet Relay Chat Daemon |
- * +------------------------------------+
+/* ---------------------------------------------------------------------
+ *
+ * +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
*
- * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- * E-mail:
- * <brain@chatspike.net>
- * <Craig@chatspike.net>
+ * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
+ * E-mail:
+ * <brain@chatspike.net>
+ * <Craig@chatspike.net>
*
- * Written by Craig Edwards, Craig McLure, and others.
- * This program is free but copyrighted software; see
- * the file COPYING for details.
+ * Written by Craig Edwards, Craig McLure, and others.
+ * This program is free but copyrighted software; you can redistribute
+ * it and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation, version 2
+ * (two) ONLY.
*
- * ---------------------------------------------------
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * ---------------------------------------------------------------------
*/
-/* Now with added unF! ;) */
-
+#include <algorithm>
#include "inspircd_config.h"
#include "inspircd.h"
#include "configreader.h"
#include <fcntl.h>
#include <sys/errno.h>
#include <sys/ioctl.h>
+#include <signal.h>
#include <time.h>
#include <string>
#include <exception>
int WHOWAS_STALE = 48; // default WHOWAS Entries last 2 days before they go 'stale'
int WHOWAS_MAX = 100; // default 100 people maximum in the WHOWAS list
-extern std::vector<Module*> modules;
-extern std::vector<ircd_module*> factory;
+extern ModuleList modules;
+extern FactoryList factory;
std::vector<InspSocket*> module_sockets;
std::vector<userrec*> local_users;
servernamelist servernames;
char lowermap[255];
-void AddServerName(std::string servername)
+void AddServerName(const std::string &servername)
{
log(DEBUG,"Adding server name: %s",servername.c_str());
- for (servernamelist::iterator a = servernames.begin(); a < servernames.end(); a++)
- {
- if (*a == servername)
- return;
- }
- servernames.push_back(servername);
+
+ if(find(servernames.begin(), servernames.end(), servername) == servernames.end())
+ servernames.push_back(servername); /* Wasn't already there. */
}
-const char* FindServerNamePtr(std::string servername)
+const char* FindServerNamePtr(const std::string &servername)
{
- for (servernamelist::iterator a = servernames.begin(); a < servernames.end(); a++)
- {
- if (*a == servername)
- return a->c_str();
+ servernamelist::iterator iter = find(servernames.begin(), servernames.end(), servername);
+
+ if(iter == servernames.end())
+ {
+ AddServerName(servername);
+ iter = --servernames.end();
}
- AddServerName(servername);
- return FindServerNamePtr(servername);
+
+ return iter->c_str();
}
-bool FindServerName(std::string servername)
+bool FindServerName(const std::string &servername)
{
- for (servernamelist::iterator a = servernames.begin(); a < servernames.end(); a++)
- {
- if (*a == servername)
- return true;
- }
- return false;
+ return (find(servernames.begin(), servernames.end(), servername) != servernames.end());
}
void Exit(int status)
{
if (v1 == j)
{
- delete *m;
+ DELETE(*m);
modules.erase(m);
modules.push_back(NULL);
break;
}
}
s->Close();
- delete s;
+ DELETE(s);
}
else if (!s)
{
{
ServerInstance = new InspIRCd(argc, argv);
ServerInstance->Run();
- delete ServerInstance;
+ DELETE(ServerInstance);
}
catch (std::bad_alloc)
{