From 8a7ee30ce6f5cc762619556b042182b7e7b57ba2 Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 25 Aug 2006 20:18:43 +0000 Subject: Fix changing of idents and hosts (it wasnt working -- in fact WriteCommon was sort of BROKEN AS HELL) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5023 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_chgident.cpp | 2 +- src/users.cpp | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/modules/m_chgident.cpp b/src/modules/m_chgident.cpp index 3eab361a1..a658e1793 100644 --- a/src/modules/m_chgident.cpp +++ b/src/modules/m_chgident.cpp @@ -11,7 +11,7 @@ class cmd_chgident : public command_t { public: - cmd_chgident (InspIRCd* Instance) : command_t(Instance,"CHGIDENT", 'o', 2) + cmd_chgident (InspIRCd* Instance) : command_t(Instance,"CHGIDENT", 'o', 2) { this->source = "m_chgident.so"; syntax = " "; diff --git a/src/users.cpp b/src/users.cpp index 0a213c429..09a8c37a5 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -1460,7 +1460,7 @@ void userrec::WriteCommonExcept(const char* text, ...) void userrec::WriteCommonExcept(const std::string &text) { - bool quit_munge = true; + bool quit_munge = false; char oper_quit[MAXBUF]; char textbuffer[MAXBUF]; @@ -1633,7 +1633,7 @@ bool userrec::ChangeDisplayedHost(const char* host) FOREACH_MOD(I_OnChangeHost,OnChangeHost(this,host)); } if (this->ServerInstance->Config->CycleHosts) - this->WriteCommonExcept("QUIT :Changing hosts"); + this->WriteCommonExcept("%s","QUIT :Changing hosts"); strlcpy(this->dhost,host,63); @@ -1644,8 +1644,9 @@ bool userrec::ChangeDisplayedHost(const char* host) if ((*i)->channel) { (*i)->channel->WriteAllExceptSender(this, 0, "JOIN %s", (*i)->channel->name); - (*i)->channel->WriteChannelWithServ(this->ServerInstance->Config->ServerName, "MODE %s +%s", - (*i)->channel->name, this->ServerInstance->Modes->ModeString(this, (*i)->channel).c_str()); + std::string n = this->ServerInstance->Modes->ModeString(this, (*i)->channel); + if (n.length()) + (*i)->channel->WriteChannelWithServ(this->ServerInstance->Config->ServerName, "MODE %s +%s", (*i)->channel->name, n.c_str()); } } } @@ -1659,7 +1660,7 @@ bool userrec::ChangeDisplayedHost(const char* host) bool userrec::ChangeIdent(const char* newident) { if (this->ServerInstance->Config->CycleHosts) - this->WriteCommonExcept("QUIT :Changing ident"); + this->WriteCommonExcept("%s","QUIT :Changing ident"); strlcpy(this->ident, newident, IDENTMAX+2); @@ -1670,8 +1671,9 @@ bool userrec::ChangeIdent(const char* newident) if ((*i)->channel) { (*i)->channel->WriteAllExceptSender(this, 0, "JOIN %s", (*i)->channel->name); - (*i)->channel->WriteChannelWithServ(this->ServerInstance->Config->ServerName, "MODE %s +%s", - (*i)->channel->name, this->ServerInstance->Modes->ModeString(this, (*i)->channel).c_str()); + std::string n = this->ServerInstance->Modes->ModeString(this, (*i)->channel); + if (n.length()) + (*i)->channel->WriteChannelWithServ(this->ServerInstance->Config->ServerName, "MODE %s +%s", (*i)->channel->name, n.c_str()); } } } -- cgit v1.2.3