X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fusers.cpp;h=cd5aa247ec23bd399f25dfa9ecabf7941f113d8d;hb=7c340cba11b16d3c4a95c274c22f1617ac4711f2;hp=f8fabd4a226afaf56279691b9b5c7f1163733fde;hpb=cfa482e1868fe466d8bea4b7696b36fe01618f85;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/users.cpp b/src/users.cpp index f8fabd4a2..cd5aa247e 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -1195,27 +1195,12 @@ bool User::SetClientIP(const char* sip) return irc::sockets::aptosa(sip, 0, &client_sa); } -/** NOTE: We cannot pass a const reference to this method. - * The string is changed by the workings of the method, - * so that if we pass const ref, we end up copying it to - * something we can change anyway. Makes sense to just let - * the compiler do that copy for us. - */ -void User::Write(std::string text) +void User::Write(const std::string& text) { if (!ServerInstance->SE->BoundsCheckFd(this)) return; - try - { - ServerInstance->Logs->Log("USEROUTPUT", DEBUG,"C[%d] O %s", this->GetFd(), text.c_str()); - text.append("\r\n"); - } - catch (...) - { - ServerInstance->Logs->Log("USEROUTPUT", DEBUG,"Exception in User::Write() std::string::append"); - return; - } + ServerInstance->Logs->Log("USEROUTPUT", DEBUG,"C[%d] O %s", this->GetFd(), text.c_str()); if (this->GetIOHook()) { @@ -1225,6 +1210,7 @@ void User::Write(std::string text) try { this->GetIOHook()->OnRawSocketWrite(this->fd, text.data(), text.length()); + this->GetIOHook()->OnRawSocketWrite(this->fd, "\r\n", 2); } catch (CoreException& modexcept) { @@ -1234,8 +1220,9 @@ void User::Write(std::string text) else { this->AddWriteBuf(text); + this->AddWriteBuf("\r\n"); } - ServerInstance->stats->statsSent += text.length(); + ServerInstance->stats->statsSent += text.length() + 2; this->ServerInstance->SE->WantWrite(this); } @@ -1255,10 +1242,7 @@ void User::Write(const char *text, ...) void User::WriteServ(const std::string& text) { - char textbuffer[MAXBUF]; - - snprintf(textbuffer,MAXBUF,":%s %s",ServerInstance->Config->ServerName,text.c_str()); - this->Write(std::string(textbuffer)); + this->Write(":%s %s",ServerInstance->Config->ServerName,text.c_str()); } /** WriteServ()