gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 02/02: ZONEMASTER: Merge monitor into zonemaster process


From: gnunet
Subject: [gnunet] 02/02: ZONEMASTER: Merge monitor into zonemaster process
Date: Tue, 18 Oct 2022 08:30:38 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

commit 37f81821bc98f2342185a4bec3de044000be3596
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Tue Oct 18 15:30:28 2022 +0900

    ZONEMASTER: Merge monitor into zonemaster process
---
 po/POTFILES.in                                     |   1 +
 po/de.po                                           | 109 ++--
 po/es.po                                           | 118 ++--
 po/fr.po                                           | 109 ++--
 po/it.po                                           | 109 ++--
 po/sr.po                                           | 117 ++--
 po/sv.po                                           | 109 ++--
 po/vi.po                                           | 109 ++--
 po/zh_CN.po                                        | 109 ++--
 src/gnsrecord/gnsrecord_misc.c                     |  25 +-
 src/zonemaster/Makefile.am                         |  16 +-
 src/zonemaster/gnunet-service-zonemaster-monitor.c | 612 ---------------------
 src/zonemaster/gnunet-service-zonemaster.c         | 283 +++++++++-
 src/zonemaster/zonemaster.conf.in                  |  18 -
 14 files changed, 753 insertions(+), 1091 deletions(-)

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 80d8c1082..116033d20 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -249,6 +249,7 @@ src/namestore/gnunet-service-namestore.c
 src/namestore/gnunet-zoneimport.c
 src/namestore/namestore_api.c
 src/namestore/namestore_api_monitor.c
+src/namestore/plugin_namestore_flat.c
 src/namestore/plugin_namestore_postgres.c
 src/namestore/plugin_namestore_sqlite.c
 src/namestore/plugin_rest_namestore.c
diff --git a/po/de.po b/po/de.po
index a548cf3b2..d5bc9a3ad 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2015-03-08 16:16+0100\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -1884,17 +1884,17 @@ msgstr "`%s' an `%s' schlug fehl bei %s:%d mit dem 
Fehler: %s\n"
 msgid "Mysql database running\n"
 msgstr "MySQL-Datenbank läuft\n"
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr "PostgreSQL-Datenbank läuft\n"
 
@@ -1908,7 +1908,7 @@ msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3763,32 +3763,28 @@ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Beschädigte Antwort auf `%s' von Knoten `%s' empfangen.\n"
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Unbekannte Anfrageart %d empfangen bei %s:%d\n"
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Keine Schlüsselwörter angegeben!\n"
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -3979,13 +3975,15 @@ msgid "Properly base32-encoded public key required"
 msgstr "# Bytes empfangen über TCP"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 #, fuzzy
 msgid "Failed to connect to the namecache!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Verbindung zu gnunetd konnte nicht hergestellt werden.\n"
@@ -4811,25 +4809,25 @@ msgstr "Sqlite-Datenbank läuft\n"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "GNUnet Konfiguration"
@@ -5137,22 +5135,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Fehler beim Anlegen des Tunnels\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "=\tFehler beim Lesen des Verzeichnisses.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "Verbindung fehlgeschlagen: %s\n"
@@ -5182,7 +5175,7 @@ msgstr "Es konnte keine Verbindung mit gnunetd 
hergestellt werden.\n"
 msgid "SQlite database running\n"
 msgstr "Sqlite-Datenbank läuft\n"
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 #, fuzzy
 msgid "Namestore REST API initialized\n"
 msgstr " Verbindung fehlgeschlagen\n"
@@ -5762,43 +5755,43 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5885,7 +5878,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 #, fuzzy
 msgid "OpenID Connect REST API initialized\n"
 msgstr " Verbindung fehlgeschlagen\n"
@@ -6687,17 +6680,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
@@ -6897,18 +6890,18 @@ msgstr "# HELLO-Meldungen empfangen"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -8010,7 +8003,7 @@ msgstr "GNUnet Konfiguration"
 msgid "Could not access configuration file `%s'\n"
 msgstr "Konfigurationsdatei `%s' konnte nicht geparst werden.\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9153,12 +9146,22 @@ msgstr "Dienst wird über UDP angeboten"
 msgid "Setup tunnels via VPN."
 msgstr "Tunnel über VPN einrichten."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr ""
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #, fuzzy
 #~ msgid "Flat file database running\n"
 #~ msgstr "Sqlite-Datenbank läuft\n"
diff --git a/po/es.po b/po/es.po
index 402370081..0b5d9ac39 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.9.5a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2013-02-23 17:50+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -1960,16 +1960,16 @@ msgstr "«%s» para «%s» falló en %s: %d con error: %s\n"
 msgid "Mysql database running\n"
 msgstr "Base de datos Mysql ejecutándose\n"
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 msgid "Failed to drop table from database.\n"
 msgstr "Se produjo un fallo al borrar una tabla de la base de datos.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr "Base de datos Postgres ejecutándose\n"
 
@@ -1983,7 +1983,7 @@ msgstr "«%s» falló en %s:%u con el error: %s"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3888,37 +3888,30 @@ msgstr "Se produjo un fallo al procesar la petición 
DNS.  Omitiendo.\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr "El ATS devolvió resultados para %u direcciones\n"
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr "No se puede procesar la petición DNS de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Recibida petición DNS mal formada de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Recibida petición DNS no soportada de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "¡Ninguna palabra clave especificada!\n"
 
-#: src/gns/gnunet-dns2gns.c:995
+#: src/gns/gnunet-dns2gns.c:1001
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr "IP del resolvedor recursivo DNS a usar (requerido)"
 
-#: src/gns/gnunet-dns2gns.c:1001
-#, fuzzy
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
-msgstr ""
-"Puerto UDP en el que escuchar para peticiones DNS entrantes; predeterminado: "
-"53"
-
 #: src/gns/gnunet-dns2gns.c:1018
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr "Pasarela GNUnet DNS-a-GNS (un servidor DNS)"
@@ -4109,13 +4102,15 @@ msgid "Properly base32-encoded public key required"
 msgstr "Tipo requerido\n"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 #, fuzzy
 msgid "Failed to connect to the namecache!\n"
 msgstr "¡Se produjo un fallo al conectar con el almacén de nombres!\n"
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 msgid "Could not connect to DHT!\n"
 msgstr "¡No se pudo conectar a la DHT!\n"
 
@@ -4982,25 +4977,25 @@ msgstr "Base de datos sqlite ejecutándose\n"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, fuzzy, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr "Argumentos superfluos (ignorados).\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "Herramienta de manipulación de zona de GNUnet"
@@ -5317,22 +5312,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "nombre de la sección a la que acceder"
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, fuzzy, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr "Se produjo un fallo al crear el espacio de nombres «%s»\n"
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Error creando el túnel\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "Error interno escaneando directorio.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "«gnunet-ecc» falló"
@@ -5362,7 +5352,7 @@ msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
 msgid "SQlite database running\n"
 msgstr "Base de datos sqlite ejecutándose\n"
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 #, fuzzy
 msgid "Namestore REST API initialized\n"
 msgstr "Conexión fallida\n"
@@ -5950,43 +5940,43 @@ msgid "Daemon to run to perform IP protocol translation 
to GNUnet"
 msgstr ""
 "Demonio a ejecutar para realizar la traducción de protocolo IP a GNUnet"
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -6074,7 +6064,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 #, fuzzy
 msgid "OpenID Connect REST API initialized\n"
 msgstr "Conexión fallida\n"
@@ -6903,17 +6893,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr "El fichero de topología %s no fue encontrado\n"
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr "El fichero de topología %s no tiene datos\n"
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "El fichero de topología %s no puede ser leido\n"
@@ -7140,9 +7130,9 @@ msgstr "# mensajes «HELLO» recibidos"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
@@ -7150,12 +7140,12 @@ msgstr ""
 "El servicio de transporte carece de opciones de configuración de clave.  "
 "Saliendo.\n"
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 #, fuzzy
 msgid "GNUnet TCP communicator"
 msgstr "Configurador Gtk de GNUnet"
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 #, fuzzy
 msgid "GNUnet UDP communicator"
 msgstr "Configurador Gtk de GNUnet"
@@ -8321,7 +8311,7 @@ msgstr "Se produjo un fallo al borrar el fichero de 
configuración %s\n"
 msgid "Could not access configuration file `%s'\n"
 msgstr "No se pudo acceder al fichero de configuración «%s»\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9489,11 +9479,27 @@ msgstr "el servicio es ofrecido vía UDP"
 msgid "Setup tunnels via VPN."
 msgstr "Configurar túneles vía VPN."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, fuzzy, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "Se produjo un fallo al crear el espacio de nombres «%s»\n"
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 msgid "Failed to connect to the namestore!\n"
 msgstr "¡Se produjo un fallo al conectar con el almacén de nombres!\n"
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+#~ msgstr ""
+#~ "Puerto UDP en el que escuchar para peticiones DNS entrantes; "
+#~ "predeterminado: 53"
+
 #, fuzzy
 #~ msgid "Flat file database running\n"
 #~ msgstr "Base de datos de plantilla ejecutándose\n"
diff --git a/po/fr.po b/po/fr.po
index fc4a8dae6..2c6529119 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2021-11-21 00:53+0100\n"
 "Last-Translator: Stéphane  Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -1824,16 +1824,16 @@ msgstr ""
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1847,7 +1847,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3601,31 +3601,27 @@ msgstr "Échec du démarrage de %s\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -3811,12 +3807,14 @@ msgid "Properly base32-encoded public key required"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4621,25 +4619,25 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Échec du démarrage de %s\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 msgid "GNUnet namestore database manipulation tool"
 msgstr ""
 
@@ -4941,22 +4939,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Erreur de création du tunnel\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "Erreur de création du tunnel\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "pa_stream_new() échoué : %s\n"
@@ -4985,7 +4978,7 @@ msgstr "Échec du démarrage de %s\n"
 msgid "SQlite database running\n"
 msgstr ""
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 msgid "Namestore REST API initialized\n"
 msgstr ""
 
@@ -5535,43 +5528,43 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5658,7 +5651,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 msgid "OpenID Connect REST API initialized\n"
 msgstr ""
 
@@ -6439,17 +6432,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
@@ -6645,18 +6638,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7713,7 +7706,7 @@ msgstr ""
 msgid "Could not access configuration file `%s'\n"
 msgstr ""
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -8828,11 +8821,21 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr "Configurer des tunnels via VPN."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr ""
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #, fuzzy, c-format
 #~ msgid "Invalid DID `%s'\n"
 #~ msgstr "URI invalide « %s »\n"
diff --git a/po/it.po b/po/it.po
index 675431afe..b8eb9b9fa 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2019-10-16 11:00+0200\n"
 "Last-Translator: Sebastiano Pistore <sebastianopistore.info@protonmail.ch>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -1832,16 +1832,16 @@ msgstr ""
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1855,7 +1855,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3624,31 +3624,27 @@ msgstr "Generazione statistiche fallita\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -3835,12 +3831,14 @@ msgid "Properly base32-encoded public key required"
 msgstr "# messaggi PONG ricevuti"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4646,25 +4644,25 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Impossibile avviare il servizio ' %s'\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 msgid "GNUnet namestore database manipulation tool"
 msgstr ""
 
@@ -4967,22 +4965,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Errore durante la scrittura di `%s'.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "Errore interno."
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 msgid "Store failed"
 msgstr ""
 
@@ -5010,7 +5003,7 @@ msgstr "Impossibile avviare il servizio ' %s'\n"
 msgid "SQlite database running\n"
 msgstr ""
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 msgid "Namestore REST API initialized\n"
 msgstr ""
 
@@ -5561,43 +5554,43 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5684,7 +5677,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 msgid "OpenID Connect REST API initialized\n"
 msgstr ""
 
@@ -6468,17 +6461,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
@@ -6674,18 +6667,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7764,7 +7757,7 @@ msgstr ""
 msgid "Could not access configuration file `%s'\n"
 msgstr ""
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -8884,11 +8877,21 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr ""
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #~ msgid "# items stored"
 #~ msgstr "# elementi memorizzati"
 
diff --git a/po/sr.po b/po/sr.po
index 8bc3db2a8..5a259bd46 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2020-10-23 18:39+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -1903,16 +1903,16 @@ msgstr "„%s“ за „%s“ није успело на %s:%d са грешк
 msgid "Mysql database running\n"
 msgstr "База података Мајскула ради\n"
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 msgid "Failed to drop table from database.\n"
 msgstr "Нисам успео да избацим табелу из базе података.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr "База података Постгреса ради\n"
 
@@ -1926,7 +1926,7 @@ msgstr "„%s“ није успело на %s:%u са грешком: %s"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3785,35 +3785,29 @@ msgstr "Нисам успео да обрадим ДНС одговор\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr "АТС је вратио резултате за %u адресе\n"
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr "Не могу да обрадим ДНС захтев од „%s“\n"
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Примих лош ДНС захтев од „%s“\n"
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Примих неподржан ДНС захтев од „%s“\n"
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 msgid "No DNS server specified!\n"
 msgstr "Није наведен ДНС сервер!\n"
 
-#: src/gns/gnunet-dns2gns.c:995
+#: src/gns/gnunet-dns2gns.c:1001
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr "ИП дубинског ДНС решавача за коришћење (потребно)"
 
-#: src/gns/gnunet-dns2gns.c:1001
-#, fuzzy
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
-msgstr ""
-"УДП прикључник на коме ће ослушкивати за долазним ДНС захтевима; основно: 53"
-
 #: src/gns/gnunet-dns2gns.c:1018
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr "Посредник ДНС-до-ГНС ГНУнет-а (ДНС сервер)"
@@ -4000,12 +3994,14 @@ msgid "Properly base32-encoded public key required"
 msgstr "исправан јавни кључ се захтева"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 msgid "Failed to connect to the namecache!\n"
 msgstr "Нисам успео да се повежем са оставом назива!\n"
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 msgid "Could not connect to DHT!\n"
 msgstr "Не могу да се повежем на ДХТ!\n"
 
@@ -4836,25 +4832,25 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Нисам успео да покренем „%s“ на „%s“\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "Алат манипуслисања ГНУнет зоном"
@@ -5163,22 +5159,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "назив егоа који контролише зону"
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr "Нисам успео да реплицирам блок у остави назива: %s\n"
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Грешка стварања тунела\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "Унутрашња грешка скенирања директоријума.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "# Неуспеси „СТАВИ“ смештаја података"
@@ -5208,7 +5199,7 @@ msgstr "Нисам успео да покренем „%s“ на „%s“\n"
 msgid "SQlite database running\n"
 msgstr "База података Скулајта ради\n"
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 #, fuzzy
 msgid "Namestore REST API initialized\n"
 msgstr "Меш је покренут\n"
@@ -5784,43 +5775,43 @@ msgstr "Нисам успео да се повежем са „%s“ услуг
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr "Демон за покретање за обављање превода ИП протокола у ГНУнет"
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5907,7 +5898,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 msgid "OpenID Connect REST API initialized\n"
 msgstr ""
 
@@ -6747,17 +6738,17 @@ msgstr ""
 "Број ивица које се могу успоставити приликом додавања новог чвора у "
 "слободном размештају лествице не може бити већи од %u.  Дато је „%s = %llu“"
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr "Нисам нашао датотеку размештаја „%s“\n"
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr "Датотека размештаја „%s“ нема података\n"
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "Не могу да прочитам датотеку размештаја „%s“\n"
@@ -6970,18 +6961,18 @@ msgstr "# „HELLO“ поруке су примљене"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Услузи преноса недостају поставке подешавања кључа. Излазим.\n"
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -8118,7 +8109,7 @@ msgstr "Лоше подешавање, излазим ...\n"
 msgid "Could not access configuration file `%s'\n"
 msgstr "Не могу да приступим датотеци подешавања „%s“\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9266,11 +9257,27 @@ msgstr "услуга се нуди путем УДП-ом"
 msgid "Setup tunnels via VPN."
 msgstr "Поставља тунеле путем ВПН-а."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "Нисам успео да реплицирам блок у остави назива: %s\n"
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 msgid "Failed to connect to the namestore!\n"
 msgstr "Нисам успео да се повежем са смештајем назива!\n"
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
+#, fuzzy
+#~ msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+#~ msgstr ""
+#~ "УДП прикључник на коме ће ослушкивати за долазним ДНС захтевима; основно: "
+#~ "53"
+
 #, fuzzy
 #~ msgid "Flat file database running\n"
 #~ msgstr "База података шаблона ради\n"
diff --git a/po/sv.po b/po/sv.po
index 3c18bba4e..b628af97a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -1915,17 +1915,17 @@ msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med 
fel: %s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1939,7 +1939,7 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, fuzzy, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3784,32 +3784,28 @@ msgstr "Misslyckades att skicka HTTP-begäran till värd 
\"%s\": %s\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, fuzzy, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Mottog ogiltig \"%s\" begäran (storlek %d)\n"
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Mottog okänd typ av begäran %d vid %s:%d\n"
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Inga nyckelord angivna!\n"
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -4000,13 +3996,15 @@ msgid "Properly base32-encoded public key required"
 msgstr "Ogiltigt argument: \"%s\"\n"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 #, fuzzy
 msgid "Failed to connect to the namecache!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Kunde inte ansluta till gnunetd.\n"
@@ -4829,25 +4827,25 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Fel vid %s:%d.\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, fuzzy, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr "Onödiga argument (ignorerade).\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "GNUnet-konfiguration"
@@ -5166,22 +5164,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "Visa värde av alternativet"
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, fuzzy, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Klar med skapandet av värdnyckel.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "=\tFel vid läsning av katalog.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "gnunet-update misslyckades!"
@@ -5210,7 +5203,7 @@ msgstr "Fel vid %s:%d.\n"
 msgid "SQlite database running\n"
 msgstr ""
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 #, fuzzy
 msgid "Namestore REST API initialized\n"
 msgstr " Anslutning misslyckades\n"
@@ -5794,43 +5787,43 @@ msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5918,7 +5911,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 #, fuzzy
 msgid "OpenID Connect REST API initialized\n"
 msgstr " Anslutning misslyckades\n"
@@ -6731,17 +6724,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, fuzzy, c-format
 msgid "Topology file %s not found\n"
 msgstr "\"%s\" misslyckades: tabell hittades inte!\n"
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
@@ -6946,19 +6939,19 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet-konfiguration"
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -8102,7 +8095,7 @@ msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 msgid "Could not access configuration file `%s'\n"
 msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9242,12 +9235,22 @@ msgstr "# byte mottagna via UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, fuzzy, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #, fuzzy, c-format
 #~ msgid "Invalid DID `%s'\n"
 #~ msgstr "Ogiltiga argument: "
diff --git a/po/vi.po b/po/vi.po
index 0dae14722..7c335d868 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -1933,19 +1933,19 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr ""
 "\n"
 "Không nhận được đáp ứng từ gnunetd.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1959,7 +1959,7 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3830,32 +3830,28 @@ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Chưa ghi rõ từ khoá.\n"
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -4046,13 +4042,15 @@ msgid "Properly base32-encoded public key required"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 #, fuzzy
 msgid "Failed to connect to the namecache!\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Không thể kết nối tới %s:%u: %s\n"
@@ -4890,25 +4888,25 @@ msgstr "kho dữ liệu sqlite"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Lỗi chạy %s: %s %d\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "Cấu hình GNUnet"
@@ -5220,22 +5218,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, fuzzy, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "Hoàn thành tạo khoá.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "=\tLỗi đọc thư mục.\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "Kho dữ liệu đầy.\n"
@@ -5265,7 +5258,7 @@ msgstr "Lỗi chạy %s: %s %d\n"
 msgid "SQlite database running\n"
 msgstr "kho dữ liệu sqlite"
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 #, fuzzy
 msgid "Namestore REST API initialized\n"
 msgstr "Lỗi sơ khởi lõi.\n"
@@ -5850,43 +5843,43 @@ msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5974,7 +5967,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 #, fuzzy
 msgid "OpenID Connect REST API initialized\n"
 msgstr "Lỗi sơ khởi lõi.\n"
@@ -6786,17 +6779,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, fuzzy, c-format
 msgid "Topology file %s not found\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, fuzzy, c-format
 msgid "Topology file %s has no data\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, fuzzy, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
@@ -7007,19 +7000,19 @@ msgstr "# các thông báo PONG đã mật mã được nhận"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Lưu cấu hình ngay bây giờ không?"
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -8157,7 +8150,7 @@ msgstr "Không thể lưu tập tin cấu hình « %s »:"
 msgid "Could not access configuration file `%s'\n"
 msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9300,12 +9293,22 @@ msgstr "# các byte đã nhận qua UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, fuzzy, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #, fuzzy
 #~ msgid "Flat file database running\n"
 #~ msgstr "kho dữ liệu sqlite"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 21f3ee94c..fa164ddf7 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2022-10-01 22:27+0900\n"
+"POT-Creation-Date: 2022-10-16 18:47+0900\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -1860,17 +1860,17 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:284
-#: src/datastore/plugin_datastore_postgres.c:897
+#: src/datastore/plugin_datastore_postgres.c:273
+#: src/datastore/plugin_datastore_postgres.c:886
 msgid "Postgresql exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:858
+#: src/datastore/plugin_datastore_postgres.c:847
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "发送消息失败。\n"
 
-#: src/datastore/plugin_datastore_postgres.c:956
+#: src/datastore/plugin_datastore_postgres.c:945
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1884,7 +1884,7 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 
 #: src/datastore/plugin_datastore_sqlite.c:310
 #: src/namecache/plugin_namecache_sqlite.c:180
-#: src/namestore/plugin_namestore_sqlite.c:869
+#: src/namestore/plugin_namestore_sqlite.c:868
 #: src/peerstore/plugin_peerstore_sqlite.c:540
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
@@ -3668,31 +3668,27 @@ msgstr "打开日志文件“%s”失败:%s\n"
 msgid "VPN returned empty result for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:655
+#: src/gns/gnunet-dns2gns.c:656
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:671
+#: src/gns/gnunet-dns2gns.c:672
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:679
+#: src/gns/gnunet-dns2gns.c:680
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:840
+#: src/gns/gnunet-dns2gns.c:841
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:995
-msgid "IP of recursive DNS resolver to use (required)"
-msgstr ""
-
 #: src/gns/gnunet-dns2gns.c:1001
-msgid "UDP port to listen on for inbound DNS requests; default: 2853"
+msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
 #: src/gns/gnunet-dns2gns.c:1018
@@ -3881,13 +3877,15 @@ msgid "Properly base32-encoded public key required"
 msgstr "“%s”的参数无效。\n"
 
 #: src/gns/gnunet-service-gns.c:537
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:542
+#: src/zonemaster/gnunet-service-zonemaster.c:982
 #, fuzzy
 msgid "Failed to connect to the namecache!\n"
 msgstr "初始化“%s”服务失败。\n"
 
 #: src/gns/gnunet-service-gns.c:556
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:402
-#: src/zonemaster/gnunet-service-zonemaster.c:853
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:572
+#: src/zonemaster/gnunet-service-zonemaster.c:1021
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "无法连接到 %s:%u:%s\n"
@@ -4703,25 +4701,25 @@ msgstr "sqlite 数据仓库"
 msgid "Failed to setup database at `%s'\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/namestore/gnunet-namestore-dbtool.c:87
+#: src/namestore/gnunet-namestore-dbtool.c:86
 #: src/namestore/gnunet-namestore.c:1348
 #, c-format
 msgid "Superfluous command line arguments (starting with `%s') ignored\n"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:154
+#: src/namestore/gnunet-namestore-dbtool.c:153
 msgid "initialize database"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:158
+#: src/namestore/gnunet-namestore-dbtool.c:157
 msgid "reset database (DANGEROUS: All existing data is lost!"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:165
+#: src/namestore/gnunet-namestore-dbtool.c:164
 msgid "the namestore plugin to work with, e.g. 'sqlite'"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-dbtool.c:179
+#: src/namestore/gnunet-namestore-dbtool.c:178
 #, fuzzy
 msgid "GNUnet namestore database manipulation tool"
 msgstr "GNUnet 配置"
@@ -5033,22 +5031,17 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-service-namestore.c:950
-#, fuzzy, c-format
-msgid "Failed to replicate block in namecache: %s\n"
-msgstr "发送消息失败。\n"
-
-#: src/namestore/gnunet-service-namestore.c:1667
+#: src/namestore/gnunet-service-namestore.c:1504
 #, fuzzy
 msgid "Error normalizing name."
 msgstr "创建用户出错"
 
-#: src/namestore/gnunet-service-namestore.c:1690
+#: src/namestore/gnunet-service-namestore.c:1522
 #, fuzzy
 msgid "Error deserializing records."
 msgstr "未知错误。\n"
 
-#: src/namestore/gnunet-service-namestore.c:1800
+#: src/namestore/gnunet-service-namestore.c:1633
 #, fuzzy
 msgid "Store failed"
 msgstr "“%s”已连接到“%s”。\n"
@@ -5078,7 +5071,7 @@ msgstr "运行 %s失败:%s %d\n"
 msgid "SQlite database running\n"
 msgstr "sqlite 数据仓库"
 
-#: src/namestore/plugin_rest_namestore.c:1109
+#: src/namestore/plugin_rest_namestore.c:1369
 msgid "Namestore REST API initialized\n"
 msgstr ""
 
@@ -5643,43 +5636,43 @@ msgstr "初始化“%s”服务失败。\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:591
+#: src/reclaim/gnunet-did.c:590
 msgid "Create a DID Document and display its DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:596
+#: src/reclaim/gnunet-did.c:595
 msgid "Get the DID Document associated with the given DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:601
+#: src/reclaim/gnunet-did.c:600
 msgid "Remove the DID"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:605
+#: src/reclaim/gnunet-did.c:604
 msgid "Replace the DID Document."
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:609
+#: src/reclaim/gnunet-did.c:608
 msgid "Show the DID for a given ego"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:613
+#: src/reclaim/gnunet-did.c:612
 msgid "Show egos with DIDs"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:619
+#: src/reclaim/gnunet-did.c:618
 msgid "The Decentralized Identity (DID)"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:625
+#: src/reclaim/gnunet-did.c:624
 msgid "The DID Document to store in GNUNET"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:630
+#: src/reclaim/gnunet-did.c:629
 msgid "The name of the EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-did.c:636
+#: src/reclaim/gnunet-did.c:635
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
@@ -5767,7 +5760,7 @@ msgstr ""
 msgid "re:claimID command line tool"
 msgstr ""
 
-#: src/reclaim/plugin_rest_openid_connect.c:3094
+#: src/reclaim/plugin_rest_openid_connect.c:3096
 msgid "OpenID Connect REST API initialized\n"
 msgstr ""
 
@@ -6571,17 +6564,17 @@ msgid ""
 "free topology cannot be more than %u.  Given `%s = %llu'"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2651
+#: src/testbed/testbed_api_topology.c:1033 src/testing/testing.c:2753
 #, c-format
 msgid "Topology file %s not found\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2659
+#: src/testbed/testbed_api_topology.c:1041 src/testing/testing.c:2761
 #, c-format
 msgid "Topology file %s has no data\n"
 msgstr ""
 
-#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2667
+#: src/testbed/testbed_api_topology.c:1049 src/testing/testing.c:2769
 #, c-format
 msgid "Topology file %s cannot be read\n"
 msgstr ""
@@ -6786,19 +6779,19 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3342
-#: src/transport/gnunet-communicator-udp.c:3867
-#: src/transport/gnunet-service-tng.c:11039
+#: src/transport/gnunet-communicator-tcp.c:3347
+#: src/transport/gnunet-communicator-udp.c:3871
+#: src/transport/gnunet-service-tng.c:11334
 #: src/transport/gnunet-service-transport.c:2622
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "立即保存配置?"
 
-#: src/transport/gnunet-communicator-tcp.c:3675
+#: src/transport/gnunet-communicator-tcp.c:3680
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:3942
+#: src/transport/gnunet-communicator-udp.c:3946
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7883,7 +7876,7 @@ msgstr "解析配置文件“%s”失败\n"
 msgid "Could not access configuration file `%s'\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/transport/transport_api2_communication.c:743
+#: src/transport/transport_api2_communication.c:752
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9009,12 +9002,22 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:378
-#: src/zonemaster/gnunet-service-zonemaster.c:815
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:249
+#: src/zonemaster/gnunet-service-zonemaster.c:364
+#, fuzzy, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "发送消息失败。\n"
+
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:529
+#: src/zonemaster/gnunet-service-zonemaster.c:969
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "初始化“%s”服务失败。\n"
 
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:550
+msgid "Namecache is disabled!\n"
+msgstr ""
+
 #, fuzzy
 #~ msgid "Flat file database running\n"
 #~ msgstr "sqlite 数据仓库"
diff --git a/src/gnsrecord/gnsrecord_misc.c b/src/gnsrecord/gnsrecord_misc.c
index 5a24a83d3..990c46bcc 100644
--- a/src/gnsrecord/gnsrecord_misc.c
+++ b/src/gnsrecord/gnsrecord_misc.c
@@ -430,10 +430,24 @@ GNUNET_GNSRECORD_normalize_record_set (const char *label,
   rd_count_tmp = 0;
   for (unsigned int i = 0; i < rd_count; i++)
   {
-    /* Ignore the tombstone. For maintenance only. Remember expiration time. */
+    /* Ignore private records for public record set */
+    if ((0 != (filter & GNUNET_GNSRECORD_FILTER_OMIT_PRIVATE)) &&
+        (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)))
+      continue;
+    /* Skip expired records */
+    if ((0 == (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) &&
+        (rd[i].expiration_time < now.abs_value_us))
+      continue;     /* record already expired, skip it */
+    /* Ignore the tombstone unless filter permits explicitly.
+     * Remember expiration time. */
     if (GNUNET_GNSRECORD_TYPE_TOMBSTONE == rd[i].record_type)
     {
       minimum_expiration.abs_value_us = rd[i].expiration_time;
+      if (0 != (filter & GNUNET_GNSRECORD_FILTER_INCLUDE_MAINTENANCE))
+      {
+        rd_public[rd_count_tmp] = rd[i];
+        rd_count_tmp++;
+      }
       continue;
     }
     /* No NICK records unless empty label */
@@ -529,15 +543,6 @@ GNUNET_GNSRECORD_normalize_record_set (const char *label,
       have_other = GNUNET_YES;
     }
 
-    /* Ignore private records for public record set */
-
-    if ((0 != (filter & GNUNET_GNSRECORD_FILTER_OMIT_PRIVATE)) &&
-        (0 != (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)))
-      continue;
-    /* Skip expired records */
-    if ((0 == (rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION)) &&
-        (rd[i].expiration_time < now.abs_value_us))
-      continue;     /* record already expired, skip it */
     rd_public[rd_count_tmp] = rd[i];
     /* Make sure critical record types are marked as such */
     if (GNUNET_YES == GNUNET_GNSRECORD_is_critical (rd[i].record_type))
diff --git a/src/zonemaster/Makefile.am b/src/zonemaster/Makefile.am
index 90b70f58a..ef82fc19b 100644
--- a/src/zonemaster/Makefile.am
+++ b/src/zonemaster/Makefile.am
@@ -16,8 +16,7 @@ if USE_COVERAGE
 endif
 
 libexec_PROGRAMS = \
- gnunet-service-zonemaster \
- gnunet-service-zonemaster-monitor
+ gnunet-service-zonemaster
 
 gnunet_service_zonemaster_SOURCES = \
  gnunet-service-zonemaster.c
@@ -30,16 +29,3 @@ gnunet_service_zonemaster_LDADD = \
   $(top_builddir)/src/namestore/libgnunetnamestore.la \
   $(top_builddir)/src/namecache/libgnunetnamecache.la \
   $(GN_LIBINTL)
-
-
-gnunet_service_zonemaster_monitor_SOURCES = \
- gnunet-service-zonemaster-monitor.c
-gnunet_service_zonemaster_monitor_LDADD = \
-  $(top_builddir)/src/dht/libgnunetdht.la \
-  $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
-  $(top_builddir)/src/identity/libgnunetidentity.la  \
-  $(top_builddir)/src/statistics/libgnunetstatistics.la \
-  $(top_builddir)/src/util/libgnunetutil.la \
-  $(top_builddir)/src/namestore/libgnunetnamestore.la \
-  $(top_builddir)/src/namecache/libgnunetnamecache.la \
-  $(GN_LIBINTL)
diff --git a/src/zonemaster/gnunet-service-zonemaster-monitor.c 
b/src/zonemaster/gnunet-service-zonemaster-monitor.c
deleted file mode 100644
index fae97cb96..000000000
--- a/src/zonemaster/gnunet-service-zonemaster-monitor.c
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2012, 2013, 2014, 2017, 2018 GNUnet e.V.
-
-     GNUnet is free software: you can redistribute it and/or modify it
-     under the terms of the GNU Affero General Public License as published
-     by the Free Software Foundation, either version 3 of the License,
-     or (at your option) any later version.
-
-     GNUnet is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     Affero General Public License for more details.
-
-     You should have received a copy of the GNU Affero General Public License
-     along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-     SPDX-License-Identifier: AGPL3.0-or-later
- */
-
-/**
- * @file zonemaster/gnunet-service-zonemaster-monitor.c
- * @brief monitor namestore changes and publish them immediately to GNUnet 
name system
- * @author Christian Grothoff
- */
-#include "platform.h"
-#include "gnunet_util_lib.h"
-#include "gnunet_dht_service.h"
-#include "gnunet_namestore_service.h"
-#include "gnunet_namecache_service.h"
-#include "gnunet_statistics_service.h"
-
-#define LOG_STRERROR_FILE(kind, syscall, \
-                          filename) GNUNET_log_from_strerror_file (kind, 
"util", \
-                                                                   syscall, \
-                                                                   filename)
-
-
-/**
- * How often should we (re)publish each record before
- * it expires?
- */
-#define PUBLISH_OPS_PER_EXPIRATION 4
-
-/**
- * How many pending DHT operations do we allow at most?
- */
-#define DHT_QUEUE_LIMIT 2000
-
-/**
- * How many events may the namestore give us before it has to wait
- * for us to keep up?
- */
-#define NAMESTORE_QUEUE_LIMIT 5
-
-/**
- * What replication level do we use for DHT PUT operations?
- */
-#define DHT_GNS_REPLICATION_LEVEL 5
-
-/**
- * Handle for DHT PUT activity triggered from the namestore monitor.
- */
-struct DhtPutActivity
-{
-  /**
-   * Kept in a DLL.
-   */
-  struct DhtPutActivity *next;
-
-  /**
-   * Kept in a DLL.
-   */
-  struct DhtPutActivity *prev;
-
-  /**
-   * Handle for the DHT PUT operation.
-   */
-  struct GNUNET_DHT_PutHandle *ph;
-
-  /**
-   * When was this PUT initiated?
-   */
-  struct GNUNET_TIME_Absolute start_date;
-};
-
-/**
- * Pending operation on the namecache.
- */
-struct CacheOperation
-{
-  /**
-   * Kept in a DLL.
-   */
-  struct CacheOperation *prev;
-
-  /**
-   * Kept in a DLL.
-   */
-  struct CacheOperation *next;
-
-  /**
-   * Handle to namecache queue.
-   */
-  struct GNUNET_NAMECACHE_QueueEntry *qe;
-
-};
-
-
-/**
- * Handle to the statistics service
- */
-static struct GNUNET_STATISTICS_Handle *statistics;
-
-/**
- * Our handle to the DHT
- */
-static struct GNUNET_DHT_Handle *dht_handle;
-
-/**
- * Our handle to the namestore service
- */
-static struct GNUNET_NAMESTORE_Handle *namestore_handle;
-
-/**
- * Handle to monitor namestore changes to instant propagation.
- */
-static struct GNUNET_NAMESTORE_ZoneMonitor *zmon;
-
-/**
- * Head of monitor activities; kept in a DLL.
- */
-static struct DhtPutActivity *ma_head;
-
-/**
- * Tail of monitor activities; kept in a DLL.
- */
-static struct DhtPutActivity *ma_tail;
-
-/**
- * Our handle to the namecache service
- */
-static struct GNUNET_NAMECACHE_Handle *namecache;
-
-/**
- * Use the namecache? Doing so creates additional cryptographic
- * operations whenever we touch a record.
- */
-static int disable_namecache;
-
-
-/**
- * Number of entries in the DHT queue #ma_head.
- */
-static unsigned int ma_queue_length;
-
-/**
- * Optimize block insertion by caching map of private keys to
- * public keys in memory?
- */
-static int cache_keys;
-
-/**
- * Head of cop DLL.
- */
-static struct CacheOperation *cop_head;
-
-/**
- * Tail of cop DLL.
- */
-static struct CacheOperation *cop_tail;
-
-
-/**
- * Task run during shutdown.
- *
- * @param cls unused
- * @param tc unused
- */
-static void
-shutdown_task (void *cls)
-{
-  struct DhtPutActivity *ma;
-  struct CacheOperation *cop;
-
-
-  (void) cls;
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Shutting down!\n");
-  while (NULL != (cop = cop_head))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Aborting incomplete namecache operation\n");
-    GNUNET_NAMECACHE_cancel (cop->qe);
-    GNUNET_CONTAINER_DLL_remove (cop_head, cop_tail, cop);
-    GNUNET_free (cop);
-  }
-  while (NULL != (ma = ma_head))
-  {
-    GNUNET_DHT_put_cancel (ma->ph);
-    ma_queue_length--;
-    GNUNET_CONTAINER_DLL_remove (ma_head,
-                                 ma_tail,
-                                 ma);
-    GNUNET_free (ma);
-  }
-  if (NULL != statistics)
-  {
-    GNUNET_STATISTICS_destroy (statistics,
-                               GNUNET_NO);
-    statistics = NULL;
-  }
-  if (NULL != zmon)
-  {
-    GNUNET_NAMESTORE_zone_monitor_stop (zmon);
-    zmon = NULL;
-  }
-  if (NULL != namestore_handle)
-  {
-    GNUNET_NAMESTORE_disconnect (namestore_handle);
-    namestore_handle = NULL;
-  }
-  if (NULL != namecache)
-  {
-    GNUNET_NAMECACHE_disconnect (namecache);
-    namecache = NULL;
-  }
-  if (NULL != dht_handle)
-  {
-    GNUNET_DHT_disconnect (dht_handle);
-    dht_handle = NULL;
-  }
-}
-
-/**
- * Cache operation complete, clean up.
- *
- * @param cls the `struct CacheOperation`
- * @param success success
- * @param emsg error messages
- */
-static void
-finish_cache_operation (void *cls, int32_t success, const char *emsg)
-{
-  struct CacheOperation *cop = cls;
-
-  if (NULL != emsg)
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                _ ("Failed to replicate block in namecache: %s\n"),
-                emsg);
-  else
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CACHE operation completed\n");
-  GNUNET_CONTAINER_DLL_remove (cop_head, cop_tail, cop);
-  GNUNET_free (cop);
-}
-
-
-/**
- * Refresh the (encrypted) block in the namecache.
- *
- * @param zone_key private key of the zone
- * @param name label for the records
- * @param rd_count number of records
- * @param rd records stored under the given @a name
- */
-static void
-refresh_block (const struct GNUNET_GNSRECORD_Block *block)
-{
-  struct CacheOperation *cop;
-
-  if (GNUNET_YES == disable_namecache)
-  {
-    GNUNET_STATISTICS_update (statistics,
-                              "Namecache updates skipped (NC disabled)",
-                              1,
-                              GNUNET_NO);
-    return;
-  }
-  GNUNET_assert (NULL != block);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Caching block in namecache\n");
-  GNUNET_STATISTICS_update (statistics,
-                            "Namecache updates pushed",
-                            1,
-                            GNUNET_NO);
-  cop = GNUNET_new (struct CacheOperation);
-  GNUNET_CONTAINER_DLL_insert (cop_head, cop_tail, cop);
-  cop->qe = GNUNET_NAMECACHE_block_cache (namecache,
-                                          block,
-                                          &finish_cache_operation,
-                                          cop);
-}
-
-
-
-/**
- * Continuation called from DHT once the PUT operation triggered
- * by a monitor is done.
- *
- * @param cls a `struct DhtPutActivity`
- */
-static void
-dht_put_monitor_continuation (void *cls)
-{
-  struct DhtPutActivity *ma = cls;
-
-  GNUNET_NAMESTORE_zone_monitor_next (zmon,
-                                      1);
-  ma_queue_length--;
-  GNUNET_CONTAINER_DLL_remove (ma_head,
-                               ma_tail,
-                               ma);
-  GNUNET_free (ma);
-}
-
-
-/**
- * Store GNS records in the DHT.
- *
- * @param key key of the zone
- * @param label label to store under
- * @param rd_public public record data
- * @param rd_public_count number of records in @a rd_public
- * @param ma handle for the PUT operation
- * @return DHT PUT handle, NULL on error
- */
-static struct GNUNET_DHT_PutHandle *
-perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey *key,
-                 const char *label,
-                 const struct GNUNET_GNSRECORD_Data *rd,
-                 unsigned int rd_count,
-                 struct GNUNET_TIME_Absolute expire,
-                 struct DhtPutActivity *ma)
-{
-  struct GNUNET_GNSRECORD_Data rd_public[rd_count];
-  struct GNUNET_GNSRECORD_Block *block;
-  struct GNUNET_GNSRECORD_Block *block_priv;
-  struct GNUNET_HashCode query;
-  struct GNUNET_TIME_Absolute expire_priv;
-  size_t block_size;
-  unsigned int rd_public_count = 0;
-  struct GNUNET_DHT_PutHandle *ret;
-  char *emsg;
-
-  if (GNUNET_OK !=
-      GNUNET_GNSRECORD_normalize_record_set (label,
-                                             rd,
-                                             rd_count,
-                                             rd_public,
-                                             &rd_public_count,
-                                             &expire_priv,
-                                             
GNUNET_GNSRECORD_FILTER_OMIT_PRIVATE,
-                                             &emsg))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "%s\n", emsg);
-    GNUNET_free (emsg);
-  }
-
-  if (cache_keys)
-    GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create2 (key,
-                                                                expire,
-                                                                label,
-                                                                rd_public,
-                                                                
rd_public_count,
-                                                                &block));
-  else
-    GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create (key,
-                                                               expire,
-                                                               label,
-                                                               rd_public,
-                                                               rd_public_count,
-                                                               &block));
-  if (NULL == block)
-  {
-    GNUNET_break (0);
-    return NULL;   /* whoops */
-  }
-  if (rd_count != rd_public_count)
-    GNUNET_assert (GNUNET_OK ==  GNUNET_GNSRECORD_block_create (key,
-                                                                expire_priv,
-                                                                label,
-                                                                rd,
-                                                                rd_count,
-                                                                &block_priv));
-  else
-    block_priv = block;
-  block_size = GNUNET_GNSRECORD_block_get_size (block);
-  GNUNET_GNSRECORD_query_from_private_key (key,
-                                           label,
-                                           &query);
-  GNUNET_STATISTICS_update (statistics,
-                            "DHT put operations initiated",
-                            1,
-                            GNUNET_NO);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Storing %u record(s) for label `%s' in DHT with expiration `%s' 
under key %s\n",
-              rd_public_count,
-              label,
-              GNUNET_STRINGS_absolute_time_to_string (expire),
-              GNUNET_h2s (&query));
-  ret = GNUNET_DHT_put (dht_handle,
-                        &query,
-                        DHT_GNS_REPLICATION_LEVEL,
-                        GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
-                        GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
-                        block_size,
-                        block,
-                        expire,
-                        &dht_put_monitor_continuation,
-                        ma);
-  refresh_block (block_priv);
-  if (block != block_priv)
-    GNUNET_free (block_priv);
-  GNUNET_free (block);
-  return ret;
-}
-
-/**
- * Process a record that was stored in the namestore
- * (invoked by the monitor).
- *
- * @param cls closure, NULL
- * @param zone private key of the zone; NULL on disconnect
- * @param label label of the records; NULL on disconnect
- * @param rd_count number of entries in @a rd array, 0 if label was deleted
- * @param rd array of records with data to store
- * @param expire expiration of this record set
- */
-static void
-handle_monitor_event (void *cls,
-                      const struct GNUNET_IDENTITY_PrivateKey *zone,
-                      const char *label,
-                      unsigned int rd_count,
-                      const struct GNUNET_GNSRECORD_Data *rd,
-                      struct GNUNET_TIME_Absolute expire)
-{
-  struct DhtPutActivity *ma;
-
-  (void) cls;
-  GNUNET_STATISTICS_update (statistics,
-                            "Namestore monitor events received",
-                            1,
-                            GNUNET_NO);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Received %u records for label `%s' via namestore monitor\n",
-              rd_count,
-              label);
-  if (0 == rd_count)
-  {
-    GNUNET_NAMESTORE_zone_monitor_next (zmon,
-                                        1);
-    return;   /* nothing to do */
-  }
-  ma = GNUNET_new (struct DhtPutActivity);
-  ma->start_date = GNUNET_TIME_absolute_get ();
-  ma->ph = perform_dht_put (zone,
-                            label,
-                            rd,
-                            rd_count,
-                            expire,
-                            ma);
-  if (NULL == ma->ph)
-  {
-    /* PUT failed, do not remember operation */
-    GNUNET_free (ma);
-    GNUNET_NAMESTORE_zone_monitor_next (zmon,
-                                        1);
-    return;
-  }
-  GNUNET_CONTAINER_DLL_insert_tail (ma_head,
-                                    ma_tail,
-                                    ma);
-  ma_queue_length++;
-  if (ma_queue_length > DHT_QUEUE_LIMIT)
-  {
-    ma = ma_head;
-    GNUNET_CONTAINER_DLL_remove (ma_head,
-                                 ma_tail,
-                                 ma);
-    GNUNET_DHT_put_cancel (ma->ph);
-    ma_queue_length--;
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "DHT PUT unconfirmed after %s, aborting PUT\n",
-                GNUNET_STRINGS_relative_time_to_string (
-                  GNUNET_TIME_absolute_get_duration (ma->start_date),
-                  GNUNET_YES));
-    GNUNET_free (ma);
-  }
-}
-
-
-/**
- * The zone monitor encountered an IPC error trying to to get in
- * sync. Restart from the beginning.
- *
- * @param cls NULL
- */
-static void
-handle_monitor_error (void *cls)
-{
-  (void) cls;
-  GNUNET_STATISTICS_update (statistics,
-                            "Namestore monitor errors encountered",
-                            1,
-                            GNUNET_NO);
-}
-
-
-/**
- * Perform zonemaster duties: watch namestore, publish records.
- *
- * @param cls closure
- * @param server the initialized server
- * @param c configuration to use
- */
-static void
-run (void *cls,
-     const struct GNUNET_CONFIGURATION_Handle *c,
-     struct GNUNET_SERVICE_Handle *service)
-{
-  unsigned long long max_parallel_bg_queries = 128;
-
-  (void) cls;
-  (void) service;
-  namestore_handle = GNUNET_NAMESTORE_connect (c);
-  if (NULL == namestore_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _ ("Failed to connect to the namestore!\n"));
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  disable_namecache = GNUNET_CONFIGURATION_get_value_yesno (c,
-                                                            "namecache",
-                                                            "DISABLE");
-  if (GNUNET_NO == disable_namecache)
-  {
-    namecache = GNUNET_NAMECACHE_connect (c);
-    if (NULL == namecache)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  _ ("Failed to connect to the namecache!\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-  }
-  else
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                _ ("Namecache is disabled!\n"));
-  }
-  cache_keys = GNUNET_CONFIGURATION_get_value_yesno (c,
-                                                     "namestore",
-                                                     "CACHE_KEYS");
-  if (GNUNET_OK ==
-      GNUNET_CONFIGURATION_get_value_number (c,
-                                             "zonemaster",
-                                             "MAX_PARALLEL_BACKGROUND_QUERIES",
-                                             &max_parallel_bg_queries))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Number of allowed parallel background queries: %llu\n",
-                max_parallel_bg_queries);
-  }
-  if (0 == max_parallel_bg_queries)
-    max_parallel_bg_queries = 1;
-  dht_handle = GNUNET_DHT_connect (c,
-                                   (unsigned int) max_parallel_bg_queries);
-  if (NULL == dht_handle)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _ ("Could not connect to DHT!\n"));
-    GNUNET_SCHEDULER_add_now (&shutdown_task,
-                              NULL);
-    return;
-  }
-
-  /* Schedule periodic put for our records. */
-  statistics = GNUNET_STATISTICS_create ("zonemaster-mon",
-                                         c);
-  zmon = GNUNET_NAMESTORE_zone_monitor_start2 (c,
-                                               NULL,
-                                               GNUNET_NO,
-                                               &handle_monitor_error,
-                                               NULL,
-                                               &handle_monitor_event,
-                                               NULL,
-                                               NULL /* sync_cb */,
-                                               NULL,
-                                               GNUNET_GNSRECORD_FILTER_NONE);
-  GNUNET_NAMESTORE_zone_monitor_next (zmon,
-                                      NAMESTORE_QUEUE_LIMIT - 1);
-  GNUNET_break (NULL != zmon);
-  GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
-                                 NULL);
-}
-
-
-/**
- * Define "main" method using service macro.
- */
-GNUNET_SERVICE_MAIN
-  ("zonemaster-monitor",
-  GNUNET_SERVICE_OPTION_NONE,
-  &run,
-  NULL,
-  NULL,
-  NULL,
-  GNUNET_MQ_handler_end ());
-
-
-/* end of gnunet-service-zonemaster-monitor.c */
diff --git a/src/zonemaster/gnunet-service-zonemaster.c 
b/src/zonemaster/gnunet-service-zonemaster.c
index 9f5d9b47a..f5c1d781b 100644
--- a/src/zonemaster/gnunet-service-zonemaster.c
+++ b/src/zonemaster/gnunet-service-zonemaster.c
@@ -66,6 +66,12 @@
  */
 #define NAMESTORE_QUEUE_LIMIT 50
 
+/**
+ * How many events may the namestore give us before it has to wait
+ * for us to keep up?
+ */
+#define NAMESTORE_MONITOR_QUEUE_LIMIT 5
+
 /**
  * The initial interval in milliseconds btween puts in
  * a zone iteration
@@ -154,6 +160,21 @@ static struct GNUNET_DHT_Handle *dht_handle;
  */
 static struct GNUNET_NAMESTORE_Handle *namestore_handle;
 
+/**
+ * Handle to monitor namestore changes to instant propagation.
+ */
+static struct GNUNET_NAMESTORE_ZoneMonitor *zmon;
+
+/**
+ * Head of monitor activities; kept in a DLL.
+ */
+static struct DhtPutActivity *ma_head;
+
+/**
+ * Tail of monitor activities; kept in a DLL.
+ */
+static struct DhtPutActivity *ma_tail;
+
 /**
  * Our handle to the namecache service
  */
@@ -165,6 +186,11 @@ static struct GNUNET_NAMECACHE_Handle *namecache;
  */
 static int disable_namecache;
 
+/**
+ * Number of entries in the DHT queue #ma_head.
+ */
+static unsigned int ma_queue_length;
+
 /**
  * Handle to iterate over our authoritative zone in namestore
  */
@@ -314,6 +340,15 @@ shutdown_task (void *cls)
     dht_queue_length--;
     GNUNET_free (ma);
   }
+  while (NULL != (ma = ma_head))
+  {
+    GNUNET_DHT_put_cancel (ma->ph);
+    ma_queue_length--;
+    GNUNET_CONTAINER_DLL_remove (ma_head,
+                                 ma_tail,
+                                 ma);
+    GNUNET_free (ma);
+  }
   if (NULL != statistics)
   {
     GNUNET_STATISTICS_destroy (statistics,
@@ -330,6 +365,11 @@ shutdown_task (void *cls)
     GNUNET_NAMESTORE_zone_iteration_stop (namestore_iter);
     namestore_iter = NULL;
   }
+  if (NULL != zmon)
+  {
+    GNUNET_NAMESTORE_zone_monitor_stop (zmon);
+    zmon = NULL;
+  }
   if (NULL != namestore_handle)
   {
     GNUNET_NAMESTORE_disconnect (namestore_handle);
@@ -340,7 +380,7 @@ shutdown_task (void *cls)
     GNUNET_NAMECACHE_disconnect (namecache);
     namecache = NULL;
   }
-if (NULL != dht_handle)
+  if (NULL != dht_handle)
   {
     GNUNET_DHT_disconnect (dht_handle);
     dht_handle = NULL;
@@ -666,7 +706,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
   struct GNUNET_GNSRECORD_Block *block;
   struct GNUNET_GNSRECORD_Block *block_priv;
   struct GNUNET_HashCode query;
-  struct GNUNET_TIME_Absolute expire_priv;
+  struct GNUNET_TIME_Absolute expire_pub;
   size_t block_size;
   unsigned int rd_public_count = 0;
   struct GNUNET_DHT_PutHandle *ret;
@@ -678,7 +718,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
                                              rd_count,
                                              rd_public,
                                              &rd_public_count,
-                                             &expire_priv,
+                                             &expire_pub,
                                              
GNUNET_GNSRECORD_FILTER_OMIT_PRIVATE,
                                              &emsg))
   {
@@ -690,7 +730,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
   if (cache_keys)
   {
     GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create2 (key,
-                                                                expire,
+                                                                expire_pub,
                                                                 label,
                                                                 rd_public,
                                                                 
rd_public_count,
@@ -699,7 +739,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
   else
   {
     GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create (key,
-                                                               expire,
+                                                               expire_pub,
                                                                label,
                                                                rd_public,
                                                                rd_public_count,
@@ -712,7 +752,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
   }
   if (rd_count != rd_public_count)
     GNUNET_assert (GNUNET_OK ==  GNUNET_GNSRECORD_block_create (key,
-                                                                expire_priv,
+                                                                expire,
                                                                 label,
                                                                 rd,
                                                                 rd_count,
@@ -741,7 +781,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey 
*key,
                         GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
                         block_size,
                         block,
-                        expire,
+                        expire_pub,
                         &dht_put_continuation,
                         ma);
   refresh_block (block_priv);
@@ -942,6 +982,221 @@ publish_zone_dht_start (void *cls)
 }
 
 
+/**
+ * Continuation called from DHT once the PUT operation triggered
+ * by a monitor is done.
+ *
+ * @param cls a `struct DhtPutActivity`
+ */
+static void
+dht_put_monitor_continuation (void *cls)
+{
+  struct DhtPutActivity *ma = cls;
+
+  GNUNET_NAMESTORE_zone_monitor_next (zmon,
+                                      1);
+  ma_queue_length--;
+  GNUNET_CONTAINER_DLL_remove (ma_head,
+                               ma_tail,
+                               ma);
+  GNUNET_free (ma);
+}
+
+
+/**
+ * Store GNS records in the DHT.
+ *
+ * @param key key of the zone
+ * @param label label to store under
+ * @param rd_public public record data
+ * @param rd_public_count number of records in @a rd_public
+ * @param ma handle for the PUT operation
+ * @return DHT PUT handle, NULL on error
+ */
+static struct GNUNET_DHT_PutHandle *
+perform_dht_put_monitor (const struct GNUNET_IDENTITY_PrivateKey *key,
+                         const char *label,
+                         const struct GNUNET_GNSRECORD_Data *rd,
+                         unsigned int rd_count,
+                         struct GNUNET_TIME_Absolute expire,
+                         struct DhtPutActivity *ma)
+{
+  struct GNUNET_GNSRECORD_Data rd_public[rd_count];
+  struct GNUNET_GNSRECORD_Block *block;
+  struct GNUNET_GNSRECORD_Block *block_priv;
+  struct GNUNET_HashCode query;
+  struct GNUNET_TIME_Absolute expire_pub;
+  size_t block_size;
+  unsigned int rd_public_count = 0;
+  struct GNUNET_DHT_PutHandle *ret;
+  char *emsg;
+
+  if (GNUNET_OK !=
+      GNUNET_GNSRECORD_normalize_record_set (label,
+                                             rd,
+                                             rd_count,
+                                             rd_public,
+                                             &rd_public_count,
+                                             &expire_pub,
+                                             
GNUNET_GNSRECORD_FILTER_OMIT_PRIVATE,
+                                             &emsg))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "%s\n", emsg);
+    GNUNET_free (emsg);
+  }
+
+  if (cache_keys)
+    GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create2 (key,
+                                                                expire_pub,
+                                                                label,
+                                                                rd_public,
+                                                                
rd_public_count,
+                                                                &block));
+  else
+    GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_block_create (key,
+                                                               expire_pub,
+                                                               label,
+                                                               rd_public,
+                                                               rd_public_count,
+                                                               &block));
+  if (NULL == block)
+  {
+    GNUNET_break (0);
+    return NULL;   /* whoops */
+  }
+  if (rd_count != rd_public_count)
+    GNUNET_assert (GNUNET_OK ==  GNUNET_GNSRECORD_block_create (key,
+                                                                expire,
+                                                                label,
+                                                                rd,
+                                                                rd_count,
+                                                                &block_priv));
+  else
+    block_priv = block;
+  block_size = GNUNET_GNSRECORD_block_get_size (block);
+  GNUNET_GNSRECORD_query_from_private_key (key,
+                                           label,
+                                           &query);
+  GNUNET_STATISTICS_update (statistics,
+                            "DHT put operations initiated",
+                            1,
+                            GNUNET_NO);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Storing %u public of %u record(s) for label `%s' in DHT with 
expiration `%s' under key %s\n",
+              rd_public_count,
+              rd_count,
+              label,
+              GNUNET_STRINGS_absolute_time_to_string (expire),
+              GNUNET_h2s (&query));
+  ret = GNUNET_DHT_put (dht_handle,
+                        &query,
+                        DHT_GNS_REPLICATION_LEVEL,
+                        GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
+                        GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
+                        block_size,
+                        block,
+                        expire_pub,
+                        &dht_put_monitor_continuation,
+                        ma);
+  refresh_block (block_priv);
+  if (block != block_priv)
+    GNUNET_free (block_priv);
+  GNUNET_free (block);
+  return ret;
+}
+
+/**
+ * Process a record that was stored in the namestore
+ * (invoked by the monitor).
+ *
+ * @param cls closure, NULL
+ * @param zone private key of the zone; NULL on disconnect
+ * @param label label of the records; NULL on disconnect
+ * @param rd_count number of entries in @a rd array, 0 if label was deleted
+ * @param rd array of records with data to store
+ * @param expire expiration of this record set
+ */
+static void
+handle_monitor_event (void *cls,
+                      const struct GNUNET_IDENTITY_PrivateKey *zone,
+                      const char *label,
+                      unsigned int rd_count,
+                      const struct GNUNET_GNSRECORD_Data *rd,
+                      struct GNUNET_TIME_Absolute expire)
+{
+  struct DhtPutActivity *ma;
+
+  (void) cls;
+  GNUNET_STATISTICS_update (statistics,
+                            "Namestore monitor events received",
+                            1,
+                            GNUNET_NO);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Received %u records for label `%s' via namestore monitor\n",
+              rd_count,
+              label);
+  if (0 == rd_count)
+  {
+    GNUNET_NAMESTORE_zone_monitor_next (zmon,
+                                        1);
+    return;   /* nothing to do */
+  }
+  ma = GNUNET_new (struct DhtPutActivity);
+  ma->start_date = GNUNET_TIME_absolute_get ();
+  ma->ph = perform_dht_put_monitor (zone,
+                                    label,
+                                    rd,
+                                    rd_count,
+                                    expire,
+                                    ma);
+  if (NULL == ma->ph)
+  {
+    /* PUT failed, do not remember operation */
+    GNUNET_free (ma);
+    GNUNET_NAMESTORE_zone_monitor_next (zmon,
+                                        1);
+    return;
+  }
+  GNUNET_CONTAINER_DLL_insert_tail (ma_head,
+                                    ma_tail,
+                                    ma);
+  ma_queue_length++;
+  if (ma_queue_length > DHT_QUEUE_LIMIT)
+  {
+    ma = ma_head;
+    GNUNET_CONTAINER_DLL_remove (ma_head,
+                                 ma_tail,
+                                 ma);
+    GNUNET_DHT_put_cancel (ma->ph);
+    ma_queue_length--;
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "DHT PUT unconfirmed after %s, aborting PUT\n",
+                GNUNET_STRINGS_relative_time_to_string (
+                  GNUNET_TIME_absolute_get_duration (ma->start_date),
+                  GNUNET_YES));
+    GNUNET_free (ma);
+  }
+}
+
+
+/**
+ * The zone monitor encountered an IPC error trying to to get in
+ * sync. Restart from the beginning.
+ *
+ * @param cls NULL
+ */
+static void
+handle_monitor_error (void *cls)
+{
+  (void) cls;
+  GNUNET_STATISTICS_update (statistics,
+                            "Namestore monitor errors encountered",
+                            1,
+                            GNUNET_NO);
+}
+
+
 /**
  * Perform zonemaster duties: watch namestore, publish records.
  *
@@ -1034,6 +1289,20 @@ run (void *cls,
                          GNUNET_NO);
   zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_start,
                                                 NULL);
+  zmon = GNUNET_NAMESTORE_zone_monitor_start2 (c,
+                                               NULL,
+                                               GNUNET_NO,
+                                               &handle_monitor_error,
+                                               NULL,
+                                               &handle_monitor_event,
+                                               NULL,
+                                               NULL /* sync_cb */,
+                                               NULL,
+                                               GNUNET_GNSRECORD_FILTER_NONE);
+  GNUNET_NAMESTORE_zone_monitor_next (zmon,
+                                      NAMESTORE_MONITOR_QUEUE_LIMIT - 1);
+  GNUNET_break (NULL != zmon);
+
   GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
                                  NULL);
 }
diff --git a/src/zonemaster/zonemaster.conf.in 
b/src/zonemaster/zonemaster.conf.in
index 315388417..560239944 100644
--- a/src/zonemaster/zonemaster.conf.in
+++ b/src/zonemaster/zonemaster.conf.in
@@ -24,21 +24,3 @@ ZONE_PUBLISH_TIME_WINDOW = 4 h
 # USE_CACHE = YES
 
 # PREFIX = valgrind --leak-check=full --track-origins=yes
-
-
-
-[zonemaster-monitor]
-START_ON_DEMAND = @START_ON_DEMAND@
-RUN_PER_USER = YES
-IMMEDIATE_START = YES
-HOSTNAME = localhost
-BINARY = gnunet-service-zonemaster-monitor
-UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-zonemaster-monitor.sock
-@JAVAPORT@PORT = 2124
-
-# Do we require users that want to access GNS to run this process
-# (usually not a good idea)
-UNIX_MATCH_UID = NO
-
-# Do we require users that want to access GNS to be in the 'gnunet' group?
-UNIX_MATCH_GID = NO

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]