shithub: riscv

Download patch

ref: aa8af9c5a32b5f3afe0e612981fe4d9fada43d34
parent: 744053268d196e8c282d20243600fb33d4df0028
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++;