aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/test/ssl_dist_bench_SUITE.erl
diff options
context:
space:
mode:
authorRaimo Niskanen <[email protected]>2018-04-24 15:19:54 +0200
committerRaimo Niskanen <[email protected]>2018-04-26 10:05:28 +0200
commitc9b2af1f2cecb6565a2c79d683d86a1d7ee746e0 (patch)
tree57e561187eaf35bb9d99a1d3b9549652b9b912d3 /lib/ssl/test/ssl_dist_bench_SUITE.erl
parentb5ec77bf908877d7471997527959e3d98d45bd96 (diff)
downloadotp-c9b2af1f2cecb6565a2c79d683d86a1d7ee746e0.tar.gz
otp-c9b2af1f2cecb6565a2c79d683d86a1d7ee746e0.tar.bz2
otp-c9b2af1f2cecb6565a2c79d683d86a1d7ee746e0.zip
Check client IP from server
Diffstat (limited to 'lib/ssl/test/ssl_dist_bench_SUITE.erl')
-rw-r--r--lib/ssl/test/ssl_dist_bench_SUITE.erl52
1 files changed, 36 insertions, 16 deletions
diff --git a/lib/ssl/test/ssl_dist_bench_SUITE.erl b/lib/ssl/test/ssl_dist_bench_SUITE.erl
index 31de0936f9..77c42de3f2 100644
--- a/lib/ssl/test/ssl_dist_bench_SUITE.erl
+++ b/lib/ssl/test/ssl_dist_bench_SUITE.erl
@@ -77,6 +77,7 @@ init_per_suite(Config) ->
try
Node =/= nonode@nohost orelse
throw({skipped,"Node not distributed"}),
+ verify_node_src_addr(),
{supported, SSLVersions} =
lists:keyfind(supported, 1, ssl:versions()),
lists:member(TLSVersion, SSLVersions) orelse
@@ -179,9 +180,28 @@ end_per_testcase(_Func, _Conf) ->
%%%-------------------------------------------------------------------
%%% CommonTest API helpers
+verify_node_src_addr() ->
+ Msg = "Hello, world!",
+ {ok,Host} = inet:gethostname(),
+ {ok,DstAddr} = inet:getaddr(Host, inet),
+ {ok,Socket} = gen_udp:open(0, [{active,false}]),
+ {ok,Port} = inet:port(Socket),
+ ok = gen_udp:send(Socket, DstAddr, Port, Msg),
+ case gen_udp:recv(Socket, length(Msg) + 1, 1000) of
+ {ok,{DstAddr,Port,Msg}} ->
+ ok;
+ {ok,{SrcAddr,Port,Msg}} ->
+ throw({skipped,
+ "Src and dst address mismatch: " ++
+ term_to_string(SrcAddr) ++ " =:= " ++
+ term_to_string(DstAddr)});
+ Weird ->
+ error(Weird)
+ end.
+
write_node_conf(
ConfFile, Node, ServerConf, ClientConf, CertOptions, RootCert) ->
- [_Name,Host] = string:split(atom_to_list(Node), "@"),
+ [Name,Host] = split_node(Node),
Conf =
public_key:pkix_test_data(
#{root => RootCert,
@@ -190,21 +210,21 @@ write_node_conf(
[#'Extension'{
extnID = ?'id-ce-subjectAltName',
extnValue = [{dNSName, Host}],
- critical = true}%,
- %% #'Extension'{
- %% extnID = ?'id-ce-subjectAltName',
- %% extnValue =
- %% [{directoryName,
- %% {rdnSequence,
- %% [[#'AttributeTypeAndValue'{
- %% type = ?'id-at-commonName',
- %% value =
- %% {utf8String,
- %% unicode:characters_to_binary(
- %% Name, utf8)
- %% }
- %% }]]}}],
- %% critical = true}
+ critical = true},
+ #'Extension'{
+ extnID = ?'id-ce-subjectAltName',
+ extnValue =
+ [{directoryName,
+ {rdnSequence,
+ [[#'AttributeTypeAndValue'{
+ type = ?'id-at-commonName',
+ value =
+ {utf8String,
+ unicode:characters_to_binary(
+ Name, utf8)
+ }
+ }]]}}],
+ critical = true}
]} | CertOptions]}),
NodeConf =
[{server, ServerConf ++ Conf}, {client, ClientConf ++ Conf}],