summaryrefslogtreecommitdiff
path: root/src/users.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-25 19:02:18 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-25 19:02:18 +0000
commit1a124bb23ab6b04ced9e2fb762423a0260882841 (patch)
tree5ab00ed5734cdf95873098d89e9a2aaef32ac4e4 /src/users.cpp
parenta93e436b039fa86345759b9a29243fe09fb54bcf (diff)
Add userrec::ChangeIdent (which we were missing) which can emulate the quit/rejoin same as ChangeDisplayedHost
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5022 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/users.cpp')
-rw-r--r--src/users.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/users.cpp b/src/users.cpp
index 031333dfc..0a213c429 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -1656,6 +1656,29 @@ bool userrec::ChangeDisplayedHost(const char* host)
return true;
}
+bool userrec::ChangeIdent(const char* newident)
+{
+ if (this->ServerInstance->Config->CycleHosts)
+ this->WriteCommonExcept("QUIT :Changing ident");
+
+ strlcpy(this->ident, newident, IDENTMAX+2);
+
+ if (this->ServerInstance->Config->CycleHosts)
+ {
+ for (std::vector<ucrec*>::const_iterator i = this->chans.begin(); i != this->chans.end(); i++)
+ {
+ 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());
+ }
+ }
+ }
+
+ return true;
+}
+
void userrec::NoticeAll(char* text, ...)
{
char textbuffer[MAXBUF];