From ad56d57251f67ac416ff7ad71a76f30836d2ccb3 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 26 Jun 2010 00:11:08 +0200 Subject: Added groups to roster --- src/gui/CoreConnector.vala | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/gui/CoreConnector.vala') diff --git a/src/gui/CoreConnector.vala b/src/gui/CoreConnector.vala index a152e58..d43ab2f 100644 --- a/src/gui/CoreConnector.vala +++ b/src/gui/CoreConnector.vala @@ -107,9 +107,20 @@ public class CoreConnector { name = null; Contact contact = new Contact(jid, name); + + Erl.Term groups = match_term.var_content("Groups"); + while(groups.is_cons()) { + Erl.Term group_term = groups.hd(); + + if(group_term.is_binary()) { + string group = ((string)group_term.bin_ptr()).ndup(group_term.bin_size()); + contact.add_group(group); + } + + groups = groups.tl(); + } Erl.Term resources = match_term.var_content("Resources"); - while(resources.is_cons()) { Erl.Term r; @@ -214,10 +225,10 @@ public class CoreConnector { string type = ((string)type_term.atom_ptr()).ndup(type_term.atom_size()); Erl.Term body_term = match_term.var_content("Body"); - if(!body_term.is_list()) + if(!body_term.is_binary()) // TODO Debug output return; - string body = body_term.iolist_to_string(); + string body = ((string)body_term.bin_ptr()).ndup(body_term.bin_size()); sent_message(jid, type, body); } @@ -232,6 +243,6 @@ public class CoreConnector { } public void send_message(string jid, string type, string message) { - con.reg_send("ephraim", Erl.format("{send_message,~s,~a,~s}", jid, type, message)); + con.reg_send("ephraim", Erl.format("{send_message,~w,~a,~w}", Erl.mk_binary(jid.to_utf8()), type, Erl.mk_binary(message.to_utf8()))); } } -- cgit v1.2.3