File 4061-Fix-ignored-unordered-option-on-client-diameter_sctp.patch of Package erlang

From da9acf209201f4795de7811ad672822edcde96fd Mon Sep 17 00:00:00 2001
From: Anders Svensson <anders@erlang.org>
Date: Fri, 30 Apr 2021 15:04:42 +0200
Subject: [PATCH 1/4] Fix ignored unordered option on client diameter_sctp
 transport

The option was ignored, causing all sending to be ordered.

Thanks to Bengt Kleberg.
---
 lib/diameter/src/transport/diameter_sctp.erl |  4 ++--
 lib/diameter/test/diameter_traffic_SUITE.erl | 18 +++++++++---------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/lib/diameter/src/transport/diameter_sctp.erl b/lib/diameter/src/transport/diameter_sctp.erl
index 64b34da690..cda7af695d 100644
--- a/lib/diameter/src/transport/diameter_sctp.erl
+++ b/lib/diameter/src/transport/diameter_sctp.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2010-2017. All Rights Reserved.
+%% Copyright Ericsson AB 2010-2021. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -283,7 +283,7 @@ i({connect, Pid, Opts, Addrs, Ref}) ->
                mode = {connect, connect(Sock, RAs, RP, [])},
                socket = Sock,
                message_cb = CB,
-               unordered = proplists:get_value(ordered, OwnOpts, false),
+               unordered = proplists:get_value(unordered, OwnOpts, false),
                packet = proplists:get_value(packet, OwnOpts, true),
                send = proplists:get_value(sender, OwnOpts, false)};
 
diff --git a/lib/diameter/test/diameter_traffic_SUITE.erl b/lib/diameter/test/diameter_traffic_SUITE.erl
index 452bd28333..a12759bac2 100644
--- a/lib/diameter/test/diameter_traffic_SUITE.erl
+++ b/lib/diameter/test/diameter_traffic_SUITE.erl
@@ -279,19 +279,19 @@ all() ->
 
 %% Redefine this to run one or more groups for debugging purposes.
 -define(GROUPS, []).
-%-define(GROUPS, [[tcp,rfc6733,record,map,false,false,false,false]]).
+%-define(GROUPS, [[sctp,rfc6733,record,map,false,false,true,false]]).
 
 %% Issues with gen_sctp sporadically cause huge numbers of failed
 %% testcases when running testcases in parallel.
 groups() ->
-    Names = names(),
+    Names = names([] == ?GROUPS orelse ?GROUPS),
     [{P, [P], Ts} || Ts <- [tc()], P <- [shuffle, parallel]]
         ++
         [{?util:name(N), [], [{group, if T == sctp; S -> shuffle;
                                          true         -> parallel end}]}
          || [T,_,_,_,S|_] = N <- Names]
         ++
-        [{T, [], [{group, ?util:name(N)} || N <- names(Names, ?GROUPS),
+        [{T, [], [{group, ?util:name(N)} || N <- Names,
                                             T == hd(N)]}
          || T <- ?TRANSPORTS]
         ++
@@ -308,13 +308,13 @@ names() ->
                              CS <- ?SENDERS,
                              ?SKIP =< rand:uniform()].
 
-names(Names, []) ->
+names(true) ->
+    names(names());
+
+names(Names) ->
     [N || N <- Names,
           [CS,SS|_] <- [lists:reverse(N)],
-          SS orelse CS];  %% avoid deadlock
-
-names(_, Names) ->
-    Names.
+          SS orelse CS].  %% avoid deadlock
 
 %% --------------------
 
-- 
2.26.2

openSUSE Build Service is sponsored by