Codebase list erlang-p1-tls / 9acc01f
Added upstream patch to fix random FTBFS problem (Closes: #959590) Philipp Huebner 4 years ago
2 changed file(s) with 79 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 From 52f9244780dd79f1868469d3db81b161cf32b6ab Mon Sep 17 00:00:00 2001
1 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= <pchmielowski@process-one.net>
2 Date: Sun, 3 May 2020 19:32:15 +0200
3 Subject: [PATCH] Reorganize nif loading
4
5 ---
6 c_src/p1_sha.c | 8 +++++++-
7 src/fast_tls.erl | 5 ++++-
8 src/p1_sha.erl | 4 +---
9 3 files changed, 12 insertions(+), 5 deletions(-)
10
11 diff --git a/c_src/p1_sha.c b/c_src/p1_sha.c
12 index 97e8e31..a9aa151 100644
13 --- a/c_src/p1_sha.c
14 +++ b/c_src/p1_sha.c
15 @@ -23,6 +23,12 @@ static int load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info)
16 return 0;
17 }
18
19 +static int upgrade(ErlNifEnv* caller_env, void** priv_data,
20 + void** old_priv_data, ERL_NIF_TERM load_info)
21 +{
22 + return 0;
23 +}
24 +
25 static ERL_NIF_TERM to_hexlist(ErlNifEnv* env, int argc,
26 const ERL_NIF_TERM argv[])
27 {
28 @@ -50,4 +56,4 @@ static ErlNifFunc nif_funcs[] =
29 {"to_hexlist", 1, to_hexlist}
30 };
31
32 -ERL_NIF_INIT(p1_sha, nif_funcs, load, NULL, NULL, NULL)
33 +ERL_NIF_INIT(p1_sha, nif_funcs, load, NULL, upgrade, NULL)
34 diff --git a/src/fast_tls.erl b/src/fast_tls.erl
35 index 0652c9f..00bc1ac 100644
36 --- a/src/fast_tls.erl
37 +++ b/src/fast_tls.erl
38 @@ -429,13 +429,16 @@ encode_alpn(ProtoList) ->
39
40 load_nif() ->
41 SOPath = p1_nif_utils:get_so_path(fast_tls, [fast_tls], "fast_tls"),
42 - ok = p1_sha:load_nif(),
43 load_nif(SOPath).
44
45 load_nif(SOPath) ->
46 case erlang:load_nif(SOPath, 0) of
47 ok ->
48 ok;
49 + {error, {reload, _}} -> % We don't support upgrade in this module so let's not crash
50 + ok;
51 + {error, {upgrade, _}} -> % We don't support upgrade in this module so let's not crash
52 + ok;
53 {error, ErrorDesc} = Err ->
54 error_logger:error_msg("failed to load TLS NIF: ~s~n",
55 [erl_ddll:format_error(ErrorDesc)]),
56 diff --git a/src/p1_sha.erl b/src/p1_sha.erl
57 index b0320a5..716d88b 100644
58 --- a/src/p1_sha.erl
59 +++ b/src/p1_sha.erl
60 @@ -22,6 +22,7 @@
61 %%%----------------------------------------------------------------------
62
63 -module(p1_sha).
64 +-on_load(load_nif/0).
65
66 -author('alexey@process-one.net').
67
68 @@ -90,9 +91,6 @@ sha512(Text) ->
69 %%%===================================================================
70 -ifdef(TEST).
71
72 -load_nif_test() ->
73 - ?assertEqual(ok, load_nif(p1_nif_utils:get_so_path(?MODULE, [], "p1_sha"))).
74 -
75 sha1_test() ->
76 ?assertEqual(
77 <<169,74,143,229,204,177,155,166,28,76,8,115,211,145,233,
00 remove-deps.diff
1 52f9244780dd79f1868469d3db81b161cf32b6ab.patch