]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
Small tidyup
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index 40b2d7d90b27e17a024ecc64c598919089b3a999..3f60cac80419acc443aab3e34f4bef9fe4bc03e8 100644 (file)
@@ -14,7 +14,6 @@
 /* $Core: libIRCDhelper */
 
 #include "inspircd.h"
-#include <stdarg.h>
 #include "wildcard.h"
 #include "xline.h"
 #include "exitcodes.h"
@@ -95,151 +94,15 @@ std::string InspIRCd::GetServerDescription(const char* servername)
        }
 }
 
-/* XXX - We don't use WriteMode for this because WriteMode is very slow and
- * this isnt. Basically WriteMode has to iterate ALL the users 'n' times for
- * the number of modes provided, e.g. if you send WriteMode 'og' to write to
- * opers with globops, and you have 2000 users, thats 4000 iterations. WriteOpers
- * uses the oper list, which means if you have 2000 users but only 5 opers,
- * it iterates 5 times.
- */
-void InspIRCd::WriteOpers(const char* text, ...)
-{
-       char textbuffer[MAXBUF];
-       va_list argsPtr;
-
-       va_start(argsPtr, text);
-       vsnprintf(textbuffer, MAXBUF, text, argsPtr);
-       va_end(argsPtr);
-
-       this->WriteOpers(std::string(textbuffer));
-}
-
-void InspIRCd::WriteOpers(const std::string &text)
-{
-       for (std::list<User*>::iterator i = this->all_opers.begin(); i != this->all_opers.end(); i++)
-       {
-               User* a = *i;
-               if (IS_LOCAL(a) && a->IsModeSet('s'))
-               {
-                       // send server notices to all with +s
-                       a->WriteServ("NOTICE %s :%s",a->nick,text.c_str());
-               }
-       }
-}
-
-void InspIRCd::ServerNoticeAll(char* text, ...)
-{
-       if (!text)
-               return;
-
-       char textbuffer[MAXBUF];
-       char formatbuffer[MAXBUF];
-       va_list argsPtr;
-       va_start (argsPtr, text);
-       vsnprintf(textbuffer, MAXBUF, text, argsPtr);
-       va_end(argsPtr);
-
-       snprintf(formatbuffer,MAXBUF,"NOTICE $%s :%s",Config->ServerName,textbuffer);
-
-       for (std::vector<User*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
-       {
-               User* t = *i;
-               t->WriteServ(std::string(formatbuffer));
-       }
-}
-
-void InspIRCd::ServerPrivmsgAll(char* text, ...)
-{
-       if (!text)
-               return;
-
-       char textbuffer[MAXBUF];
-       char formatbuffer[MAXBUF];
-       va_list argsPtr;
-       va_start (argsPtr, text);
-       vsnprintf(textbuffer, MAXBUF, text, argsPtr);
-       va_end(argsPtr);
-
-       snprintf(formatbuffer,MAXBUF,"PRIVMSG $%s :%s",Config->ServerName,textbuffer);
-
-       for (std::vector<User*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
-       {
-               User* t = *i;
-               t->WriteServ(std::string(formatbuffer));
-       }
-}
-
-void InspIRCd::WriteMode(const char* modes, int flags, const char* text, ...)
-{
-       char textbuffer[MAXBUF];
-       int modelen;
-       va_list argsPtr;
-
-       if (!text || !modes || !flags)
-       {
-               this->Log(DEFAULT,"*** BUG *** WriteMode was given an invalid parameter");
-               return;
-       }
-
-       va_start(argsPtr, text);
-       vsnprintf(textbuffer, MAXBUF, text, argsPtr);
-       va_end(argsPtr);
-       modelen = strlen(modes);
-
-       if (flags == WM_AND)
-       {
-               for (std::vector<User*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
-               {
-                       User* t = *i;
-                       bool send_to_user = true;
-
-                       for (int n = 0; n < modelen; n++)
-                       {
-                               if (!t->IsModeSet(modes[n]))
-                               {
-                                       send_to_user = false;
-                                       break;
-                               }
-                       }
-                       if (send_to_user)
-                       {
-                               t->WriteServ("NOTICE %s :%s", t->nick, textbuffer);
-                       }
-               }
-       }
-       else if (flags == WM_OR)
-       {
-               for (std::vector<User*>::const_iterator i = local_users.begin(); i != local_users.end(); i++)
-               {
-                       User* t = *i;
-                       bool send_to_user = false;
-
-                       for (int n = 0; n < modelen; n++)
-                       {
-                               if (t->IsModeSet(modes[n]))
-                               {
-                                       send_to_user = true;
-                                       break;
-                               }
-                       }
-
-                       if (send_to_user)
-                       {
-                               t->WriteServ("NOTICE %s :%s", t->nick, textbuffer);
-                       }
-               }
-       }
-}
-
 /* Find a user record by nickname and return a pointer to it */
 User* InspIRCd::FindNick(const std::string &nick)
 {
        if (!nick.empty() && isdigit(*nick.begin()))
                return FindUUID(nick);
 
-       user_hash::iterator iter = clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist->find(nick);
 
-       if (iter == clientlist->end())
+       if (iter == this->Users->clientlist->end())
                /* Couldn't find it */
                return NULL;
 
@@ -251,9 +114,9 @@ User* InspIRCd::FindNick(const char* nick)
        if (isdigit(*nick))
                return FindUUID(nick);
 
-       user_hash::iterator iter = clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist->find(nick);
        
-       if (iter == clientlist->end())
+       if (iter == this->Users->clientlist->end())
                return NULL;
 
        return iter->second;
@@ -261,9 +124,9 @@ User* InspIRCd::FindNick(const char* nick)
 
 User* InspIRCd::FindNickOnly(const std::string &nick)
 {
-       user_hash::iterator iter = clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist->find(nick);
 
-       if (iter == clientlist->end())
+       if (iter == this->Users->clientlist->end())
                return NULL;
 
        return iter->second;
@@ -271,9 +134,9 @@ User* InspIRCd::FindNickOnly(const std::string &nick)
 
 User* InspIRCd::FindNickOnly(const char* nick)
 {
-       user_hash::iterator iter = clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist->find(nick);
 
-       if (iter == clientlist->end())
+       if (iter == this->Users->clientlist->end())
                return NULL;
 
        return iter->second;
@@ -286,9 +149,9 @@ User *InspIRCd::FindUUID(const std::string &uid)
 
 User *InspIRCd::FindUUID(const char *uid)
 {
-       user_hash::iterator finduuid = uuidlist->find(uid);
+       user_hash::iterator finduuid = this->Users->uuidlist->find(uid);
 
-       if (finduuid == uuidlist->end())
+       if (finduuid == this->Users->uuidlist->end())
                return NULL;
 
        return finduuid->second;
@@ -320,7 +183,7 @@ Channel* InspIRCd::FindChan(const std::string &chan)
 /* Send an error notice to all users, registered or not */
 void InspIRCd::SendError(const std::string &s)
 {
-       for (std::vector<User*>::const_iterator i = this->local_users.begin(); i != this->local_users.end(); i++)
+       for (std::vector<User*>::const_iterator i = this->Users->local_users.begin(); i != this->Users->local_users.end(); i++)
        {
                if ((*i)->registered == REG_ALL)
                {
@@ -339,54 +202,12 @@ void InspIRCd::SendError(const std::string &s)
        }
 }
 
-/* this function counts all users connected, wether they are registered or NOT. */
-int InspIRCd::UserCount()
-{
-       return clientlist->size();
-}
-
-/* this counts only registered users, so that the percentages in /MAP don't mess up when users are sitting in an unregistered state */
-int InspIRCd::RegisteredUserCount()
-{
-       return clientlist->size() - this->UnregisteredUserCount();
-}
-
-/* return how many users have a given mode e.g. 'a' */
-int InspIRCd::ModeCount(const char mode)
-{
-       ModeHandler* mh = this->Modes->FindMode(mode, MODETYPE_USER);
-
-       if (mh)
-               return mh->GetCount();
-       else
-               return 0;
-}
-
-/* return how many users are opered */
-int InspIRCd::OperCount()
-{
-       return this->all_opers.size();
-}
-
-/* return how many users are unregistered */
-int InspIRCd::UnregisteredUserCount()
-{
-       return this->unregistered_count;
-}
-
 /* return channel count */
 long InspIRCd::ChannelCount()
 {
        return chanlist->size();
 }
 
-/* return how many local registered users there are */
-long InspIRCd::LocalUserCount()
-{
-       /* Doesnt count unregistered clients */
-       return (local_users.size() - this->UnregisteredUserCount());
-}
-
 bool InspIRCd::IsValidMask(const std::string &mask)
 {
        char* dest = (char*)mask.c_str();