Behaviours: gen_mod.
Roster management (Mnesia storage).
Includes support for XEP-0237: Roster Versioning. The roster versioning follows an all-or-nothing strategy: - If the version supplied by the client is the latest, return an empty response. - If not, return the entire new roster (with updated version string). Roster version is a hash digest of the entire roster. No additional data is stored in DB.build_contact_jid_td(X1::JID) -> Result
convert_askmessage_to_exmpp(AM) -> any()
convert_jid_to_exmpp(V) -> any()
convert_name_to_exmpp(N) -> any()
convert_to_binary(A) -> any()
fill_subscription_lists(Is::Items, F, T) -> {New_F, New_T}
get_in_pending_subscriptions(Ls, User, Server) -> New_Ls
get_jid_info(X1::Ignored, User, Server, JID) -> {Subscription, Groups}
get_roster(LUser, LServer) -> any()
get_subscription_lists(X1::Ignored, User, Server) -> Subscription_Lists
get_user_roster(Acc, X2::US) -> New_Acc
get_versioning_feature(Acc, Host) -> any()
in_auto_reply(X1, X2, X3) -> any()
in_state_change(X1, X2, X3) -> any()
in_subscription(X1::Ignored, User, Server, JID, Type, Reason) -> bool()
item_to_xml(Item) -> XML
out_state_change(X1, X2, X3) -> any()
out_subscription(User, Server, JID, Type) -> bool()
process_iq(From, To, IQ_Rec) -> IQ_Result
process_iq_get(From, To, IQ_Rec) -> IQ_Result
Load roster from DB only if neccesary. It is neccesary if - roster versioning is disabled in server OR - roster versioning is not used by the client OR - roster versioning is used by server and client BUT the server isn't storing version IDs on db OR - the roster version from client don't match current version
process_iq_set(From, To, Iq::IQ_Rec) -> IQ_Result
process_item_attrs(Item, Attrs) -> New_Item
process_item_attrs_ws(Item, Attrs) -> New_Item
process_item_els(Item, Els) -> New_Item
process_item_set(From, To, Xmlel::El) -> ok
process_item_set_t(LUser, LServer, Xmlel::El) -> term()
process_local_iq(From, To, Iq::IQ_Rec) -> IQ_Result
process_subscription(Direction, User, Server, JID1, Type, Reason) -> bool()
push_item(User, Server, From, Item) -> term()
push_item(User, Server, Resource, From, Item) -> term()
To do
push_item(User, Server, Resource, From, Item, RosterVersion) -> any()
push_item_version(Server, User, From, Item, RosterVersion) -> any()
Roster push, calculate and include the version attribute.
To do
remove_user(User, Server) -> term()
roster_hash(Items) -> any()
roster_version(LServer, LUser) -> any()
roster_version_on_db(Host::binary()) -> true | false
roster_versioning_enabled(Host::binary()) -> true | false
send_unsubscription_to_rosteritems(LUser, LServer) -> any()
set_items(User, Server, Xmlel::El) -> term()
start(Host, Opts) -> term()
stop(Host) -> term()
storageroster_to_roster(Rosteritem, Rostergroups) -> any()
try_process_iq_set(From, To, IQ) -> any()
update_table(HostB, Storage) -> any()
us_to_list(X1::{User, Server}) -> string()
user_roster(User, Server, Query, Lang) -> Result
user_roster_item_parse_query(User, Server, Items, Query) -> term()
user_roster_parse_query(User, Server, Items, Query) -> ok | nothing | error
user_roster_subscribe_jid(User, Server, JID) -> term()
webadmin_page(Acc, Host, Request) -> {stop, Result} | Acc
webadmin_user(Acc, User, Server, Lang) -> New_Acc
Generated by EDoc, May 23 2012, 07:15:15.