allow multicast membership to register multiple times

(cherry picked from commit 8034fbc3dea7d6d4ba831f459cf65e32d4ee476d)
This commit is contained in:
wanfeng 2024-05-10 15:19:47 +08:00 committed by openeuler-sync-bot
parent 4555e94080
commit 7d22ca7eb5
2 changed files with 39 additions and 1 deletions

View File

@ -0,0 +1,34 @@
From 3b23b3a69d71a862dfe7fca1b53b673dc868ffa5 Mon Sep 17 00:00:00 2001
From: wanfeng <wanfeng@kylinos.cn>
Date: Fri, 10 May 2024 15:11:12 +0800
Subject: [PATCH] allow membership to register multiple times
---
src/api/sockets.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/api/sockets.c b/src/api/sockets.c
index 04df15a..5a72b62 100644
--- a/src/api/sockets.c
+++ b/src/api/sockets.c
@@ -4501,7 +4501,7 @@ lwip_socket_register_membership(int s, unsigned int if_idx, const ip4_addr_t *mu
#else
for (i = 0; i < LWIP_SOCKET_MAX_MEMBERSHIPS; i++) {
#endif
- if (socket_ipv4_multicast_memberships[i].sock == NULL) {
+ if (socket_ipv4_multicast_memberships[i].sock == NULL || (socket_ipv4_multicast_memberships[i].sock == sock)) {
socket_ipv4_multicast_memberships[i].sock = sock;
socket_ipv4_multicast_memberships[i].if_idx = if_idx;
ip4_addr_copy(socket_ipv4_multicast_memberships[i].multi_addr, *multi_addr);
@@ -4617,7 +4617,7 @@ lwip_socket_register_mld6_membership(int s, unsigned int if_idx, const ip6_addr_
#else
for (i = 0; i < LWIP_SOCKET_MAX_MEMBERSHIPS; i++) {
#endif
- if (socket_ipv6_multicast_memberships[i].sock == NULL) {
+ if (socket_ipv6_multicast_memberships[i].sock == NULL || (socket_ipv6_multicast_memberships[i].sock == sock)) {
socket_ipv6_multicast_memberships[i].sock = sock;
socket_ipv6_multicast_memberships[i].if_idx = (u8_t)if_idx;
ip6_addr_copy(socket_ipv6_multicast_memberships[i].multi_addr, *multi_addr);
--
2.25.1

View File

@ -4,7 +4,7 @@
Summary: lwip is a small independent implementation of the TCP/IP protocol suite
Name: lwip
Version: 2.2.0
Release: 24
Release: 26
License: BSD
URL: http://savannah.nongnu.org/projects/lwip/
Source0: http://download.savannah.nongnu.org/releases/lwip/%{name}-%{version}.zip
@ -144,6 +144,7 @@ Patch9128: 0129-memset-gazelle_quintuple-in-vdev_reg_done.patch
Patch9129: 0130-add-MCAST_JOIN_GROUP-to-setsockopt-for-igmpv3.patch
Patch9130: 0131-add-MCAST_BLOCK_SOURCE-to-setsockopt-for-igmpv3.patch
Patch9131: 0132-mod-udp-loop-mem-leak.patch
Patch9132: 0133-allow-membership-to-register-multiple-times.patch
BuildRequires: gcc-c++ dos2unix dpdk-devel
@ -173,6 +174,9 @@ cd %{_builddir}/%{name}-%{version}/src
%{_libdir}/liblwip.a
%changelog
* Fri May 10 2024 wanfeng <wanfeng@kylinos.cn> - 2.2.0-26
- allow multicast membership to register multiple times
* Tue May 07 2024 hankangkang <hankangkang5@huawei.com> - 2.2.0-25
- Fix MBUF memory leakage issue when message length is greater than MTU