- if (!createACLs(target)) {
- logger << "Switch::sync() - failed to create ACLs for the switch '" << _ip << "'" << std::endl;
- return;
+ if (_settings.dumpScripts()) {
+ stream = new std::ofstream(newFileName.c_str());
+ *stream << "#!/bin/sh\n";
+ } else {
+ stream = new std::stringstream;
+ }
+
+ if (!dropACLs(target, *stream)) {
+ logger << "Switch::sync() - failed to drop ACLs for the switch '" << _ip << "'" << std::endl;
+ delete stream;
+ return;
+ }
+
+ if (!createACLs(target, *stream)) {
+ logger << "Switch::sync() - failed to create ACLs for the switch '" << _ip << "'" << std::endl;
+ delete stream;
+ return;
+ }
+
+ delete stream;
+ if (_settings.dumpScripts())
+ rename(newFileName.c_str(), fileName.c_str());