Possible values:
- ``none`` – No signal is emitted.
-- ``running`` – There are two possible signals emitted:
+- ``running`` – Two signals may be emitted:
- - ``started`` when the server is started and all configured zones (including
+ - ``started`` – Emitted when the server is started and all configured zones (including
catalog zones and their members) are loaded or successfully bootstrapped.
- - ``stopped`` when the server shutdown sequence is initiated.
-- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated;
- the signal parameters are `zone name` and `zone SOA serial`.
-- ``external-verify`` - The signal ``external_verify`` is emitted when a zone is awaiting
- external validation before applying the changes; the signal parameter is `zone name`.
-- ``keys-updated`` - The signal ``keys_updated`` is emitted when a DNSSEC key set
- is updated; the signal parameter is `zone name`.
-- ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if there is
- a ready KSK present when the zone is signed; the signal parameters are
- `zone name`, `KSK keytag`, and `KSK KASP id`.
+ - ``stopped`` – Emitted when the server shutdown sequence is initiated.
+- ``zone-updated`` – The signal ``zone_updated`` is emitted when a zone has been updated.
+ Parameters: **zone** name and zone SOA **serial**.
+- ``external-verify`` – The signal ``external_verify`` is emitted when a zone is awaiting
+ external validation before applying changes.
+ Parameters: **zone** name and new zone SOA **serial**.
+- ``keys-updated`` – The signal ``keys_updated`` is emitted when a DNSSEC key set
+ is updated.
+ Parameters: **zone** name.
+- ``ksk-submission`` – The signal ``zone_ksk_submission`` is emitted if a ready
+ KSK is present when the zone is signed.
+ Parameters: **zone** name, KSK **keytag**, and KSK KASP **id**.
- ``dnssec-invalid`` – The signal ``zone_dnssec_invalid`` is emitted when DNSSEC
- validation fails, or when ZONEMD verification fails; the signal parameters
- are `zone name`, and `remaining seconds` until an RRSIG expires.
+ validation fails or when ZONEMD verification fails.
+ Parameters: **zone** name and remaining **seconds** until an RRSIG expires.
.. NOTE::
This function requires systemd version at least 221 or libdbus.
$knotd_interface->connect_to_signal('external_verify', sub
{
- my ($zone) = @_;
- print "Awaiting external validation for zone=$zone\n";
+ my ($zone, $serial) = @_;
+ print "Awaiting external validation for zone=$zone serial=$serial\n";
});
$knotd_interface->connect_to_signal('keys_updated', sub
print("Updated zone=%s to serial=%d" % (zone, serial))
def sig_external(sender, path, interface, signal, args):
- (zone) = args
- print("Awaiting external validation for zone=%s" % (zone))
+ (zone, serial) = args
+ print("Awaiting external validation for zone=%s serial=%u" % (zone, serial))
def sig_keys_upd(sender, path, interface, signal, args):
(zone) = args
echo "Updated zone=${2} to serial=${3}"
;;
external_verify)
- echo "Awaiting external validation for zone=${2}"
+ echo "Awaiting external validation for zone=${2} serial=${3}"
;;
zone_dnssec_invalid)
echo "Invalid DNSSEC for zone=${2} remaining=${3} seconds"
#endif // ENABLE_DBUS
}
-void dbus_emit_external_verify(const knot_dname_t *zone_name)
+void dbus_emit_external_verify(const knot_dname_t *zone_name, uint32_t serial)
{
#if ENABLE_DBUS
knot_dname_txt_storage_t buff;
char *zone_str = knot_dname_to_str(buff, zone_name, sizeof(buff));
if (zone_str != NULL) {
- emit_event(KNOT_BUS_EVENT_EXTERNAL, "s",
- VALUE_OF(zone_str));
+ emit_event(KNOT_BUS_EVENT_EXTERNAL, "su", VALUE_OF(zone_str),
+ VALUE_OF(serial));
}
#endif // ENABLE_DBUS
}
* \brief Emit event signal that external verify shall take place.
*
* \param zone_name Zone name.
+ * \param serial Candidate zone SOA serial.
*/
-void dbus_emit_external_verify(const knot_dname_t *zone_name);
+void dbus_emit_external_verify(const knot_dname_t *zone_name, uint32_t serial);
/*!
* \brief Emit event signal for updated DNSSEC key set.
log_zone_notice(update->zone->name, "waiting for external validation");
if (conf->cache.srv_dbus_event & DBUS_EVENT_EXTERNAL) {
- dbus_emit_external_verify(update->zone->name);
+ dbus_emit_external_verify(update->zone->name, zone_contents_serial(update->new_cont));
}
val = conf_id_get(conf, C_EXTERNAL, C_TIMEOUT, ev_id);