XEP-0045: Changing Own Nickname in Groupchat Must be Signalled with Status Code 110

ejabberd mod_muc does not do this.

xep-0045 7.6 Changing Nickname

tested with 2.1.11

This patch implements what

This patch implements what you describe. I'll apply to the master branch.

diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 02c83ed..0d632c1 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -2276,15 +2276,21 @@ send_nick_changing(JID, OldNick, StateData,
 			  [{"affiliation", SAffiliation},
 			   {"role", SRole}]
 		  end,
+	      Status110 = case JID == Info#user.jid of
+			    true ->
+				[{xmlelement, "status", [{"code", "110"}], []}];
+			    false ->
+				[]
+			end,
 	      Packet1 =
 		  {xmlelement, "presence", [{"type", "unavailable"}],
 		   [{xmlelement, "x", [{"xmlns", ?NS_MUC_USER}],
 		     [{xmlelement, "item", ItemAttrs1, []},
-		      {xmlelement, "status", [{"code", "303"}], []}]}]},
+		      {xmlelement, "status", [{"code", "303"}], []}|Status110]}]},
 	      Packet2 = xml:append_subtags(
 			  Presence,
 			  [{xmlelement, "x", [{"xmlns", ?NS_MUC_USER}],
-			    [{xmlelement, "item", ItemAttrs2, []}]}]),
+			    [{xmlelement, "item", ItemAttrs2, []}|Status110]}]),
 	      if SendOldUnavailable ->
 		      ejabberd_router:route(
 			jlib:jid_replace_resource(StateData#state.jid, OldNick),
Syndicate content