Jabber i Gadu-Gadu/0000755000175000017500000000000011261415166012646 5ustar despdespJabber i Gadu-Gadu/4/0000755000175000017500000000000011261415166013011 5ustar despdespJabber i Gadu-Gadu/4/gg_pong.erl0000644000175000017500000000134611261415166015141 0ustar despdesp-module(gg_pong). -export([start/2, stop/1]). -behaviour(fgg_handler). -export([logging_in_failed/2, disconnected/2, message_received/5]). start(Uin, Pass) -> {ok, _Pid} = fgg:start_link(?MODULE), Pid = spawn(fun () -> main() end), ok = fgg:log_in(Pid, Uin, Pass), Pid. stop(Pid) -> Pid ! stop. logging_in_failed(Pid, _Reason) -> Pid ! stop. disconnected(Pid, _Reason) -> Pid ! stop. message_received(Pid, From, _Id, Body, _DateTime) -> Pid ! {message_received, From, Body}. main() -> receive {message_received, From, Body} -> Ydob = lists:reverse(Body), {ok, _Id} = fgg:send_message(self(), From, Ydob), main(); stop -> ok end. Jabber i Gadu-Gadu/2/0000755000175000017500000000000011261415164013005 5ustar despdespJabber i Gadu-Gadu/2/mod_pong.erl0000644000175000017500000000360011261415164015312 0ustar despdesp-module(mod_pong). -include("fxmpp.hrl"). -behaviour(gen_mod). -export([start/2, stop/1]). start(Host, Opts) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Pid = spawn(fun () -> init(Host, Opts) end), register(Proc, Pid), {ok, Pid}. stop(Host) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Proc ! stop, unregister(Proc). init(Host, Opts) -> SubHost = gen_mod:get_opt_host(Host, Opts, "pong.@HOST@"), ejabberd_router:register_route(SubHost), main(SubHost). main(SubHost) -> receive {route, From, To, Packet} -> route(SubHost, From, To, Packet); stop -> ejabberd_router:unregister_route(SubHost) end. route(SubHost, From, To, Packet) -> case fxmpp:from_xml(Packet) of {ok, #fxmpp_message{body = Body}} -> Ydob = lists:reverse(Body), fxmpp_message:route(To, From, Ydob); {ok, OtherStanza} -> fxmpp:route(To, From, OtherStanza); error -> fxmpp:route_error(To, From, Packet, ?ERR_BAD_REQUEST) end, main(SubHost). % route(SubHost, From, To, Packet) -> % Reply = case Packet of % {xmlelement, "message", _, _} -> % Body = xml:get_path_s(Packet, [{elem, "body"}, cdata]), % Ydob = lists:reverse(Body), % {xmlelement, "message", [{"type", "chat"}], % [{xmlelement, "body", [], [{xmlcdata, Ydob}]}]}; % {xmlelement, "presence", _, _} -> % Packet; % {xmlelement, "iq", _, _} -> % case jlib:iq_query_info(Packet) of % #iq{} -> % Packet; % _ -> % jlib:make_error_reply(Packet, ?ERR_BAD_REQUEST) % end; % _ -> % jlib:make_error_reply(Packet, ?ERR_BAD_REQUEST) % end, % ejabberd_router:route(To, From, Reply), % main(SubHost). Jabber i Gadu-Gadu/1/0000755000175000017500000000000011261415163013003 5ustar despdespJabber i Gadu-Gadu/1/mod_pong.erl0000644000175000017500000000153011261415164015311 0ustar despdesp-module(mod_pong). -behaviour(gen_mod). -export([start/2, stop/1]). start(Host, Opts) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Pid = spawn(fun () -> init(Host, Opts) end), register(Proc, Pid), {ok, Pid}. stop(Host) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Proc ! stop, unregister(Proc). init(Host, Opts) -> SubHost = gen_mod:get_opt_host(Host, Opts, "pong.@HOST@"), ejabberd_router:register_route(SubHost), main(SubHost). main(SubHost) -> receive {route, From, To, Packet} -> ejabberd_router:route(To, From, Packet), main(SubHost); stop -> ejabberd_router:unregister_route(SubHost) end. % {host_config, "jabber.pl", % [{{add, modules}, % [{mod_pong, [{host, "pong.jabber.pl"}]}] % }]}. Jabber i Gadu-Gadu/3/0000755000175000017500000000000011261415165013007 5ustar despdespJabber i Gadu-Gadu/3/mod_pong.erl0000644000175000017500000000255511261415165015324 0ustar despdesp-module(mod_pong). -include("fxmpp.hrl"). -behaviour(gen_mod). -export([start/2, stop/1]). start(Host, Opts) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Pid = spawn(fun () -> init(Host, Opts) end), register(Proc, Pid), {ok, Pid}. stop(Host) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), Proc ! stop, unregister(Proc). init(Host, Opts) -> Cmd = filename:join([code:lib_dir(ejabberd, ebin), "reverse"]), Port = open_port({spawn, Cmd}, [{packet, 1}]), SubHost = gen_mod:get_opt_host(Host, Opts, "pong.@HOST@"), ejabberd_router:register_route(SubHost), main(Port, SubHost). main(Port, SubHost) -> receive {route, From, To, Packet} -> route(Port, SubHost, From, To, Packet); stop -> ejabberd_router:unregister_route(SubHost) end. route(Port, SubHost, From, To, Packet) -> case fxmpp:from_xml(Packet) of {ok, #fxmpp_message{body = Body}} -> port_command(Port, Body), receive {Port, {data, Ydob}} -> fxmpp_message:route(To, From, Ydob) end; {ok, OtherStanza} -> fxmpp:route(To, From, OtherStanza); error -> fxmpp:route_error(To, From, Packet, ?ERR_BAD_REQUEST) end, main(Port, SubHost). Jabber i Gadu-Gadu/3/reverse.c0000644000175000017500000000051311261415165014625 0ustar despdesp#include int main() { char body[256]; int size, i; while ((size = getc(stdin)) != EOF) { for (i = 0; i < size; i++) body[i] = getc(stdin); putc(size, stdout); for (i = size - 1; i >= 0; i--) putc(body[i], stdout); fflush(stdout); } return 0; }