summaryrefslogtreecommitdiff
path: root/src/http_util.erl
diff options
context:
space:
mode:
authorMagnus Ahltorp <map@kth.se>2015-03-02 11:44:50 +0100
committerMagnus Ahltorp <map@kth.se>2015-03-02 15:35:24 +0100
commit35a43b7b1951fdb45e2367122a3928ddba49c894 (patch)
tree8e57ca1909e442b87965c147319a1c215abb8311 /src/http_util.erl
parentefdfd2413bab91fffe2c52154c832f77198093a3 (diff)
Rename http_util plop_httputil
Diffstat (limited to 'src/http_util.erl')
-rw-r--r--src/http_util.erl50
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}.