@@ -561,26 +561,48 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap
561
561
return ESP_ERR_INVALID_ARG;
562
562
}
563
563
netif = (struct netif *)nif;
564
- }
565
564
566
- if (addr->type == IPADDR_TYPE_V4) {
567
- if (join){
568
- if (igmp_joingroup_netif (netif, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
569
- return ESP_ERR_INVALID_STATE;
565
+ if (addr->type == IPADDR_TYPE_V4) {
566
+ if (join){
567
+ if (igmp_joingroup_netif (netif, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
568
+ return ESP_ERR_INVALID_STATE;
569
+ }
570
+ } else {
571
+ if (igmp_leavegroup_netif (netif, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
572
+ return ESP_ERR_INVALID_STATE;
573
+ }
570
574
}
571
575
} else {
572
- if (igmp_leavegroup_netif (netif, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
573
- return ESP_ERR_INVALID_STATE;
576
+ if (join){
577
+ if (mld6_joingroup_netif (netif, &(addr->u_addr .ip6 ))) {
578
+ return ESP_ERR_INVALID_STATE;
579
+ }
580
+ } else {
581
+ if (mld6_leavegroup_netif (netif, &(addr->u_addr .ip6 ))) {
582
+ return ESP_ERR_INVALID_STATE;
583
+ }
574
584
}
575
585
}
576
- } else {
577
- if (join){
578
- if (mld6_joingroup_netif (netif, &(addr->u_addr .ip6 ))) {
579
- return ESP_ERR_INVALID_STATE;
586
+ } else {
587
+ if (addr->type == IPADDR_TYPE_V4) {
588
+ if (join){
589
+ if (igmp_joingroup ((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
590
+ return ESP_ERR_INVALID_STATE;
591
+ }
592
+ } else {
593
+ if (igmp_leavegroup ((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr .ip4 ))) {
594
+ return ESP_ERR_INVALID_STATE;
595
+ }
580
596
}
581
597
} else {
582
- if (mld6_leavegroup_netif (netif, &(addr->u_addr .ip6 ))) {
583
- return ESP_ERR_INVALID_STATE;
598
+ if (join){
599
+ if (mld6_joingroup ((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr .ip6 ))) {
600
+ return ESP_ERR_INVALID_STATE;
601
+ }
602
+ } else {
603
+ if (mld6_leavegroup ((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr .ip6 ))) {
604
+ return ESP_ERR_INVALID_STATE;
605
+ }
584
606
}
585
607
}
586
608
}
0 commit comments