File 2981-Implement-mptcp-for-gen_tcp_socket-compatibility-mod.patch of Package erlang
From 94a2e933c619e467930b6b679be0c991b5f91ae2 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Thu, 13 Nov 2025 17:11:20 +0100
Subject: [PATCH 1/4] Implement `mptcp` for `gen_tcp_socket` compatibility
module
---
lib/kernel/src/gen_tcp_socket.erl | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/kernel/src/gen_tcp_socket.erl b/lib/kernel/src/gen_tcp_socket.erl
index fac8b37801..4bd303d9bd 100644
--- a/lib/kernel/src/gen_tcp_socket.erl
+++ b/lib/kernel/src/gen_tcp_socket.erl
@@ -1059,7 +1059,14 @@ split_open_opts([], OpenOpts, OtherOpts) ->
split_open_opts([{debug, _} = Opt|Opts], OpenOpts, OtherOpts) ->
split_open_opts(Opts, [Opt|OpenOpts], OtherOpts);
split_open_opts([Opt|Opts], OpenOpts, OtherOpts) ->
- split_open_opts(Opts, OpenOpts, [Opt|OtherOpts]).
+ case Opt of
+ {debug, _} ->
+ split_open_opts(Opts, [Opt|OpenOpts], OtherOpts);
+ {protocol, _} ->
+ split_open_opts(Opts, [Opt|OpenOpts], OtherOpts);
+ _ ->
+ split_open_opts(Opts, OpenOpts, [Opt|OtherOpts])
+ end.
%%
@@ -1585,9 +1592,10 @@ socket_open(Domain, #{fd := FD} = ExtraOpts, Extra) ->
%% ?DBG([{fd, FD}, {opts, Opts}]),
socket:open(FD, Opts);
socket_open(Domain, ExtraOpts, Extra) ->
+ Proto = maps:get(protocol, ExtraOpts, proto(Domain)),
Opts = maps:merge(Extra, ExtraOpts),
%% ?DBG([{domain, Domain}, {extra_opts, ExtraOpts}, {extra, Extra}]),
- socket:open(Domain, stream, proto(Domain), Opts).
+ socket:open(Domain, stream, Proto, Opts).
proto(Domain) ->
case Domain of
--
2.51.0