{
int ii;
virNetworkIpDefPtr ipdef;
+ virErrorPtr orig_error;
/* Add "once per network" rules */
if (networkAddGeneralIptablesRules(driver, network) < 0)
return 0;
err:
+ /* store the previous error message before attempting removal of rules */
+ orig_error = virSaveLastError();
+
/* The final failed call to networkAddIpSpecificIptablesRules will
* have removed any rules it created, but we need to remove those
* added for previous IP addresses.
networkRemoveIpSpecificIptablesRules(driver, network, ipdef);
}
networkRemoveGeneralIptablesRules(driver, network);
+
+ /* return the original error */
+ virSetError(orig_error);
return -1;
}