代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/lwip 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From b6e9527f073d81ee9a3aa186c86a6a4fc8ff6a0b Mon Sep 17 00:00:00 2001
From: wanfeng <wanfeng@kylinos.cn>
Date: Wed, 3 Jul 2024 17:01:53 +0800
Subject: [PATCH] add MCAST_MSFILTER in setsockopt for MLDv2 of IPv6
---
src/api/sockets.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/api/sockets.c b/src/api/sockets.c
index 7a67650..9e6ba90 100644
--- a/src/api/sockets.c
+++ b/src/api/sockets.c
@@ -4124,6 +4124,27 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
if (NETCONNTYPE_GROUPV6(netconn_type(sock->conn)) == NETCONN_RAW_IPV6) {
err = mcast_sock_block_unblock_source_group(&sock->conn->pcb.raw->ipmc, optname, (const struct group_source_req *)optval);
} else
+#endif /* LWIP_RAW */
+ {
+ done_socket(sock);
+ return ENOPROTOOPT;
+ }
+ break;
+ case MCAST_MSFILTER:
+ LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, struct group_filter);
+ if (((const struct group_filter *)optval)->gf_group.ss_family != AF_INET6) {
+ done_socket(sock);
+ return EINVAL;
+ }
+#if LWIP_UDP
+ if (NETCONNTYPE_GROUPV6(netconn_type(sock->conn)) == NETCONN_UDP_IPV6) {
+ err = mcast_sock_set_groupfilter(&sock->conn->pcb.udp->ipmc, optname, (const struct group_filter *)optval);
+ } else
+#endif /* LWIP_UDP */
+#if LWIP_RAW
+ if (NETCONNTYPE_GROUPV6(netconn_type(sock->conn)) == NETCONN_RAW_IPV6) {
+ err = mcast_sock_set_groupfilter(&sock->conn->pcb.raw->ipmc, optname, (const struct group_filter *)optval);
+ } else
#endif /* LWIP_RAW */
{
done_socket(sock);
--
2.25.1
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。