From b9145a8161071bee25c6c1c026fbc2381bdfa0bb Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 21 Jun 2010 23:12:44 +0200 Subject: Show roster --- src/core/ephraim_conn.erl | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/core/ephraim_conn.erl') diff --git a/src/core/ephraim_conn.erl b/src/core/ephraim_conn.erl index 18edd6a..c4b163e 100644 --- a/src/core/ephraim_conn.erl +++ b/src/core/ephraim_conn.erl @@ -1,10 +1,9 @@ -module(ephraim_conn). --include_lib("exmpp/include/exmpp_client.hrl"). -compile([debug_info, export_all]). +-include_lib("exmpp/include/exmpp_client.hrl"). -record(conn_state, { - session :: any(), - roster :: any() + session :: any() }). -spec init() -> ok. @@ -13,13 +12,20 @@ init() -> Session = exmpp_session:start(), JID = exmpp_jid:make("ephraim-test", "jabber.ccc.de", "Bar"), exmpp_session:auth_basic_digest(Session, JID, "foobarbla"), + io:format("Connecting...~n"), exmpp_session:connect_TCP(Session, "jabber.ccc.de", 5222), + io:format("Connected.~n"), session(#conn_state{session=Session}). -spec session(#conn_state{}) -> ok. -session(State) -> +session(State) -> + io:format("Logging in...~n"), exmpp_session:login(State#conn_state.session), + io:format("Setting presence...~n"), exmpp_session:send_packet(State#conn_state.session, exmpp_presence:set_status(exmpp_presence:available(), "Foo/Test\\Bar")), + io:format("Getting roster...~n"), + exmpp_session:send_packet(State#conn_state.session, exmpp_client_roster:get_roster("foo")), + io:format("Ok.~n"), loop(State). -spec loop(#conn_state{}) -> ok. @@ -29,16 +35,19 @@ loop(State) -> exmpp_session:stop(State#conn_state.session); #received_packet{packet_type=presence, raw_packet=Packet} -> - From = exmpp_xml:get_attribute(Packet, from, <<"unknown">>), - Type = atom_to_list(exmpp_presence:get_type(Packet)), - Status = exmpp_presence:get_status(Packet), - io:format("~ts is now ~ts: ~ts~n", [From, Type, Status]), + ephraim ! {roster, {presence, Packet}}, loop(State); #received_packet{packet_type=message, raw_packet=Packet} -> From = exmpp_xml:get_attribute(Packet, from, <<"unknown">>), ephraim ! {receive_message, From, Packet}, loop(State); + + #received_packet{packet_type=iq, raw_packet=Packet} -> + IQ = exmpp_iq:xmlel_to_iq(Packet), + ephraim ! {receive_iq, IQ}, + loop(State); + Msg -> io:format("ephraim_conn: ~p~n", [Msg]), loop(State) -- cgit v1.2.3