ref: aa8af9c5a32b5f3afe0e612981fe4d9fada43d34
parent: 744053268d196e8c282d20243600fb33d4df0028
author: cinap_lenrek <[email protected]>
date: Thu Dec 8 17:13:32 EST 2022
devip: ignore addmulti() errors in addselfcache() If the interface does not support multicast, ignore it.
--- a/sys/src/9/ip/ipifc.c
+++ b/sys/src/9/ip/ipifc.c
@@ -953,10 +953,18 @@
a, type, ifc, tifc);
if(type & Rmulti){
- if(ifc->m->addmulti != nil)
- (*ifc->m->addmulti)(ifc, a, lifc->local);
- if(multicastreportfn != nil)
- (*multicastreportfn)(f, ifc, a, lifc->local, 0);
+ if(ifc->m->addmulti != nil){
+ if(!waserror()){
+ (*ifc->m->addmulti)(ifc, a, lifc->local);
+ poperror();
+ }
+ }
+ if(multicastreportfn != nil){
+ if(!waserror()){
+ (*multicastreportfn)(f, ifc, a, lifc->local, 0);
+ poperror();
+ }
+ }
}
} else
lp->ref++;