Repository : http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
commit d52b0822239aa8aae5eb816d4da0f42e74e0e2b7 Author: Daniel Kopecek dkopecek@redhat.com Date: Tue Sep 23 13:42:44 2014 +0200
Added missing DBus core interface methods
.../{zone/isImmutable.cpp => completeReload.cpp} | 22 +++++------------ .../queryMasquerade.cpp => disablePanicMode.cpp} | 22 ++++++++---------- .../queryMasquerade.cpp => enablePanicMode.cpp} | 22 ++++++++---------- ...{getDefaultZone.cpp => getIcmpTypeSettings.cpp} | 10 +++++-- .../{getDefaultZone.cpp => getServiceSettings.cpp} | 10 +++++-- .../{getDefaultZone.cpp => getZoneSettings.cpp} | 10 +++++-- .../{zone/getRichRules.cpp => listIcmpTypes.cpp} | 16 +++++-------- .../DBus/{zone/getZones.cpp => listServices.cpp} | 12 +++++----- src/Daemon/DBus/methods.decl | 11 +++++++++ .../{getDefaultZone.cpp => queryPanicMode.cpp} | 7 +++-- .../{zone/addIcmpBlock.cpp => setDefaultZone.cpp} | 24 ++++++++----------- 11 files changed, 85 insertions(+), 81 deletions(-)
diff --git a/src/Daemon/DBus/zone/isImmutable.cpp b/src/Daemon/DBus/completeReload.cpp similarity index 76% copy from src/Daemon/DBus/zone/isImmutable.cpp copy to src/Daemon/DBus/completeReload.cpp index b231fd4..52de214 100644 --- a/src/Daemon/DBus/zone/isImmutable.cpp +++ b/src/Daemon/DBus/completeReload.cpp @@ -22,22 +22,14 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(isImmutable) + FIREWALLD_DBUS_METHOD(completeReload) { - result.setTypeSignature("(b)"); - - UString zone_name; - - parameters.get(0, zone_name); - - try { - Zone* zone = _fw.getZone(zone_name); - result = zone->isImmutable(); - } - catch(...) { - result = false; - } - + result.setTypeSignature("()"); + // Shutdown DBus and stop the Glib main loop + // This will result in terminating the .run() method + // in the main loop (main.cpp) and a complete reload + // of the FirewallD instance. + quit(); return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/zone/queryMasquerade.cpp b/src/Daemon/DBus/disablePanicMode.cpp similarity index 74% copy from src/Daemon/DBus/zone/queryMasquerade.cpp copy to src/Daemon/DBus/disablePanicMode.cpp index 8610fb3..fbe90fb 100644 --- a/src/Daemon/DBus/zone/queryMasquerade.cpp +++ b/src/Daemon/DBus/disablePanicMode.cpp @@ -22,20 +22,18 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(queryMasquerade) + FIREWALLD_DBUS_METHOD(disablePanicMode) { - result.setTypeSignature("(b)"); + result.setTypeSignature("()");
- UString zone_name; - - parameters.get(0, zone_name); - - try { - Zone* zone = _fw.getZone(zone_name); - result = zone->queryMasquerade(); - } - catch(...) { - result = false; + if (panicMode()) { + try { + setPanicMode(false); + } catch(...) { + result = DBusError("COMMAND_FAILED", "Unable to disable panic mode"); + } + } else { + result = DBusError("NOT_ENABLED", "Panic mode not enabled"); }
return; diff --git a/src/Daemon/DBus/zone/queryMasquerade.cpp b/src/Daemon/DBus/enablePanicMode.cpp similarity index 73% copy from src/Daemon/DBus/zone/queryMasquerade.cpp copy to src/Daemon/DBus/enablePanicMode.cpp index 8610fb3..a7e37df 100644 --- a/src/Daemon/DBus/zone/queryMasquerade.cpp +++ b/src/Daemon/DBus/enablePanicMode.cpp @@ -22,20 +22,18 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(queryMasquerade) + FIREWALLD_DBUS_METHOD(enablePanicMode) { - result.setTypeSignature("(b)"); + result.setTypeSignature("()");
- UString zone_name; - - parameters.get(0, zone_name); - - try { - Zone* zone = _fw.getZone(zone_name); - result = zone->queryMasquerade(); - } - catch(...) { - result = false; + if (!panicMode()) { + try { + setPanicMode(true); + } catch(...) { + result = DBusError("COMMAND_FAILED", "Failed to enable panic mode"); + } + } else { + result = DBusError("ALREADY_ENABLED", "Panic mode already enabled"); }
return; diff --git a/src/Daemon/DBus/getDefaultZone.cpp b/src/Daemon/DBus/getIcmpTypeSettings.cpp similarity index 85% copy from src/Daemon/DBus/getDefaultZone.cpp copy to src/Daemon/DBus/getIcmpTypeSettings.cpp index 3ab2483..b584d54 100644 --- a/src/Daemon/DBus/getDefaultZone.cpp +++ b/src/Daemon/DBus/getIcmpTypeSettings.cpp @@ -22,9 +22,13 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getDefaultZone) + FIREWALLD_DBUS_METHOD(getIcmpTypeSettings) { - result.setTypeSignature("(s)"); - result = _fw.getDefaultZoneName(); + result.setTypeSignature("(sssas)"); + + UString icmptype; + parameters.get(0, icmptype); + + return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/getDefaultZone.cpp b/src/Daemon/DBus/getServiceSettings.cpp similarity index 84% copy from src/Daemon/DBus/getDefaultZone.cpp copy to src/Daemon/DBus/getServiceSettings.cpp index 3ab2483..2c809a2 100644 --- a/src/Daemon/DBus/getDefaultZone.cpp +++ b/src/Daemon/DBus/getServiceSettings.cpp @@ -22,9 +22,13 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getDefaultZone) + FIREWALLD_DBUS_METHOD(getServiceSettings) { - result.setTypeSignature("(s)"); - result = _fw.getDefaultZoneName(); + result.setTypeSignature("(sssa(ss)asa{ss})"); + + UString service; + parameters.get(0, service); + + return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/getDefaultZone.cpp b/src/Daemon/DBus/getZoneSettings.cpp similarity index 84% copy from src/Daemon/DBus/getDefaultZone.cpp copy to src/Daemon/DBus/getZoneSettings.cpp index 3ab2483..ef616b0 100644 --- a/src/Daemon/DBus/getDefaultZone.cpp +++ b/src/Daemon/DBus/getZoneSettings.cpp @@ -22,9 +22,13 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getDefaultZone) + FIREWALLD_DBUS_METHOD(getZoneSettings) { - result.setTypeSignature("(s)"); - result = _fw.getDefaultZoneName(); + result.setTypeSignature("(sssbsasa(ss)asba(ssss)asasas)"); + + UString zone; + parameters.get(0, zone); + + return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/zone/getRichRules.cpp b/src/Daemon/DBus/listIcmpTypes.cpp similarity index 80% copy from src/Daemon/DBus/zone/getRichRules.cpp copy to src/Daemon/DBus/listIcmpTypes.cpp index 6752987..45a1c07 100644 --- a/src/Daemon/DBus/zone/getRichRules.cpp +++ b/src/Daemon/DBus/listIcmpTypes.cpp @@ -22,21 +22,17 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getRichRules) + FIREWALLD_DBUS_METHOD(listIcmpTypes) { result.setTypeSignature("(as)"); + UStringVector icmptypes;
- UString zone_name; - - parameters.get(0, zone_name); - - try { - result = UStringVector(); - } - catch(...) { - result = UStringVector(); + for (auto const& map_entry : definedICMPTypes()) { + const UString& icmptype = map_entry.first; + icmptypes.push_back(icmptype); }
+ result = icmptypes; return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/zone/getZones.cpp b/src/Daemon/DBus/listServices.cpp similarity index 79% copy from src/Daemon/DBus/zone/getZones.cpp copy to src/Daemon/DBus/listServices.cpp index dd23319..eeebc41 100644 --- a/src/Daemon/DBus/zone/getZones.cpp +++ b/src/Daemon/DBus/listServices.cpp @@ -22,17 +22,17 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getZones) + FIREWALLD_DBUS_METHOD(listServices) { result.setTypeSignature("(as)"); - UStringVector zone_names; + UStringVector service_names;
- for (auto const& map_entry : definedZones()) { - const UString& zone_name = map_entry.first; - zone_names.push_back(zone_name); + for (auto const& map_entry : definedServices()) { + const UString& service_name = map_entry.first; + service_names.push_back(service_name); }
- result = zone_names; + result = service_names; return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/methods.decl b/src/Daemon/DBus/methods.decl index b0f663f..0643775 100644 --- a/src/Daemon/DBus/methods.decl +++ b/src/Daemon/DBus/methods.decl @@ -1,2 +1,13 @@ +FIREWALLD_DBUS_METHOD(completeReload); +FIREWALLD_DBUS_METHOD(disablePanicMode); +FIREWALLD_DBUS_METHOD(enablePanicMode); FIREWALLD_DBUS_METHOD(getDefaultZone); +FIREWALLD_DBUS_METHOD(listIcmpTypes); +FIREWALLD_DBUS_METHOD(listServices); +FIREWALLD_DBUS_METHOD(queryPanicMode); +FIREWALLD_DBUS_METHOD(setDefaultZone); + FIREWALLD_DBUS_METHOD(reload); +FIREWALLD_DBUS_METHOD(getIcmpTypeSettings); +FIREWALLD_DBUS_METHOD(getServiceSettings); +FIREWALLD_DBUS_METHOD(getZoneSettings); diff --git a/src/Daemon/DBus/getDefaultZone.cpp b/src/Daemon/DBus/queryPanicMode.cpp similarity index 88% copy from src/Daemon/DBus/getDefaultZone.cpp copy to src/Daemon/DBus/queryPanicMode.cpp index 3ab2483..0e5abdb 100644 --- a/src/Daemon/DBus/getDefaultZone.cpp +++ b/src/Daemon/DBus/queryPanicMode.cpp @@ -22,9 +22,10 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(getDefaultZone) + FIREWALLD_DBUS_METHOD(queryPanicMode) { - result.setTypeSignature("(s)"); - result = _fw.getDefaultZoneName(); + result.setTypeSignature("(b)"); + result = panicMode(); + return; } } /* namespace firewalld */ diff --git a/src/Daemon/DBus/zone/addIcmpBlock.cpp b/src/Daemon/DBus/setDefaultZone.cpp similarity index 72% copy from src/Daemon/DBus/zone/addIcmpBlock.cpp copy to src/Daemon/DBus/setDefaultZone.cpp index 8e0a542..663f32a 100644 --- a/src/Daemon/DBus/zone/addIcmpBlock.cpp +++ b/src/Daemon/DBus/setDefaultZone.cpp @@ -22,25 +22,21 @@
namespace firewalld { - FIREWALLD_DBUS_METHOD(addIcmpBlock) + FIREWALLD_DBUS_METHOD(setDefaultZone) { - result.setTypeSignature("(s)"); + result.setTypeSignature("()");
UString zone_name; - UString icmp_type; - int timeout; - parameters.get(0, zone_name); - parameters.get(1, icmp_type); - parameters.get(2, timeout);
- try { - Zone* zone = _fw.getZone(zone_name); - zone->addICMPBlock(icmp_type); - result = UString("success"); - } - catch(...) { - result = UString("failure"); + if (_fw.getDefaultZoneName() != zone_name) { + try { + _fw.setDefaultZoneName(zone_name); + } catch(...) { + result = DBusError("COMMAND_FAILED", "Unable to set the default zone"); + } + } else { + result = DBusError("ZONE_ALREADY_SET", "Zone is already the default zone"); }
return;