Skip to content

Commit

Permalink
pass verify_none to httpc:request
Browse files Browse the repository at this point in the history
  • Loading branch information
mikpe committed Feb 26, 2024
1 parent 0043d67 commit fe5e9a7
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 6 deletions.
23 changes: 21 additions & 2 deletions src/jsonrpc.erl
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
%%% MethodName -> atom
%%% Args -> list
%%%
call(URL, Options, Payload) ->
call(URL, HttpOptions, Payload) ->
try
{ok, CallPayloadDeep} = encode_call_payload(Payload),
CallPayload = lists:flatten(CallPayloadDeep),
Expand All @@ -50,7 +50,8 @@ call(URL, Options, Payload) ->
{URL,[{"Content-Length",
integer_to_list(length(CallPayload))}],
"application/x-www-form-urlencoded",CallPayload},
Options, []),
sanitize_httpc_options(HttpOptions),
[]),

RespBody = if
(size(Response) == 2) or (size(Response) == 3) ->
Expand All @@ -65,6 +66,24 @@ call(URL, Options, Payload) ->
{error,Err}
end.

sanitize_httpc_options(HttpOptions) ->
SslOptions = sanitize_ssl_client_options(proplists:get_value(ssl, HttpOptions, [])),
[{ssl, SslOptions} | proplists:delete(ssl, HttpOptions)].

sanitize_ssl_client_options(Options) ->
Verify = proplists:get_value(verify, Options),
CaCertFile = proplists:get_value(cacertfile, Options),
CaCerts = proplists:get_value(cacerts, Options),
case {Verify, CaCertFile, CaCerts} of
{undefined, undefined, undefined} ->
%% The caller didn't specify anything. Starting with OTP-26 the default
%% is verify_peer and CaCertFile or CaCerts are then mandatory.
%% Pretend the caller specified verify_none.
[{verify, verify_none} | Options];
{_, _, _} ->
Options
end.

%%%
%%% json-rpc.org defines such structure for making call
%%%
Expand Down
7 changes: 5 additions & 2 deletions src/yaws_soap12_lib.erl
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,8 @@ addSchemaFiles([Xsd| Tail], AccModel, Options, ImportList) ->
%%% Get a file from an URL spec.
%%% --------------------------------------------------------------------
get_url_file("http://"++_ = URL) ->
case httpc:request(URL) of
HttpOptions = [{ssl, [{verify, verify_none}]}],
case httpc:request(get, {URL, []}, HttpOptions, []) of
{ok,{{_HTTP,200,_OK}, _Headers, Body}} ->
{ok, Body};
{ok,{{_HTTP,RC,Emsg}, _Headers, _Body}} ->
Expand Down Expand Up @@ -596,11 +597,13 @@ inets_request(URL, Action, Request, Options, Headers, ContentType) ->
end,
NewOptions = [{cookies, enabled}|Options],
httpc:set_options(NewOptions),
HttpOptions = [{timeout,?HTTP_REQ_TIMEOUT},
{ssl, [{verify, verify_none}]}],
case httpc:request(post,
{URL,NewHeaders,
ContentType,
Request},
[{timeout,?HTTP_REQ_TIMEOUT}],
HttpOptions,
[{sync, true}, {full_result, true},
{body_format, string}]) of
{ok,{{_HTTP,200,_OK},ResponseHeaders,ResponseBody}} ->
Expand Down
7 changes: 5 additions & 2 deletions src/yaws_soap_lib.erl
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,8 @@ get_url_file(Fname) ->
{ok, binary_to_list(Bin)}.

get_remote_url_file(URL) ->
case httpc:request(URL) of
HttpOptions = [{ssl, [{verify, verify_none}]}],
case httpc:request(get, {URL, []}, HttpOptions, []) of
{ok,{{_HTTP,200,_OK}, _Headers, Body}} ->
{ok, Body};
{ok,{{_HTTP,RC,Emsg}, _Headers, _Body}} ->
Expand Down Expand Up @@ -447,11 +448,13 @@ inets_request(URL, SoapAction, Request, Options, Headers, ContentType) ->
end,
NewOptions = [{cookies, enabled}|Options],
httpc:set_options(NewOptions),
HttpOptions = [{timeout,?HTTP_REQ_TIMEOUT},
{ssl, [{verify, verify_none}]}],
case httpc:request(post,
{URL,NewHeaders,
ContentType,
Request},
[{timeout,?HTTP_REQ_TIMEOUT}],
HttpOptions,
[{sync, true}, {full_result, true},
{body_format, string}]) of
{ok,{{_HTTP,200,_OK},ResponseHeaders,ResponseBody}} ->
Expand Down

0 comments on commit fe5e9a7

Please sign in to comment.