gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] 15/19: Make hole punch socket available, and some bug fixes.


From: gnunet
Subject: [gnunet] 15/19: Make hole punch socket available, and some bug fixes.
Date: Wed, 28 Aug 2024 11:19:45 +0200

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

t3sserakt pushed a commit to branch master
in repository gnunet.

commit 227acb2c84956bebcb7e942df01221322b66caa9
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Tue Aug 27 09:09:28 2024 +0200

    Make hole punch socket available, and some bug fixes.
---
 contrib/gana                                       |   2 +-
 contrib/handbook                                   |   2 +-
 po/POTFILES.in                                     |   1 +
 po/de.po                                           |  68 ++++----
 po/es.po                                           | 146 ++++++++--------
 po/fr.po                                           | 175 +++++++++++++++++---
 po/it.po                                           | 175 +++++++++++++++++---
 po/sr.po                                           | 179 +++++++++++++++++---
 po/sv.po                                           | 183 +++++++++++++++++----
 po/vi.po                                           | 179 +++++++++++++++++---
 po/zh_CN.po                                        | 175 +++++++++++++++++---
 src/include/gnunet_nat_lib.h                       |   4 +-
 src/lib/util/nat.c                                 |  74 ++++++---
 src/service/transport/gnunet-communicator-udp.c    |  48 ++++--
 src/service/transport/gnunet-service-transport.c   |  23 ++-
 src/service/transport/transport.h                  |   2 +-
 .../transport/transport_api2_communication.c       |   2 +-
 17 files changed, 1133 insertions(+), 305 deletions(-)

diff --git a/contrib/gana b/contrib/gana
index 56e1d14c3..f2c57293b 160000
--- a/contrib/gana
+++ b/contrib/gana
@@ -1 +1 @@
-Subproject commit 56e1d14c3d587fbf0820b211fe89c5eed992647e
+Subproject commit f2c57293b707a2d6c6ef57088851e271ec7fcac9
diff --git a/contrib/handbook b/contrib/handbook
index 37eee492d..ae9976551 160000
--- a/contrib/handbook
+++ b/contrib/handbook
@@ -1 +1 @@
-Subproject commit 37eee492d0ce0f7cbfc97aa9df554d6469fbec4b
+Subproject commit ae9976551b142d02053ca07239975fa6155cdf77
diff --git a/po/POTFILES.in b/po/POTFILES.in
index cb7b23ed6..ba2c72bbf 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -199,6 +199,7 @@ src/lib/util/helper.c
 src/lib/util/load.c
 src/lib/util/mq.c
 src/lib/util/mst.c
+src/lib/util/nat.c
 src/lib/util/nc.c
 src/lib/util/network.c
 src/lib/util/nt.c
diff --git a/po/de.po b/po/de.po
index ae94d3450..934512b78 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: 2024-06-08 11:29+0200\n"
+"POT-Creation-Date: 2024-07-18 18:14+0200\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"
@@ -1709,90 +1709,86 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:813
+#: src/cli/reclaim/gnunet-reclaim.c:836
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
-#: src/cli/reclaim/gnunet-reclaim.c:820
+#: src/cli/reclaim/gnunet-reclaim.c:843
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:827
+#: src/cli/reclaim/gnunet-reclaim.c:850
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
-#: src/cli/reclaim/gnunet-reclaim.c:846
+#: src/cli/reclaim/gnunet-reclaim.c:868
 msgid "Add or update an attribute NAME"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:851
+#: src/cli/reclaim/gnunet-reclaim.c:873
 msgid "Delete the attribute with ID"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:856
+#: src/cli/reclaim/gnunet-reclaim.c:878
 msgid "The attribute VALUE"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:861
+#: src/cli/reclaim/gnunet-reclaim.c:883
 msgid "The EGO to use"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:867
+#: src/cli/reclaim/gnunet-reclaim.c:889
 msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:873
-msgid "Specify the relying party URI for a ticket to consume"
-msgstr ""
-
-#: src/cli/reclaim/gnunet-reclaim.c:877
+#: src/cli/reclaim/gnunet-reclaim.c:893
 msgid "List attributes for EGO"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:881
+#: src/cli/reclaim/gnunet-reclaim.c:897
 msgid "List credentials for EGO"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:887
+#: src/cli/reclaim/gnunet-reclaim.c:903
 msgid "Credential to use for attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:892
+#: src/cli/reclaim/gnunet-reclaim.c:908
 msgid "Credential name"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:898
+#: src/cli/reclaim/gnunet-reclaim.c:914
 msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:903
+#: src/cli/reclaim/gnunet-reclaim.c:919
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:908
+#: src/cli/reclaim/gnunet-reclaim.c:924
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:913
+#: src/cli/reclaim/gnunet-reclaim.c:929
 msgid "Type of attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:918
+#: src/cli/reclaim/gnunet-reclaim.c:934
 msgid "Type of credential"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:922
+#: src/cli/reclaim/gnunet-reclaim.c:938
 msgid "List tickets of ego"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:928
+#: src/cli/reclaim/gnunet-reclaim.c:944
 msgid "Expiration interval of the attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:936
+#: src/cli/reclaim/gnunet-reclaim.c:952
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -5644,7 +5640,7 @@ msgstr "GNUnet Konfiguration"
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
-#: src/service/topology/gnunet-daemon-topology.c:1062
+#: src/service/topology/gnunet-daemon-topology.c:1061
 #, fuzzy, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "`%s' Dienst konnte nicht initialisiert werden.\n"
@@ -6468,7 +6464,7 @@ msgid "# hostlist advertisements send"
 msgstr "# Bekanntmachungen von anderen übertragen"
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
-#: src/service/topology/gnunet-daemon-topology.c:781
+#: src/service/topology/gnunet-daemon-topology.c:780
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
@@ -6738,7 +6734,7 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr " Verbindung fehlgeschlagen\n"
 
-#: src/service/nat/gnunet-service-nat.c:1999
+#: src/service/nat/gnunet-service-nat.c:2055
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -7052,31 +7048,31 @@ msgstr "# geschlossener Verbindungen (HANGUP gesendet)"
 msgid "# HELLO messages gossipped"
 msgstr "# ausgehender Nachrichten verworfen"
 
-#: src/service/topology/gnunet-daemon-topology.c:747
+#: src/service/topology/gnunet-daemon-topology.c:746
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/service/topology/gnunet-daemon-topology.c:756
+#: src/service/topology/gnunet-daemon-topology.c:755
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
 
-#: src/service/topology/gnunet-daemon-topology.c:864
+#: src/service/topology/gnunet-daemon-topology.c:863
 msgid "Failed to connect to core service, can not manage topology!\n"
 msgstr ""
 
-#: src/service/topology/gnunet-daemon-topology.c:938
+#: src/service/topology/gnunet-daemon-topology.c:937
 msgid "# HELLO messages received"
 msgstr "# HELLO-Meldungen empfangen"
 
-#: src/service/topology/gnunet-daemon-topology.c:1091
+#: src/service/topology/gnunet-daemon-topology.c:1090
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
-#: src/service/transport/gnunet-communicator-udp.c:3579
-#: src/service/transport/gnunet-service-transport.c:12543
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
@@ -7088,7 +7084,7 @@ msgstr ""
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-udp.c:3654
+#: src/service/transport/gnunet-communicator-udp.c:3729
 msgid "GNUnet UDP communicator"
 msgstr ""
 
diff --git a/po/es.po b/po/es.po
index ce384ed4d..f2ccc0dad 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: 2024-06-08 11:29+0200\n"
+"POT-Creation-Date: 2024-07-18 18:14+0200\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"
@@ -103,6 +103,7 @@ msgid "Unknown result code."
 msgstr "Código de respuesta del ARM desconocido.\n"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr "Error fatal al inicializar la API del ARM.\n"
 
@@ -142,6 +143,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr "Se produjo un fallo al escribir «%s»: %s\n"
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, fuzzy, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr "Se produjo un fallo al iniciar el servicio «%s»\n"
@@ -1755,91 +1757,87 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:813
+#: src/cli/reclaim/gnunet-reclaim.c:836
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Las opción «%s» o «%s» es necesaria.\n"
 
-#: src/cli/reclaim/gnunet-reclaim.c:820
+#: src/cli/reclaim/gnunet-reclaim.c:843
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:827
+#: src/cli/reclaim/gnunet-reclaim.c:850
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "el parámetro --section es necesario\n"
 
-#: src/cli/reclaim/gnunet-reclaim.c:846
+#: src/cli/reclaim/gnunet-reclaim.c:868
 msgid "Add or update an attribute NAME"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:851
+#: src/cli/reclaim/gnunet-reclaim.c:873
 msgid "Delete the attribute with ID"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:856
+#: src/cli/reclaim/gnunet-reclaim.c:878
 msgid "The attribute VALUE"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:861
+#: src/cli/reclaim/gnunet-reclaim.c:883
 #, fuzzy
 msgid "The EGO to use"
 msgstr "tamaño del mensaje"
 
-#: src/cli/reclaim/gnunet-reclaim.c:867
+#: src/cli/reclaim/gnunet-reclaim.c:889
 msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:873
-msgid "Specify the relying party URI for a ticket to consume"
-msgstr ""
-
-#: src/cli/reclaim/gnunet-reclaim.c:877
+#: src/cli/reclaim/gnunet-reclaim.c:893
 msgid "List attributes for EGO"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:881
+#: src/cli/reclaim/gnunet-reclaim.c:897
 msgid "List credentials for EGO"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:887
+#: src/cli/reclaim/gnunet-reclaim.c:903
 msgid "Credential to use for attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:892
+#: src/cli/reclaim/gnunet-reclaim.c:908
 msgid "Credential name"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:898
+#: src/cli/reclaim/gnunet-reclaim.c:914
 msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:903
+#: src/cli/reclaim/gnunet-reclaim.c:919
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:908
+#: src/cli/reclaim/gnunet-reclaim.c:924
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:913
+#: src/cli/reclaim/gnunet-reclaim.c:929
 msgid "Type of attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:918
+#: src/cli/reclaim/gnunet-reclaim.c:934
 msgid "Type of credential"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:922
+#: src/cli/reclaim/gnunet-reclaim.c:938
 msgid "List tickets of ego"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:928
+#: src/cli/reclaim/gnunet-reclaim.c:944
 msgid "Expiration interval of the attribute"
 msgstr ""
 
-#: src/cli/reclaim/gnunet-reclaim.c:936
+#: src/cli/reclaim/gnunet-reclaim.c:952
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3699,102 +3697,102 @@ msgstr "Tienes que introducir un número en la opción 
«%s».\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "Error desconocido"
 
 # Miguel: ¿Conectar y conexión?
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 #, fuzzy
 msgid "Communication with service failed."
 msgstr "Error al comunicar con el servicio ARM.\n"
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "Contenido no encontrado"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "Error desconocido"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# sesiones wlan creadas"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "Contenido no encontrado"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "«upnpc» no encontrado\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 #, fuzzy
 msgid "Zone does not contain any records."
 msgstr "El fichero '%s' no contiene un pseudónimo.\n"
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "El almacén de nombres no pudo añadir el registro\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 #, fuzzy
 msgid "No records given."
 msgstr "No se han proporcionado opciones\n"
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 #, fuzzy
 msgid "No label given."
 msgstr "No se han proporcionado opciones\n"
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "No se han proporcionado opciones\n"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 #, fuzzy
 msgid "Record already exists."
 msgstr "El registro ya existía en el almacén de nombres"
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "El almacén de nombres no pudo añadir el registro\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5810,7 +5808,7 @@ msgstr ""
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
-#: src/service/topology/gnunet-daemon-topology.c:1062
+#: src/service/topology/gnunet-daemon-topology.c:1061
 #, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "Se produjo un fallo al conectar con el servicio «%s».\n"
@@ -6639,7 +6637,7 @@ msgid "# hostlist advertisements send"
 msgstr "# anuncios de listas de máquinas enviados"
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
-#: src/service/topology/gnunet-daemon-topology.c:781
+#: src/service/topology/gnunet-daemon-topology.c:780
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr ""
@@ -6928,7 +6926,7 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr "Colección detenida.\n"
 
-#: src/service/nat/gnunet-service-nat.c:1999
+#: src/service/nat/gnunet-service-nat.c:2055
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -7250,35 +7248,35 @@ msgstr "# peticiones de conexión requeridas al servicio 
de transporte"
 msgid "# HELLO messages gossipped"
 msgstr "# Mensajes «HELLO» rumoreados"
 
-#: src/service/topology/gnunet-daemon-topology.c:747
+#: src/service/topology/gnunet-daemon-topology.c:746
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr ""
 "Error en la comunicación con el servicio de información de pares (PEERINFO): "
 "%s\n"
 
-#: src/service/topology/gnunet-daemon-topology.c:756
+#: src/service/topology/gnunet-daemon-topology.c:755
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
 
-#: src/service/topology/gnunet-daemon-topology.c:864
+#: src/service/topology/gnunet-daemon-topology.c:863
 msgid "Failed to connect to core service, can not manage topology!\n"
 msgstr ""
 "¡Se produjo un fallo al conectar con el servicio principal, no se puede "
 "gestionar la topología!\n"
 
-#: src/service/topology/gnunet-daemon-topology.c:938
+#: src/service/topology/gnunet-daemon-topology.c:937
 msgid "# HELLO messages received"
 msgstr "# mensajes «HELLO» recibidos"
 
-#: src/service/topology/gnunet-daemon-topology.c:1091
+#: src/service/topology/gnunet-daemon-topology.c:1090
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
-#: src/service/transport/gnunet-communicator-udp.c:3579
-#: src/service/transport/gnunet-service-transport.c:12543
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
@@ -7290,12 +7288,12 @@ msgstr ""
 msgid "GNUnet QUIC communicator"
 msgstr "Configurador Gtk de GNUnet"
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 #, fuzzy
 msgid "GNUnet TCP communicator"
 msgstr "Configurador Gtk de GNUnet"
 
-#: src/service/transport/gnunet-communicator-udp.c:3654
+#: src/service/transport/gnunet-communicator-udp.c:3729
 #, fuzzy
 msgid "GNUnet UDP communicator"
 msgstr "Configurador Gtk de GNUnet"
@@ -7317,7 +7315,7 @@ msgstr ""
 msgid "Cannot create path to `%s'\n"
 msgstr "Se produjo un fallo al crear la página para «%s»\n"
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7484,7 +7482,7 @@ msgstr "enviar data para prueba a otro par (hasta CTRL-C)"
 msgid "Direct access to transport service."
 msgstr "Acceso directo al servicio de transporte."
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -11013,8 +11011,8 @@ msgstr "¡Se produjo un fallo al conectar con el almacén 
de nombres!\n"
 #~ "%llu, omitiendo bytes.\n"
 
 #~ msgid ""
-#~ "Syntax error in topology specification at offset %llu, skipping bytes "
-#~ "`%s'.\n"
+#~ "Syntax error in topology specification at offset %llu, skipping bytes `"
+#~ "%s'.\n"
 #~ msgstr ""
 #~ "Error de sintaxis en la especificación de topología en el desplazamiento "
 #~ "%llu, omitiendo bytes «%s».\n"
@@ -12566,10 +12564,10 @@ msgstr "¡Se produjo un fallo al conectar con el 
almacén de nombres!\n"
 #~ "You can specify a hostname, GNUnet will then use DNS to resolve it.\n"
 #~ "If in doubt, leave this empty."
 #~ msgstr ""
-#~ "Si tu proveedor siempre te asigna la misma dirección IP (una IP "
-#~ "\"estática\") introducela en el campo \"Dirección IP\". Si tu dirección "
-#~ "IP cambia pero hay un nombre de dominio que siempre apunta a tu dirección "
-#~ "IP actual (\"DNS dinámica\"), puedes introducirlo allí también.\n"
+#~ "Si tu proveedor siempre te asigna la misma dirección IP (una IP \"estática"
+#~ "\") introducela en el campo \"Dirección IP\". Si tu dirección IP cambia "
+#~ "pero hay un nombre de dominio que siempre apunta a tu dirección IP actual "
+#~ "(\"DNS dinámica\"), puedes introducirlo allí también.\n"
 #~ "En caso de duda deja el campo en blanco. GNUnet intentará determinar tu "
 #~ "dirección IP"
 
@@ -13929,8 +13927,8 @@ msgstr "¡Se produjo un fallo al conectar con el almacén 
de nombres!\n"
 #~ "SNAT, a un router o a un \"cortafuegos de hardware\" y otros ordenadores "
 #~ "no pueden conectar con tu ordenador marca la última opción en ésta "
 #~ "página. Déjala sin marcar en conexiones directas a través de modems, "
-#~ "tarjetas de RDSI y DNAT (también conocido como \"seguimiento de "
-#~ "puertos\")."
+#~ "tarjetas de RDSI y DNAT (también conocido como \"seguimiento de puertos"
+#~ "\")."
 
 #~ msgid "Computer cannot receive inbound connections (SNAT/Firewall)"
 #~ msgstr ""
@@ -14367,10 +14365,10 @@ msgstr "¡Se produjo un fallo al conectar con el 
almacén de nombres!\n"
 #~ "\n"
 #~ "Si tu estás conectado a Internet a través de otro ordenador haciendo "
 #~ "SNAT, un router o un \"cortafuegos de hardware\" y otros ordenadores no "
-#~ "pueden conectarse al tuyo a través de Internet directamente, responde "
-#~ "\"si\" aquí. Responde \"no\" en conexiones directas a través de módems, "
-#~ "tarjetas de RDSI y DNAT (también conocido como \"seguimiento de "
-#~ "puertos\")."
+#~ "pueden conectarse al tuyo a través de Internet directamente, responde \"si"
+#~ "\" aquí. Responde \"no\" en conexiones directas a través de módems, "
+#~ "tarjetas de RDSI y DNAT (también conocido como \"seguimiento de puertos"
+#~ "\")."
 
 #, fuzzy
 #~ msgid "Run gnunetd as this user."
@@ -14620,8 +14618,8 @@ msgstr "¡Se produjo un fallo al conectar con el almacén 
de nombres!\n"
 #~ msgstr "Recibido mensaje UDP no válido del %u.%u.%u.%u:%u, omitiendo.\n"
 
 #~ msgid ""
-#~ "Configuration file must specify directory for storing FS data in section "
-#~ "`%s' under `%s'.\n"
+#~ "Configuration file must specify directory for storing FS data in section `"
+#~ "%s' under `%s'.\n"
 #~ msgstr ""
 #~ "El fichero de configuración debe especificar el directorio para almacenar "
 #~ "los datos FS en la sección '%s' bajo '%s'.\n"
diff --git a/po/fr.po b/po/fr.po
index 87c4b2100..f342de563 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "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"
@@ -93,6 +97,7 @@ msgid "Unknown result code."
 msgstr "%.s Code d'erreur inconnu"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr ""
 
@@ -132,6 +137,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr ""
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr ""
@@ -1657,21 +1663,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, c-format
 msgid "Ego is required\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, c-format
 msgid "Requesting party key is required!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1741,6 +1760,73 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+msgid "The EGO to use"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3545,96 +3631,96 @@ msgstr ""
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "%.s Code d'erreur inconnu"
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 msgid "Communication with service failed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "upnpc introuvable\n"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "%.s Code d'erreur inconnu"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# Session TCP active"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "upnpc introuvable\n"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "upnpc introuvable\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 msgid "Zone does not contain any records."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "Échec du démarrage de %s\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 msgid "No records given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 msgid "No label given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "# résultats introuvables"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 msgid "Record already exists."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "Échec du démarrage de %s\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5470,7 +5556,11 @@ msgstr ""
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr ""
@@ -6255,7 +6345,11 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr ""
@@ -6513,7 +6607,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -6800,6 +6898,7 @@ msgstr ""
 msgid "# HELLO messages gossipped"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr ""
@@ -6817,13 +6916,37 @@ msgid "# HELLO messages received"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+msgid "Error in communication with PEERSTORE service to monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:937
+msgid "# HELLO messages received"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
@@ -6831,11 +6954,15 @@ msgstr ""
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6853,7 +6980,7 @@ msgstr ""
 msgid "Cannot create path to `%s'\n"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7004,7 +7131,7 @@ msgstr ""
 msgid "Direct access to transport service."
 msgstr ""
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
diff --git a/po/it.po b/po/it.po
index 094f3e5ec..de73877f3 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "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"
@@ -92,6 +96,7 @@ msgid "Unknown result code."
 msgstr "Comando `%s' sconosciuto.\n"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr ""
 
@@ -131,6 +136,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr ""
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr ""
@@ -1657,21 +1663,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, c-format
 msgid "Ego is required\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, c-format
 msgid "Requesting party key is required!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1741,6 +1760,73 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+msgid "The EGO to use"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3546,95 +3632,95 @@ msgstr ""
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "Comando `%s' sconosciuto.\n"
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 msgid "Communication with service failed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "Contenuto non trovato"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "Comando `%s' sconosciuto.\n"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# connessioni attive"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "Contenuto non trovato"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "upnpc non trovato\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 msgid "Zone does not contain any records."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "Impossibile avviare il servizio.\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 msgid "No records given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 msgid "No label given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 msgid "No results given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 msgid "Record already exists."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "Impossibile avviare il servizio.\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5485,7 +5571,11 @@ msgstr ""
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr ""
@@ -6276,7 +6366,11 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr ""
@@ -6537,7 +6631,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -6826,6 +6924,7 @@ msgstr ""
 msgid "# HELLO messages gossipped"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr ""
@@ -6843,13 +6942,37 @@ msgid "# HELLO messages received"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+msgid "Error in communication with PEERSTORE service to monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:937
+msgid "# HELLO messages received"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
@@ -6857,11 +6980,15 @@ msgstr ""
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6879,7 +7006,7 @@ msgstr ""
 msgid "Cannot create path to `%s'\n"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7033,7 +7160,7 @@ msgstr ""
 msgid "Direct access to transport service."
 msgstr ""
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
diff --git a/po/sr.po b/po/sr.po
index b87325605..47dc72039 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "PO-Revision-Date: 2020-10-23 18:39+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -14,8 +18,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
 #: src/cli/arm/gnunet-arm.c:162
@@ -96,6 +100,7 @@ msgid "Unknown result code."
 msgstr "%.s Непознат код резултата."
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr "Кобна грешка покретања АУР АПИ-ја.\n"
 
@@ -135,6 +140,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr "Нисам успео да убијем „%s“ услугу: %s\n"
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr "Нисам успео да захтевам списак услуга: %s\n"
@@ -1725,21 +1731,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Потребна је исправна врста\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "аргумент „--section“ је потребан\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1809,6 +1828,73 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+msgid "The EGO to use"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3663,101 +3749,101 @@ msgstr "Морате да проследите број опцији „%s“.\n
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "%.s Непознат код резултата."
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 #, fuzzy
 msgid "Communication with service failed."
 msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n"
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "Нисам нашао садржај"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 #, fuzzy
 msgid "Identifier already in use for another ego."
 msgstr "одредник се већ користи за други его"
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "%.s Непознат код резултата."
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# Бирање парњака није успело"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "Нисам нашао садржај"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "нисам нашао „upnpc“\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 msgid "Zone does not contain any records."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "Смештај назива није успео да смести запис\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 #, fuzzy
 msgid "No records given."
 msgstr "Није дат парњак!\n"
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 #, fuzzy
 msgid "No label given."
 msgstr "Није дат парњак!\n"
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "Нису дате опције\n"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 #, fuzzy
 msgid "Record already exists."
 msgstr "назив мете већ постоји"
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "Смештај назива није успео да смести запис\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5695,7 +5781,11 @@ msgstr ""
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "Нисам успео да се повежем са „%s“ услугом.\n"
@@ -6507,7 +6597,11 @@ msgid "# hostlist advertisements send"
 msgstr "# рекламе списка домаћина су послате"
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n"
@@ -6783,7 +6877,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr "Веза је успостављена.\n"
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -7086,32 +7184,57 @@ msgstr "# захтеви везе су издати преносу"
 msgid "# HELLO messages gossipped"
 msgstr "# „HELLO“ поруке су наклопљене"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:756
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:864
+=======
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+>>>>>>> Stashed changes
 msgid "Failed to connect to core service, can not manage topology!\n"
 msgstr ""
 "Нисам успео да се повежем са услугом језгра, не могу да радим размештајем!\n"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:938
 msgid "# HELLO messages received"
 msgstr "# „HELLO“ поруке су примљене"
 
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:937
+msgid "# HELLO messages received"
+msgstr "# „HELLO“ поруке су примљене"
+
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Услузи преноса недостају поставке подешавања кључа. Излазим.\n"
 
@@ -7119,11 +7242,15 @@ msgstr "Услузи преноса недостају поставке поде
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7143,7 +7270,7 @@ msgstr "„%s“ услузи недостају поставке подешав
 msgid "Cannot create path to `%s'\n"
 msgstr "Не могу да направим путању до „%s“\n"
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7302,7 +7429,7 @@ msgstr "шаље податке за оцењивање другим парња
 msgid "Direct access to transport service."
 msgstr "Непосредан приступ услузи преноса."
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
diff --git a/po/sv.po b/po/sv.po
index ef2a9d82c..86f71d64d 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "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"
@@ -95,6 +99,7 @@ msgid "Unknown result code."
 msgstr "Okänd operation \"%s\"\n"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr ""
 
@@ -134,6 +139,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr "Fel vid %s:%d.\n"
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, fuzzy, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr "Misslyckades att starta samling.\n"
@@ -1712,21 +1718,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1740,10 +1759,26 @@ msgid "The attribute VALUE"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:861
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "The EGO to use"
 msgstr "meddelandestorlek"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:867
 msgid "Specify the relying party for issue"
 msgstr ""
@@ -1797,6 +1832,57 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3641,98 +3727,98 @@ msgstr "Du måste skicka med ett nummer till flaggan 
\"%s\".\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "Okänt fel"
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 #, fuzzy
 msgid "Communication with service failed."
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "Kommando \"%s\" hittades inte!\n"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "Okänt fel"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# sessionsnycklar accepterade"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "Kommando \"%s\" hittades inte!\n"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "Kommando \"%s\" hittades inte!\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 msgid "Zone does not contain any records."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 #, fuzzy
 msgid "No records given."
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 msgid "No label given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "# byte mottogs via TCP"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 msgid "Record already exists."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -3826,8 +3912,8 @@ msgid ""
 "Missing `%s' or numeric IP address for `%s' of `%s' in configuration, DNS "
 "resolution will be unavailable.\n"
 msgstr ""
-"Du måste ange ett positivt nummer för \"%s\" i konfigurationen i sektion "
-"\"%s\".\n"
+"Du måste ange ett positivt nummer för \"%s\" i konfigurationen i sektion \"%s"
+"\".\n"
 
 #: src/lib/util/resolver_api.c:888
 #, fuzzy, c-format
@@ -5663,7 +5749,11 @@ msgstr "GNUnet-konfiguration"
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
@@ -6482,7 +6572,11 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr "Skriv ut information om GNUnets motparter."
@@ -6756,7 +6850,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr "Samling stoppad.\n"
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -7078,11 +7176,16 @@ msgstr "# byte mottogs via TCP"
 msgid "# HELLO messages gossipped"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr "Skriv ut information om GNUnets motparter."
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:756
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
@@ -7092,18 +7195,38 @@ msgid "Failed to connect to core service, can not 
manage topology!\n"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:938
+=======
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:937
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "# HELLO messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet-konfiguration"
@@ -7112,11 +7235,15 @@ msgstr "GNUnet-konfiguration"
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7136,7 +7263,7 @@ msgstr "GNUnet-konfiguration"
 msgid "Cannot create path to `%s'\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7298,7 +7425,7 @@ msgstr ""
 msgid "Direct access to transport service."
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -11236,8 +11363,8 @@ msgstr "Misslyckades att ansluta till gnunetd.\n"
 #~ msgstr "Kunde inte slå upp namnet för SMTP-server \"%s\": %s"
 
 #~ msgid ""
-#~ "You must specify the name of a pipe for the SMTP transport in section "
-#~ "`%s' under `%s'.\n"
+#~ "You must specify the name of a pipe for the SMTP transport in section `"
+#~ "%s' under `%s'.\n"
 #~ msgstr ""
 #~ "Du måste ange ett namn på röret för SMTP-transporten i sektion \"%s\" "
 #~ "under \"%s\".\n"
diff --git a/po/vi.po b/po/vi.po
index 6e37ab53e..a9edc8dfb 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "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"
@@ -99,6 +103,7 @@ msgid "Unknown result code."
 msgstr "Không rõ người dùng « %s »\n"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr ""
 
@@ -138,6 +143,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr "Lỗi chạy %s: %s %d\n"
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, fuzzy, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
@@ -1736,21 +1742,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Bị từ chối đặt tùy chọn « %s » trong phần « %s » thành « %s ».\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "đặt tên hiệu cần dùng (cần thiết)"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1764,10 +1783,26 @@ msgid "The attribute VALUE"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:861
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "The EGO to use"
 msgstr "kích cỡ tin nhắn"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:867
 msgid "Specify the relying party for issue"
 msgstr ""
@@ -1821,6 +1856,57 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3668,100 +3754,100 @@ msgstr "Phải gửi một con số cho tùy chọn « %s ».\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "Lỗi không rõ.\n"
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 #, fuzzy
 msgid "Communication with service failed."
 msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 #, fuzzy
 msgid "Ego not found."
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "Lỗi không rõ.\n"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 #, fuzzy
 msgid "Zone iteration failed."
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 #, fuzzy
 msgid "Zone not found."
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 #, fuzzy
 msgid "Record not found."
 msgstr "Khoá phiên chạy từ đồng đẳng « %s » không thể được thẩm tra.\n"
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 #, fuzzy
 msgid "Zone does not contain any records."
 msgstr "Tập tin « %s » không chứa biệt hiệu.\n"
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 #, fuzzy
 msgid "No records given."
 msgstr "chưa đưa ra tên"
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 #, fuzzy
 msgid "No label given."
 msgstr "chưa đưa ra tên"
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "chưa đưa ra tên"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 msgid "Record already exists."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5702,7 +5788,11 @@ msgstr "Lưu cấu hình ngay bây giờ không?"
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
@@ -6542,7 +6632,11 @@ msgid "# hostlist advertisements send"
 msgstr "# Các quảng cáo ngoại được chuyển tiếp"
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
@@ -6811,7 +6905,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr "Thu thập bị dừng.\n"
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -7133,11 +7231,16 @@ msgstr "# các yêu cầu máy/trình khách lỗ hổng được phun 
vào"
 msgid "# HELLO messages gossipped"
 msgstr "# các thông báo gửi đi bị loại bỏ"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:756
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
@@ -7147,18 +7250,38 @@ msgid "Failed to connect to core service, can not 
manage topology!\n"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:938
+=======
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:937
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "# HELLO messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Lưu cấu hình ngay bây giờ không?"
@@ -7167,11 +7290,15 @@ msgstr "Lưu cấu hình ngay bây giờ không?"
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7191,7 +7318,7 @@ msgstr "Lưu cấu hình ngay bây giờ không?"
 msgid "Cannot create path to `%s'\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7353,7 +7480,7 @@ msgstr ""
 msgid "Direct access to transport service."
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
@@ -9766,8 +9893,8 @@ msgstr "Không kết nối được đến trình nền gnunetd."
 
 #, fuzzy
 #~ msgid ""
-#~ "Syntax error in topology specification at offset %llu, skipping bytes "
-#~ "`%s'.\n"
+#~ "Syntax error in topology specification at offset %llu, skipping bytes `"
+#~ "%s'.\n"
 #~ msgstr ""
 #~ "Lỗi cú pháp trong sự xác định địa hình học, đang bỏ qua các byte « %s ».\n"
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 4a612ab66..864b07cd4 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,11 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+<<<<<<< Updated upstream
 "POT-Creation-Date: 2024-06-08 11:29+0200\n"
+=======
+"POT-Creation-Date: 2024-07-18 18:14+0200\n"
+>>>>>>> Stashed changes
 "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"
@@ -88,6 +92,7 @@ msgid "Unknown result code."
 msgstr "未知的用户“%s”\n"
 
 #: src/cli/arm/gnunet-arm.c:312
+#: src/service/transport/testing_api_cmd_start_peer.c:62
 msgid "Fatal error initializing ARM API.\n"
 msgstr ""
 
@@ -127,6 +132,7 @@ msgid "Failed to kill the `%s' service: %s\n"
 msgstr "运行 %s失败:%s %d\n"
 
 #: src/cli/arm/gnunet-arm.c:549
+#: src/service/transport/testing_api_cmd_start_peer.c:111
 #, fuzzy, c-format
 msgid "Failed to request a list of services: %s\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -1684,21 +1690,34 @@ msgstr ""
 msgid "The time until the DID Document is going to expire (e.g. 5d)"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:813
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:836
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "%s:选项“%s”有歧义\n"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:820
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:843
+>>>>>>> Stashed changes
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:827
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:850
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "设置要使用的昵称(必须)"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:846
 msgid "Add or update an attribute NAME"
 msgstr ""
@@ -1712,10 +1731,26 @@ msgid "The attribute VALUE"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:861
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:868
+msgid "Add or update an attribute NAME"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:873
+msgid "Delete the attribute with ID"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:878
+msgid "The attribute VALUE"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:883
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "The EGO to use"
 msgstr "消息尺寸"
 
+<<<<<<< Updated upstream
 #: src/cli/reclaim/gnunet-reclaim.c:867
 msgid "Specify the relying party for issue"
 msgstr ""
@@ -1769,6 +1804,57 @@ msgid "Expiration interval of the attribute"
 msgstr ""
 
 #: src/cli/reclaim/gnunet-reclaim.c:936
+=======
+#: src/cli/reclaim/gnunet-reclaim.c:889
+msgid "Specify the relying party for issue"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:893
+msgid "List attributes for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:897
+msgid "List credentials for EGO"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:903
+msgid "Credential to use for attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:908
+msgid "Credential name"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:914
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:919
+msgid "Consume a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:924
+msgid "Revoke a ticket"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:929
+msgid "Type of attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:934
+msgid "Type of credential"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:938
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:944
+msgid "Expiration interval of the attribute"
+msgstr ""
+
+#: src/cli/reclaim/gnunet-reclaim.c:952
+>>>>>>> Stashed changes
 msgid "re:claimID command line tool"
 msgstr ""
 
@@ -3595,94 +3681,94 @@ msgstr "您必须向“%s”选项传递一个数字。\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:60
+#: src/lib/util/gnunet_error_codes.c:59
 msgid "No error (success)."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:66
+#: src/lib/util/gnunet_error_codes.c:65
 #, fuzzy
 msgid "Unknown and unspecified error."
 msgstr "未知的用户“%s”\n"
 
-#: src/lib/util/gnunet_error_codes.c:72
+#: src/lib/util/gnunet_error_codes.c:71
 #, fuzzy
 msgid "Communication with service failed."
 msgstr "连接 %s:%u 出错。守护程序在运行吗?\n"
 
-#: src/lib/util/gnunet_error_codes.c:78
+#: src/lib/util/gnunet_error_codes.c:77
 msgid "Ego not found."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:84
+#: src/lib/util/gnunet_error_codes.c:83
 msgid "Identifier already in use for another ego."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:90
+#: src/lib/util/gnunet_error_codes.c:89
 msgid "The given ego is invalid or malformed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:96
+#: src/lib/util/gnunet_error_codes.c:95
 #, fuzzy
 msgid "Unknown namestore error."
 msgstr "未知的用户“%s”\n"
 
-#: src/lib/util/gnunet_error_codes.c:102 src/lib/util/gnunet_error_codes.c:120
+#: src/lib/util/gnunet_error_codes.c:101 src/lib/util/gnunet_error_codes.c:119
 msgid "Zone iteration failed."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:108
+#: src/lib/util/gnunet_error_codes.c:107
 msgid "Zone not found."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:114
+#: src/lib/util/gnunet_error_codes.c:113
 msgid "Record not found."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:126
+#: src/lib/util/gnunet_error_codes.c:125
 msgid "Zone does not contain any records."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:132
+#: src/lib/util/gnunet_error_codes.c:131
 #, fuzzy
 msgid "Failed to lookup record."
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/lib/util/gnunet_error_codes.c:138
+#: src/lib/util/gnunet_error_codes.c:137
 #, fuzzy
 msgid "No records given."
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/lib/util/gnunet_error_codes.c:144
+#: src/lib/util/gnunet_error_codes.c:143
 msgid "Record data invalid."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:150
+#: src/lib/util/gnunet_error_codes.c:149
 msgid "No label given."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:156
+#: src/lib/util/gnunet_error_codes.c:155
 #, fuzzy
 msgid "No results given."
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/lib/util/gnunet_error_codes.c:162
+#: src/lib/util/gnunet_error_codes.c:161
 msgid "Record already exists."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:168
+#: src/lib/util/gnunet_error_codes.c:167
 msgid "Record size exceeds maximum limit."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:174
+#: src/lib/util/gnunet_error_codes.c:173
 msgid "There was an error in the database backend."
 msgstr ""
 
-#: src/lib/util/gnunet_error_codes.c:180
+#: src/lib/util/gnunet_error_codes.c:179
 #, fuzzy
 msgid "Failed to store the given records."
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/lib/util/gnunet_error_codes.c:186
+#: src/lib/util/gnunet_error_codes.c:185
 msgid "Label invalid or malformed."
 msgstr ""
 
@@ -5555,7 +5641,11 @@ msgstr "立即保存配置?"
 
 #: src/service/fs/gnunet-service-fs.c:1271
 #: src/service/hostlist/gnunet-daemon-hostlist.c:343
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:1062
+=======
+#: src/service/topology/gnunet-daemon-topology.c:1061
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Failed to connect to `%s' service.\n"
 msgstr "初始化“%s”服务失败。\n"
@@ -6354,7 +6444,11 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/service/hostlist/gnunet-daemon-hostlist_server.c:483
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:781
+=======
+#: src/service/topology/gnunet-daemon-topology.c:780
+>>>>>>> Stashed changes
 #, fuzzy, c-format
 msgid "Error in communication with PEERSTORE service: %s\n"
 msgstr "连接 %s:%u 出错。守护程序在运行吗?\n"
@@ -6620,7 +6714,11 @@ msgstr ""
 msgid "Connection reversal request failed\n"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/nat/gnunet-service-nat.c:1999
+=======
+#: src/service/nat/gnunet-service-nat.c:2055
+>>>>>>> Stashed changes
 msgid ""
 "UPnP enabled in configuration, but UPnP client `upnpc` command not found, "
 "disabling UPnP\n"
@@ -6923,11 +7021,16 @@ msgstr ""
 msgid "# HELLO messages gossipped"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:747
+=======
+#: src/service/topology/gnunet-daemon-topology.c:746
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Error in communication with PEERSTORE service to monitor.\n"
 msgstr "连接 %s:%u 出错。守护程序在运行吗?\n"
 
+<<<<<<< Updated upstream
 #: src/service/topology/gnunet-daemon-topology.c:756
 msgid "Finished initial PEERSTORE iteration in monitor.\n"
 msgstr ""
@@ -6941,13 +7044,33 @@ msgid "# HELLO messages received"
 msgstr ""
 
 #: src/service/topology/gnunet-daemon-topology.c:1091
+=======
+#: src/service/topology/gnunet-daemon-topology.c:755
+msgid "Finished initial PEERSTORE iteration in monitor.\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:863
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:937
+msgid "# HELLO messages received"
+msgstr ""
+
+#: src/service/topology/gnunet-daemon-topology.c:1090
+>>>>>>> Stashed changes
 msgid "GNUnet topology control"
 msgstr ""
 
 #: src/service/transport/gnunet-communicator-quic.c:1717
 #: src/service/transport/gnunet-communicator-tcp.c:3814
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3579
 #: src/service/transport/gnunet-service-transport.c:12543
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3653
+#: src/service/transport/gnunet-service-transport.c:12847
+>>>>>>> Stashed changes
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "立即保存配置?"
@@ -6956,11 +7079,15 @@ msgstr "立即保存配置?"
 msgid "GNUnet QUIC communicator"
 msgstr ""
 
-#: src/service/transport/gnunet-communicator-tcp.c:4171
+#: src/service/transport/gnunet-communicator-tcp.c:4172
 msgid "GNUnet TCP communicator"
 msgstr ""
 
+<<<<<<< Updated upstream
 #: src/service/transport/gnunet-communicator-udp.c:3654
+=======
+#: src/service/transport/gnunet-communicator-udp.c:3729
+>>>>>>> Stashed changes
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6980,7 +7107,7 @@ msgstr "立即保存配置?"
 msgid "Cannot create path to `%s'\n"
 msgstr "发送消息失败。\n"
 
-#: src/service/transport/gnunet-communicator-unix.c:1138
+#: src/service/transport/gnunet-communicator-unix.c:1139
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
@@ -7139,7 +7266,7 @@ msgstr ""
 msgid "Direct access to transport service."
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/service/transport/transport_api2_communication.c:773
+#: src/service/transport/transport_api2_communication.c:778
 msgid "Dropped backchanel message: handler not provided by communicator\n"
 msgstr ""
 
diff --git a/src/include/gnunet_nat_lib.h b/src/include/gnunet_nat_lib.h
index ba6179f06..6acad72a5 100644
--- a/src/include/gnunet_nat_lib.h
+++ b/src/include/gnunet_nat_lib.h
@@ -155,11 +155,11 @@ struct GNUNET_UdpSocketInfo
    * Timeout task for this socket.
    */
   struct GNUNET_SCHEDULER_Task *timeout_task;
-  
+
   /**
    * The address of the other peer without port.
    */
-  const char *address;
+  char *address;
 
   /**
    * Our address without port.
diff --git a/src/lib/util/nat.c b/src/lib/util/nat.c
index 7f2ad9126..134ce16d4 100644
--- a/src/lib/util/nat.c
+++ b/src/lib/util/nat.c
@@ -34,14 +34,14 @@
         GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MICROSECONDS, 10)
 
 #define TIMEOUT_DELAY \
-        GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
+        GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 100)
 
 /**
  * Difference of the avarage RTT for the DistanceVector calculate by us and 
the target
  * we are willing to accept for starting the burst.
  */
 #define RTT_DIFF  \
-        GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
+        GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 150)
 
 static struct GNUNET_UdpSocketInfo *sock_infos_head;
 
@@ -155,6 +155,10 @@ sock_read (void *cls)
   char buf[UINT16_MAX];
   ssize_t rcvd;
 
+  sock_info->read_task = NULL;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Reading from socket\n");
   while (1)
   {
     rcvd = GNUNET_NETWORK_socket_recvfrom (sock_info->udp_sock,
@@ -203,7 +207,9 @@ sock_read (void *cls)
     }
     else
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                  "Received a non burst message!\n");
+                  "Received a non burst message on local port %u %lu!\n",
+                  sock_info->port,
+                  sizeof (struct GNUNET_BurstMessage));
   }
 }
 
@@ -321,10 +327,13 @@ timeout_task_cb (void *cls)
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "timeout nr_open_sockets %u\n",
               nr_open_sockets);
-  GNUNET_CONTAINER_DLL_remove (sock_infos_head,
-                               sock_infos_tail,
-                               sock_info);
-  GNUNET_free (sock_info->address);
+  if (NULL != sock_infos_head)
+    GNUNET_CONTAINER_DLL_remove (sock_infos_head,
+                                 sock_infos_tail,
+                                 sock_info);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "freeing sock_info %p\n",
+              sock_info);
   GNUNET_free (sock_info);
 }
 
@@ -335,9 +344,10 @@ read_send (void *cls)
   struct GNUNET_UdpSocketInfo *sock_info = cls;
   struct GNUNET_UdpSocketInfo *si = GNUNET_new (struct GNUNET_UdpSocketInfo);
   struct GNUNET_NETWORK_Handle *udp_sock;;
-  struct GNUNET_BurstMessage *bm = GNUNET_new (struct GNUNET_BurstMessage);
+  struct GNUNET_BurstMessage bm;
   struct sockaddr *in;
   socklen_t in_len;
+  char dgram[sizeof (struct GNUNET_BurstMessage)];
   char *address;
   struct sockaddr *bind_in;
   socklen_t bind_in_len;
@@ -345,6 +355,8 @@ read_send (void *cls)
   struct GNUNET_TIME_Relative again = GNUNET_TIME_relative_multiply 
(sock_info->rtt,
                                    4);
 
+  read_send_task = NULL;
+  GNUNET_memcpy (si, sock_info, sizeof (struct GNUNET_UdpSocketInfo));
   if (sock_info->std_port == udp_port)
     udp_port++;
   if (512 < nr_open_sockets){
@@ -361,7 +373,8 @@ read_send (void *cls)
                    sock_info->address,
                    udp_port);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "3 sock addr %s addr %s %u\n",
+              "3 sock %p addr %s addr %s %u\n",
+              sock_info,
               sock_info->address,
               address,
               nr_open_sockets);
@@ -411,6 +424,7 @@ read_send (void *cls)
                                                      sock_info);
       return;
     }
+    GNUNET_free (sock_info);
     goto next_port;
   }
   if (GNUNET_OK !=
@@ -427,10 +441,11 @@ read_send (void *cls)
                 udp_sock);
     GNUNET_NETWORK_socket_close (udp_sock);
     udp_sock = NULL;
+    GNUNET_free (sock_info);
     goto next_port;
   }
   nr_open_sockets++;
-  bm->local_port = udp_port;
+  bm.local_port = udp_port;
   sock_info->udp_sock = udp_sock;
   sock_info->port = udp_port;
   sock_info->read_task = GNUNET_SCHEDULER_add_read_net 
(GNUNET_TIME_UNIT_FOREVER_REL,
@@ -444,12 +459,12 @@ read_send (void *cls)
                                                           &timeout_task_cb,
                                                           sock_info);
 
-  GNUNET_memcpy (si, sock_info, sizeof (struct GNUNET_UdpSocketInfo));
   GNUNET_CONTAINER_DLL_insert (sock_infos_head, sock_infos_tail, sock_info);
 
+  memcpy (dgram, &bm, sizeof(bm));
   if (-1 == GNUNET_NETWORK_socket_sendto (udp_sock,
-                                          bm,
-                                          sizeof(bm),
+                                          dgram,
+                                          sizeof(dgram),
                                           in,
                                           in_len))
   {
@@ -467,7 +482,6 @@ read_send (void *cls)
   GNUNET_free (bind_in);
   GNUNET_free (address);
   GNUNET_free (bind_address);
-  GNUNET_free (bm);
 
   if (65535 == udp_port)
     return;
@@ -483,8 +497,9 @@ struct GNUNET_SCHEDULER_Task *
 GNUNET_get_udp_socket (struct GNUNET_UdpSocketInfo *sock_info,
                        GNUNET_NotifyUdpSocket nus)
 {
-  struct GNUNET_BurstMessage *bm = GNUNET_new (struct GNUNET_BurstMessage);
+  struct GNUNET_BurstMessage bm;
   struct GNUNET_UdpSocketInfo *si = GNUNET_new (struct GNUNET_UdpSocketInfo);
+  char dgram[sizeof (struct GNUNET_BurstMessage)];
   char *address;
   struct sockaddr *in;
   socklen_t in_len;
@@ -493,11 +508,18 @@ GNUNET_get_udp_socket (struct GNUNET_UdpSocketInfo 
*sock_info,
                    "%s:%u",
                    sock_info->address,
                    sock_info->std_port);
-  bm->local_port = sock_info->std_port;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "2 sock addr %s addr %s rtt %lu %u\n",
+              sock_info->address,
+              address,
+              sock_info->rtt.rel_value_us,
+              sock_info->std_port);
+  bm.local_port = sock_info->std_port;
   in = udp_address_to_sockaddr (address, &in_len);
+  memcpy (dgram, &bm, sizeof(bm));
   if (-1 == GNUNET_NETWORK_socket_sendto (sock_info->udp_sock,
-                                          bm,
-                                          sizeof(bm),
+                                          dgram,
+                                          sizeof(dgram),
                                           in,
                                           in_len))
   {
@@ -509,6 +531,7 @@ GNUNET_get_udp_socket (struct GNUNET_UdpSocketInfo 
*sock_info,
                 sock_info->udp_sock);
   }
 
+  nr_open_sockets = 0;
   udp_port = 1024;
   sock_info->has_port = GNUNET_NO;
   sock_info->nus = nus;
@@ -519,7 +542,6 @@ GNUNET_get_udp_socket (struct GNUNET_UdpSocketInfo 
*sock_info,
                                                  &read_send,
                                                  si);
   GNUNET_free (in);
-  GNUNET_free (bm);
   GNUNET_free (address);
   return read_send_task;
 }
@@ -531,6 +553,8 @@ GNUNET_stop_burst (struct GNUNET_NETWORK_Handle 
*do_not_touch)
   struct GNUNET_UdpSocketInfo *sock_info;
   struct GNUNET_UdpSocketInfo *pos;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "stopping burst\n");
   if (NULL != read_send_task)
   {
     GNUNET_SCHEDULER_cancel (read_send_task);
@@ -544,12 +568,18 @@ GNUNET_stop_burst (struct GNUNET_NETWORK_Handle 
*do_not_touch)
     GNUNET_CONTAINER_DLL_remove (sock_infos_head,
                                  sock_infos_tail,
                                  sock_info);
+    if (NULL != sock_info->read_task)
+      GNUNET_SCHEDULER_cancel (sock_info->read_task);
+    if (NULL != sock_info->timeout_task)
+      GNUNET_SCHEDULER_cancel (sock_info->timeout_task);
     if (do_not_touch != sock_info->udp_sock)
     {
-      if (NULL != sock_info->read_task)
-        GNUNET_SCHEDULER_cancel (sock_info->read_task);
       GNUNET_NETWORK_socket_close (sock_info->udp_sock);
-      GNUNET_free (sock_info->address);
+      if (NULL != sock_info->address)
+        GNUNET_free (sock_info->address);
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "freeing sock_info %p\n",
+                  sock_info);
       GNUNET_free (sock_info);
     }
   }
diff --git a/src/service/transport/gnunet-communicator-udp.c 
b/src/service/transport/gnunet-communicator-udp.c
index 40a19ba23..134679e21 100644
--- a/src/service/transport/gnunet-communicator-udp.c
+++ b/src/service/transport/gnunet-communicator-udp.c
@@ -657,6 +657,11 @@ struct ReceiverAddress
    */
   struct GNUNET_NETWORK_Handle *udp_sock;
 
+  /**
+   * Read task, if this receiver has its own socket.
+   */
+  struct GNUNET_SCHEDULER_Task *read_task;
+  
   /**
    * MTU we allowed transport for this receiver's KX queue.
    */
@@ -2169,6 +2174,10 @@ udp_address_to_sockaddr (const char *bindto, socklen_t 
*sock_len)
 }
 
 
+static void
+sock_read (void *cls);
+
+
 static enum GNUNET_GenericReturnValue
 create_receiver (const struct GNUNET_PeerIdentity *peer,
                  const char *address,
@@ -2239,8 +2248,10 @@ create_receiver (const struct GNUNET_PeerIdentity *peer,
     receiver,
     GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Added %s to receivers\n",
-              GNUNET_i2s_full (&receiver->target));
+              "Added %s to receivers with address %s and sock %p\n",
+              GNUNET_i2s_full (&receiver->target),
+              address,
+              udp_sock);
   receiver->timeout =
     GNUNET_TIME_relative_to_absolute 
(GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT);
   receiver->hn = GNUNET_CONTAINER_heap_insert (receivers_heap,
@@ -2252,6 +2263,11 @@ create_receiver (const struct GNUNET_PeerIdentity *peer,
                          GNUNET_NO);
   receiver->foreign_addr =
     sockaddr_to_udpaddr_string (receiver->address, receiver->address_len);
+  if (NULL != udp_sock)
+    receiver->read_task = GNUNET_SCHEDULER_add_read_net 
(GNUNET_TIME_UNIT_FOREVER_REL,
+                                                         udp_sock,
+                                                         &sock_read,
+                                                         udp_sock);
   setup_receiver_mq (receiver);
   if (NULL == timeout_task)
     timeout_task = GNUNET_SCHEDULER_add_now (&check_timeouts, NULL);
@@ -2324,7 +2340,7 @@ sock_read (void *cls)
       create_receiver (&bm->peer,
                        address,
                        NULL);
-      GNUNET_stop_burst(default_udp_sock);
+      GNUNET_stop_burst (default_udp_sock);
       GNUNET_TRANSPORT_communicator_burst_finished (ch);
       GNUNET_free (address);
       return;
@@ -2629,10 +2645,11 @@ send_msg_with_kx (const struct GNUNET_MessageHeader 
*msg, struct
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Sending KX with payload size %u to %s\n",
+              "Sending KX with payload size %u to %s with socket %p\n",
               msize,
               GNUNET_a2s (receiver->address,
-                          receiver->address_len));
+                          receiver->address_len),
+              get_socket (receiver));
   GNUNET_MQ_impl_send_continue (mq);
 }
 
@@ -2817,10 +2834,11 @@ mq_send_d (struct GNUNET_MQ_Handle *mq,
       return;
     }
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Sending UDPBox with payload size %u, %u acks left, %lu bytes 
sent\n",
+                "Sending UDPBox with payload size %u, %u acks left, %lu bytes 
sent with socket %p\n",
                 msize,
                 receiver->acks_available,
-                (unsigned long) ss->bytes_sent);
+                (unsigned long) ss->bytes_sent,
+                get_socket (receiver));
     ss->bytes_sent += sizeof (dgram);
     receiver->acks_available--;
     GNUNET_MQ_impl_send_continue (mq);
@@ -3006,6 +3024,8 @@ static int
 mq_init (void *cls, const struct GNUNET_PeerIdentity *peer, const char 
*address)
 {
   (void) cls;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "create receiver for mq_init\n");
   return create_receiver (peer,
                           address,
                           NULL);
@@ -3068,6 +3088,7 @@ do_shutdown (void *cls)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "do_shutdown\n");
+  GNUNET_stop_burst (NULL);
   if (NULL != nat)
   {
     GNUNET_NAT_unregister (nat);
@@ -3137,7 +3158,6 @@ do_shutdown (void *cls)
     GNUNET_NT_scanner_done (is);
     is = NULL;
   }
-  GNUNET_stop_burst (NULL);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "do_shutdown finished\n");
 }
@@ -3485,7 +3505,7 @@ try_connection_reversal (void *cls,
 {
   /* FIXME: support reversal: #5529 */
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "No connection reversal implemented!");
+              "No connection reversal implemented!\n");
 }
 
 
@@ -3514,19 +3534,23 @@ start_burst (const char *addr,
               addr,
               my_ipv4);
 
+  GNUNET_stop_burst (NULL);
+
   sock_info = GNUNET_new (struct GNUNET_UdpSocketInfo);
+  sock_info->pid = GNUNET_new (struct GNUNET_PeerIdentity);
   sock_info->address = GNUNET_strdup (addr);
   sock_info->bind_address = my_ipv4;
   sock_info->has_port = GNUNET_YES;
   sock_info->udp_sock = default_udp_sock;
   sock_info->rtt = rtt;
-  sock_info->pid = pid;;
+  GNUNET_memcpy (sock_info->pid, pid, sizeof (struct GNUNET_PeerIdentity));
   sock_info->std_port = my_port;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "1 sock addr %s addr %s rtt %lu\n",
+              "1 sock addr %s addr %s rtt %lu %u\n",
               sock_info->address,
               addr,
-              sock_info->rtt);
+              sock_info->rtt.rel_value_us,
+              my_port);
   burst_task = GNUNET_get_udp_socket (sock_info,
                                       &udp_socket_notify);
   GNUNET_free (sock_info);
diff --git a/src/service/transport/gnunet-service-transport.c 
b/src/service/transport/gnunet-service-transport.c
index 01fae54e9..c0ae26a2f 100644
--- a/src/service/transport/gnunet-service-transport.c
+++ b/src/service/transport/gnunet-service-transport.c
@@ -3065,6 +3065,8 @@ static struct GNUNET_SCHEDULER_Task *burst_task;
 
 struct GNUNET_SCHEDULER_Task *burst_timeout_task;
 
+enum GNUNET_GenericReturnValue use_burst;
+
 /**
  * Get an offset into the transmission history buffer for `struct
  * PerformanceData`.  Note that the caller must perform the required
@@ -4634,9 +4636,10 @@ handle_communicator_available (
   tc->details.communicator.can_burst
     = (enum GNUNET_GenericReturnValue) ntohl (cam->can_burst);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Communicator for peer %s with prefix '%s' connected\n",
+              "Communicator for peer %s with prefix '%s' connected %s\n",
               GNUNET_i2s (&GST_my_identity),
-              tc->details.communicator.address_prefix);
+              tc->details.communicator.address_prefix,
+              tc->details.communicator.can_burst ? "can burst" : "can not 
burst");
   GNUNET_SERVICE_client_continue (tc->client);
 }
 
@@ -9885,7 +9888,7 @@ start_burst (void *cls)
                          strlen (uri_without_port) + 1,
                          GNUNET_MESSAGE_TYPE_TRANSPORT_START_BURST);
   sb->rtt = GNUNET_TIME_relative_hton (sb_cls->rtt);
-  sb->pid = &vl->target;
+  sb->pid = vl->target;
   memcpy (&sb[1], uri_without_port, strlen (uri_without_port) + 1);
   for (struct TransportClient *tc = clients_head; NULL != tc; tc = tc->next)
   {
@@ -9921,6 +9924,8 @@ queue_burst (void *cls)
   struct GNUNET_StartBurstCls *sb_cls = cls;
   struct VirtualLink *vl = sb_cls->vl;
 
+  if (GNUNET_YES != use_burst)
+    return;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "burst_task %p ready %s burst addr %s (%p)\n",
               burst_task,
@@ -12061,6 +12066,12 @@ contains_address (void *cls,
   struct TransportGlobalNattedAddress *tgna = value;
   char *addr = (char *) &tgna[1];
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Checking tgna %p with addr %s and length %u compare length 
%lu\n",
+              tgna,
+              addr,
+              ntohl (tgna->address_length),
+              strlen(tgna_cls->addr));
   if (strlen(tgna_cls->addr) == ntohl (tgna->address_length)
       && 0 == strncmp (addr, tgna_cls->addr, ntohl (tgna->address_length)))
   {
@@ -12962,6 +12973,12 @@ run (void *cls,
               "My identity is `%s'\n",
               GNUNET_i2s_full (&GST_my_identity));
   GST_my_hello = GNUNET_HELLO_builder_new (&GST_my_identity);
+  use_burst = GNUNET_CONFIGURATION_get_value_yesno (GST_cfg,
+                                        "transport",
+                                        "USE_BURST_NAT");
+  if (GNUNET_SYSERR == use_burst)
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Could not configure burst nat use. Default to no.\n");
   GST_stats = GNUNET_STATISTICS_create ("transport", GST_cfg);
   GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL);
   peerstore = GNUNET_PEERSTORE_connect (GST_cfg);
diff --git a/src/service/transport/transport.h 
b/src/service/transport/transport.h
index 753aa1b44..2a42ad191 100644
--- a/src/service/transport/transport.h
+++ b/src/service/transport/transport.h
@@ -686,7 +686,7 @@ struct GNUNET_TRANSPORT_StartBurst
   /**
    * Target peer.
    */
-  struct GNUNET_PeerIdentity *pid;
+  struct GNUNET_PeerIdentity pid;
 
   struct GNUNET_TIME_RelativeNBO rtt;
 
diff --git a/src/service/transport/transport_api2_communication.c 
b/src/service/transport/transport_api2_communication.c
index fe149b90f..887b702c3 100644
--- a/src/service/transport/transport_api2_communication.c
+++ b/src/service/transport/transport_api2_communication.c
@@ -810,7 +810,7 @@ handle_start_burst (void *cls,
               rtt.rel_value_us);
  
   if (NULL != ch->sb)
-    ch->sb (addr, GNUNET_TIME_relative_ntoh (sb->rtt), sb->pid);
+    ch->sb (addr, GNUNET_TIME_relative_ntoh (sb->rtt), (struct 
GNUNET_PeerIdentity *) &sb->pid);
 }
 
 

-- 
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]