]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
Merge pull request #1106 from SaberUK/master+purge-pkg-path
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index 567806efcef407ded6176ab17e3514aac5ec8af7..d636e2d8958e20285291960e765ef8f55b836277 100644 (file)
@@ -38,9 +38,9 @@ User* InspIRCd::FindNick(const std::string &nick)
        if (!nick.empty() && isdigit(*nick.begin()))
                return FindUUID(nick);
 
-       user_hash::iterator iter = this->Users->clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist.find(nick);
 
-       if (iter == this->Users->clientlist->end())
+       if (iter == this->Users->clientlist.end())
                /* Couldn't find it */
                return NULL;
 
@@ -49,9 +49,9 @@ User* InspIRCd::FindNick(const std::string &nick)
 
 User* InspIRCd::FindNickOnly(const std::string &nick)
 {
-       user_hash::iterator iter = this->Users->clientlist->find(nick);
+       user_hash::iterator iter = this->Users->clientlist.find(nick);
 
-       if (iter == this->Users->clientlist->end())
+       if (iter == this->Users->clientlist.end())
                return NULL;
 
        return iter->second;
@@ -79,24 +79,6 @@ Channel* InspIRCd::FindChan(const std::string &chan)
        return iter->second;
 }
 
-/* Send an error notice to all users, registered or not */
-void InspIRCd::SendError(const std::string &s)
-{
-       for (LocalUserList::const_iterator i = this->Users->local_users.begin(); i != this->Users->local_users.end(); i++)
-       {
-               User* u = *i;
-               if (u->registered == REG_ALL)
-               {
-                       u->WriteNotice(s);
-               }
-               else
-               {
-                       /* Unregistered connections receive ERROR, not a NOTICE */
-                       u->Write("ERROR :" + s);
-               }
-       }
-}
-
 bool InspIRCd::IsValidMask(const std::string &mask)
 {
        const char* dest = mask.c_str();
@@ -312,24 +294,6 @@ void InspIRCd::CheckRoot()
 #endif
 }
 
-void InspIRCd::SendWhoisLine(User* user, User* dest, int numeric, const std::string &text)
-{
-       std::string copy_text = text;
-
-       ModResult MOD_RESULT;
-       FIRST_MOD_RESULT(OnWhoisLine, MOD_RESULT, (user, dest, numeric, copy_text));
-
-       if (MOD_RESULT != MOD_RES_DENY)
-               user->WriteNumeric(numeric, copy_text);
-}
-
-void InspIRCd::SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...)
-{
-       std::string textbuffer;
-       VAFORMAT(textbuffer, format, format)
-       this->SendWhoisLine(user, dest, numeric, textbuffer);
-}
-
 /** Refactored by Brain, Jun 2009. Much faster with some clever O(1) array
  * lookups and pointer maths.
  */
@@ -403,14 +367,14 @@ const char* InspIRCd::Format(const char* formatString, ...)
        return ret;
 }
 
-std::string InspIRCd::TimeString(time_t curtime)
+std::string InspIRCd::TimeString(time_t curtime, const char* format, bool utc)
 {
 #ifdef _WIN32
        if (curtime < 0)
                curtime = 0;
 #endif
 
-       struct tm* timeinfo = localtime(&curtime);
+       struct tm* timeinfo = utc ? gmtime(&curtime) : localtime(&curtime);
        if (!timeinfo)
        {
                curtime = 0;
@@ -424,7 +388,15 @@ std::string InspIRCd::TimeString(time_t curtime)
        else if (timeinfo->tm_year + 1900 < 1000)
                timeinfo->tm_year = 0;
 
-       return std::string(asctime(timeinfo),24);
+       // This is the default format used by asctime without the terminating new line.
+       if (!format)
+               format = "%a %b %d %H:%M:%S %Y";
+
+       char buffer[512];
+       if (!strftime(buffer, sizeof(buffer), format, timeinfo))
+               buffer[0] = '\0';
+
+       return buffer;
 }
 
 std::string InspIRCd::GenRandomStr(int length, bool printable)
@@ -478,7 +450,7 @@ ModResult OnCheckExemptionHandler::Call(User* user, Channel* chan, const std::st
                std::string::size_type pos = current.find(':');
                if (pos == std::string::npos)
                        continue;
-               if (current.substr(0,pos) == restriction)
+               if (!current.compare(0, pos, restriction))
                        minmode = current[pos+1];
        }