diff options
author | Loïc Hoguin <[email protected]> | 2012-09-16 01:13:44 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2012-09-16 01:13:44 +0200 |
commit | 527477bd4ac431f3810c3cec6679824112cf3612 (patch) | |
tree | 9384b8f8a5826cd4403b348851908833d667f32d /src/cowboy_rest.erl | |
parent | 736bcd4841c38e8676017486aea211e624d3dc0f (diff) | |
download | cowboy-527477bd4ac431f3810c3cec6679824112cf3612.tar.gz cowboy-527477bd4ac431f3810c3cec6679824112cf3612.tar.bz2 cowboy-527477bd4ac431f3810c3cec6679824112cf3612.zip |
Introduce cowboy_req:host_url/1 to remove more duplicate code
Diffstat (limited to 'src/cowboy_rest.erl')
-rw-r--r-- | src/cowboy_rest.erl | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 617b001..a3bcb2e 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -671,31 +671,14 @@ create_path(Req, State) -> {halt, Req2, HandlerState} -> terminate(Req2, State#state{handler_state=HandlerState}); {Path, Req2, HandlerState} -> - Location = create_path_location(Req2, Path), + {HostURL, Req3} = cowboy_req:host_url(Req2), State2 = State#state{handler_state=HandlerState}, - {ok, Req3} = cowboy_req:set_resp_header( - <<"Location">>, Location, Req2), - put_resource(cowboy_req:set_meta(put_path, Path, Req3), + {ok, Req4} = cowboy_req:set_resp_header( + <<"Location">>, << HostURL/binary, Path/binary >>, Req3), + put_resource(cowboy_req:set_meta(put_path, Path, Req4), State2, 303) end. -create_path_location(#http_req{transport=Transport, host=Host, - port=Port}, Path) -> - TransportName = Transport:name(), - << (create_path_location_protocol(TransportName))/binary, "://", - Host/binary, (create_path_location_port(TransportName, Port))/binary, - Path/binary >>. - -create_path_location_protocol(ssl) -> <<"https">>; -create_path_location_protocol(_) -> <<"http">>. - -create_path_location_port(ssl, 443) -> - <<>>; -create_path_location_port(tcp, 80) -> - <<>>; -create_path_location_port(_, Port) -> - <<":", (list_to_binary(integer_to_list(Port)))/binary>>. - %% process_post should return true when the POST body could be processed %% and false when it hasn't, in which case a 500 error is sent. process_post(Req, State) -> |