diff options
author | Sverker Eriksson <[email protected]> | 2016-08-15 16:42:00 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-08-15 17:37:14 +0200 |
commit | 0aef8a3ea46834e1a943d4ac7981802a6146bdd4 (patch) | |
tree | 865f7b6428be4d63794f4d1aec010a8a8033bec1 | |
parent | 8f03f5dc4c8bc2804acfaec5d3558456d27282b0 (diff) | |
download | otp-0aef8a3ea46834e1a943d4ac7981802a6146bdd4.tar.gz otp-0aef8a3ea46834e1a943d4ac7981802a6146bdd4.tar.bz2 otp-0aef8a3ea46834e1a943d4ac7981802a6146bdd4.zip |
kernel: Accept and convert old hs_data record
-rw-r--r-- | lib/kernel/src/dist_util.erl | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/kernel/src/dist_util.erl b/lib/kernel/src/dist_util.erl index d8e4705e6b..8d2fc4d4b7 100644 --- a/lib/kernel/src/dist_util.erl +++ b/lib/kernel/src/dist_util.erl @@ -143,7 +143,11 @@ handshake_other_started(#hs_data{request_type=ReqType}=HSData0) -> ChallengeB = recv_challenge_reply(HSData, ChallengeA, MyCookie), send_challenge_ack(HSData, gen_digest(ChallengeB, HisCookie)), ?debug({dist_util, self(), accept_connection, Node}), - connection(HSData). + connection(HSData); + +handshake_other_started(OldHsData) when element(1,OldHsData) =:= hs_data -> + handshake_other_started(convert_old_hsdata(OldHsData)). + %% %% check if connecting node is allowed to connect @@ -330,7 +334,20 @@ handshake_we_started(#hs_data{request_type=ReqType, gen_digest(ChallengeA,HisCookie)), reset_timer(NewHSData#hs_data.timer), recv_challenge_ack(NewHSData, MyChallenge, MyCookie), - connection(NewHSData). + connection(NewHSData); + +handshake_we_started(OldHsData) when element(1,OldHsData) =:= hs_data -> + handshake_we_started(convert_old_hsdata(OldHsData)). + +convert_old_hsdata({hs_data, KP, ON, TN, S, T, TF, A, OV, OF, OS, FS, FR, + FS_PRE, FS_POST, FG, FA, MFT, MFG, RT}) -> + #hs_data{ + kernel_pid = KP, other_node = ON, this_node = TN, socket = S, timer = T, + this_flags = TF, allowed = A, other_version = OV, other_flags = OF, + other_started = OS, f_send = FS, f_recv = FR, f_setopts_pre_nodeup = FS_PRE, + f_setopts_post_nodeup = FS_POST, f_getll = FG, f_address = FA, + mf_tick = MFT, mf_getstat = MFG, request_type = RT}. + %% -------------------------------------------------------------- %% The connection has been established. |