Skip to content

Instantly share code, notes, and snippets.

@renatoalbano
Created August 7, 2009 14:06
Show Gist options
  • Save renatoalbano/163919 to your computer and use it in GitHub Desktop.
Save renatoalbano/163919 to your computer and use it in GitHub Desktop.
-module(mod_iqtest).
-behaviour(gen_mod).
-export([
start/2, stop/1,
process_sm_iq/3
]).
-include("ejabberd.hrl").
-include("jlib.hrl").
-define(NS_TEST, "http://jabber.org/protocol/test").
start(Host, Opt) ->
IQDisc = gen_mod:get_opt(iqdisc, Opt, one_queue),
gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_TEST, ?MODULE, process_sm_iq, IQDisc),
?INFO_MSG("Loading module 'mod_iqtest' v.01", []).
stop(Host) ->
gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_TEST),
?INFO_MSG("Stoping module 'mod_iqtest' ", []).
process_sm_iq(From, To, #iq{type = Type, lang = Lang, sub_el = SubEl} = IQ) ->
?INFO_MSG("process_sm_iq -> ", [From, To, Lang, SubEl]),
case {Type, SubEl} of
{get, {xmlelement, "test", _, _}} ->
?INFO_MSG("process_local -> get -> test", []),
IQ#iq{type = result, sub_el = [{xmlelement, "value", [], [{xmlcdata, "Hello World"}]}]};
{set, {xmlelement, "test", _, _}} ->
IQ#iq{type = result, sub_el = []};
_ ->
IQ#iq{type = error, sub_el = [SubEl, ?ERR_FEATURE_NOT_IMPLEMENTED]}
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment