From c3516b5e0efc9db3e879a9f963e9c77dd513c5a8 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Wed, 8 Jun 2022 18:08:25 +0200 Subject: Make version 4 external node container types mandatory --- lib/erl_interface/src/connect/ei_connect.c | 13 +------------ lib/erl_interface/src/connect/ei_connect_int.h | 10 +++++++--- lib/erl_interface/test/ei_tmo_SUITE.erl | 17 ++++++++++++++--- 3 files changed, 22 insertions(+), 18 deletions(-) (limited to 'lib/erl_interface') diff --git a/lib/erl_interface/src/connect/ei_connect.c b/lib/erl_interface/src/connect/ei_connect.c index 4280b8f62e..599f838aa7 100644 --- a/lib/erl_interface/src/connect/ei_connect.c +++ b/lib/erl_interface/src/connect/ei_connect.c @@ -2241,20 +2241,9 @@ static DistFlags preferred_flags(void) { DistFlags flags = DFLAG_MANDATORY_25_DIGEST - | DFLAG_EXTENDED_REFERENCES + | DFLAG_DIST_MANDATORY | DFLAG_DIST_MONITOR - | DFLAG_EXTENDED_PIDS_PORTS - | DFLAG_FUN_TAGS - | DFLAG_NEW_FUN_TAGS - | DFLAG_NEW_FLOATS | DFLAG_SMALL_ATOM_TAGS - | DFLAG_UTF8_ATOMS - | DFLAG_MAP_TAG - | DFLAG_BIG_CREATION - | DFLAG_EXPORT_PTR_TAG - | DFLAG_BIT_BINARIES - | DFLAG_HANDSHAKE_23 - | DFLAG_V4_NC | DFLAG_UNLINK_ID; return flags; } diff --git a/lib/erl_interface/src/connect/ei_connect_int.h b/lib/erl_interface/src/connect/ei_connect_int.h index d9be32d42c..b54240d830 100644 --- a/lib/erl_interface/src/connect/ei_connect_int.h +++ b/lib/erl_interface/src/connect/ei_connect_int.h @@ -103,7 +103,11 @@ typedef EI_ULONGLONG DistFlags; | DFLAG_NEW_FLOATS \ | DFLAG_MAP_TAG \ | DFLAG_EXPORT_PTR_TAG \ - | DFLAG_BIT_BINARIES) + | DFLAG_BIT_BINARIES \ + | DFLAG_HANDSHAKE_23) + +/* New mandatory flags for distribution in OTP 26. */ +#define DFLAG_DIST_MANDATORY_26 (DFLAG_V4_NC) /* Mandatory flags for distribution. */ @@ -111,8 +115,8 @@ typedef EI_ULONGLONG DistFlags; * Mandatory flags for distribution. Keep them in sync with * erts/emulator/beam/dist.h. */ -#define DFLAG_DIST_MANDATORY DFLAG_DIST_MANDATORY_25 - +#define DFLAG_DIST_MANDATORY (DFLAG_DIST_MANDATORY_25 \ + | DFLAG_DIST_MANDATORY_26) ei_cnode *ei_fd_to_cnode(int fd); int ei_distversion(int fd); diff --git a/lib/erl_interface/test/ei_tmo_SUITE.erl b/lib/erl_interface/test/ei_tmo_SUITE.erl index d0e5f4514a..8c90fce280 100644 --- a/lib/erl_interface/test/ei_tmo_SUITE.erl +++ b/lib/erl_interface/test/ei_tmo_SUITE.erl @@ -78,6 +78,7 @@ end_per_testcase(_Case, _Config) -> -define(DFLAG_BIG_CREATION, 16#40000). -define(DFLAG_HANDSHAKE_23, 16#1000000). -define(DFLAG_MANDATORY_25_DIGEST, 16#4000000). +-define(DFLAG_V4_NC, 16#400000000). %% From OTP R9 extended references are compulsory. %% From OTP R10 extended pids and ports are compulsory. @@ -85,7 +86,8 @@ end_per_testcase(_Case, _Config) -> %% From OTP 21 NEW_FUN_TAGS is compulsory (no more tuple fallback {fun, ...}). %% From OTP 23 BIG_CREATION is compulsory. %% From OTP 25 NEW_FLOATS, MAP_TAG, EXPORT_PTR_TAG, and BIT_BINARIES are compulsory. --define(COMPULSORY_DFLAGS, + +-define(DFLAGS_MANDATORY_25, (?DFLAG_EXTENDED_REFERENCES bor ?DFLAG_FUN_TAGS bor ?DFLAG_EXTENDED_PIDS_PORTS bor @@ -98,6 +100,15 @@ end_per_testcase(_Case, _Config) -> ?DFLAG_BIT_BINARIES bor ?DFLAG_HANDSHAKE_23)). +%% From OTP 26 V4_NC is compulsory. + +-define(DFLAGS_MANDATORY_26, + (?DFLAG_V4_NC)). + +-define(COMPULSORY_DFLAGS, + (?DFLAGS_MANDATORY_25 bor + ?DFLAGS_MANDATORY_26)). + %% Check the framework. framework_check(Config) when is_list(Config) -> %%dbg:tracer(), @@ -406,8 +417,8 @@ ei_dflags(Config) -> normal_accept(Config, ?COMPULSORY_DFLAGS), %% Test compatibility with future versions. - normal_connect(Config, ?DFLAG_MANDATORY_25_DIGEST), - normal_accept(Config, ?DFLAG_MANDATORY_25_DIGEST), + normal_connect(Config, ?DFLAG_MANDATORY_25_DIGEST bor ?DFLAGS_MANDATORY_26), + normal_accept(Config, ?DFLAG_MANDATORY_25_DIGEST bor ?DFLAGS_MANDATORY_26), ok. -- cgit v1.2.1