diff --git a/src/ejabberd_iq.erl b/src/ejabberd_iq.erl index 97271f7a6..7d2751dcb 100644 --- a/src/ejabberd_iq.erl +++ b/src/ejabberd_iq.erl @@ -169,7 +169,7 @@ calc_checksum(Data) -> Key = ejabberd_config:get_option(shared_key), base64:encode(crypto:hash(sha, <>)). --spec callback(atom() | pid(), #iq{}, term()) -> any(). +-spec callback(atom() | pid(), #iq{} | timeout, term()) -> any(). callback(undefined, IQRes, Fun) -> Fun(IQRes); callback(Proc, IQRes, Ctx) -> diff --git a/src/ejabberd_router.erl b/src/ejabberd_router.erl index 4fc0fa290..e29014835 100644 --- a/src/ejabberd_router.erl +++ b/src/ejabberd_router.erl @@ -142,9 +142,9 @@ route_error(From, To, Packet, #stanza_error{} = Err) -> route(From, To, xmpp:make_error(Packet, Err)) end. --spec route_iq(iq(), term()) -> ok. -route_iq(IQ, State) -> - route_iq(IQ, State, undefined, ?IQ_TIMEOUT). +-spec route_iq(iq(), fun((iq() | timeout) -> any())) -> ok. +route_iq(IQ, Fun) -> + route_iq(IQ, Fun, undefined, ?IQ_TIMEOUT). -spec route_iq(iq(), term(), pid() | atom()) -> ok. route_iq(IQ, State, Proc) ->