Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
0661-Fix-dtls-listen-on-ipv6-with-default-ip.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0661-Fix-dtls-listen-on-ipv6-with-default-ip.patch of Package erlang
From 8025f891bc3940dea2420c49861d323b0d765d5d Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson <dgud@erlang.org> Date: Wed, 20 Mar 2024 10:47:26 +0100 Subject: [PATCH 1/3] Fix dtls listen on ipv6 with default ip IP adress always defaulted to {0,0,0,0} even for ipv6 connections, which caused a single entry if you where listening on both stacks. Fixes #7955 --- lib/ssl/src/dtls_socket.erl | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/ssl/src/dtls_socket.erl b/lib/ssl/src/dtls_socket.erl index 7122aa0252..fbb72f59ef 100644 --- a/lib/ssl/src/dtls_socket.erl +++ b/lib/ssl/src/dtls_socket.erl @@ -50,7 +50,7 @@ listen(Port, #config{inet_ssl = SockOpts, ssl = SslOpts, emulated = EmOpts, inet_user = Options} = Config) -> - IP = proplists:get_value(ip, SockOpts, {0,0,0,0}), + IP = proplists:get_value(ip, SockOpts, default_ip(SockOpts)), case dtls_listener_sup:lookup_listener(IP, Port) of undefined -> start_new_listener(IP, Port, Config); @@ -95,13 +95,17 @@ connect(Address, Port, #config{transport_info = {Transport, _, _, _, _} = CbInfo close(#sslsocket{pid = {dtls, #config{dtls_handler = {Pid, Port0}, inet_ssl = SockOpts}}}) -> - IP = proplists:get_value(ip, SockOpts, {0,0,0,0}), + IP = proplists:get_value(ip, SockOpts, default_ip(SockOpts)), Port = get_real_port(Pid, Port0), dtls_listener_sup:register_listener({undefined, Pid}, IP, Port), - dtls_packet_demux:close(Pid). + dtls_packet_demux:close(Pid). + +default_ip(SockOpts) -> + case proplists:get_value(inet6, SockOpts, false) of + false -> {0,0,0,0}; + true -> {0,0,0,0, 0,0,0,0} + end. -close(_, dtls) -> - ok; close(gen_udp, {_Client, _Socket}) -> ok; close(Transport, {_Client, Socket}) -> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor