]> granicus.if.org Git - ejabberd/commitdiff
Add more type specs
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Fri, 12 Aug 2016 10:17:42 +0000 (13:17 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Fri, 12 Aug 2016 10:17:42 +0000 (13:17 +0300)
13 files changed:
src/ejabberd_sm.erl
src/mod_http_upload_quota.erl
src/mod_last.erl
src/mod_mam.erl
src/mod_metrics.erl
src/mod_offline.erl
src/mod_pres_counter.erl
src/mod_pubsub.erl
src/mod_roster.erl
src/mod_service_log.erl
src/mod_shared_roster.erl
src/mod_shared_roster_ldap.erl
src/mod_vcard.erl

index 3ff9f29081a0751b2bab55c93d840da20dec4408..f6d0e765d337b5390d3d7c518eb2552b2912488f 100644 (file)
@@ -159,9 +159,9 @@ close_session(SID, User, Server, Resource) ->
     ejabberd_hooks:run(sm_remove_connection_hook,
                       JID#jid.lserver, [SID, JID, Info]).
 
--spec check_in_subscription(any(), binary(), binary(),
-                            any(), any(), any()) -> any().
-
+-spec check_in_subscription(boolean(), binary(), binary(), jid(),
+                           subscribe | subscribed | unsubscribe | unsubscribed,
+                           binary()) -> boolean() | {stop, false}.
 check_in_subscription(Acc, User, Server, _JID, _Type, _Reason) ->
     case ejabberd_auth:is_user_exists(User, Server) of
       true -> Acc;
index 056edbedb12f728efbfebec6424fb844c3fca0f6..fa37b801f76f1c45e7023c5482cd36b88f1c533f 100644 (file)
@@ -263,8 +263,8 @@ code_change(_OldVsn, #state{server_host = ServerHost} = State, _Extra) ->
 %% ejabberd_hooks callback.
 %%--------------------------------------------------------------------
 
--spec handle_slot_request(term(), jid(), binary(), non_neg_integer(), binary())
-      -> term().
+-spec handle_slot_request(allow | deny, jid(), binary(),
+                         non_neg_integer(), binary()) -> allow | deny.
 
 handle_slot_request(allow, #jid{lserver = ServerHost} = JID, Path, Size,
                    _Lang) ->
index 6d0edebf02398e5460964affe205d61f8652ada8..56e3b1c5ebcc7d755c440b56bec83b68688d47a6 100644 (file)
@@ -200,6 +200,7 @@ get_last_info(LUser, LServer) ->
       Res -> Res
     end.
 
+-spec remove_user(binary(), binary()) -> any().
 remove_user(User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),
index 7e93a3166f13dd431c8e55876413960cb2995dd0..2529b7389ed637cfae9da78c947ae6b7b7cf4278 100644 (file)
@@ -191,7 +191,9 @@ remove_room(LServer, Name, Host) ->
     Mod:remove_room(LServer, LName, LHost),
     ok.
 
-get_room_config(X, RoomState, _From, Lang) ->
+-spec get_room_config([xdata_field()], mod_muc_room:state(), jid(), binary())
+      -> [xdata_field()].                           
+get_room_config(XFields, RoomState, _From, Lang) ->
     Config = RoomState#state.config,
     Label = <<"Enable message archiving">>,
     Var = <<"muc#roomconfig_mam">>,
@@ -203,8 +205,10 @@ get_room_config(X, RoomState, _From, Lang) ->
                          label = translate:translate(Lang, Label),
                          var = Var,
                          values = [Val]},
-    X ++ [XField].
+    XFields ++ [XField].
 
+-spec set_room_option({pos_integer(), _}, binary(), [binary()], binary())
+      -> {pos_integer(), _}.
 set_room_option(_Acc, <<"muc#roomconfig_mam">> = Opt, Vals, Lang) ->
     try
        Val = case Vals of
@@ -222,6 +226,7 @@ set_room_option(_Acc, <<"muc#roomconfig_mam">> = Opt, Vals, Lang) ->
 set_room_option(Acc, _Opt, _Vals, _Lang) ->
     Acc.
 
+-spec user_receive_packet(stanza(), ejabberd_c2s:state(), jid(), jid(), jid()) -> stanza().
 user_receive_packet(Pkt, C2SState, JID, Peer, To) ->
     LUser = JID#jid.luser,
     LServer = JID#jid.lserver,
@@ -239,6 +244,7 @@ user_receive_packet(Pkt, C2SState, JID, Peer, To) ->
            Pkt
     end.
 
+-spec user_send_packet(stanza(), ejabberd_c2s:state(), jid(), jid()) -> stanza().
 user_send_packet(Pkt, C2SState, JID, Peer) ->
     LUser = JID#jid.luser,
     LServer = JID#jid.lserver,
@@ -256,10 +262,14 @@ user_send_packet(Pkt, C2SState, JID, Peer) ->
            Pkt
     end.
 
+-spec user_send_packet_strip_tag(stanza(), ejabberd_c2s:state(),
+                                jid(), jid()) -> stanza().
 user_send_packet_strip_tag(Pkt, _C2SState, JID, _Peer) ->
     LServer = JID#jid.lserver,
     strip_my_archived_tag(Pkt, LServer).
 
+-spec muc_filter_message(message(), mod_muc_room:state(),
+                        jid(), jid(), binary()) -> message().
 muc_filter_message(Pkt, #state{config = Config} = MUCState,
                   RoomJID, From, FromNick) ->
     if Config#config.mam ->
@@ -302,6 +312,7 @@ process_iq_v0_3(#iq{from = #jid{lserver = LServer},
 process_iq_v0_3(IQ) ->
     process_iq(IQ).
 
+-spec muc_process_iq(ignore | iq(), mod_muc_room:state()) -> ignore | iq().
 muc_process_iq(#iq{type = T, lang = Lang,
                   from = From,
                   sub_els = [#mam_query{xmlns = NS}]} = IQ,
@@ -372,6 +383,8 @@ disco_sm_features({result, OtherFeatures},
 disco_sm_features(Acc, _From, _To, _Node, _Lang) ->
     Acc.
 
+-spec message_is_archived(boolean(), ejabberd_c2s:state(),
+                         jid(), jid(), message()) -> boolean().
 message_is_archived(true, _C2SState, _Peer, _JID, _Pkt) ->
     true;
 message_is_archived(false, C2SState, Peer,
index 605fe3d6b59fdceba73f6404eb61940177523f36..7861542c5fd4aa88557eea6b66503b39ffe173c0 100644 (file)
@@ -86,9 +86,12 @@ sm_register_connection_hook(_SID, #jid{lserver=LServer}, _Info) ->
 sm_remove_connection_hook(_SID, #jid{lserver=LServer}, _Info) ->
     push(LServer, sm_remove_connection).
 
+-spec user_send_packet(stanza(), ejabberd_c2s:state(), jid(), jid()) -> stanza().
 user_send_packet(Packet, _C2SState, #jid{lserver=LServer}, _To) ->
     push(LServer, user_send_packet),
     Packet.
+
+-spec user_receive_packet(stanza(), ejabberd_c2s:state(), jid(), jid(), jid()) -> stanza().
 user_receive_packet(Packet, _C2SState, _JID, _From, #jid{lserver=LServer}) ->
     push(LServer, user_receive_packet),
     Packet.
index 03eb3c59a5c672fb554275def98fc3cb28389de6..509406aa47ae82ca526bc1e48a0957a761960623 100644 (file)
@@ -533,6 +533,9 @@ resend_offline_messages(User, Server) ->
       _ -> ok
     end.
 
+-spec pop_offline_messages([{route, jid(), jid(), message()}],
+                          binary(), binary()) ->
+      [{route, jid(), jid(), message()}].
 pop_offline_messages(Ls, User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),
index 786ba97f28da05fccf2eac5b2f23a9f673abc978..955e53f6f9fd531b06ff524a4dcb8c4fff1d1a89 100644 (file)
@@ -51,6 +51,8 @@ stop(Host) ->
 depends(_Host, _Opts) ->
     [].
 
+-spec check_packet(allow | deny, binary(), binary(), _,
+                  {jid(), jid(), stanza()}, in | out) -> allow | deny.
 check_packet(_, _User, Server, _PrivacyList,
             {From, To, #presence{type = Type}}, Dir) ->
     IsSubscription = case Type of
index 0796a20bb4389e62e6c0bb74172f0a1db45a8b47..fadc7720c5b68ef6e5fac21dba37784ff70e3f85 100644 (file)
@@ -722,6 +722,9 @@ out_subscription(User, Server, JID, subscribed) ->
 out_subscription(_, _, _, _) ->
     true.
 
+-spec in_subscription(boolean(), binary(), binary(), jid(),
+                     subscribe | subscribed | unsubscribe | unsubscribed,
+                     binary()) -> true.
 in_subscription(_, User, Server, Owner, unsubscribed, _) ->
     unsubscribe_user(jid:make(User, Server, <<>>), Owner),
     true;
index c118a61fff229cda9493d01a94f01cc49199d70b..2a41907a42f3fa9ceb9444a2e2f1be182fd63971 100644 (file)
@@ -175,6 +175,7 @@ roster_version_on_db(Host) ->
                           false).
 
 %% Returns a list that may contain an xmlelement with the XEP-237 feature if it's enabled.
+-spec get_versioning_feature([xmpp_element()], binary()) -> [xmpp_element()].
 get_versioning_feature(Acc, Host) ->
     case roster_versioning_enabled(Host) of
       true ->
@@ -274,6 +275,7 @@ process_iq_get(#iq{from = From, to = To, lang = Lang,
            xmpp:make_error(IQ, xmpp:err_internal_server_error(Txt, Lang))
     end.
 
+-spec get_user_roster([#roster{}], {binary(), binary()}) -> [#roster{}].
 get_user_roster(Acc, {LUser, LServer}) ->
     Items = get_roster(LUser, LServer),
     lists:filter(fun (#roster{subscription = none,
@@ -416,6 +418,8 @@ push_item_version(Server, User, From, Item,
                  end,
                  ejabberd_sm:get_user_resources(User, Server)).
 
+-spec get_subscription_lists({[ljid()], [ljid()]}, binary(), binary())
+      -> {[ljid()], [ljid()]}.
 get_subscription_lists(_Acc, User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),
@@ -448,6 +452,9 @@ transaction(LServer, F) ->
     Mod = gen_mod:db_mod(LServer, ?MODULE),
     Mod:transaction(LServer, F).
 
+-spec in_subscription(boolean(), binary(), binary(), jid(),
+                     subscribe | subscribed | unsubscribe | unsubscribed,
+                     binary()) -> boolean().
 in_subscription(_, User, Server, JID, Type, Reason) ->
     process_subscription(in, User, Server, JID, Type,
                         Reason).
@@ -726,6 +733,7 @@ process_item_set_t(LUser, LServer, #roster_item{jid = JID1} = QueryItem) ->
     end;
 process_item_set_t(_LUser, _LServer, _) -> ok.
 
+-spec get_in_pending_subscriptions([presence()], binary(), binary()) -> [presence()].
 get_in_pending_subscriptions(Ls, User, Server) ->
     LServer = jid:nameprep(Server),
     Mod = gen_mod:db_mod(LServer, ?MODULE),
@@ -755,6 +763,8 @@ read_subscription_and_groups(User, Server, LJID) ->
     Mod = gen_mod:db_mod(LServer, ?MODULE),
     Mod:read_subscription_and_groups(LUser, LServer, LJID).
 
+-spec get_jid_info({subscription(), [binary()]}, binary(), binary(), jid())
+      -> {subscription(), [binary()]}.
 get_jid_info(_, User, Server, JID) ->
     LJID = jid:tolower(JID),
     case read_subscription_and_groups(User, Server, LJID) of
index a88b04b584c2585c4e7a7620ef0475c0826725f1..ea7768bcae339e1125689f3964e3a96df886b5e6 100644 (file)
@@ -54,14 +54,17 @@ stop(Host) ->
 depends(_Host, _Opts) ->
     [].
 
+-spec log_user_send(stanza(), ejabberd_c2s:state(), jid(), jid()) -> stanza().
 log_user_send(Packet, _C2SState, From, To) ->
     log_packet(From, To, Packet, From#jid.lserver),
     Packet.
 
+-spec log_user_receive(stanza(), ejabberd_c2s:state(), jid(), jid(), jid()) -> stanza().
 log_user_receive(Packet, _C2SState, _JID, From, To) ->
     log_packet(From, To, Packet, To#jid.lserver),
     Packet.
 
+-spec log_packet(jid(), jid(), stanza(), binary()) -> ok.
 log_packet(From, To, Packet, Host) ->
     Loggers = gen_mod:get_module_opt(Host, ?MODULE, loggers,
                                      fun(L) ->
index ac3717bd3252f77df57f2c984fe0d0ff1493c741..8b620514b33f3239e2207504bb4b7bee1f6d8250 100644 (file)
@@ -135,6 +135,7 @@ stop(Host) ->
 depends(_Host, _Opts) ->
     [].
 
+-spec get_user_roster([#roster{}], {binary(), binary()}) -> [#roster{}].
 get_user_roster(Items, US) ->
     {U, S} = US,
     DisplayedGroups = get_user_displayed_groups(US),
@@ -202,6 +203,7 @@ get_rosteritem_name_vcard(_) ->
 
 %% This function rewrites the roster entries when moving or renaming
 %% them in the user contact list.
+-spec process_item(#roster{}, binary()) -> #roster{}.
 process_item(RosterItem, Host) ->
     USFrom = {UserFrom, ServerFrom} = RosterItem#roster.us,
     {UserTo, ServerTo, ResourceTo} = RosterItem#roster.jid,
@@ -292,6 +294,8 @@ set_item(User, Server, Resource, Item) ->
                          jid:make(Server),
                          ResIQ).
 
+-spec get_subscription_lists({[ljid()], [ljid()]}, binary(), binary())
+      -> {[ljid()], [ljid()]}.
 get_subscription_lists({F, T}, User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),
@@ -304,6 +308,8 @@ get_subscription_lists({F, T}, User, Server) ->
     SRJIDs = [{U1, S1, <<"">>} || {U1, S1} <- SRUsers],
     {lists:usort(SRJIDs ++ F), lists:usort(SRJIDs ++ T)}.
 
+-spec get_jid_info({subscription(), [binary()]}, binary(), binary(), jid())
+      -> {subscription(), [binary()]}.
 get_jid_info({Subscription, Groups}, User, Server,
             JID) ->
     LUser = jid:nodeprep(User),
@@ -332,6 +338,9 @@ get_jid_info({Subscription, Groups}, User, Server,
       error -> {Subscription, Groups}
     end.
 
+-spec in_subscription(boolean(), binary(), binary(), jid(),
+                     subscribe | subscribed | unsubscribe | unsubscribed,
+                     binary()) -> boolean().
 in_subscription(Acc, User, Server, JID, Type,
                _Reason) ->
     process_subscription(in, User, Server, JID, Type, Acc).
index 80988723781395b5faed276cef6debd036f26f8e..97ead9f3db2479b9972ca7bbb0d58a75aacd7dcb 100644 (file)
@@ -111,6 +111,7 @@ depends(_Host, _Opts) ->
 %%--------------------------------------------------------------------
 %% Hooks
 %%--------------------------------------------------------------------
+-spec get_user_roster([#roster{}], {binary(), binary()}) -> [#roster{}].
 get_user_roster(Items, {U, S} = US) ->
     SRUsers = get_user_to_groups_map(US, true),
     {NewItems1, SRUsersRest} = lists:mapfoldl(fun (Item,
@@ -143,6 +144,7 @@ get_user_roster(Items, {U, S} = US) ->
 
 %% This function in use to rewrite the roster entries when moving or renaming
 %% them in the user contact list.
+-spec process_item(#roster{}, binary()) -> #roster{}.
 process_item(RosterItem, _Host) ->
     USFrom = RosterItem#roster.us,
     {User, Server, _Resource} = RosterItem#roster.jid,
@@ -158,6 +160,8 @@ process_item(RosterItem, _Host) ->
       _ -> RosterItem#roster{subscription = both, ask = none}
     end.
 
+-spec get_subscription_lists({[ljid()], [ljid()]}, binary(), binary())
+      -> {[ljid()], [ljid()]}.
 get_subscription_lists({F, T}, User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),
@@ -170,6 +174,8 @@ get_subscription_lists({F, T}, User, Server) ->
     SRJIDs = [{U1, S1, <<"">>} || {U1, S1} <- SRUsers],
     {lists:usort(SRJIDs ++ F), lists:usort(SRJIDs ++ T)}.
 
+-spec get_jid_info({subscription(), [binary()]}, binary(), binary(), jid())
+      -> {subscription(), [binary()]}.
 get_jid_info({Subscription, Groups}, User, Server,
             JID) ->
     LUser = jid:nodeprep(User),
@@ -187,6 +193,9 @@ get_jid_info({Subscription, Groups}, User, Server,
       error -> {Subscription, Groups}
     end.
 
+-spec in_subscription(boolean(), binary(), binary(), jid(),
+                     subscribe | subscribed | unsubscribe | unsubscribed,
+                     binary()) -> boolean().
 in_subscription(Acc, User, Server, JID, Type,
                _Reason) ->
     process_subscription(in, User, Server, JID, Type, Acc).
index 4653d6e2cdd6139595eb9eee68016894373ebe73..f0fb556ba71f490f5eb4f1fb21d52986d8d9141f 100644 (file)
@@ -423,6 +423,7 @@ search(LServer, XFields) ->
     Mod:search(LServer, Data, AllowReturnAll, MaxMatch).
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec remove_user(binary(), binary()) -> any().
 remove_user(User, Server) ->
     LUser = jid:nodeprep(User),
     LServer = jid:nameprep(Server),