mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-06 05:33:12 +02:00
Add "CAP chghost" support. Internal recode of userhost changes.
Fix force-rejoin not working if doing SVSMODE -x/+x (Koragg, #5015). Note to module coders: Please use the following procedure in case of an user/host change: * userhost_save_current(acptr); * << change username or hostname here (or both) >> * userhost_changed(acptr); This function will take care of notifying other clients about the userhost change, such as doing PART+JOIN+MODE if force-rejoin is enabled, and sending :xx CHGHOST user host messages to "CAP chghost" capable clients. Also, small note to everyone: If force-rejoin is enabled we will not send the PART+JOIN+MODE to "CAP chghost" capable clients. Doing so is just a hack to notify people of a userhost change. "CAP chghost" users can thus benefit from the reduced noise in this respect.
This commit is contained in:
@@ -128,6 +128,8 @@ CMD_FUNC(m_sethost)
|
||||
}
|
||||
|
||||
{
|
||||
userhost_save_current(sptr);
|
||||
|
||||
switch (UHOST_ALLOWED)
|
||||
{
|
||||
case UHALLOW_NEVER:
|
||||
@@ -147,7 +149,6 @@ CMD_FUNC(m_sethost)
|
||||
}
|
||||
break;
|
||||
case UHALLOW_REJOIN:
|
||||
rejoin_leave(sptr);
|
||||
/* join sent later when the host has been changed */
|
||||
break;
|
||||
}
|
||||
@@ -165,8 +166,7 @@ CMD_FUNC(m_sethost)
|
||||
/* spread it out */
|
||||
sendto_server(cptr, 0, 0, ":%s SETHOST %s", sptr->name, parv[1]);
|
||||
|
||||
if (UHOST_ALLOWED == UHALLOW_REJOIN)
|
||||
rejoin_joinandmode(sptr);
|
||||
userhost_changed(sptr);
|
||||
}
|
||||
|
||||
if (MyConnect(sptr))
|
||||
|
||||
Reference in New Issue
Block a user