diff options
Diffstat (limited to 'src/gui/CoreConnector.vala')
-rw-r--r-- | src/gui/CoreConnector.vala | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/gui/CoreConnector.vala b/src/gui/CoreConnector.vala index fdd74ee..7486aec 100644 --- a/src/gui/CoreConnector.vala +++ b/src/gui/CoreConnector.vala @@ -90,11 +90,18 @@ public class CoreConnector { unowned Erl.Term term = store.term; Erl.Term match_term; - if((match_term = match("{roster_update,JID,Resources}", term)) != null) { - Erl.Term JID_term = match_term.var_content("JID"); - string JID = ((string)JID_term.bin_ptr()).ndup(JID_term.bin_size()); + if((match_term = match("{roster_update,JID,Name,Subscription,Groups,Resources}", term)) != null) { + Erl.Term jid_term = match_term.var_content("JID"); + string jid = ((string)jid_term.bin_ptr()).ndup(jid_term.bin_size()); - roster.update_contact(new Contact(JID)); + Erl.Term name_term = match_term.var_content("Name"); + string? name; + if (name_term.is_binary()) + name = ((string)name_term.bin_ptr()).ndup(name_term.bin_size()); + else + name = null; + + roster.update_contact(new Contact(jid, name)); } else { Erl.print_term(stdout, term); |