From 493794145ef51a8402f0e07d5a28ea64597c9945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 6 Jun 2016 17:33:46 +0200 Subject: REST: Ignore If...Since if If...Match header exists The If-Modified-Since and If-Unmodified-Since headers are only used when If-None-Match or If-Match were not found, respectively. The latter are preferred by the standard and the former is only there for compatibility with older clients. --- src/cowboy_rest.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 670e74b..55b4e22 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -688,7 +688,7 @@ if_match(Req, State, EtagsList) -> precondition_failed(Req2, State2); {Etag, Req2, State2} -> case lists:member(Etag, EtagsList) of - true -> if_unmodified_since_exists(Req2, State2); + true -> if_none_match_exists(Req2, State2); %% Etag may be `undefined' which cannot be a member. false -> precondition_failed(Req2, State2) end @@ -743,7 +743,7 @@ if_none_match(Req, State, EtagsList) -> Etag -> case is_weak_match(Etag, EtagsList) of true -> precondition_is_head_get(Req2, State2); - false -> if_modified_since_exists(Req2, State2) + false -> method(Req2, State2) end end catch Class:Reason -> -- cgit v1.2.3