diff options
Diffstat (limited to 'src/http_util.erl')
-rw-r--r-- | src/http_util.erl | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/http_util.erl b/src/http_util.erl deleted file mode 100644 index 53dd2bb..0000000 --- a/src/http_util.erl +++ /dev/null @@ -1,50 +0,0 @@ -%%% Copyright (c) 2014, NORDUnet A/S. -%%% See LICENSE for licensing information. -%%% - --module(http_util). --export([request/4]). --include_lib("hackney/include/hackney_lib.hrl"). - -get_auth_header(Headers) -> - case hackney_headers:get_value("X-Catlfish-Auth", Headers) of - undefined -> - undefined; - Result when is_binary(Result) -> - lager:debug("received auth header: ~p", [Result]), - binary_to_list(Result) - end. - -add_auth(Method, Path, Headers, Data) -> - AuthHeader = http_auth:create_auth(Method, Path, Data), - lager:debug("sent auth header: ~p", [AuthHeader]), - [{"X-Catlfish-Auth", AuthHeader} | Headers]. - -request(DebugTag, URL, Headers, RequestBody) -> - Starttime = os:timestamp(), - ParsedURL = hackney_url:parse_url(URL), - CACertFile = application:get_env(catlfish, https_cacertfile, none), - #hackney_url{path = Path} = ParsedURL, - lager:debug("~s: sending http request to ~p", - [DebugTag, URL]), - {ok, ConnRef} = hackney:connect(ParsedURL, [{ssl_options, [{cacertfile, CACertFile}]}]), - lager:debug("~s: connected to ~p", - [DebugTag, URL]), - {ok, StatusCode, RespHeaders, ClientRef} = - hackney:send_request(ConnRef, - {post, Path, - add_auth("POST", Path, Headers, - RequestBody), - RequestBody}), - lager:debug("~s: received headers for ~p: ~p", - [DebugTag, URL, RespHeaders]), - {ok, Body} = hackney:body(ClientRef), - Stoptime = os:timestamp(), - hackney:close(ClientRef), - lager:debug("~s: received body for ~p: time ~p", - [DebugTag, URL, timer:now_diff(Stoptime, Starttime)]), - StatusLine = {none, StatusCode, none}, - AuthHeader = get_auth_header(hackney_headers:new(RespHeaders)), - {http_auth:verify_auth(AuthHeader, "REPLY", - binary_to_list(Path), Body), - StatusLine, RespHeaders, Body}. |