summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-10 21:39:57 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-10 21:39:57 +0000
commit24b1fbeec8e61e9636daaf606778c324d3ae3042 (patch)
tree2eb9d1892dc0d35a969ac9ec3c3c8a6189ef3192
parentd02a5866d4fdedec9219aeca0a6048828b394fd2 (diff)
Move all_opers into class InspIRCd
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4857 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/inspircd.h1
-rw-r--r--src/cmd_die.cpp3
-rw-r--r--src/cmd_who.cpp4
-rw-r--r--src/commands.cpp38
-rw-r--r--src/helperfuncs.cpp3
-rw-r--r--src/modules/m_httpd_stats.cpp3
-rw-r--r--src/users.cpp7
7 files changed, 8 insertions, 51 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index fd7cd3da9..42072919e 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -122,6 +122,7 @@ class InspIRCd : public classbase
user_hash clientlist;
chan_hash chanlist;
std::vector<userrec*> local_users;
+ std::vector<userrec*> all_opers;
DNS* Res;
TimerManager* Timers;
diff --git a/src/cmd_die.cpp b/src/cmd_die.cpp
index b0a826b6d..e561acefc 100644
--- a/src/cmd_die.cpp
+++ b/src/cmd_die.cpp
@@ -24,7 +24,6 @@
#include "commands/cmd_die.h"
extern InspIRCd* ServerInstance;
-extern std::vector<userrec*> all_opers;
void cmd_die::Handle (const char** parameters, int pcnt, userrec *user)
{
@@ -36,7 +35,7 @@ void cmd_die::Handle (const char** parameters, int pcnt, userrec *user)
* so we iterate the oper list, writing the message and immediately trying to flush their write buffer.
*/
- for (std::vector<userrec*>::iterator i = all_opers.begin(); i != all_opers.end(); i++)
+ for (std::vector<userrec*>::iterator i = ServerInstance->all_opers.begin(); i != ServerInstance->all_opers.end(); i++)
{
userrec* a = *i;
diff --git a/src/cmd_who.cpp b/src/cmd_who.cpp
index 7601a1069..e5b6c60cd 100644
--- a/src/cmd_who.cpp
+++ b/src/cmd_who.cpp
@@ -23,8 +23,6 @@
#include "commands/cmd_who.h"
extern InspIRCd* ServerInstance;
-extern chan_hash chanlist;
-extern std::vector<userrec*> all_opers;
/* get the last 'visible' chan of a user */
static char *getlastchanname(userrec *u)
@@ -160,7 +158,7 @@ void cmd_who::Handle (const char** parameters, int pcnt, userrec *user)
if (opt_viewopersonly)
{
/* Showing only opers */
- for (std::vector<userrec*>::iterator i = all_opers.begin(); i != all_opers.end(); i++)
+ for (std::vector<userrec*>::iterator i = ServerInstance->all_opers.begin(); i != ServerInstance->all_opers.end(); i++)
{
userrec* oper = *i;
diff --git a/src/commands.cpp b/src/commands.cpp
index 9fe677d70..48d0745d5 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -59,44 +59,6 @@ const long duration_d = duration_h * 24;
const long duration_w = duration_d * 7;
const long duration_y = duration_w * 52;
-extern std::vector<userrec*> all_opers;
-
-void split_chlist(userrec* user, userrec* dest, const std::string &cl)
-{
- std::string line;
- std::ostringstream prefix;
- std::string::size_type start, pos, length;
-
- prefix << ":" << ServerInstance->Config->ServerName << " 319 " << user->nick << " " << dest->nick << " :";
- line = prefix.str();
-
- for (start = 0; (pos = cl.find(' ', start)) != std::string::npos; start = pos+1)
- {
- length = (pos == std::string::npos) ? cl.length() : pos;
-
- if (line.length() + length - start > 510)
- {
- user->Write(line);
- line = prefix.str();
- }
-
- if(pos == std::string::npos)
- {
- line += cl.substr(start, length - start);
- break;
- }
- else
- {
- line += cl.substr(start, length - start + 1);
- }
- }
-
- if (line.length())
- {
- user->Write(line);
- }
-}
-
/* XXX - these really belong in helperfuncs perhaps -- w00t */
bool is_uline(const char* server)
{
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp
index dc6c3e00d..50d9b0631 100644
--- a/src/helperfuncs.cpp
+++ b/src/helperfuncs.cpp
@@ -44,7 +44,6 @@
#include "inspircd.h"
extern time_t TIME;
-extern std::vector<userrec*> all_opers;
static char TIMESTR[26];
static time_t LAST = 0;
@@ -135,7 +134,7 @@ void InspIRCd::WriteOpers(const char* text, ...)
void InspIRCd::WriteOpers(const std::string &text)
{
- for (std::vector<userrec*>::iterator i = all_opers.begin(); i != all_opers.end(); i++)
+ for (std::vector<userrec*>::iterator i = this->all_opers.begin(); i != this->all_opers.end(); i++)
{
userrec* a = *i;
if (IS_LOCAL(a) && a->modes[UM_SERVERNOTICE])
diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp
index 27548c91c..a813660c9 100644
--- a/src/modules/m_httpd_stats.cpp
+++ b/src/modules/m_httpd_stats.cpp
@@ -28,7 +28,6 @@ using namespace std;
/* $ModDesc: Provides statistics over HTTP via m_httpd.so */
-extern std::vector<userrec*> all_opers;
extern InspIRCd* ServerInstance;
typedef std::map<irc::string,int> StatsHash;
@@ -113,7 +112,7 @@ class ModuleHttpStats : public Module
data << "<table>";
data << "<tr><td>Users</td><td>" << ServerInstance->clientlist.size() << "</td></tr>";
data << "<tr><td>Channels</td><td>" << ServerInstance->chanlist.size() << "</td></tr>";
- data << "<tr><td>Opers</td><td>" << all_opers.size() << "</td></tr>";
+ data << "<tr><td>Opers</td><td>" << ServerInstance->all_opers.size() << "</td></tr>";
data << "<tr><td>Sockets</td><td>" << (ServerInstance->SE->GetMaxFds() - ServerInstance->SE->GetRemainingFds()) << " (Max: " << ServerInstance->SE->GetMaxFds() << " via socket engine '" << ServerInstance->SE->GetName() << "')</td></tr>";
data << "</table>";
data << "</div>";
diff --git a/src/users.cpp b/src/users.cpp
index 63cc1763d..1a8e52fee 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -36,7 +36,6 @@ extern Server* MyServer;
irc::whowas::whowas_users whowas;
static unsigned long already_sent[MAX_DESCRIPTORS] = {0};
-std::vector<userrec*> all_opers;
typedef std::map<irc::string,char*> opertype_t;
typedef opertype_t operclass_t;
@@ -614,7 +613,7 @@ void userrec::Oper(const std::string &opertype)
FOREACH_MOD(I_OnOper, OnOper(this, opertype));
log(DEFAULT,"OPER: %s!%s@%s opered as type: %s", this->nick, this->ident, this->host, opertype.c_str());
strlcpy(this->oper, opertype.c_str(), NICKMAX - 1);
- all_opers.push_back(this);
+ ServerInstance->all_opers.push_back(this);
FOREACH_MOD(I_OnPostOper,OnPostOper(this, opertype));
}
@@ -624,12 +623,12 @@ void userrec::UnOper()
{
*this->oper = 0;
this->modes[UM_OPERATOR] = 0;
- for (std::vector<userrec*>::iterator a = all_opers.begin(); a < all_opers.end(); a++)
+ for (std::vector<userrec*>::iterator a = ServerInstance->all_opers.begin(); a < ServerInstance->all_opers.end(); a++)
{
if (*a == this)
{
log(DEBUG,"Oper removed from optimization list");
- all_opers.erase(a);
+ ServerInstance->all_opers.erase(a);
return;
}
}