]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/userprocess.cpp
- Modify ServerConfig::GetFullProgDir to just return cwd, previously it did a lot...
[user/henk/code/inspircd.git] / src / userprocess.cpp
index 7cdb85cd231007c82c691336ad07b26be272184d..dd6a4c24d697caa1f9914f820a315f8fd4673e49 100644 (file)
@@ -107,7 +107,7 @@ void InspIRCd::ProcessUser(userrec* cu)
                                        }
                                        else
                                        {
-                                               current->WriteServ("NOTICE %s :Your previous line was too long and was not delivered (Over 512chars) Please shorten it.", current->nick);
+                                               current->WriteServ("NOTICE %s :Your previous line was too long and was not delivered (Over %d chars) Please shorten it.", current->nick, MAXBUF-2);
                                                current->recvq = "";
                                        }
                                }
@@ -177,8 +177,8 @@ void InspIRCd::ProcessUser(userrec* cu)
                                std::string single_line = current->GetBuffer();
                                current->bytes_in += single_line.length();
                                current->cmds_in++;
-                               if (single_line.length() > 512)
-                                       single_line.resize(512);
+                               if (single_line.length() > MAXBUF - 2)  /* MAXBUF is 514 to allow for neccessary line terminators */
+                                       single_line.resize(MAXBUF - 2); /* So to trim to 512 here, we use MAXBUF - 2 */
 
                                EventHandler* old_comp = this->SE->GetRef(currfd);
 
@@ -266,8 +266,11 @@ void InspIRCd::DoBackgroundUserStuff(time_t TIME)
                                bool ready = AllModulesReportReady(curr);
                                if ((TIME > curr->signon) && (curr->registered == REG_NICKUSER) && (ready))
                                {
-                                       curr->WriteServ("NOTICE Auth :*** Could not resolve your hostname: Request timed out; using your IP address (%s) instead.", curr->GetIPString());
-                                       curr->dns_done = true;
+                                       if (!curr->dns_done)
+                                       {
+                                               curr->WriteServ("NOTICE Auth :*** Could not resolve your hostname: Request timed out; using your IP address (%s) instead.", curr->GetIPString());
+                                               curr->dns_done = true;
+                                       }
                                        this->stats->statsDnsBad++;
                                        curr->FullConnect();
                                        continue;