aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2018-07-15 21:53:50 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2018-07-15 21:53:50 +0200
commit4e9930597d226eb12576688b804479ef9f01ed2d (patch)
treeaafe842a3e5a17b5d43b87753c763ec69caa1765 /src
parentNote about Redis requirement in the test suite README (diff)
mod_http_upload: Don't store "external" slots
Don't store requested upload slots if an 'external_secret' is configured.
Diffstat (limited to 'src')
-rw-r--r--src/mod_http_upload.erl14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl
index f58d4bc78..7091f0928 100644
--- a/src/mod_http_upload.erl
+++ b/src/mod_http_upload.erl
@@ -539,11 +539,8 @@ process_slot_request(#iq{lang = Lang, from = From} = IQ,
case create_slot(State, From, File, Size, ContentType, XMLNS,
Lang) of
{ok, Slot} ->
- {ok, Timer} = timer:send_after(?SLOT_TIMEOUT,
- {slot_timed_out,
- Slot}),
Query = make_query_string(Slot, Size, State),
- NewState = add_slot(Slot, Size, Timer, State),
+ NewState = add_slot(Slot, Size, State),
NewSlot = mk_slot(Slot, State, XMLNS, Query),
{xmpp:make_iq_result(IQ, NewSlot), NewState};
{ok, PutURL, GetURL} ->
@@ -643,10 +640,13 @@ create_slot(#state{service_url = ServiceURL},
{error, xmpp:err_service_unavailable()}
end.
--spec add_slot(slot(), pos_integer(), timer:tref(), state()) -> state().
-add_slot(Slot, Size, Timer, #state{slots = Slots} = State) ->
+-spec add_slot(slot(), pos_integer(), state()) -> state().
+add_slot(Slot, Size, #state{external_secret = <<>>, slots = Slots} = State) ->
+ {ok, Timer} = timer:send_after(?SLOT_TIMEOUT, {slot_timed_out, Slot}),
NewSlots = maps:put(Slot, {Size, Timer}, Slots),
- State#state{slots = NewSlots}.
+ State#state{slots = NewSlots};
+add_slot(_Slot, _Size, State) ->
+ State.
-spec get_slot(slot(), state()) -> {ok, {pos_integer(), timer:tref()}} | error.
get_slot(Slot, #state{slots = Slots}) ->