ref: 172aa1ae6d59e83acbcd8a7cc78999ea83d350a4
parent: 010f3a95eff1633570733c78ffe46605e2cbba23
author: cinap_lenrek <cinap_lenrek@felloff.net>
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++;
--
⑨