summaryrefslogtreecommitdiffstats
path: root/src/core/ephraim.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ephraim.erl')
-rw-r--r--src/core/ephraim.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/ephraim.erl b/src/core/ephraim.erl
index bd36118..61c3c68 100644
--- a/src/core/ephraim.erl
+++ b/src/core/ephraim.erl
@@ -32,17 +32,21 @@ init() ->
-spec get_conv(#state{},exmpp_jid:jid()) -> {#state{},pid()|undefined}.
get_conv(State, JID) ->
- Key = exmpp_jid:to_lower(JID),
- case Key of
- {_,_,undefined} ->
+ {Node, Domain, Resource} = exmpp_jid:to_lower(exmpp_jid:parse(JID)),
+
+ case Resource of
+ undefined ->
{State, undefined};
_ ->
+ Key = list_to_binary([Node, <<"@">>, Domain, <<"/">>, Resource]),
+
case dict:find(Key, State#state.convs) of
{ok, Conv} ->
{State, Conv};
error ->
Conv = spawn(ephraim_conv, init, [Key]),
Dict = dict:store(Key, Conv, State#state.convs),
+ self() ! {ui_update, {new_conversation, Key}},
{State#state{convs=Dict}, Conv}
end
end.