diff --git a/ChangeLog b/ChangeLog index dbd2552ac..eb9978fb3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-10-29 Alexey Shchepin + + * src/mod_roster_odbc.erl: Bugfix + 2005-10-25 Alexey Shchepin * src/tls/tls.erl: Accept {error,already_loaded} from diff --git a/src/mod_roster_odbc.erl b/src/mod_roster_odbc.erl index 75b58e8b6..36d477d52 100644 --- a/src/mod_roster_odbc.erl +++ b/src/mod_roster_odbc.erl @@ -468,7 +468,18 @@ process_subscription(Direction, User, Server, JID1, Type) -> {selected, ["username", "jid", "nick", "subscription", "ask", "server", "subscribe", "type"], [I]} -> - raw_to_record(I); + R = raw_to_record(I), + Groups = case catch ejabberd_odbc:sql_query( + LServer, + ["select grp from rostergroups " + "where username='", Username, "' " + "and jid='", SJID, "'"]) of + {selected, ["grp"], JGrps} when is_list(JGrps) -> + [JGrp || {JGrp} <- JGrps]; + _ -> + [] + end, + R#roster{groups = Groups}; _ -> #roster{user = LUser, jid = LJID}