]> granicus.if.org Git - ejabberd/commitdiff
* src/mod_shared_roster.erl: Correct roster push when changing a shared roster entry...
authorMickaël Rémond <mickael.remond@process-one.net>
Wed, 1 Oct 2008 14:52:25 +0000 (14:52 +0000)
committerMickaël Rémond <mickael.remond@process-one.net>
Wed, 1 Oct 2008 14:52:25 +0000 (14:52 +0000)
SVN Revision: 1590

ChangeLog
src/mod_shared_roster.erl

index fd4f9503bea49bd7e105756e68b7fd89919945af..2c4b4ecc5f4fb7d88e0e415666be3c183aa06956 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-01  Mickael Remond  <mremond@process-one.net>
+
+       * src/mod_shared_roster.erl: Correct roster push when changing
+       a shared roster entry name (EJAB-738).
+
 2008-09-30  Badlop  <badlop@process-one.net>
 
        * src/*/Makefile.win32: Provide explicit beam filenames because
index c24ffb6cfebadc1b28689b9929ad7090e4c7a841..90614a35b04fa54a1f0d0829a8144309b5b9e293 100644 (file)
@@ -160,6 +160,7 @@ get_user_roster(Items, US) ->
 process_item(RosterItem, Host) ->
     USFrom = {UserFrom, ServerFrom} = RosterItem#roster.us,
     {UserTo, ServerTo, ResourceTo} = RosterItem#roster.jid,
+    NameTo = RosterItem#roster.name,
     USTo = {UserTo, ServerTo},
     DisplayedGroups = get_user_displayed_groups(USFrom),
     CommonGroups = lists:filter(fun(Group) ->
@@ -187,24 +188,24 @@ process_item(RosterItem, Host) ->
                PersonalGroups ->
                    %% Store roster items in From and To rosters
                    set_new_rosteritems(UserFrom, ServerFrom,
-                                       UserTo, ServerTo, ResourceTo,
+                                       UserTo, ServerTo, ResourceTo, NameTo,
                                        PersonalGroups)
            end
     end.
 
-build_roster_record(User1, Server1, User2, Server2, Groups) ->
+build_roster_record(User1, Server1, User2, Server2, Name2, Groups) ->
     USR2 = {User2, Server2, ""},
     #roster{usj = {User1, Server1, USR2},
            us = {User1, Server1},
            jid = USR2,
-           name = User2,
+           name = Name2,
            subscription = both,
            ask = none,
            groups = Groups
           }.
 
 set_new_rosteritems(UserFrom, ServerFrom,
-                   UserTo, ServerTo, ResourceTo, GroupsFrom) ->
+                   UserTo, ServerTo, ResourceTo, NameTo, GroupsFrom) ->
     Mod = case lists:member(mod_roster_odbc,
                            gen_mod:loaded_modules(ServerFrom)) of
              true -> mod_roster_odbc;
@@ -212,13 +213,13 @@ set_new_rosteritems(UserFrom, ServerFrom,
          end,
 
     RIFrom = build_roster_record(UserFrom, ServerFrom,
-                                UserTo, ServerTo, GroupsFrom),
+                                UserTo, ServerTo, NameTo, GroupsFrom),
     set_item(UserFrom, ServerFrom, ResourceTo, RIFrom),
     JIDTo = jlib:make_jid(UserTo, ServerTo, ""),
 
     JIDFrom = jlib:make_jid(UserFrom, ServerFrom, ""),
     RITo = build_roster_record(UserTo, ServerTo,
-                              UserFrom, ServerFrom, []),
+                              UserFrom, ServerFrom, UserFrom,[]),
     set_item(UserTo, ServerTo, "", RITo),
 
     %% From requests