aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac16
-rw-r--r--po/POTFILES.in61
-rw-r--r--po/de.po265
-rw-r--r--po/es.po277
-rw-r--r--po/fr.po247
-rw-r--r--po/it.po247
-rw-r--r--po/sr.po259
-rw-r--r--po/sv.po267
-rw-r--r--po/vi.po277
-rw-r--r--po/zh_CN.po259
-rw-r--r--src/Makefile.am3
-rw-r--r--src/cli/namestore/meson.build2
-rw-r--r--src/cli/revocation/Makefile.am3
-rw-r--r--src/cli/revocation/gnunet-revocation-tvg.c22
-rw-r--r--src/cli/revocation/gnunet-revocation.c66
-rw-r--r--src/cli/revocation/meson.build10
-rw-r--r--src/include/gnunet_crypto_lib.h2
-rw-r--r--src/include/gnunet_gnsrecord_lib.h129
-rw-r--r--src/include/gnunet_rest_plugin.h21
-rw-r--r--src/include/gnunet_revocation_service.h132
-rw-r--r--src/lib/gnsrecord/Makefile.am1
-rw-r--r--src/lib/gnsrecord/gnsrecord_crypto.h9
-rw-r--r--src/lib/gnsrecord/gnsrecord_pow.c462
-rw-r--r--src/lib/gnsrecord/meson.build1
-rw-r--r--src/meson.build3
-rw-r--r--src/plugin/Makefile.am10
-rw-r--r--src/plugin/datacache/Makefile.am76
-rw-r--r--src/plugin/datacache/datacache-0001.sql (renamed from src/service/datacache/datacache-0001.sql)0
-rw-r--r--src/plugin/datacache/datacache-drop.sql (renamed from src/service/datacache/datacache-drop.sql)0
-rw-r--r--src/plugin/datacache/meson.build30
-rw-r--r--src/plugin/datacache/plugin_datacache_heap.c (renamed from src/service/datacache/plugin_datacache_heap.c)0
-rw-r--r--src/plugin/datacache/plugin_datacache_postgres.c (renamed from src/service/datacache/plugin_datacache_postgres.c)0
-rw-r--r--src/plugin/datacache/plugin_datacache_sqlite.c (renamed from src/service/datacache/plugin_datacache_sqlite.c)0
-rw-r--r--src/plugin/datacache/plugin_datacache_template.c (renamed from src/service/datacache/plugin_datacache_template.c)0
-rw-r--r--src/plugin/datastore/Makefile.am150
-rw-r--r--src/plugin/datastore/datastore-0001.sql (renamed from src/service/datastore/datastore-0001.sql)0
-rw-r--r--src/plugin/datastore/datastore-drop.sql (renamed from src/service/datastore/datastore-drop.sql)0
-rw-r--r--src/plugin/datastore/meson.build75
-rw-r--r--src/plugin/datastore/perf_plugin_datastore.c (renamed from src/service/datastore/perf_plugin_datastore.c)0
-rw-r--r--src/plugin/datastore/perf_plugin_datastore_data_heap.conf (renamed from src/service/datastore/perf_plugin_datastore_data_heap.conf)0
-rw-r--r--src/plugin/datastore/perf_plugin_datastore_data_postgres.conf (renamed from src/service/datastore/perf_plugin_datastore_data_postgres.conf)0
-rw-r--r--src/plugin/datastore/perf_plugin_datastore_data_sqlite.conf (renamed from src/service/datastore/perf_plugin_datastore_data_sqlite.conf)0
-rw-r--r--src/plugin/datastore/plugin_datastore_heap.c (renamed from src/service/datastore/plugin_datastore_heap.c)0
-rw-r--r--src/plugin/datastore/plugin_datastore_postgres.c (renamed from src/service/datastore/plugin_datastore_postgres.c)0
-rw-r--r--src/plugin/datastore/plugin_datastore_sqlite.c (renamed from src/service/datastore/plugin_datastore_sqlite.c)0
-rw-r--r--src/plugin/datastore/plugin_datastore_template.c (renamed from src/service/datastore/plugin_datastore_template.c)0
-rw-r--r--src/plugin/datastore/test_plugin_datastore.c (renamed from src/service/datastore/test_plugin_datastore.c)0
-rw-r--r--src/plugin/datastore/test_plugin_datastore_data_heap.conf (renamed from src/service/datastore/test_plugin_datastore_data_heap.conf)0
-rw-r--r--src/plugin/datastore/test_plugin_datastore_data_postgres.conf (renamed from src/service/datastore/test_plugin_datastore_data_postgres.conf)0
-rw-r--r--src/plugin/datastore/test_plugin_datastore_data_sqlite.conf (renamed from src/service/datastore/test_plugin_datastore_data_sqlite.conf)0
-rw-r--r--src/plugin/dht/Makefile.am27
-rw-r--r--src/plugin/dht/meson.build9
-rw-r--r--src/plugin/dht/plugin_block_dht.c (renamed from src/service/dht/plugin_block_dht.c)0
-rw-r--r--src/plugin/dns/Makefile.am25
-rw-r--r--src/plugin/dns/meson.build6
-rw-r--r--src/plugin/dns/plugin_block_dns.c (renamed from src/service/dns/plugin_block_dns.c)0
-rw-r--r--src/plugin/fs/Makefile.am1
-rw-r--r--src/plugin/gns/Makefile.am2
-rw-r--r--src/plugin/gns/meson.build2
-rw-r--r--src/plugin/meson.build10
-rw-r--r--src/plugin/messenger/Makefile.am26
-rw-r--r--src/plugin/messenger/meson.build7
-rw-r--r--src/plugin/messenger/plugin_gnsrecord_messenger.c (renamed from src/service/messenger/plugin_gnsrecord_messenger.c)0
-rw-r--r--src/plugin/namecache/Makefile.am9
-rw-r--r--src/plugin/namestore/Makefile.am29
-rw-r--r--src/plugin/namestore/meson.build20
-rw-r--r--src/plugin/peerstore/Makefile.am67
-rw-r--r--src/plugin/peerstore/meson.build9
-rw-r--r--src/plugin/peerstore/plugin_peerstore_flat.c (renamed from src/service/peerstore/plugin_peerstore_flat.c)2
-rw-r--r--src/plugin/peerstore/plugin_peerstore_sqlite.c (renamed from src/service/peerstore/plugin_peerstore_sqlite.c)2
-rw-r--r--src/plugin/peerstore/test_plugin_peerstore.c (renamed from src/service/peerstore/test_plugin_peerstore.c)0
-rw-r--r--src/plugin/peerstore/test_plugin_peerstore_flat.conf (renamed from src/service/peerstore/test_plugin_peerstore_flat.conf)0
-rw-r--r--src/plugin/peerstore/test_plugin_peerstore_sqlite.conf (renamed from src/service/peerstore/test_plugin_peerstore_sqlite.conf)0
-rw-r--r--src/plugin/reclaim/Makefile.am6
-rw-r--r--src/plugin/reclaim/meson.build8
-rw-r--r--src/plugin/regex/Makefile.am40
-rw-r--r--src/plugin/regex/meson.build23
-rw-r--r--src/plugin/regex/plugin_block_regex.c (renamed from src/service/regex/plugin_block_regex.c)0
-rw-r--r--src/plugin/regex/regex_block_lib.c (renamed from src/service/regex/regex_block_lib.c)0
-rw-r--r--src/plugin/regex/regex_block_lib.h (renamed from src/service/regex/regex_block_lib.h)0
-rw-r--r--src/plugin/revocation/Makefile.am3
-rw-r--r--src/plugin/revocation/meson.build2
-rw-r--r--src/plugin/revocation/plugin_block_revocation.c28
-rw-r--r--src/plugin/seti/Makefile.am25
-rw-r--r--src/plugin/seti/meson.build7
-rw-r--r--src/plugin/seti/plugin_block_seti_test.c (renamed from src/service/seti/plugin_block_seti_test.c)0
-rw-r--r--src/plugin/setu/Makefile.am21
-rw-r--r--src/plugin/setu/meson.build7
-rw-r--r--src/plugin/setu/plugin_block_setu_test.c (renamed from src/service/setu/plugin_block_setu_test.c)0
-rw-r--r--src/rest-plugin/Makefile.am5
-rw-r--r--src/rest-plugin/gns/Makefile.am61
-rw-r--r--src/rest-plugin/gns/meson.build13
-rwxr-xr-xsrc/rest-plugin/gns/test_plugin_rest_gns.sh76
-rw-r--r--src/rest-plugin/identity/Makefile.am26
-rw-r--r--src/rest-plugin/identity/meson.build11
-rw-r--r--src/rest-plugin/meson.build6
-rw-r--r--src/rest-plugin/reclaim/Makefile.am81
-rw-r--r--src/rest-plugin/reclaim/meson.build29
-rw-r--r--src/rest-plugin/rest/Makefile.am37
-rw-r--r--src/rest-plugin/rest/meson.build18
-rw-r--r--src/service/Makefile.am5
-rw-r--r--src/service/datacache/Makefile.am68
-rw-r--r--src/service/datacache/meson.build33
-rw-r--r--src/service/datastore/Makefile.am117
-rw-r--r--src/service/datastore/meson.build70
-rw-r--r--src/service/dht/Makefile.am15
-rw-r--r--src/service/dht/meson.build10
-rw-r--r--src/service/dhtu/.gitignore (renamed from src/plugin/dhtu/.gitignore)0
-rw-r--r--src/service/dhtu/Makefile.am (renamed from src/plugin/dhtu/Makefile.am)0
-rw-r--r--src/service/dhtu/dhtu.conf (renamed from src/plugin/dhtu/dhtu.conf)0
-rw-r--r--src/service/dhtu/meson.build (renamed from src/plugin/dhtu/meson.build)0
-rw-r--r--src/service/dhtu/plugin_dhtu_gnunet.c (renamed from src/plugin/dhtu/plugin_dhtu_gnunet.c)0
-rw-r--r--src/service/dhtu/plugin_dhtu_ip.c (renamed from src/plugin/dhtu/plugin_dhtu_ip.c)0
-rw-r--r--src/service/dhtu/test_dhtu_ip.c (renamed from src/plugin/dhtu/test_dhtu_ip.c)0
-rw-r--r--src/service/dhtu/testing_dhtu_cmd_send.c (renamed from src/plugin/dhtu/testing_dhtu_cmd_send.c)0
-rw-r--r--src/service/dns/Makefile.am14
-rw-r--r--src/service/dns/meson.build10
-rw-r--r--src/service/meson.build6
-rw-r--r--src/service/messenger/Makefile.am13
-rw-r--r--src/service/messenger/meson.build8
-rw-r--r--src/service/namestore/meson.build2
-rw-r--r--src/service/peerstore/Makefile.am52
-rw-r--r--src/service/peerstore/meson.build10
-rw-r--r--src/service/regex/Makefile.am40
-rw-r--r--src/service/regex/meson.build24
-rw-r--r--src/service/regex/regex_internal_dht.c1
-rw-r--r--src/service/regex/regex_internal_lib.h2
-rw-r--r--src/service/rest/Makefile.am27
-rw-r--r--src/service/rest/config_plugin.c (renamed from src/rest-plugin/rest/plugin_rest_config.c)69
-rw-r--r--src/service/rest/config_plugin.h37
-rw-r--r--src/service/rest/copying_plugin.c (renamed from src/rest-plugin/rest/plugin_rest_copying.c)23
-rw-r--r--src/service/rest/copying_plugin.h36
-rw-r--r--src/service/rest/gns_plugin.c (renamed from src/rest-plugin/gns/plugin_rest_gns.c)27
-rw-r--r--src/service/rest/gns_plugin.h36
-rw-r--r--src/service/rest/gnunet-rest-server.c153
-rw-r--r--src/service/rest/identity_plugin.c (renamed from src/rest-plugin/identity/plugin_rest_identity.c)39
-rw-r--r--src/service/rest/identity_plugin.h36
-rw-r--r--src/service/rest/json_reclaim.c (renamed from src/rest-plugin/reclaim/json_reclaim.c)0
-rw-r--r--src/service/rest/json_reclaim.h (renamed from src/rest-plugin/reclaim/json_reclaim.h)0
-rw-r--r--src/service/rest/meson.build26
-rw-r--r--src/service/rest/namestore_plugin.c (renamed from src/plugin/namestore/plugin_rest_namestore.c)34
-rw-r--r--src/service/rest/namestore_plugin.h37
-rw-r--r--src/service/rest/oidc_helper.c (renamed from src/rest-plugin/reclaim/oidc_helper.c)0
-rw-r--r--src/service/rest/oidc_helper.h (renamed from src/rest-plugin/reclaim/oidc_helper.h)0
-rw-r--r--src/service/rest/openid_plugin.c (renamed from src/rest-plugin/reclaim/plugin_rest_openid_connect.c)61
-rw-r--r--src/service/rest/openid_plugin.h36
-rw-r--r--src/service/rest/pabc_plugin.c (renamed from src/rest-plugin/reclaim/plugin_rest_pabc.c)0
-rw-r--r--src/service/rest/reclaim_plugin.c (renamed from src/rest-plugin/reclaim/plugin_rest_reclaim.c)31
-rw-r--r--src/service/rest/reclaim_plugin.h36
-rw-r--r--src/service/revocation/Makefile.am4
-rw-r--r--src/service/revocation/gnunet-service-revocation.c22
-rw-r--r--src/service/revocation/meson.build5
-rw-r--r--src/service/revocation/revocation.h9
-rw-r--r--src/service/revocation/revocation_api.c440
-rw-r--r--src/service/seti/Makefile.am14
-rw-r--r--src/service/seti/meson.build6
-rw-r--r--src/service/setu/Makefile.am14
-rw-r--r--src/service/setu/meson.build6
-rw-r--r--src/service/topology/gnunet-daemon-topology.c30
159 files changed, 3040 insertions, 2922 deletions
diff --git a/configure.ac b/configure.ac
index 982a4afe9..8ebcbd4a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1238,14 +1238,22 @@ src/lib/pq/Makefile
1238src/lib/sq/Makefile 1238src/lib/sq/Makefile
1239src/plugin/Makefile 1239src/plugin/Makefile
1240src/plugin/block/Makefile 1240src/plugin/block/Makefile
1241src/plugin/dhtu/Makefile 1241src/plugin/datacache/Makefile
1242src/plugin/datastore/Makefile
1243src/plugin/dht/Makefile
1244src/plugin/dns/Makefile
1242src/plugin/fs/Makefile 1245src/plugin/fs/Makefile
1243src/plugin/gns/Makefile 1246src/plugin/gns/Makefile
1244src/plugin/gnsrecord/Makefile 1247src/plugin/gnsrecord/Makefile
1245src/plugin/namecache/Makefile 1248src/plugin/namecache/Makefile
1246src/plugin/namestore/Makefile 1249src/plugin/namestore/Makefile
1250src/plugin/peerstore/Makefile
1247src/plugin/reclaim/Makefile 1251src/plugin/reclaim/Makefile
1252src/plugin/regex/Makefile
1248src/plugin/revocation/Makefile 1253src/plugin/revocation/Makefile
1254src/plugin/seti/Makefile
1255src/plugin/setu/Makefile
1256src/plugin/messenger/Makefile
1249src/service/Makefile 1257src/service/Makefile
1250src/service/arm/Makefile 1258src/service/arm/Makefile
1251src/service/arm/arm.conf 1259src/service/arm/arm.conf
@@ -1258,6 +1266,7 @@ src/service/datastore/Makefile
1258src/service/datastore/datastore.conf 1266src/service/datastore/datastore.conf
1259src/service/dht/Makefile 1267src/service/dht/Makefile
1260src/service/dht/dht.conf 1268src/service/dht/dht.conf
1269src/service/dhtu/Makefile
1261src/service/dns/Makefile 1270src/service/dns/Makefile
1262src/service/dns/dns.conf 1271src/service/dns/dns.conf
1263src/service/exit/Makefile 1272src/service/exit/Makefile
@@ -1306,11 +1315,6 @@ src/service/vpn/Makefile
1306src/service/vpn/vpn.conf 1315src/service/vpn/vpn.conf
1307src/service/zonemaster/Makefile 1316src/service/zonemaster/Makefile
1308src/service/zonemaster/zonemaster.conf 1317src/service/zonemaster/zonemaster.conf
1309src/rest-plugin/Makefile
1310src/rest-plugin/gns/Makefile
1311src/rest-plugin/identity/Makefile
1312src/rest-plugin/reclaim/Makefile
1313src/rest-plugin/rest/Makefile
1314src/cli/Makefile 1318src/cli/Makefile
1315src/cli/arm/Makefile 1319src/cli/arm/Makefile
1316src/cli/cadet/Makefile 1320src/cli/cadet/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8e5600890..a1471f455 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -109,6 +109,7 @@ src/lib/curl/curl_reschedule.c
109src/lib/gnsrecord/gnsrecord.c 109src/lib/gnsrecord/gnsrecord.c
110src/lib/gnsrecord/gnsrecord_crypto.c 110src/lib/gnsrecord/gnsrecord_crypto.c
111src/lib/gnsrecord/gnsrecord_misc.c 111src/lib/gnsrecord/gnsrecord_misc.c
112src/lib/gnsrecord/gnsrecord_pow.c
112src/lib/gnsrecord/gnsrecord_serialization.c 113src/lib/gnsrecord/gnsrecord_serialization.c
113src/lib/gnsrecord/gnunet-gnsrecord-tvg.c 114src/lib/gnsrecord/gnunet-gnsrecord-tvg.c
114src/lib/gnsrecord/json_gnsrecord.c 115src/lib/gnsrecord/json_gnsrecord.c
@@ -207,35 +208,39 @@ src/lib/util/tun.c
207src/lib/util/uri.c 208src/lib/util/uri.c
208src/plugin/block/plugin_block_template.c 209src/plugin/block/plugin_block_template.c
209src/plugin/block/plugin_block_test.c 210src/plugin/block/plugin_block_test.c
210src/plugin/dhtu/plugin_dhtu_gnunet.c 211src/plugin/datacache/plugin_datacache_heap.c
211src/plugin/dhtu/plugin_dhtu_ip.c 212src/plugin/datacache/plugin_datacache_postgres.c
212src/plugin/dhtu/testing_dhtu_cmd_send.c 213src/plugin/datacache/plugin_datacache_sqlite.c
214src/plugin/datacache/plugin_datacache_template.c
215src/plugin/datastore/plugin_datastore_heap.c
216src/plugin/datastore/plugin_datastore_postgres.c
217src/plugin/datastore/plugin_datastore_sqlite.c
218src/plugin/datastore/plugin_datastore_template.c
219src/plugin/dht/plugin_block_dht.c
220src/plugin/dns/plugin_block_dns.c
213src/plugin/fs/plugin_block_fs.c 221src/plugin/fs/plugin_block_fs.c
214src/plugin/gns/plugin_block_gns.c 222src/plugin/gns/plugin_block_gns.c
215src/plugin/gns/plugin_gnsrecord_gns.c 223src/plugin/gns/plugin_gnsrecord_gns.c
216src/plugin/gnsrecord/plugin_gnsrecord_dns.c 224src/plugin/gnsrecord/plugin_gnsrecord_dns.c
225src/plugin/messenger/plugin_gnsrecord_messenger.c
217src/plugin/namecache/plugin_namecache_flat.c 226src/plugin/namecache/plugin_namecache_flat.c
218src/plugin/namecache/plugin_namecache_postgres.c 227src/plugin/namecache/plugin_namecache_postgres.c
219src/plugin/namecache/plugin_namecache_sqlite.c 228src/plugin/namecache/plugin_namecache_sqlite.c
220src/plugin/namestore/plugin_namestore_flat.c 229src/plugin/namestore/plugin_namestore_flat.c
221src/plugin/namestore/plugin_namestore_postgres.c 230src/plugin/namestore/plugin_namestore_postgres.c
222src/plugin/namestore/plugin_namestore_sqlite.c 231src/plugin/namestore/plugin_namestore_sqlite.c
223src/plugin/namestore/plugin_rest_namestore.c 232src/plugin/peerstore/plugin_peerstore_flat.c
233src/plugin/peerstore/plugin_peerstore_sqlite.c
224src/plugin/reclaim/pabc_helper.c 234src/plugin/reclaim/pabc_helper.c
225src/plugin/reclaim/plugin_gnsrecord_reclaim.c 235src/plugin/reclaim/plugin_gnsrecord_reclaim.c
226src/plugin/reclaim/plugin_reclaim_attribute_basic.c 236src/plugin/reclaim/plugin_reclaim_attribute_basic.c
227src/plugin/reclaim/plugin_reclaim_credential_jwt.c 237src/plugin/reclaim/plugin_reclaim_credential_jwt.c
228src/plugin/reclaim/plugin_reclaim_credential_pabc.c 238src/plugin/reclaim/plugin_reclaim_credential_pabc.c
239src/plugin/regex/plugin_block_regex.c
240src/plugin/regex/regex_block_lib.c
229src/plugin/revocation/plugin_block_revocation.c 241src/plugin/revocation/plugin_block_revocation.c
230src/rest-plugin/gns/plugin_rest_gns.c 242src/plugin/seti/plugin_block_seti_test.c
231src/rest-plugin/identity/plugin_rest_identity.c 243src/plugin/setu/plugin_block_setu_test.c
232src/rest-plugin/reclaim/json_reclaim.c
233src/rest-plugin/reclaim/oidc_helper.c
234src/rest-plugin/reclaim/plugin_rest_openid_connect.c
235src/rest-plugin/reclaim/plugin_rest_pabc.c
236src/rest-plugin/reclaim/plugin_rest_reclaim.c
237src/rest-plugin/rest/plugin_rest_config.c
238src/rest-plugin/rest/plugin_rest_copying.c
239src/service/arm/arm_api.c 244src/service/arm/arm_api.c
240src/service/arm/arm_monitor_api.c 245src/service/arm/arm_monitor_api.c
241src/service/arm/gnunet-service-arm.c 246src/service/arm/gnunet-service-arm.c
@@ -266,16 +271,8 @@ src/service/core/gnunet-service-core_kx.c
266src/service/core/gnunet-service-core_sessions.c 271src/service/core/gnunet-service-core_sessions.c
267src/service/core/gnunet-service-core_typemap.c 272src/service/core/gnunet-service-core_typemap.c
268src/service/datacache/datacache.c 273src/service/datacache/datacache.c
269src/service/datacache/plugin_datacache_heap.c
270src/service/datacache/plugin_datacache_postgres.c
271src/service/datacache/plugin_datacache_sqlite.c
272src/service/datacache/plugin_datacache_template.c
273src/service/datastore/datastore_api.c 274src/service/datastore/datastore_api.c
274src/service/datastore/gnunet-service-datastore.c 275src/service/datastore/gnunet-service-datastore.c
275src/service/datastore/plugin_datastore_heap.c
276src/service/datastore/plugin_datastore_postgres.c
277src/service/datastore/plugin_datastore_sqlite.c
278src/service/datastore/plugin_datastore_template.c
279src/service/dht/dht_api.c 276src/service/dht/dht_api.c
280src/service/dht/dht_test_lib.c 277src/service/dht/dht_test_lib.c
281src/service/dht/gnunet-service-dht.c 278src/service/dht/gnunet-service-dht.c
@@ -284,14 +281,15 @@ src/service/dht/gnunet-service-dht_datacache.c
284src/service/dht/gnunet-service-dht_neighbours.c 281src/service/dht/gnunet-service-dht_neighbours.c
285src/service/dht/gnunet-service-dht_routing.c 282src/service/dht/gnunet-service-dht_routing.c
286src/service/dht/gnunet_dht_profiler.c 283src/service/dht/gnunet_dht_profiler.c
287src/service/dht/plugin_block_dht.c 284src/service/dhtu/plugin_dhtu_gnunet.c
285src/service/dhtu/plugin_dhtu_ip.c
286src/service/dhtu/testing_dhtu_cmd_send.c
288src/service/dns/dns_api.c 287src/service/dns/dns_api.c
289src/service/dns/gnunet-dns-monitor.c 288src/service/dns/gnunet-dns-monitor.c
290src/service/dns/gnunet-dns-redirector.c 289src/service/dns/gnunet-dns-redirector.c
291src/service/dns/gnunet-helper-dns.c 290src/service/dns/gnunet-helper-dns.c
292src/service/dns/gnunet-service-dns.c 291src/service/dns/gnunet-service-dns.c
293src/service/dns/gnunet-zonewalk.c 292src/service/dns/gnunet-zonewalk.c
294src/service/dns/plugin_block_dns.c
295src/service/exit/gnunet-daemon-exit.c 293src/service/exit/gnunet-daemon-exit.c
296src/service/exit/gnunet-helper-exit.c 294src/service/exit/gnunet-helper-exit.c
297src/service/fs/fs_api.c 295src/service/fs/fs_api.c
@@ -372,7 +370,6 @@ src/service/messenger/messenger_api_list_tunnels.c
372src/service/messenger/messenger_api_message.c 370src/service/messenger/messenger_api_message.c
373src/service/messenger/messenger_api_room.c 371src/service/messenger/messenger_api_room.c
374src/service/messenger/messenger_api_util.c 372src/service/messenger/messenger_api_util.c
375src/service/messenger/plugin_gnsrecord_messenger.c
376src/service/messenger/testing_messenger_barrier.c 373src/service/messenger/testing_messenger_barrier.c
377src/service/messenger/testing_messenger_setup.c 374src/service/messenger/testing_messenger_setup.c
378src/service/namecache/gnunet-service-namecache.c 375src/service/namecache/gnunet-service-namecache.c
@@ -402,8 +399,6 @@ src/service/peerstore/gnunet-peerstore.c
402src/service/peerstore/gnunet-service-peerstore.c 399src/service/peerstore/gnunet-service-peerstore.c
403src/service/peerstore/peerstore_api.c 400src/service/peerstore/peerstore_api.c
404src/service/peerstore/peerstore_common.c 401src/service/peerstore/peerstore_common.c
405src/service/peerstore/plugin_peerstore_flat.c
406src/service/peerstore/plugin_peerstore_sqlite.c
407src/service/pt/gnunet-daemon-pt.c 402src/service/pt/gnunet-daemon-pt.c
408src/service/reclaim/did_core.c 403src/service/reclaim/did_core.c
409src/service/reclaim/did_helper.c 404src/service/reclaim/did_helper.c
@@ -418,22 +413,29 @@ src/service/regex/gnunet-regex-profiler.c
418src/service/regex/gnunet-regex-simulation-profiler.c 413src/service/regex/gnunet-regex-simulation-profiler.c
419src/service/regex/gnunet-service-regex.c 414src/service/regex/gnunet-service-regex.c
420src/service/regex/perf-regex.c 415src/service/regex/perf-regex.c
421src/service/regex/plugin_block_regex.c
422src/service/regex/regex_api_announce.c 416src/service/regex/regex_api_announce.c
423src/service/regex/regex_api_search.c 417src/service/regex/regex_api_search.c
424src/service/regex/regex_block_lib.c
425src/service/regex/regex_internal.c 418src/service/regex/regex_internal.c
426src/service/regex/regex_internal_dht.c 419src/service/regex/regex_internal_dht.c
427src/service/regex/regex_test_graph.c 420src/service/regex/regex_test_graph.c
428src/service/regex/regex_test_lib.c 421src/service/regex/regex_test_lib.c
429src/service/regex/regex_test_random.c 422src/service/regex/regex_test_random.c
423src/service/rest/config_plugin.c
424src/service/rest/copying_plugin.c
425src/service/rest/gns_plugin.c
430src/service/rest/gnunet-rest-server.c 426src/service/rest/gnunet-rest-server.c
427src/service/rest/identity_plugin.c
428src/service/rest/json_reclaim.c
429src/service/rest/namestore_plugin.c
430src/service/rest/oidc_helper.c
431src/service/rest/openid_plugin.c
432src/service/rest/pabc_plugin.c
433src/service/rest/reclaim_plugin.c
431src/service/rest/rest.c 434src/service/rest/rest.c
432src/service/revocation/gnunet-service-revocation.c 435src/service/revocation/gnunet-service-revocation.c
433src/service/revocation/revocation_api.c 436src/service/revocation/revocation_api.c
434src/service/seti/gnunet-service-seti.c 437src/service/seti/gnunet-service-seti.c
435src/service/seti/gnunet-seti-profiler.c 438src/service/seti/gnunet-seti-profiler.c
436src/service/seti/plugin_block_seti_test.c
437src/service/seti/seti_api.c 439src/service/seti/seti_api.c
438src/service/setu/gnunet-service-setu.c 440src/service/setu/gnunet-service-setu.c
439src/service/setu/gnunet-service-setu_strata_estimator.c 441src/service/setu/gnunet-service-setu_strata_estimator.c
@@ -441,7 +443,6 @@ src/service/setu/gnunet-setu-ibf-profiler.c
441src/service/setu/gnunet-setu-profiler.c 443src/service/setu/gnunet-setu-profiler.c
442src/service/setu/ibf.c 444src/service/setu/ibf.c
443src/service/setu/ibf_sim.c 445src/service/setu/ibf_sim.c
444src/service/setu/plugin_block_setu_test.c
445src/service/setu/setu_api.c 446src/service/setu/setu_api.c
446src/service/statistics/gnunet-service-statistics.c 447src/service/statistics/gnunet-service-statistics.c
447src/service/statistics/statistics_api.c 448src/service/statistics/statistics_api.c
diff --git a/po/de.po b/po/de.po
index 84ef556bb..ef5eb3752 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
10msgstr "" 10msgstr ""
11"Project-Id-Version: gnunet 0.10.1\n" 11"Project-Id-Version: gnunet 0.10.1\n"
12"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 12"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
13"POT-Creation-Date: 2023-10-19 16:42+0200\n" 13"POT-Creation-Date: 2023-10-20 10:06+0200\n"
14"PO-Revision-Date: 2015-03-08 16:16+0100\n" 14"PO-Revision-Date: 2015-03-08 16:16+0100\n"
15"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" 15"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
16"Language-Team: German <translation-team-de@lists.sourceforge.net>\n" 16"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -2215,7 +2215,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2215msgstr "Das Parsen des Hello von `%s' schlug fehl.\n" 2215msgstr "Das Parsen des Hello von `%s' schlug fehl.\n"
2216 2216
2217#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2217#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2218#: src/service/revocation/gnunet-service-revocation.c:922 2218#: src/service/revocation/gnunet-service-revocation.c:924
2219msgid "Value is too large.\n" 2219msgid "Value is too large.\n"
2220msgstr "" 2220msgstr ""
2221 2221
@@ -3560,12 +3560,12 @@ msgstr ""
3560 3560
3561#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3561#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3562#: src/lib/util/crypto_mpi.c:41 3562#: src/lib/util/crypto_mpi.c:41
3563#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3564#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3565#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3566#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3563#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3567#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3564#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3568#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3565#: src/service/datacache/plugin_datacache_sqlite.c:128
3566#: src/service/datacache/plugin_datacache_sqlite.c:150
3567#: src/service/datastore/plugin_datastore_sqlite.c:63
3568#: src/service/datastore/plugin_datastore_sqlite.c:81
3569#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3569#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3570#, c-format 3570#, c-format
3571msgid "`%s' failed at %s:%d with error: %s\n" 3571msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4135,6 +4135,84 @@ msgid ""
4135"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4135"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4136msgstr "" 4136msgstr ""
4137 4137
4138#: src/plugin/datacache/plugin_datacache_heap.c:492
4139msgid "Heap datacache running\n"
4140msgstr ""
4141
4142#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4143#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4144#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4145#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4146msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4147msgstr ""
4148
4149#: src/plugin/datastore/plugin_datastore_heap.c:895
4150msgid "Heap database running\n"
4151msgstr "Heap-Datenbank läuft\n"
4152
4153#: src/plugin/datastore/plugin_datastore_postgres.c:238
4154#: src/plugin/datastore/plugin_datastore_postgres.c:850
4155msgid "Postgresql exec failure"
4156msgstr ""
4157
4158#: src/plugin/datastore/plugin_datastore_postgres.c:811
4159#, fuzzy
4160msgid "Failed to drop table from database.\n"
4161msgstr "Fehler beim Binden an UDP Port %d.\n"
4162
4163#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4164#, fuzzy, c-format
4165msgid "`%s' failed at %s:%u with error: %s"
4166msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
4167
4168#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4169#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4170#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4171#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4172#, c-format
4173msgid "Unable to initialize SQLite: %s.\n"
4174msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
4175
4176#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4177msgid "sqlite bind failure"
4178msgstr ""
4179
4180#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4181#, fuzzy
4182msgid "Data too large"
4183msgstr "Anzahl der Werte"
4184
4185#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4186msgid "sqlite version to old to determine size, assuming zero\n"
4187msgstr ""
4188
4189#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4190#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4191#, fuzzy
4192msgid "error preparing statement\n"
4193msgstr "Fehler beim Anlegen des Tunnels\n"
4194
4195#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4196#, fuzzy
4197msgid "error stepping\n"
4198msgstr "%s wird gestoppt"
4199
4200#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4201#, c-format
4202msgid ""
4203"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4204"bytes)\n"
4205msgstr ""
4206
4207#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4208#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4209msgid "Sqlite database running\n"
4210msgstr "Sqlite-Datenbank läuft\n"
4211
4212#: src/plugin/datastore/plugin_datastore_template.c:252
4213msgid "Template database running\n"
4214msgstr ""
4215
4138#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4216#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4139msgid "This is a memento of an older block for internal maintenance." 4217msgid "This is a memento of an older block for internal maintenance."
4140msgstr "" 4218msgstr ""
@@ -4267,32 +4345,12 @@ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
4267msgid "flat plugin running\n" 4345msgid "flat plugin running\n"
4268msgstr "Sqlite-Datenbank läuft\n" 4346msgstr "Sqlite-Datenbank läuft\n"
4269 4347
4270#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4271#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4272#: src/service/datastore/plugin_datastore_sqlite.c:311
4273#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4274#, c-format
4275msgid "Unable to initialize SQLite: %s.\n"
4276msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
4277
4278#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4348#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4279#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4349#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4280#, fuzzy, c-format 4350#, fuzzy, c-format
4281msgid "Failed to setup database at `%s'\n" 4351msgid "Failed to setup database at `%s'\n"
4282msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" 4352msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
4283 4353
4284#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4285#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4286#: src/service/datacache/plugin_datacache_sqlite.c:1035
4287#: src/service/datastore/plugin_datastore_sqlite.c:532
4288msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4289msgstr ""
4290
4291#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4292#: src/service/datastore/plugin_datastore_sqlite.c:1338
4293msgid "Sqlite database running\n"
4294msgstr "Sqlite-Datenbank läuft\n"
4295
4296#: src/plugin/namestore/plugin_namestore_flat.c:194 4354#: src/plugin/namestore/plugin_namestore_flat.c:194
4297#, c-format 4355#, c-format
4298msgid "File too big to map: %llu bytes.\n" 4356msgid "File too big to map: %llu bytes.\n"
@@ -4319,41 +4377,6 @@ msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
4319msgid "SQlite database running\n" 4377msgid "SQlite database running\n"
4320msgstr "Sqlite-Datenbank läuft\n" 4378msgstr "Sqlite-Datenbank läuft\n"
4321 4379
4322#: src/plugin/namestore/plugin_rest_namestore.c:1320
4323#, fuzzy
4324msgid "Namestore REST API initialized\n"
4325msgstr " Verbindung fehlgeschlagen\n"
4326
4327#: src/rest-plugin/gns/plugin_rest_gns.c:450
4328#, fuzzy
4329msgid "Gns REST API initialized\n"
4330msgstr " Verbindung fehlgeschlagen\n"
4331
4332#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4333msgid "Identity REST API initialized\n"
4334msgstr ""
4335
4336#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4337#, fuzzy
4338msgid "OpenID Connect REST API initialized\n"
4339msgstr " Verbindung fehlgeschlagen\n"
4340
4341#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4342#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4343#, fuzzy
4344msgid "Identity Provider REST API initialized\n"
4345msgstr " Verbindung fehlgeschlagen\n"
4346
4347#: src/rest-plugin/rest/plugin_rest_config.c:428
4348#, fuzzy
4349msgid "CONFIG REST API initialized\n"
4350msgstr " Verbindung fehlgeschlagen\n"
4351
4352#: src/rest-plugin/rest/plugin_rest_copying.c:211
4353#, fuzzy
4354msgid "COPYING REST API initialized\n"
4355msgstr " Verbindung fehlgeschlagen\n"
4356
4357#: src/service/arm/gnunet-service-arm.c:391 4380#: src/service/arm/gnunet-service-arm.c:391
4358#, c-format 4381#, c-format
4359msgid "" 4382msgid ""
@@ -4641,10 +4664,6 @@ msgstr "# Bytes empfangen über TCP"
4641msgid "# updates to my type map" 4664msgid "# updates to my type map"
4642msgstr "" 4665msgstr ""
4643 4666
4644#: src/service/datacache/plugin_datacache_heap.c:492
4645msgid "Heap datacache running\n"
4646msgstr ""
4647
4648#: src/service/datastore/datastore_api.c:340 4667#: src/service/datastore/datastore_api.c:340
4649#, fuzzy 4668#, fuzzy
4650msgid "DATASTORE disconnected" 4669msgid "DATASTORE disconnected"
@@ -4862,60 +4881,6 @@ msgstr "Datei wurde als `%s' gespeichert.\n"
4862msgid "Failed to initialize bloomfilter.\n" 4881msgid "Failed to initialize bloomfilter.\n"
4863msgstr "Bloomfilter konnte nicht initialisiert werden.\n" 4882msgstr "Bloomfilter konnte nicht initialisiert werden.\n"
4864 4883
4865#: src/service/datastore/plugin_datastore_heap.c:895
4866msgid "Heap database running\n"
4867msgstr "Heap-Datenbank läuft\n"
4868
4869#: src/service/datastore/plugin_datastore_postgres.c:238
4870#: src/service/datastore/plugin_datastore_postgres.c:850
4871msgid "Postgresql exec failure"
4872msgstr ""
4873
4874#: src/service/datastore/plugin_datastore_postgres.c:811
4875#, fuzzy
4876msgid "Failed to drop table from database.\n"
4877msgstr "Fehler beim Binden an UDP Port %d.\n"
4878
4879#: src/service/datastore/plugin_datastore_sqlite.c:87
4880#, fuzzy, c-format
4881msgid "`%s' failed at %s:%u with error: %s"
4882msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
4883
4884#: src/service/datastore/plugin_datastore_sqlite.c:634
4885msgid "sqlite bind failure"
4886msgstr ""
4887
4888#: src/service/datastore/plugin_datastore_sqlite.c:675
4889#, fuzzy
4890msgid "Data too large"
4891msgstr "Anzahl der Werte"
4892
4893#: src/service/datastore/plugin_datastore_sqlite.c:1252
4894msgid "sqlite version to old to determine size, assuming zero\n"
4895msgstr ""
4896
4897#: src/service/datastore/plugin_datastore_sqlite.c:1267
4898#: src/service/datastore/plugin_datastore_sqlite.c:1280
4899#, fuzzy
4900msgid "error preparing statement\n"
4901msgstr "Fehler beim Anlegen des Tunnels\n"
4902
4903#: src/service/datastore/plugin_datastore_sqlite.c:1288
4904#, fuzzy
4905msgid "error stepping\n"
4906msgstr "%s wird gestoppt"
4907
4908#: src/service/datastore/plugin_datastore_sqlite.c:1296
4909#, c-format
4910msgid ""
4911"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4912"bytes)\n"
4913msgstr ""
4914
4915#: src/service/datastore/plugin_datastore_template.c:252
4916msgid "Template database running\n"
4917msgstr ""
4918
4919#: src/service/dht/gnunet_dht_profiler.c:925 4884#: src/service/dht/gnunet_dht_profiler.c:925
4920#, c-format 4885#, c-format
4921msgid "Exiting as the number of peers is %u\n" 4886msgid "Exiting as the number of peers is %u\n"
@@ -5718,7 +5683,7 @@ msgstr "GNUnet Konfiguration"
5718 5683
5719#: src/service/fs/gnunet-service-fs.c:1271 5684#: src/service/fs/gnunet-service-fs.c:1271
5720#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5685#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5721#: src/service/topology/gnunet-daemon-topology.c:976 5686#: src/service/topology/gnunet-daemon-topology.c:966
5722#, fuzzy, c-format 5687#, fuzzy, c-format
5723msgid "Failed to connect to `%s' service.\n" 5688msgid "Failed to connect to `%s' service.\n"
5724msgstr "`%s' Dienst konnte nicht initialisiert werden.\n" 5689msgstr "`%s' Dienst konnte nicht initialisiert werden.\n"
@@ -6184,7 +6149,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6184msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n" 6149msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
6185 6150
6186#: src/service/gns/gnunet-gns-proxy.c:2919 6151#: src/service/gns/gnunet-gns-proxy.c:2919
6187#: src/service/rest/gnunet-rest-server.c:957 6152#: src/service/rest/gnunet-rest-server.c:993
6188#, fuzzy 6153#, fuzzy
6189msgid "Failed to pass client to MHD\n" 6154msgid "Failed to pass client to MHD\n"
6190msgstr "Fehler beim Starten der Collection.\n" 6155msgstr "Fehler beim Starten der Collection.\n"
@@ -6544,7 +6509,7 @@ msgid "# hostlist advertisements send"
6544msgstr "# Bekanntmachungen von anderen übertragen" 6509msgstr "# Bekanntmachungen von anderen übertragen"
6545 6510
6546#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6511#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6547#: src/service/topology/gnunet-daemon-topology.c:747 6512#: src/service/topology/gnunet-daemon-topology.c:738
6548#, fuzzy, c-format 6513#, fuzzy, c-format
6549msgid "Error in communication with PEERSTORE service: %s\n" 6514msgid "Error in communication with PEERSTORE service: %s\n"
6550msgstr "Informationen über andere GNUnet Knoten ausgeben." 6515msgstr "Informationen über andere GNUnet Knoten ausgeben."
@@ -7189,40 +7154,74 @@ msgstr ""
7189msgid "Search string `%s' is too long!\n" 7154msgid "Search string `%s' is too long!\n"
7190msgstr "Dienst »%s« läuft nicht\n" 7155msgstr "Dienst »%s« läuft nicht\n"
7191 7156
7192#: src/service/rest/gnunet-rest-server.c:1369 7157#: src/service/rest/config_plugin.c:432
7158#, fuzzy
7159msgid "CONFIG REST API initialized\n"
7160msgstr " Verbindung fehlgeschlagen\n"
7161
7162#: src/service/rest/copying_plugin.c:208
7163#, fuzzy
7164msgid "COPYING REST API initialized\n"
7165msgstr " Verbindung fehlgeschlagen\n"
7166
7167#: src/service/rest/gns_plugin.c:451
7168#, fuzzy
7169msgid "Gns REST API initialized\n"
7170msgstr " Verbindung fehlgeschlagen\n"
7171
7172#: src/service/rest/gnunet-rest-server.c:1448
7193#, fuzzy 7173#, fuzzy
7194msgid "GNUnet REST server" 7174msgid "GNUnet REST server"
7195msgstr "GNUnet Netzwerk Topologie tracen." 7175msgstr "GNUnet Netzwerk Topologie tracen."
7196 7176
7197#: src/service/revocation/gnunet-service-revocation.c:539 7177#: src/service/rest/identity_plugin.c:1248
7178msgid "Identity REST API initialized\n"
7179msgstr ""
7180
7181#: src/service/rest/namestore_plugin.c:1322
7182#, fuzzy
7183msgid "Namestore REST API initialized\n"
7184msgstr " Verbindung fehlgeschlagen\n"
7185
7186#: src/service/rest/openid_plugin.c:3102
7187#, fuzzy
7188msgid "OpenID Connect REST API initialized\n"
7189msgstr " Verbindung fehlgeschlagen\n"
7190
7191#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7192#, fuzzy
7193msgid "Identity Provider REST API initialized\n"
7194msgstr " Verbindung fehlgeschlagen\n"
7195
7196#: src/service/revocation/gnunet-service-revocation.c:541
7198msgid "# unsupported revocations received via set union" 7197msgid "# unsupported revocations received via set union"
7199msgstr "" 7198msgstr ""
7200 7199
7201#: src/service/revocation/gnunet-service-revocation.c:549 7200#: src/service/revocation/gnunet-service-revocation.c:551
7202#, fuzzy 7201#, fuzzy
7203msgid "# revocation messages received via set union" 7202msgid "# revocation messages received via set union"
7204msgstr "# verschlüsselter PING Nachrichten empfangen" 7203msgstr "# verschlüsselter PING Nachrichten empfangen"
7205 7204
7206#: src/service/revocation/gnunet-service-revocation.c:554 7205#: src/service/revocation/gnunet-service-revocation.c:556
7207#, c-format 7206#, c-format
7208msgid "Error computing revocation set union with %s\n" 7207msgid "Error computing revocation set union with %s\n"
7209msgstr "" 7208msgstr ""
7210 7209
7211#: src/service/revocation/gnunet-service-revocation.c:558 7210#: src/service/revocation/gnunet-service-revocation.c:560
7212#, fuzzy 7211#, fuzzy
7213msgid "# revocation set unions failed" 7212msgid "# revocation set unions failed"
7214msgstr " Verbindung fehlgeschlagen\n" 7213msgstr " Verbindung fehlgeschlagen\n"
7215 7214
7216#: src/service/revocation/gnunet-service-revocation.c:566 7215#: src/service/revocation/gnunet-service-revocation.c:568
7217#, fuzzy 7216#, fuzzy
7218msgid "# revocation set unions completed" 7217msgid "# revocation set unions completed"
7219msgstr "# Klartext PONG Nachrichten empfangen" 7218msgstr "# Klartext PONG Nachrichten empfangen"
7220 7219
7221#: src/service/revocation/gnunet-service-revocation.c:604 7220#: src/service/revocation/gnunet-service-revocation.c:606
7222msgid "SET service crashed, terminating revocation service\n" 7221msgid "SET service crashed, terminating revocation service\n"
7223msgstr "" 7222msgstr ""
7224 7223
7225#: src/service/revocation/gnunet-service-revocation.c:959 7224#: src/service/revocation/gnunet-service-revocation.c:961
7226#, fuzzy 7225#, fuzzy
7227msgid "Could not open revocation database file!" 7226msgid "Could not open revocation database file!"
7228msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n" 7227msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
@@ -7367,15 +7366,15 @@ msgstr "# geschlossener Verbindungen (HANGUP gesendet)"
7367msgid "# HELLO messages gossipped" 7366msgid "# HELLO messages gossipped"
7368msgstr "# ausgehender Nachrichten verworfen" 7367msgstr "# ausgehender Nachrichten verworfen"
7369 7368
7370#: src/service/topology/gnunet-daemon-topology.c:805 7369#: src/service/topology/gnunet-daemon-topology.c:796
7371msgid "Failed to connect to core service, can not manage topology!\n" 7370msgid "Failed to connect to core service, can not manage topology!\n"
7372msgstr "" 7371msgstr ""
7373 7372
7374#: src/service/topology/gnunet-daemon-topology.c:870 7373#: src/service/topology/gnunet-daemon-topology.c:859
7375msgid "# HELLO messages received" 7374msgid "# HELLO messages received"
7376msgstr "# HELLO-Meldungen empfangen" 7375msgstr "# HELLO-Meldungen empfangen"
7377 7376
7378#: src/service/topology/gnunet-daemon-topology.c:1005 7377#: src/service/topology/gnunet-daemon-topology.c:995
7379msgid "GNUnet topology control" 7378msgid "GNUnet topology control"
7380msgstr "" 7379msgstr ""
7381 7380
diff --git a/po/es.po b/po/es.po
index d5757ddf0..6bfe5b505 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: gnunet 0.9.5a\n" 9"Project-Id-Version: gnunet 0.9.5a\n"
10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
11"POT-Creation-Date: 2023-10-19 16:42+0200\n" 11"POT-Creation-Date: 2023-10-20 10:06+0200\n"
12"PO-Revision-Date: 2013-02-23 17:50+0100\n" 12"PO-Revision-Date: 2013-02-23 17:50+0100\n"
13"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n" 13"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
14"Language-Team: Spanish <es@li.org>\n" 14"Language-Team: Spanish <es@li.org>\n"
@@ -2265,7 +2265,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2265msgstr "La carga de la clave de la máquina desde «%s» ha fallado.\n" 2265msgstr "La carga de la clave de la máquina desde «%s» ha fallado.\n"
2266 2266
2267#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2267#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2268#: src/service/revocation/gnunet-service-revocation.c:922 2268#: src/service/revocation/gnunet-service-revocation.c:924
2269msgid "Value is too large.\n" 2269msgid "Value is too large.\n"
2270msgstr "" 2270msgstr ""
2271 2271
@@ -3640,12 +3640,12 @@ msgstr ""
3640 3640
3641#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3641#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3642#: src/lib/util/crypto_mpi.c:41 3642#: src/lib/util/crypto_mpi.c:41
3643#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3644#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3645#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3646#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3643#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3647#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3644#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3648#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3645#: src/service/datacache/plugin_datacache_sqlite.c:128
3646#: src/service/datacache/plugin_datacache_sqlite.c:150
3647#: src/service/datastore/plugin_datastore_sqlite.c:63
3648#: src/service/datastore/plugin_datastore_sqlite.c:81
3649#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3649#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3650#, c-format 3650#, c-format
3651msgid "`%s' failed at %s:%d with error: %s\n" 3651msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4242,6 +4242,89 @@ msgid ""
4242"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4242"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4243msgstr "" 4243msgstr ""
4244 4244
4245#: src/plugin/datacache/plugin_datacache_heap.c:492
4246msgid "Heap datacache running\n"
4247msgstr "Caché de datos de montículo (heap) ejecutándose\n"
4248
4249#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4250#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4251#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4252#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4253msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4254msgstr ""
4255"Se intentó cerrar sqlite sin finalizar todas las sentencias preparadas.\n"
4256
4257#: src/plugin/datastore/plugin_datastore_heap.c:895
4258msgid "Heap database running\n"
4259msgstr "Base de datos de montículo ejecutándose\n"
4260
4261#: src/plugin/datastore/plugin_datastore_postgres.c:238
4262#: src/plugin/datastore/plugin_datastore_postgres.c:850
4263msgid "Postgresql exec failure"
4264msgstr ""
4265
4266#: src/plugin/datastore/plugin_datastore_postgres.c:811
4267msgid "Failed to drop table from database.\n"
4268msgstr "Se produjo un fallo al borrar una tabla de la base de datos.\n"
4269
4270#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4271#, c-format
4272msgid "`%s' failed at %s:%u with error: %s"
4273msgstr "«%s» falló en %s:%u con el error: %s"
4274
4275#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4276#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4277#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4278#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4279#, c-format
4280msgid "Unable to initialize SQLite: %s.\n"
4281msgstr "Imposible inicializar SQLite: %s.\n"
4282
4283#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4284msgid "sqlite bind failure"
4285msgstr ""
4286
4287#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4288#, fuzzy
4289msgid "Data too large"
4290msgstr "número de valores"
4291
4292# to should be too, i think
4293#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4294msgid "sqlite version to old to determine size, assuming zero\n"
4295msgstr ""
4296"la versión de sqlite es muy antigua para determinar el tamaño, se asume "
4297"cero\n"
4298
4299#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4300#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4301#, fuzzy
4302msgid "error preparing statement\n"
4303msgstr "Error creando el túnel\n"
4304
4305#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4306#, fuzzy
4307msgid "error stepping\n"
4308msgstr "# elementos almacenados"
4309
4310#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4311#, c-format
4312msgid ""
4313"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4314"bytes)\n"
4315msgstr ""
4316"Usando la utilización de páginas de sqlite para estimar el «payload» (%llu "
4317"páginas de %llu bytes de tamaño)\n"
4318
4319#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4320#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4321msgid "Sqlite database running\n"
4322msgstr "Base de datos sqlite ejecutándose\n"
4323
4324#: src/plugin/datastore/plugin_datastore_template.c:252
4325msgid "Template database running\n"
4326msgstr "Base de datos de plantilla ejecutándose\n"
4327
4245#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4328#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4246msgid "This is a memento of an older block for internal maintenance." 4329msgid "This is a memento of an older block for internal maintenance."
4247msgstr "" 4330msgstr ""
@@ -4388,33 +4471,12 @@ msgstr "Se produjo un fallo al crear los índices\n"
4388msgid "flat plugin running\n" 4471msgid "flat plugin running\n"
4389msgstr "Base de datos sqlite ejecutándose\n" 4472msgstr "Base de datos sqlite ejecutándose\n"
4390 4473
4391#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4392#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4393#: src/service/datastore/plugin_datastore_sqlite.c:311
4394#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4395#, c-format
4396msgid "Unable to initialize SQLite: %s.\n"
4397msgstr "Imposible inicializar SQLite: %s.\n"
4398
4399#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4474#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4400#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4475#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4401#, fuzzy, c-format 4476#, fuzzy, c-format
4402msgid "Failed to setup database at `%s'\n" 4477msgid "Failed to setup database at `%s'\n"
4403msgstr "Se produjo un fallo al inciar «%s» en «%s»\n" 4478msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
4404 4479
4405#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4406#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4407#: src/service/datacache/plugin_datacache_sqlite.c:1035
4408#: src/service/datastore/plugin_datastore_sqlite.c:532
4409msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4410msgstr ""
4411"Se intentó cerrar sqlite sin finalizar todas las sentencias preparadas.\n"
4412
4413#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4414#: src/service/datastore/plugin_datastore_sqlite.c:1338
4415msgid "Sqlite database running\n"
4416msgstr "Base de datos sqlite ejecutándose\n"
4417
4418#: src/plugin/namestore/plugin_namestore_flat.c:194 4480#: src/plugin/namestore/plugin_namestore_flat.c:194
4419#, c-format 4481#, c-format
4420msgid "File too big to map: %llu bytes.\n" 4482msgid "File too big to map: %llu bytes.\n"
@@ -4441,42 +4503,6 @@ msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
4441msgid "SQlite database running\n" 4503msgid "SQlite database running\n"
4442msgstr "Base de datos sqlite ejecutándose\n" 4504msgstr "Base de datos sqlite ejecutándose\n"
4443 4505
4444#: src/plugin/namestore/plugin_rest_namestore.c:1320
4445#, fuzzy
4446msgid "Namestore REST API initialized\n"
4447msgstr "Conexión fallida\n"
4448
4449#: src/rest-plugin/gns/plugin_rest_gns.c:450
4450#, fuzzy
4451msgid "Gns REST API initialized\n"
4452msgstr "Conexión fallida\n"
4453
4454#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4455#, fuzzy
4456msgid "Identity REST API initialized\n"
4457msgstr "Conexión fallida\n"
4458
4459#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4460#, fuzzy
4461msgid "OpenID Connect REST API initialized\n"
4462msgstr "Conexión fallida\n"
4463
4464#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4465#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4466#, fuzzy
4467msgid "Identity Provider REST API initialized\n"
4468msgstr "Conexión fallida\n"
4469
4470#: src/rest-plugin/rest/plugin_rest_config.c:428
4471#, fuzzy
4472msgid "CONFIG REST API initialized\n"
4473msgstr "Conexión fallida\n"
4474
4475#: src/rest-plugin/rest/plugin_rest_copying.c:211
4476#, fuzzy
4477msgid "COPYING REST API initialized\n"
4478msgstr "Conexión fallida\n"
4479
4480#: src/service/arm/gnunet-service-arm.c:391 4506#: src/service/arm/gnunet-service-arm.c:391
4481#, c-format 4507#, c-format
4482msgid "" 4508msgid ""
@@ -4765,10 +4791,6 @@ msgstr "# mapas de tipos recibidos"
4765msgid "# updates to my type map" 4791msgid "# updates to my type map"
4766msgstr "# actualizaciones de mi mapa de tipos" 4792msgstr "# actualizaciones de mi mapa de tipos"
4767 4793
4768#: src/service/datacache/plugin_datacache_heap.c:492
4769msgid "Heap datacache running\n"
4770msgstr "Caché de datos de montículo (heap) ejecutándose\n"
4771
4772#: src/service/datastore/datastore_api.c:340 4794#: src/service/datastore/datastore_api.c:340
4773#, fuzzy 4795#, fuzzy
4774msgid "DATASTORE disconnected" 4796msgid "DATASTORE disconnected"
@@ -4992,64 +5014,6 @@ msgstr ""
4992msgid "Failed to initialize bloomfilter.\n" 5014msgid "Failed to initialize bloomfilter.\n"
4993msgstr "Se produjo un fallo al inicializar «bloomfilter».\n" 5015msgstr "Se produjo un fallo al inicializar «bloomfilter».\n"
4994 5016
4995#: src/service/datastore/plugin_datastore_heap.c:895
4996msgid "Heap database running\n"
4997msgstr "Base de datos de montículo ejecutándose\n"
4998
4999#: src/service/datastore/plugin_datastore_postgres.c:238
5000#: src/service/datastore/plugin_datastore_postgres.c:850
5001msgid "Postgresql exec failure"
5002msgstr ""
5003
5004#: src/service/datastore/plugin_datastore_postgres.c:811
5005msgid "Failed to drop table from database.\n"
5006msgstr "Se produjo un fallo al borrar una tabla de la base de datos.\n"
5007
5008#: src/service/datastore/plugin_datastore_sqlite.c:87
5009#, c-format
5010msgid "`%s' failed at %s:%u with error: %s"
5011msgstr "«%s» falló en %s:%u con el error: %s"
5012
5013#: src/service/datastore/plugin_datastore_sqlite.c:634
5014msgid "sqlite bind failure"
5015msgstr ""
5016
5017#: src/service/datastore/plugin_datastore_sqlite.c:675
5018#, fuzzy
5019msgid "Data too large"
5020msgstr "número de valores"
5021
5022# to should be too, i think
5023#: src/service/datastore/plugin_datastore_sqlite.c:1252
5024msgid "sqlite version to old to determine size, assuming zero\n"
5025msgstr ""
5026"la versión de sqlite es muy antigua para determinar el tamaño, se asume "
5027"cero\n"
5028
5029#: src/service/datastore/plugin_datastore_sqlite.c:1267
5030#: src/service/datastore/plugin_datastore_sqlite.c:1280
5031#, fuzzy
5032msgid "error preparing statement\n"
5033msgstr "Error creando el túnel\n"
5034
5035#: src/service/datastore/plugin_datastore_sqlite.c:1288
5036#, fuzzy
5037msgid "error stepping\n"
5038msgstr "# elementos almacenados"
5039
5040#: src/service/datastore/plugin_datastore_sqlite.c:1296
5041#, c-format
5042msgid ""
5043"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
5044"bytes)\n"
5045msgstr ""
5046"Usando la utilización de páginas de sqlite para estimar el «payload» (%llu "
5047"páginas de %llu bytes de tamaño)\n"
5048
5049#: src/service/datastore/plugin_datastore_template.c:252
5050msgid "Template database running\n"
5051msgstr "Base de datos de plantilla ejecutándose\n"
5052
5053#: src/service/dht/gnunet_dht_profiler.c:925 5017#: src/service/dht/gnunet_dht_profiler.c:925
5054#, fuzzy, c-format 5018#, fuzzy, c-format
5055msgid "Exiting as the number of peers is %u\n" 5019msgid "Exiting as the number of peers is %u\n"
@@ -5894,7 +5858,7 @@ msgstr ""
5894 5858
5895#: src/service/fs/gnunet-service-fs.c:1271 5859#: src/service/fs/gnunet-service-fs.c:1271
5896#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5860#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5897#: src/service/topology/gnunet-daemon-topology.c:976 5861#: src/service/topology/gnunet-daemon-topology.c:966
5898#, c-format 5862#, c-format
5899msgid "Failed to connect to `%s' service.\n" 5863msgid "Failed to connect to `%s' service.\n"
5900msgstr "Se produjo un fallo al conectar con el servicio «%s».\n" 5864msgstr "Se produjo un fallo al conectar con el servicio «%s».\n"
@@ -6355,7 +6319,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6355msgstr "Se produjo un fallo al iniciar el servidor HTTP\n" 6319msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
6356 6320
6357#: src/service/gns/gnunet-gns-proxy.c:2919 6321#: src/service/gns/gnunet-gns-proxy.c:2919
6358#: src/service/rest/gnunet-rest-server.c:957 6322#: src/service/rest/gnunet-rest-server.c:993
6359#, fuzzy 6323#, fuzzy
6360msgid "Failed to pass client to MHD\n" 6324msgid "Failed to pass client to MHD\n"
6361msgstr "Se produjo un fallo al conectar con GNS\n" 6325msgstr "Se produjo un fallo al conectar con GNS\n"
@@ -6723,7 +6687,7 @@ msgid "# hostlist advertisements send"
6723msgstr "# anuncios de listas de máquinas enviados" 6687msgstr "# anuncios de listas de máquinas enviados"
6724 6688
6725#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6689#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6726#: src/service/topology/gnunet-daemon-topology.c:747 6690#: src/service/topology/gnunet-daemon-topology.c:738
6727#, fuzzy, c-format 6691#, fuzzy, c-format
6728msgid "Error in communication with PEERSTORE service: %s\n" 6692msgid "Error in communication with PEERSTORE service: %s\n"
6729msgstr "" 6693msgstr ""
@@ -7395,41 +7359,76 @@ msgstr "El servicio «%s» no está ejecutandose\n"
7395msgid "Search string `%s' is too long!\n" 7359msgid "Search string `%s' is too long!\n"
7396msgstr "El servicio «%s» no está ejecutandose\n" 7360msgstr "El servicio «%s» no está ejecutandose\n"
7397 7361
7398#: src/service/rest/gnunet-rest-server.c:1369 7362#: src/service/rest/config_plugin.c:432
7363#, fuzzy
7364msgid "CONFIG REST API initialized\n"
7365msgstr "Conexión fallida\n"
7366
7367#: src/service/rest/copying_plugin.c:208
7368#, fuzzy
7369msgid "COPYING REST API initialized\n"
7370msgstr "Conexión fallida\n"
7371
7372#: src/service/rest/gns_plugin.c:451
7373#, fuzzy
7374msgid "Gns REST API initialized\n"
7375msgstr "Conexión fallida\n"
7376
7377#: src/service/rest/gnunet-rest-server.c:1448
7399#, fuzzy 7378#, fuzzy
7400msgid "GNUnet REST server" 7379msgid "GNUnet REST server"
7401msgstr "Herramienta de acceso GNUnet GNS" 7380msgstr "Herramienta de acceso GNUnet GNS"
7402 7381
7403#: src/service/revocation/gnunet-service-revocation.c:539 7382#: src/service/rest/identity_plugin.c:1248
7383#, fuzzy
7384msgid "Identity REST API initialized\n"
7385msgstr "Conexión fallida\n"
7386
7387#: src/service/rest/namestore_plugin.c:1322
7388#, fuzzy
7389msgid "Namestore REST API initialized\n"
7390msgstr "Conexión fallida\n"
7391
7392#: src/service/rest/openid_plugin.c:3102
7393#, fuzzy
7394msgid "OpenID Connect REST API initialized\n"
7395msgstr "Conexión fallida\n"
7396
7397#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7398#, fuzzy
7399msgid "Identity Provider REST API initialized\n"
7400msgstr "Conexión fallida\n"
7401
7402#: src/service/revocation/gnunet-service-revocation.c:541
7404#, fuzzy 7403#, fuzzy
7405msgid "# unsupported revocations received via set union" 7404msgid "# unsupported revocations received via set union"
7406msgstr "Opciones de paquete IPv4 recibidas. Ignoradas.\n" 7405msgstr "Opciones de paquete IPv4 recibidas. Ignoradas.\n"
7407 7406
7408#: src/service/revocation/gnunet-service-revocation.c:549 7407#: src/service/revocation/gnunet-service-revocation.c:551
7409#, fuzzy 7408#, fuzzy
7410msgid "# revocation messages received via set union" 7409msgid "# revocation messages received via set union"
7411msgstr "# mensajes «DATA» recibidos vía WLAN" 7410msgstr "# mensajes «DATA» recibidos vía WLAN"
7412 7411
7413#: src/service/revocation/gnunet-service-revocation.c:554 7412#: src/service/revocation/gnunet-service-revocation.c:556
7414#, c-format 7413#, c-format
7415msgid "Error computing revocation set union with %s\n" 7414msgid "Error computing revocation set union with %s\n"
7416msgstr "" 7415msgstr ""
7417 7416
7418#: src/service/revocation/gnunet-service-revocation.c:558 7417#: src/service/revocation/gnunet-service-revocation.c:560
7419#, fuzzy 7418#, fuzzy
7420msgid "# revocation set unions failed" 7419msgid "# revocation set unions failed"
7421msgstr "# sesiones wlan creadas" 7420msgstr "# sesiones wlan creadas"
7422 7421
7423#: src/service/revocation/gnunet-service-revocation.c:566 7422#: src/service/revocation/gnunet-service-revocation.c:568
7424#, fuzzy 7423#, fuzzy
7425msgid "# revocation set unions completed" 7424msgid "# revocation set unions completed"
7426msgstr "# transmisiones de fragmentos completadas" 7425msgstr "# transmisiones de fragmentos completadas"
7427 7426
7428#: src/service/revocation/gnunet-service-revocation.c:604 7427#: src/service/revocation/gnunet-service-revocation.c:606
7429msgid "SET service crashed, terminating revocation service\n" 7428msgid "SET service crashed, terminating revocation service\n"
7430msgstr "" 7429msgstr ""
7431 7430
7432#: src/service/revocation/gnunet-service-revocation.c:959 7431#: src/service/revocation/gnunet-service-revocation.c:961
7433#, fuzzy 7432#, fuzzy
7434msgid "Could not open revocation database file!" 7433msgid "Could not open revocation database file!"
7435msgstr "No se pudo conectar con el almacén de datos." 7434msgstr "No se pudo conectar con el almacén de datos."
@@ -7591,17 +7590,17 @@ msgstr "# peticiones de conexión requeridas al servicio de transporte"
7591msgid "# HELLO messages gossipped" 7590msgid "# HELLO messages gossipped"
7592msgstr "# Mensajes «HELLO» rumoreados" 7591msgstr "# Mensajes «HELLO» rumoreados"
7593 7592
7594#: src/service/topology/gnunet-daemon-topology.c:805 7593#: src/service/topology/gnunet-daemon-topology.c:796
7595msgid "Failed to connect to core service, can not manage topology!\n" 7594msgid "Failed to connect to core service, can not manage topology!\n"
7596msgstr "" 7595msgstr ""
7597"¡Se produjo un fallo al conectar con el servicio principal, no se puede " 7596"¡Se produjo un fallo al conectar con el servicio principal, no se puede "
7598"gestionar la topología!\n" 7597"gestionar la topología!\n"
7599 7598
7600#: src/service/topology/gnunet-daemon-topology.c:870 7599#: src/service/topology/gnunet-daemon-topology.c:859
7601msgid "# HELLO messages received" 7600msgid "# HELLO messages received"
7602msgstr "# mensajes «HELLO» recibidos" 7601msgstr "# mensajes «HELLO» recibidos"
7603 7602
7604#: src/service/topology/gnunet-daemon-topology.c:1005 7603#: src/service/topology/gnunet-daemon-topology.c:995
7605msgid "GNUnet topology control" 7604msgid "GNUnet topology control"
7606msgstr "" 7605msgstr ""
7607 7606
diff --git a/po/fr.po b/po/fr.po
index 298885183..f987e8893 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet 0.10.1\n" 8"Project-Id-Version: gnunet 0.10.1\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2023-10-19 16:42+0200\n" 10"POT-Creation-Date: 2023-10-20 10:06+0200\n"
11"PO-Revision-Date: 2021-11-21 00:53+0100\n" 11"PO-Revision-Date: 2021-11-21 00:53+0100\n"
12"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" 12"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
13"Language-Team: French <traduc@traduc.org>\n" 13"Language-Team: French <traduc@traduc.org>\n"
@@ -2158,7 +2158,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2158msgstr "" 2158msgstr ""
2159 2159
2160#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2160#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2161#: src/service/revocation/gnunet-service-revocation.c:922 2161#: src/service/revocation/gnunet-service-revocation.c:924
2162msgid "Value is too large.\n" 2162msgid "Value is too large.\n"
2163msgstr "" 2163msgstr ""
2164 2164
@@ -3477,12 +3477,12 @@ msgstr ""
3477 3477
3478#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3478#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3479#: src/lib/util/crypto_mpi.c:41 3479#: src/lib/util/crypto_mpi.c:41
3480#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3481#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3482#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3483#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3480#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3484#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3481#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3485#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3482#: src/service/datacache/plugin_datacache_sqlite.c:128
3483#: src/service/datacache/plugin_datacache_sqlite.c:150
3484#: src/service/datastore/plugin_datastore_sqlite.c:63
3485#: src/service/datastore/plugin_datastore_sqlite.c:81
3486#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3486#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3487#, c-format 3487#, c-format
3488msgid "`%s' failed at %s:%d with error: %s\n" 3488msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4039,6 +4039,81 @@ msgid ""
4039"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4039"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4040msgstr "" 4040msgstr ""
4041 4041
4042#: src/plugin/datacache/plugin_datacache_heap.c:492
4043msgid "Heap datacache running\n"
4044msgstr ""
4045
4046#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4047#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4048#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4049#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4050msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4051msgstr ""
4052
4053#: src/plugin/datastore/plugin_datastore_heap.c:895
4054msgid "Heap database running\n"
4055msgstr ""
4056
4057#: src/plugin/datastore/plugin_datastore_postgres.c:238
4058#: src/plugin/datastore/plugin_datastore_postgres.c:850
4059msgid "Postgresql exec failure"
4060msgstr ""
4061
4062#: src/plugin/datastore/plugin_datastore_postgres.c:811
4063msgid "Failed to drop table from database.\n"
4064msgstr ""
4065
4066#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4067#, c-format
4068msgid "`%s' failed at %s:%u with error: %s"
4069msgstr ""
4070
4071#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4072#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4073#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4074#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4075#, c-format
4076msgid "Unable to initialize SQLite: %s.\n"
4077msgstr ""
4078
4079#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4080msgid "sqlite bind failure"
4081msgstr ""
4082
4083#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4084msgid "Data too large"
4085msgstr ""
4086
4087#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4088msgid "sqlite version to old to determine size, assuming zero\n"
4089msgstr ""
4090
4091#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4092#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4093#, fuzzy
4094msgid "error preparing statement\n"
4095msgstr "Erreur de création du tunnel\n"
4096
4097#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4098msgid "error stepping\n"
4099msgstr ""
4100
4101#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4102#, c-format
4103msgid ""
4104"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4105"bytes)\n"
4106msgstr ""
4107
4108#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4109#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4110msgid "Sqlite database running\n"
4111msgstr ""
4112
4113#: src/plugin/datastore/plugin_datastore_template.c:252
4114msgid "Template database running\n"
4115msgstr ""
4116
4042#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4117#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4043msgid "This is a memento of an older block for internal maintenance." 4118msgid "This is a memento of an older block for internal maintenance."
4044msgstr "" 4119msgstr ""
@@ -4170,32 +4245,12 @@ msgstr "Résolution de « %s » échouée\n"
4170msgid "flat plugin running\n" 4245msgid "flat plugin running\n"
4171msgstr "" 4246msgstr ""
4172 4247
4173#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4174#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4175#: src/service/datastore/plugin_datastore_sqlite.c:311
4176#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4177#, c-format
4178msgid "Unable to initialize SQLite: %s.\n"
4179msgstr ""
4180
4181#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4248#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4182#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4249#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4183#, fuzzy, c-format 4250#, fuzzy, c-format
4184msgid "Failed to setup database at `%s'\n" 4251msgid "Failed to setup database at `%s'\n"
4185msgstr "Échec du démarrage de %s\n" 4252msgstr "Échec du démarrage de %s\n"
4186 4253
4187#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4188#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4189#: src/service/datacache/plugin_datacache_sqlite.c:1035
4190#: src/service/datastore/plugin_datastore_sqlite.c:532
4191msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4192msgstr ""
4193
4194#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4195#: src/service/datastore/plugin_datastore_sqlite.c:1338
4196msgid "Sqlite database running\n"
4197msgstr ""
4198
4199#: src/plugin/namestore/plugin_namestore_flat.c:194 4254#: src/plugin/namestore/plugin_namestore_flat.c:194
4200#, c-format 4255#, c-format
4201msgid "File too big to map: %llu bytes.\n" 4256msgid "File too big to map: %llu bytes.\n"
@@ -4220,35 +4275,6 @@ msgstr "Échec du démarrage de %s\n"
4220msgid "SQlite database running\n" 4275msgid "SQlite database running\n"
4221msgstr "" 4276msgstr ""
4222 4277
4223#: src/plugin/namestore/plugin_rest_namestore.c:1320
4224msgid "Namestore REST API initialized\n"
4225msgstr ""
4226
4227#: src/rest-plugin/gns/plugin_rest_gns.c:450
4228msgid "Gns REST API initialized\n"
4229msgstr ""
4230
4231#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4232msgid "Identity REST API initialized\n"
4233msgstr ""
4234
4235#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4236msgid "OpenID Connect REST API initialized\n"
4237msgstr ""
4238
4239#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4240#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4241msgid "Identity Provider REST API initialized\n"
4242msgstr ""
4243
4244#: src/rest-plugin/rest/plugin_rest_config.c:428
4245msgid "CONFIG REST API initialized\n"
4246msgstr ""
4247
4248#: src/rest-plugin/rest/plugin_rest_copying.c:211
4249msgid "COPYING REST API initialized\n"
4250msgstr ""
4251
4252#: src/service/arm/gnunet-service-arm.c:391 4278#: src/service/arm/gnunet-service-arm.c:391
4253#, c-format 4279#, c-format
4254msgid "" 4280msgid ""
@@ -4512,10 +4538,6 @@ msgstr ""
4512msgid "# updates to my type map" 4538msgid "# updates to my type map"
4513msgstr "" 4539msgstr ""
4514 4540
4515#: src/service/datacache/plugin_datacache_heap.c:492
4516msgid "Heap datacache running\n"
4517msgstr ""
4518
4519#: src/service/datastore/datastore_api.c:340 4541#: src/service/datastore/datastore_api.c:340
4520#, fuzzy 4542#, fuzzy
4521msgid "DATASTORE disconnected" 4543msgid "DATASTORE disconnected"
@@ -4724,57 +4746,6 @@ msgstr ""
4724msgid "Failed to initialize bloomfilter.\n" 4746msgid "Failed to initialize bloomfilter.\n"
4725msgstr "" 4747msgstr ""
4726 4748
4727#: src/service/datastore/plugin_datastore_heap.c:895
4728msgid "Heap database running\n"
4729msgstr ""
4730
4731#: src/service/datastore/plugin_datastore_postgres.c:238
4732#: src/service/datastore/plugin_datastore_postgres.c:850
4733msgid "Postgresql exec failure"
4734msgstr ""
4735
4736#: src/service/datastore/plugin_datastore_postgres.c:811
4737msgid "Failed to drop table from database.\n"
4738msgstr ""
4739
4740#: src/service/datastore/plugin_datastore_sqlite.c:87
4741#, c-format
4742msgid "`%s' failed at %s:%u with error: %s"
4743msgstr ""
4744
4745#: src/service/datastore/plugin_datastore_sqlite.c:634
4746msgid "sqlite bind failure"
4747msgstr ""
4748
4749#: src/service/datastore/plugin_datastore_sqlite.c:675
4750msgid "Data too large"
4751msgstr ""
4752
4753#: src/service/datastore/plugin_datastore_sqlite.c:1252
4754msgid "sqlite version to old to determine size, assuming zero\n"
4755msgstr ""
4756
4757#: src/service/datastore/plugin_datastore_sqlite.c:1267
4758#: src/service/datastore/plugin_datastore_sqlite.c:1280
4759#, fuzzy
4760msgid "error preparing statement\n"
4761msgstr "Erreur de création du tunnel\n"
4762
4763#: src/service/datastore/plugin_datastore_sqlite.c:1288
4764msgid "error stepping\n"
4765msgstr ""
4766
4767#: src/service/datastore/plugin_datastore_sqlite.c:1296
4768#, c-format
4769msgid ""
4770"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4771"bytes)\n"
4772msgstr ""
4773
4774#: src/service/datastore/plugin_datastore_template.c:252
4775msgid "Template database running\n"
4776msgstr ""
4777
4778#: src/service/dht/gnunet_dht_profiler.c:925 4749#: src/service/dht/gnunet_dht_profiler.c:925
4779#, c-format 4750#, c-format
4780msgid "Exiting as the number of peers is %u\n" 4751msgid "Exiting as the number of peers is %u\n"
@@ -5535,7 +5506,7 @@ msgstr ""
5535 5506
5536#: src/service/fs/gnunet-service-fs.c:1271 5507#: src/service/fs/gnunet-service-fs.c:1271
5537#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5508#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5538#: src/service/topology/gnunet-daemon-topology.c:976 5509#: src/service/topology/gnunet-daemon-topology.c:966
5539#, c-format 5510#, c-format
5540msgid "Failed to connect to `%s' service.\n" 5511msgid "Failed to connect to `%s' service.\n"
5541msgstr "" 5512msgstr ""
@@ -5977,7 +5948,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
5977msgstr "" 5948msgstr ""
5978 5949
5979#: src/service/gns/gnunet-gns-proxy.c:2919 5950#: src/service/gns/gnunet-gns-proxy.c:2919
5980#: src/service/rest/gnunet-rest-server.c:957 5951#: src/service/rest/gnunet-rest-server.c:993
5981msgid "Failed to pass client to MHD\n" 5952msgid "Failed to pass client to MHD\n"
5982msgstr "" 5953msgstr ""
5983 5954
@@ -6322,7 +6293,7 @@ msgid "# hostlist advertisements send"
6322msgstr "" 6293msgstr ""
6323 6294
6324#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6295#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6325#: src/service/topology/gnunet-daemon-topology.c:747 6296#: src/service/topology/gnunet-daemon-topology.c:738
6326#, c-format 6297#, c-format
6327msgid "Error in communication with PEERSTORE service: %s\n" 6298msgid "Error in communication with PEERSTORE service: %s\n"
6328msgstr "" 6299msgstr ""
@@ -6939,36 +6910,64 @@ msgstr ""
6939msgid "Search string `%s' is too long!\n" 6910msgid "Search string `%s' is too long!\n"
6940msgstr "" 6911msgstr ""
6941 6912
6942#: src/service/rest/gnunet-rest-server.c:1369 6913#: src/service/rest/config_plugin.c:432
6914msgid "CONFIG REST API initialized\n"
6915msgstr ""
6916
6917#: src/service/rest/copying_plugin.c:208
6918msgid "COPYING REST API initialized\n"
6919msgstr ""
6920
6921#: src/service/rest/gns_plugin.c:451
6922msgid "Gns REST API initialized\n"
6923msgstr ""
6924
6925#: src/service/rest/gnunet-rest-server.c:1448
6943msgid "GNUnet REST server" 6926msgid "GNUnet REST server"
6944msgstr "" 6927msgstr ""
6945 6928
6946#: src/service/revocation/gnunet-service-revocation.c:539 6929#: src/service/rest/identity_plugin.c:1248
6930msgid "Identity REST API initialized\n"
6931msgstr ""
6932
6933#: src/service/rest/namestore_plugin.c:1322
6934msgid "Namestore REST API initialized\n"
6935msgstr ""
6936
6937#: src/service/rest/openid_plugin.c:3102
6938msgid "OpenID Connect REST API initialized\n"
6939msgstr ""
6940
6941#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
6942msgid "Identity Provider REST API initialized\n"
6943msgstr ""
6944
6945#: src/service/revocation/gnunet-service-revocation.c:541
6947msgid "# unsupported revocations received via set union" 6946msgid "# unsupported revocations received via set union"
6948msgstr "" 6947msgstr ""
6949 6948
6950#: src/service/revocation/gnunet-service-revocation.c:549 6949#: src/service/revocation/gnunet-service-revocation.c:551
6951msgid "# revocation messages received via set union" 6950msgid "# revocation messages received via set union"
6952msgstr "" 6951msgstr ""
6953 6952
6954#: src/service/revocation/gnunet-service-revocation.c:554 6953#: src/service/revocation/gnunet-service-revocation.c:556
6955#, c-format 6954#, c-format
6956msgid "Error computing revocation set union with %s\n" 6955msgid "Error computing revocation set union with %s\n"
6957msgstr "" 6956msgstr ""
6958 6957
6959#: src/service/revocation/gnunet-service-revocation.c:558 6958#: src/service/revocation/gnunet-service-revocation.c:560
6960msgid "# revocation set unions failed" 6959msgid "# revocation set unions failed"
6961msgstr "" 6960msgstr ""
6962 6961
6963#: src/service/revocation/gnunet-service-revocation.c:566 6962#: src/service/revocation/gnunet-service-revocation.c:568
6964msgid "# revocation set unions completed" 6963msgid "# revocation set unions completed"
6965msgstr "" 6964msgstr ""
6966 6965
6967#: src/service/revocation/gnunet-service-revocation.c:604 6966#: src/service/revocation/gnunet-service-revocation.c:606
6968msgid "SET service crashed, terminating revocation service\n" 6967msgid "SET service crashed, terminating revocation service\n"
6969msgstr "" 6968msgstr ""
6970 6969
6971#: src/service/revocation/gnunet-service-revocation.c:959 6970#: src/service/revocation/gnunet-service-revocation.c:961
6972msgid "Could not open revocation database file!" 6971msgid "Could not open revocation database file!"
6973msgstr "" 6972msgstr ""
6974 6973
@@ -7108,15 +7107,15 @@ msgstr ""
7108msgid "# HELLO messages gossipped" 7107msgid "# HELLO messages gossipped"
7109msgstr "" 7108msgstr ""
7110 7109
7111#: src/service/topology/gnunet-daemon-topology.c:805 7110#: src/service/topology/gnunet-daemon-topology.c:796
7112msgid "Failed to connect to core service, can not manage topology!\n" 7111msgid "Failed to connect to core service, can not manage topology!\n"
7113msgstr "" 7112msgstr ""
7114 7113
7115#: src/service/topology/gnunet-daemon-topology.c:870 7114#: src/service/topology/gnunet-daemon-topology.c:859
7116msgid "# HELLO messages received" 7115msgid "# HELLO messages received"
7117msgstr "" 7116msgstr ""
7118 7117
7119#: src/service/topology/gnunet-daemon-topology.c:1005 7118#: src/service/topology/gnunet-daemon-topology.c:995
7120msgid "GNUnet topology control" 7119msgid "GNUnet topology control"
7121msgstr "" 7120msgstr ""
7122 7121
diff --git a/po/it.po b/po/it.po
index a2787f547..c7e740636 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: gnunet 0.10.1\n" 9"Project-Id-Version: gnunet 0.10.1\n"
10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
11"POT-Creation-Date: 2023-10-19 16:42+0200\n" 11"POT-Creation-Date: 2023-10-20 10:06+0200\n"
12"PO-Revision-Date: 2019-10-16 11:00+0200\n" 12"PO-Revision-Date: 2019-10-16 11:00+0200\n"
13"Last-Translator: Sebastiano Pistore <sebastianopistore.info@protonmail.ch>\n" 13"Last-Translator: Sebastiano Pistore <sebastianopistore.info@protonmail.ch>\n"
14"Language-Team: Italian <tp@lists.linux.it>\n" 14"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -2159,7 +2159,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2159msgstr "" 2159msgstr ""
2160 2160
2161#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2161#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2162#: src/service/revocation/gnunet-service-revocation.c:922 2162#: src/service/revocation/gnunet-service-revocation.c:924
2163msgid "Value is too large.\n" 2163msgid "Value is too large.\n"
2164msgstr "" 2164msgstr ""
2165 2165
@@ -3477,12 +3477,12 @@ msgstr ""
3477 3477
3478#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3478#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3479#: src/lib/util/crypto_mpi.c:41 3479#: src/lib/util/crypto_mpi.c:41
3480#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3481#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3482#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3483#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3480#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3484#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3481#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3485#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3482#: src/service/datacache/plugin_datacache_sqlite.c:128
3483#: src/service/datacache/plugin_datacache_sqlite.c:150
3484#: src/service/datastore/plugin_datastore_sqlite.c:63
3485#: src/service/datastore/plugin_datastore_sqlite.c:81
3486#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3486#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3487#, c-format 3487#, c-format
3488msgid "`%s' failed at %s:%d with error: %s\n" 3488msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4040,6 +4040,81 @@ msgid ""
4040"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4040"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4041msgstr "" 4041msgstr ""
4042 4042
4043#: src/plugin/datacache/plugin_datacache_heap.c:492
4044msgid "Heap datacache running\n"
4045msgstr ""
4046
4047#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4048#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4049#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4050#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4051msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4052msgstr ""
4053
4054#: src/plugin/datastore/plugin_datastore_heap.c:895
4055msgid "Heap database running\n"
4056msgstr ""
4057
4058#: src/plugin/datastore/plugin_datastore_postgres.c:238
4059#: src/plugin/datastore/plugin_datastore_postgres.c:850
4060msgid "Postgresql exec failure"
4061msgstr ""
4062
4063#: src/plugin/datastore/plugin_datastore_postgres.c:811
4064msgid "Failed to drop table from database.\n"
4065msgstr ""
4066
4067#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4068#, c-format
4069msgid "`%s' failed at %s:%u with error: %s"
4070msgstr ""
4071
4072#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4073#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4074#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4075#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4076#, c-format
4077msgid "Unable to initialize SQLite: %s.\n"
4078msgstr ""
4079
4080#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4081msgid "sqlite bind failure"
4082msgstr ""
4083
4084#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4085msgid "Data too large"
4086msgstr ""
4087
4088#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4089msgid "sqlite version to old to determine size, assuming zero\n"
4090msgstr ""
4091
4092#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4093#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4094msgid "error preparing statement\n"
4095msgstr ""
4096
4097#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4098#, fuzzy
4099msgid "error stepping\n"
4100msgstr "# elementi memorizzati"
4101
4102#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4103#, c-format
4104msgid ""
4105"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4106"bytes)\n"
4107msgstr ""
4108
4109#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4110#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4111msgid "Sqlite database running\n"
4112msgstr ""
4113
4114#: src/plugin/datastore/plugin_datastore_template.c:252
4115msgid "Template database running\n"
4116msgstr ""
4117
4043#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4118#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4044msgid "This is a memento of an older block for internal maintenance." 4119msgid "This is a memento of an older block for internal maintenance."
4045msgstr "" 4120msgstr ""
@@ -4171,32 +4246,12 @@ msgstr "Impossibile leggere il file"
4171msgid "flat plugin running\n" 4246msgid "flat plugin running\n"
4172msgstr "" 4247msgstr ""
4173 4248
4174#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4175#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4176#: src/service/datastore/plugin_datastore_sqlite.c:311
4177#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4178#, c-format
4179msgid "Unable to initialize SQLite: %s.\n"
4180msgstr ""
4181
4182#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4249#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4183#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4250#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4184#, fuzzy, c-format 4251#, fuzzy, c-format
4185msgid "Failed to setup database at `%s'\n" 4252msgid "Failed to setup database at `%s'\n"
4186msgstr "Impossibile avviare il servizio ' %s'\n" 4253msgstr "Impossibile avviare il servizio ' %s'\n"
4187 4254
4188#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4189#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4190#: src/service/datacache/plugin_datacache_sqlite.c:1035
4191#: src/service/datastore/plugin_datastore_sqlite.c:532
4192msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4193msgstr ""
4194
4195#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4196#: src/service/datastore/plugin_datastore_sqlite.c:1338
4197msgid "Sqlite database running\n"
4198msgstr ""
4199
4200#: src/plugin/namestore/plugin_namestore_flat.c:194 4255#: src/plugin/namestore/plugin_namestore_flat.c:194
4201#, c-format 4256#, c-format
4202msgid "File too big to map: %llu bytes.\n" 4257msgid "File too big to map: %llu bytes.\n"
@@ -4221,35 +4276,6 @@ msgstr "Impossibile avviare il servizio ' %s'\n"
4221msgid "SQlite database running\n" 4276msgid "SQlite database running\n"
4222msgstr "" 4277msgstr ""
4223 4278
4224#: src/plugin/namestore/plugin_rest_namestore.c:1320
4225msgid "Namestore REST API initialized\n"
4226msgstr ""
4227
4228#: src/rest-plugin/gns/plugin_rest_gns.c:450
4229msgid "Gns REST API initialized\n"
4230msgstr ""
4231
4232#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4233msgid "Identity REST API initialized\n"
4234msgstr ""
4235
4236#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4237msgid "OpenID Connect REST API initialized\n"
4238msgstr ""
4239
4240#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4241#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4242msgid "Identity Provider REST API initialized\n"
4243msgstr ""
4244
4245#: src/rest-plugin/rest/plugin_rest_config.c:428
4246msgid "CONFIG REST API initialized\n"
4247msgstr ""
4248
4249#: src/rest-plugin/rest/plugin_rest_copying.c:211
4250msgid "COPYING REST API initialized\n"
4251msgstr ""
4252
4253#: src/service/arm/gnunet-service-arm.c:391 4279#: src/service/arm/gnunet-service-arm.c:391
4254#, c-format 4280#, c-format
4255msgid "" 4281msgid ""
@@ -4517,10 +4543,6 @@ msgstr ""
4517msgid "# updates to my type map" 4543msgid "# updates to my type map"
4518msgstr "" 4544msgstr ""
4519 4545
4520#: src/service/datacache/plugin_datacache_heap.c:492
4521msgid "Heap datacache running\n"
4522msgstr ""
4523
4524#: src/service/datastore/datastore_api.c:340 4546#: src/service/datastore/datastore_api.c:340
4525#, fuzzy 4547#, fuzzy
4526msgid "DATASTORE disconnected" 4548msgid "DATASTORE disconnected"
@@ -4730,57 +4752,6 @@ msgstr ""
4730msgid "Failed to initialize bloomfilter.\n" 4752msgid "Failed to initialize bloomfilter.\n"
4731msgstr "" 4753msgstr ""
4732 4754
4733#: src/service/datastore/plugin_datastore_heap.c:895
4734msgid "Heap database running\n"
4735msgstr ""
4736
4737#: src/service/datastore/plugin_datastore_postgres.c:238
4738#: src/service/datastore/plugin_datastore_postgres.c:850
4739msgid "Postgresql exec failure"
4740msgstr ""
4741
4742#: src/service/datastore/plugin_datastore_postgres.c:811
4743msgid "Failed to drop table from database.\n"
4744msgstr ""
4745
4746#: src/service/datastore/plugin_datastore_sqlite.c:87
4747#, c-format
4748msgid "`%s' failed at %s:%u with error: %s"
4749msgstr ""
4750
4751#: src/service/datastore/plugin_datastore_sqlite.c:634
4752msgid "sqlite bind failure"
4753msgstr ""
4754
4755#: src/service/datastore/plugin_datastore_sqlite.c:675
4756msgid "Data too large"
4757msgstr ""
4758
4759#: src/service/datastore/plugin_datastore_sqlite.c:1252
4760msgid "sqlite version to old to determine size, assuming zero\n"
4761msgstr ""
4762
4763#: src/service/datastore/plugin_datastore_sqlite.c:1267
4764#: src/service/datastore/plugin_datastore_sqlite.c:1280
4765msgid "error preparing statement\n"
4766msgstr ""
4767
4768#: src/service/datastore/plugin_datastore_sqlite.c:1288
4769#, fuzzy
4770msgid "error stepping\n"
4771msgstr "# elementi memorizzati"
4772
4773#: src/service/datastore/plugin_datastore_sqlite.c:1296
4774#, c-format
4775msgid ""
4776"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4777"bytes)\n"
4778msgstr ""
4779
4780#: src/service/datastore/plugin_datastore_template.c:252
4781msgid "Template database running\n"
4782msgstr ""
4783
4784#: src/service/dht/gnunet_dht_profiler.c:925 4755#: src/service/dht/gnunet_dht_profiler.c:925
4785#, c-format 4756#, c-format
4786msgid "Exiting as the number of peers is %u\n" 4757msgid "Exiting as the number of peers is %u\n"
@@ -5551,7 +5522,7 @@ msgstr ""
5551 5522
5552#: src/service/fs/gnunet-service-fs.c:1271 5523#: src/service/fs/gnunet-service-fs.c:1271
5553#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5524#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5554#: src/service/topology/gnunet-daemon-topology.c:976 5525#: src/service/topology/gnunet-daemon-topology.c:966
5555#, c-format 5526#, c-format
5556msgid "Failed to connect to `%s' service.\n" 5527msgid "Failed to connect to `%s' service.\n"
5557msgstr "" 5528msgstr ""
@@ -5998,7 +5969,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
5998msgstr "" 5969msgstr ""
5999 5970
6000#: src/service/gns/gnunet-gns-proxy.c:2919 5971#: src/service/gns/gnunet-gns-proxy.c:2919
6001#: src/service/rest/gnunet-rest-server.c:957 5972#: src/service/rest/gnunet-rest-server.c:993
6002msgid "Failed to pass client to MHD\n" 5973msgid "Failed to pass client to MHD\n"
6003msgstr "" 5974msgstr ""
6004 5975
@@ -6344,7 +6315,7 @@ msgid "# hostlist advertisements send"
6344msgstr "" 6315msgstr ""
6345 6316
6346#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6317#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6347#: src/service/topology/gnunet-daemon-topology.c:747 6318#: src/service/topology/gnunet-daemon-topology.c:738
6348#, c-format 6319#, c-format
6349msgid "Error in communication with PEERSTORE service: %s\n" 6320msgid "Error in communication with PEERSTORE service: %s\n"
6350msgstr "" 6321msgstr ""
@@ -6965,37 +6936,65 @@ msgstr ""
6965msgid "Search string `%s' is too long!\n" 6936msgid "Search string `%s' is too long!\n"
6966msgstr "" 6937msgstr ""
6967 6938
6968#: src/service/rest/gnunet-rest-server.c:1369 6939#: src/service/rest/config_plugin.c:432
6940msgid "CONFIG REST API initialized\n"
6941msgstr ""
6942
6943#: src/service/rest/copying_plugin.c:208
6944msgid "COPYING REST API initialized\n"
6945msgstr ""
6946
6947#: src/service/rest/gns_plugin.c:451
6948msgid "Gns REST API initialized\n"
6949msgstr ""
6950
6951#: src/service/rest/gnunet-rest-server.c:1448
6969msgid "GNUnet REST server" 6952msgid "GNUnet REST server"
6970msgstr "" 6953msgstr ""
6971 6954
6972#: src/service/revocation/gnunet-service-revocation.c:539 6955#: src/service/rest/identity_plugin.c:1248
6956msgid "Identity REST API initialized\n"
6957msgstr ""
6958
6959#: src/service/rest/namestore_plugin.c:1322
6960msgid "Namestore REST API initialized\n"
6961msgstr ""
6962
6963#: src/service/rest/openid_plugin.c:3102
6964msgid "OpenID Connect REST API initialized\n"
6965msgstr ""
6966
6967#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
6968msgid "Identity Provider REST API initialized\n"
6969msgstr ""
6970
6971#: src/service/revocation/gnunet-service-revocation.c:541
6973msgid "# unsupported revocations received via set union" 6972msgid "# unsupported revocations received via set union"
6974msgstr "" 6973msgstr ""
6975 6974
6976#: src/service/revocation/gnunet-service-revocation.c:549 6975#: src/service/revocation/gnunet-service-revocation.c:551
6977#, fuzzy 6976#, fuzzy
6978msgid "# revocation messages received via set union" 6977msgid "# revocation messages received via set union"
6979msgstr "# messaggi PONG ricevuti" 6978msgstr "# messaggi PONG ricevuti"
6980 6979
6981#: src/service/revocation/gnunet-service-revocation.c:554 6980#: src/service/revocation/gnunet-service-revocation.c:556
6982#, c-format 6981#, c-format
6983msgid "Error computing revocation set union with %s\n" 6982msgid "Error computing revocation set union with %s\n"
6984msgstr "" 6983msgstr ""
6985 6984
6986#: src/service/revocation/gnunet-service-revocation.c:558 6985#: src/service/revocation/gnunet-service-revocation.c:560
6987msgid "# revocation set unions failed" 6986msgid "# revocation set unions failed"
6988msgstr "" 6987msgstr ""
6989 6988
6990#: src/service/revocation/gnunet-service-revocation.c:566 6989#: src/service/revocation/gnunet-service-revocation.c:568
6991msgid "# revocation set unions completed" 6990msgid "# revocation set unions completed"
6992msgstr "" 6991msgstr ""
6993 6992
6994#: src/service/revocation/gnunet-service-revocation.c:604 6993#: src/service/revocation/gnunet-service-revocation.c:606
6995msgid "SET service crashed, terminating revocation service\n" 6994msgid "SET service crashed, terminating revocation service\n"
6996msgstr "" 6995msgstr ""
6997 6996
6998#: src/service/revocation/gnunet-service-revocation.c:959 6997#: src/service/revocation/gnunet-service-revocation.c:961
6999msgid "Could not open revocation database file!" 6998msgid "Could not open revocation database file!"
7000msgstr "" 6999msgstr ""
7001 7000
@@ -7135,15 +7134,15 @@ msgstr ""
7135msgid "# HELLO messages gossipped" 7134msgid "# HELLO messages gossipped"
7136msgstr "" 7135msgstr ""
7137 7136
7138#: src/service/topology/gnunet-daemon-topology.c:805 7137#: src/service/topology/gnunet-daemon-topology.c:796
7139msgid "Failed to connect to core service, can not manage topology!\n" 7138msgid "Failed to connect to core service, can not manage topology!\n"
7140msgstr "" 7139msgstr ""
7141 7140
7142#: src/service/topology/gnunet-daemon-topology.c:870 7141#: src/service/topology/gnunet-daemon-topology.c:859
7143msgid "# HELLO messages received" 7142msgid "# HELLO messages received"
7144msgstr "" 7143msgstr ""
7145 7144
7146#: src/service/topology/gnunet-daemon-topology.c:1005 7145#: src/service/topology/gnunet-daemon-topology.c:995
7147msgid "GNUnet topology control" 7146msgid "GNUnet topology control"
7148msgstr "" 7147msgstr ""
7149 7148
diff --git a/po/sr.po b/po/sr.po
index f805fc900..094bc56e5 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
6msgstr "" 6msgstr ""
7"Project-Id-Version: gnunet-0.10.1\n" 7"Project-Id-Version: gnunet-0.10.1\n"
8"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 8"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
9"POT-Creation-Date: 2023-10-19 16:42+0200\n" 9"POT-Creation-Date: 2023-10-20 10:06+0200\n"
10"PO-Revision-Date: 2020-10-23 18:39+0200\n" 10"PO-Revision-Date: 2020-10-23 18:39+0200\n"
11"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" 11"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
12"Language-Team: Serbian <(nothing)>\n" 12"Language-Team: Serbian <(nothing)>\n"
@@ -2233,7 +2233,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2233msgstr "Учитавање кључа домаћина из „%s“ није успело.\n" 2233msgstr "Учитавање кључа домаћина из „%s“ није успело.\n"
2234 2234
2235#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2235#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2236#: src/service/revocation/gnunet-service-revocation.c:922 2236#: src/service/revocation/gnunet-service-revocation.c:924
2237msgid "Value is too large.\n" 2237msgid "Value is too large.\n"
2238msgstr "Вредност је превелика.\n" 2238msgstr "Вредност је превелика.\n"
2239 2239
@@ -3601,12 +3601,12 @@ msgstr ""
3601 3601
3602#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3602#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3603#: src/lib/util/crypto_mpi.c:41 3603#: src/lib/util/crypto_mpi.c:41
3604#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3605#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3606#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3607#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3604#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3608#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3605#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3609#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3606#: src/service/datacache/plugin_datacache_sqlite.c:128
3607#: src/service/datacache/plugin_datacache_sqlite.c:150
3608#: src/service/datastore/plugin_datastore_sqlite.c:63
3609#: src/service/datastore/plugin_datastore_sqlite.c:81
3610#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3610#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3611#, c-format 3611#, c-format
3612msgid "`%s' failed at %s:%d with error: %s\n" 3612msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4181,6 +4181,85 @@ msgid ""
4181"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4181"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4182msgstr "" 4182msgstr ""
4183 4183
4184#: src/plugin/datacache/plugin_datacache_heap.c:492
4185msgid "Heap datacache running\n"
4186msgstr "Остава података скупине ради\n"
4187
4188#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4189#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4190#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4191#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4192msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4193msgstr "Покушај да затворим скулајт без довршавања свих спремљених изјава.\n"
4194
4195#: src/plugin/datastore/plugin_datastore_heap.c:895
4196msgid "Heap database running\n"
4197msgstr "База података скупине ради\n"
4198
4199#: src/plugin/datastore/plugin_datastore_postgres.c:238
4200#: src/plugin/datastore/plugin_datastore_postgres.c:850
4201msgid "Postgresql exec failure"
4202msgstr ""
4203
4204#: src/plugin/datastore/plugin_datastore_postgres.c:811
4205msgid "Failed to drop table from database.\n"
4206msgstr "Нисам успео да избацим табелу из базе података.\n"
4207
4208#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4209#, c-format
4210msgid "`%s' failed at %s:%u with error: %s"
4211msgstr "„%s“ није успело на %s:%u са грешком: %s"
4212
4213#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4214#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4215#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4216#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4217#, c-format
4218msgid "Unable to initialize SQLite: %s.\n"
4219msgstr "Не могу да покренем СКуЛајт: %s.\n"
4220
4221#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4222msgid "sqlite bind failure"
4223msgstr ""
4224
4225#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4226#, fuzzy
4227msgid "Data too large"
4228msgstr "Вредност је превелика.\n"
4229
4230#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4231msgid "sqlite version to old to determine size, assuming zero\n"
4232msgstr "скулајт издање је престаро за одређивање величине, подразумевам нулу\n"
4233
4234#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4235#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4236#, fuzzy
4237msgid "error preparing statement\n"
4238msgstr "Нисам успео да припремим стање „%s“\n"
4239
4240#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4241#, fuzzy
4242msgid "error stepping\n"
4243msgstr "„%s“ се зауставља"
4244
4245#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4246#, c-format
4247msgid ""
4248"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4249"bytes)\n"
4250msgstr ""
4251"Користим страницу коришћења скулајта да проценим утовар (%llu странице "
4252"величине %llu бајта)\n"
4253
4254#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4255#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4256msgid "Sqlite database running\n"
4257msgstr "База података Скулајта ради\n"
4258
4259#: src/plugin/datastore/plugin_datastore_template.c:252
4260msgid "Template database running\n"
4261msgstr "База података шаблона ради\n"
4262
4184#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4263#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4185msgid "This is a memento of an older block for internal maintenance." 4264msgid "This is a memento of an older block for internal maintenance."
4186msgstr "" 4265msgstr ""
@@ -4313,32 +4392,12 @@ msgstr "Нисам успео да прочитам датотеку"
4313msgid "flat plugin running\n" 4392msgid "flat plugin running\n"
4314msgstr "" 4393msgstr ""
4315 4394
4316#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4317#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4318#: src/service/datastore/plugin_datastore_sqlite.c:311
4319#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4320#, c-format
4321msgid "Unable to initialize SQLite: %s.\n"
4322msgstr "Не могу да покренем СКуЛајт: %s.\n"
4323
4324#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4395#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4325#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4396#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4326#, fuzzy, c-format 4397#, fuzzy, c-format
4327msgid "Failed to setup database at `%s'\n" 4398msgid "Failed to setup database at `%s'\n"
4328msgstr "Нисам успео да покренем „%s“ на „%s“\n" 4399msgstr "Нисам успео да покренем „%s“ на „%s“\n"
4329 4400
4330#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4331#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4332#: src/service/datacache/plugin_datacache_sqlite.c:1035
4333#: src/service/datastore/plugin_datastore_sqlite.c:532
4334msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4335msgstr "Покушај да затворим скулајт без довршавања свих спремљених изјава.\n"
4336
4337#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4338#: src/service/datastore/plugin_datastore_sqlite.c:1338
4339msgid "Sqlite database running\n"
4340msgstr "База података Скулајта ради\n"
4341
4342#: src/plugin/namestore/plugin_namestore_flat.c:194 4401#: src/plugin/namestore/plugin_namestore_flat.c:194
4343#, c-format 4402#, c-format
4344msgid "File too big to map: %llu bytes.\n" 4403msgid "File too big to map: %llu bytes.\n"
@@ -4365,37 +4424,6 @@ msgstr "Нисам успео да покренем „%s“ на „%s“\n"
4365msgid "SQlite database running\n" 4424msgid "SQlite database running\n"
4366msgstr "База података Скулајта ради\n" 4425msgstr "База података Скулајта ради\n"
4367 4426
4368#: src/plugin/namestore/plugin_rest_namestore.c:1320
4369#, fuzzy
4370msgid "Namestore REST API initialized\n"
4371msgstr "Меш је покренут\n"
4372
4373#: src/rest-plugin/gns/plugin_rest_gns.c:450
4374#, fuzzy
4375msgid "Gns REST API initialized\n"
4376msgstr "Меш је покренут\n"
4377
4378#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4379msgid "Identity REST API initialized\n"
4380msgstr ""
4381
4382#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4383msgid "OpenID Connect REST API initialized\n"
4384msgstr ""
4385
4386#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4387#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4388msgid "Identity Provider REST API initialized\n"
4389msgstr ""
4390
4391#: src/rest-plugin/rest/plugin_rest_config.c:428
4392msgid "CONFIG REST API initialized\n"
4393msgstr ""
4394
4395#: src/rest-plugin/rest/plugin_rest_copying.c:211
4396msgid "COPYING REST API initialized\n"
4397msgstr ""
4398
4399#: src/service/arm/gnunet-service-arm.c:391 4427#: src/service/arm/gnunet-service-arm.c:391
4400#, c-format 4428#, c-format
4401msgid "" 4429msgid ""
@@ -4675,10 +4703,6 @@ msgstr "# мапе врсте су примљене"
4675msgid "# updates to my type map" 4703msgid "# updates to my type map"
4676msgstr "# ажурирања за моју мапу врсте" 4704msgstr "# ажурирања за моју мапу врсте"
4677 4705
4678#: src/service/datacache/plugin_datacache_heap.c:492
4679msgid "Heap datacache running\n"
4680msgstr "Остава података скупине ради\n"
4681
4682#: src/service/datastore/datastore_api.c:340 4706#: src/service/datastore/datastore_api.c:340
4683#, fuzzy 4707#, fuzzy
4684msgid "DATASTORE disconnected" 4708msgid "DATASTORE disconnected"
@@ -4895,61 +4919,6 @@ msgstr "Нисам успео да уклоним лажну датотеку б
4895msgid "Failed to initialize bloomfilter.\n" 4919msgid "Failed to initialize bloomfilter.\n"
4896msgstr "Нисам успео да покренем блумфилтер.\n" 4920msgstr "Нисам успео да покренем блумфилтер.\n"
4897 4921
4898#: src/service/datastore/plugin_datastore_heap.c:895
4899msgid "Heap database running\n"
4900msgstr "База података скупине ради\n"
4901
4902#: src/service/datastore/plugin_datastore_postgres.c:238
4903#: src/service/datastore/plugin_datastore_postgres.c:850
4904msgid "Postgresql exec failure"
4905msgstr ""
4906
4907#: src/service/datastore/plugin_datastore_postgres.c:811
4908msgid "Failed to drop table from database.\n"
4909msgstr "Нисам успео да избацим табелу из базе података.\n"
4910
4911#: src/service/datastore/plugin_datastore_sqlite.c:87
4912#, c-format
4913msgid "`%s' failed at %s:%u with error: %s"
4914msgstr "„%s“ није успело на %s:%u са грешком: %s"
4915
4916#: src/service/datastore/plugin_datastore_sqlite.c:634
4917msgid "sqlite bind failure"
4918msgstr ""
4919
4920#: src/service/datastore/plugin_datastore_sqlite.c:675
4921#, fuzzy
4922msgid "Data too large"
4923msgstr "Вредност је превелика.\n"
4924
4925#: src/service/datastore/plugin_datastore_sqlite.c:1252
4926msgid "sqlite version to old to determine size, assuming zero\n"
4927msgstr "скулајт издање је престаро за одређивање величине, подразумевам нулу\n"
4928
4929#: src/service/datastore/plugin_datastore_sqlite.c:1267
4930#: src/service/datastore/plugin_datastore_sqlite.c:1280
4931#, fuzzy
4932msgid "error preparing statement\n"
4933msgstr "Нисам успео да припремим стање „%s“\n"
4934
4935#: src/service/datastore/plugin_datastore_sqlite.c:1288
4936#, fuzzy
4937msgid "error stepping\n"
4938msgstr "„%s“ се зауставља"
4939
4940#: src/service/datastore/plugin_datastore_sqlite.c:1296
4941#, c-format
4942msgid ""
4943"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4944"bytes)\n"
4945msgstr ""
4946"Користим страницу коришћења скулајта да проценим утовар (%llu странице "
4947"величине %llu бајта)\n"
4948
4949#: src/service/datastore/plugin_datastore_template.c:252
4950msgid "Template database running\n"
4951msgstr "База података шаблона ради\n"
4952
4953#: src/service/dht/gnunet_dht_profiler.c:925 4922#: src/service/dht/gnunet_dht_profiler.c:925
4954#, c-format 4923#, c-format
4955msgid "Exiting as the number of peers is %u\n" 4924msgid "Exiting as the number of peers is %u\n"
@@ -5764,7 +5733,7 @@ msgstr ""
5764 5733
5765#: src/service/fs/gnunet-service-fs.c:1271 5734#: src/service/fs/gnunet-service-fs.c:1271
5766#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5735#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5767#: src/service/topology/gnunet-daemon-topology.c:976 5736#: src/service/topology/gnunet-daemon-topology.c:966
5768#, c-format 5737#, c-format
5769msgid "Failed to connect to `%s' service.\n" 5738msgid "Failed to connect to `%s' service.\n"
5770msgstr "Нисам успео да се повежем са „%s“ услугом.\n" 5739msgstr "Нисам успео да се повежем са „%s“ услугом.\n"
@@ -6220,7 +6189,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6220msgstr "Нисам успео да покренем ХТТПС сервер за „%s“\n" 6189msgstr "Нисам успео да покренем ХТТПС сервер за „%s“\n"
6221 6190
6222#: src/service/gns/gnunet-gns-proxy.c:2919 6191#: src/service/gns/gnunet-gns-proxy.c:2919
6223#: src/service/rest/gnunet-rest-server.c:957 6192#: src/service/rest/gnunet-rest-server.c:993
6224msgid "Failed to pass client to MHD\n" 6193msgid "Failed to pass client to MHD\n"
6225msgstr "Нисам успео да проследим клијента МХД-у\n" 6194msgstr "Нисам успео да проследим клијента МХД-у\n"
6226 6195
@@ -6578,7 +6547,7 @@ msgid "# hostlist advertisements send"
6578msgstr "# рекламе списка домаћина су послате" 6547msgstr "# рекламе списка домаћина су послате"
6579 6548
6580#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6549#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6581#: src/service/topology/gnunet-daemon-topology.c:747 6550#: src/service/topology/gnunet-daemon-topology.c:738
6582#, fuzzy, c-format 6551#, fuzzy, c-format
6583msgid "Error in communication with PEERSTORE service: %s\n" 6552msgid "Error in communication with PEERSTORE service: %s\n"
6584msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n" 6553msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n"
@@ -7225,41 +7194,71 @@ msgstr "Регуларни израз „%s“ је превелик!\n"
7225msgid "Search string `%s' is too long!\n" 7194msgid "Search string `%s' is too long!\n"
7226msgstr "Регуларни израз „%s“ је превелик!\n" 7195msgstr "Регуларни израз „%s“ је превелик!\n"
7227 7196
7228#: src/service/rest/gnunet-rest-server.c:1369 7197#: src/service/rest/config_plugin.c:432
7198msgid "CONFIG REST API initialized\n"
7199msgstr ""
7200
7201#: src/service/rest/copying_plugin.c:208
7202msgid "COPYING REST API initialized\n"
7203msgstr ""
7204
7205#: src/service/rest/gns_plugin.c:451
7206#, fuzzy
7207msgid "Gns REST API initialized\n"
7208msgstr "Меш је покренут\n"
7209
7210#: src/service/rest/gnunet-rest-server.c:1448
7229#, fuzzy 7211#, fuzzy
7230msgid "GNUnet REST server" 7212msgid "GNUnet REST server"
7231msgstr "Алат ГНУнет ГНС решавача" 7213msgstr "Алат ГНУнет ГНС решавача"
7232 7214
7233#: src/service/revocation/gnunet-service-revocation.c:539 7215#: src/service/rest/identity_plugin.c:1248
7216msgid "Identity REST API initialized\n"
7217msgstr ""
7218
7219#: src/service/rest/namestore_plugin.c:1322
7220#, fuzzy
7221msgid "Namestore REST API initialized\n"
7222msgstr "Меш је покренут\n"
7223
7224#: src/service/rest/openid_plugin.c:3102
7225msgid "OpenID Connect REST API initialized\n"
7226msgstr ""
7227
7228#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7229msgid "Identity Provider REST API initialized\n"
7230msgstr ""
7231
7232#: src/service/revocation/gnunet-service-revocation.c:541
7234#, fuzzy 7233#, fuzzy
7235msgid "# unsupported revocations received via set union" 7234msgid "# unsupported revocations received via set union"
7236msgstr "Двоструки опзив је примљен од парњака. Занемарено.\n" 7235msgstr "Двоструки опзив је примљен од парњака. Занемарено.\n"
7237 7236
7238#: src/service/revocation/gnunet-service-revocation.c:549 7237#: src/service/revocation/gnunet-service-revocation.c:551
7239#, fuzzy 7238#, fuzzy
7240msgid "# revocation messages received via set union" 7239msgid "# revocation messages received via set union"
7241msgstr "# поруке ПОДАТАКА су примљене путем блутута" 7240msgstr "# поруке ПОДАТАКА су примљене путем блутута"
7242 7241
7243#: src/service/revocation/gnunet-service-revocation.c:554 7242#: src/service/revocation/gnunet-service-revocation.c:556
7244#, c-format 7243#, c-format
7245msgid "Error computing revocation set union with %s\n" 7244msgid "Error computing revocation set union with %s\n"
7246msgstr "Грешка прорачуна уније скупа опозивања са %s\n" 7245msgstr "Грешка прорачуна уније скупа опозивања са %s\n"
7247 7246
7248#: src/service/revocation/gnunet-service-revocation.c:558 7247#: src/service/revocation/gnunet-service-revocation.c:560
7249#, fuzzy 7248#, fuzzy
7250msgid "# revocation set unions failed" 7249msgid "# revocation set unions failed"
7251msgstr "# Бирање парњака није успело" 7250msgstr "# Бирање парњака није успело"
7252 7251
7253#: src/service/revocation/gnunet-service-revocation.c:566 7252#: src/service/revocation/gnunet-service-revocation.c:568
7254#, fuzzy 7253#, fuzzy
7255msgid "# revocation set unions completed" 7254msgid "# revocation set unions completed"
7256msgstr "# преноси расцепканости су завршени" 7255msgstr "# преноси расцепканости су завршени"
7257 7256
7258#: src/service/revocation/gnunet-service-revocation.c:604 7257#: src/service/revocation/gnunet-service-revocation.c:606
7259msgid "SET service crashed, terminating revocation service\n" 7258msgid "SET service crashed, terminating revocation service\n"
7260msgstr "Услуга ПОСТАВИ се урушила, окончавам услугу опозивања\n" 7259msgstr "Услуга ПОСТАВИ се урушила, окончавам услугу опозивања\n"
7261 7260
7262#: src/service/revocation/gnunet-service-revocation.c:959 7261#: src/service/revocation/gnunet-service-revocation.c:961
7263msgid "Could not open revocation database file!" 7262msgid "Could not open revocation database file!"
7264msgstr "Не могу да отворим датотеку базе података опозивања!" 7263msgstr "Не могу да отворим датотеку базе података опозивања!"
7265 7264
@@ -7411,16 +7410,16 @@ msgstr "# захтеви везе су издати преносу"
7411msgid "# HELLO messages gossipped" 7410msgid "# HELLO messages gossipped"
7412msgstr "# „HELLO“ поруке су наклопљене" 7411msgstr "# „HELLO“ поруке су наклопљене"
7413 7412
7414#: src/service/topology/gnunet-daemon-topology.c:805 7413#: src/service/topology/gnunet-daemon-topology.c:796
7415msgid "Failed to connect to core service, can not manage topology!\n" 7414msgid "Failed to connect to core service, can not manage topology!\n"
7416msgstr "" 7415msgstr ""
7417"Нисам успео да се повежем са услугом језгра, не могу да радим размештајем!\n" 7416"Нисам успео да се повежем са услугом језгра, не могу да радим размештајем!\n"
7418 7417
7419#: src/service/topology/gnunet-daemon-topology.c:870 7418#: src/service/topology/gnunet-daemon-topology.c:859
7420msgid "# HELLO messages received" 7419msgid "# HELLO messages received"
7421msgstr "# „HELLO“ поруке су примљене" 7420msgstr "# „HELLO“ поруке су примљене"
7422 7421
7423#: src/service/topology/gnunet-daemon-topology.c:1005 7422#: src/service/topology/gnunet-daemon-topology.c:995
7424msgid "GNUnet topology control" 7423msgid "GNUnet topology control"
7425msgstr "" 7424msgstr ""
7426 7425
diff --git a/po/sv.po b/po/sv.po
index dbddf76d6..f4cff1601 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: GNUnet 0.7.0b\n" 8"Project-Id-Version: GNUnet 0.7.0b\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2023-10-19 16:42+0200\n" 10"POT-Creation-Date: 2023-10-20 10:06+0200\n"
11"PO-Revision-Date: 2006-01-21 17:16+0100\n" 11"PO-Revision-Date: 2006-01-21 17:16+0100\n"
12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" 12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" 13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -2220,7 +2220,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2220msgstr "Tolkning av HTTP-svar för URL \"%s\" misslyckades.\n" 2220msgstr "Tolkning av HTTP-svar för URL \"%s\" misslyckades.\n"
2221 2221
2222#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2222#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2223#: src/service/revocation/gnunet-service-revocation.c:922 2223#: src/service/revocation/gnunet-service-revocation.c:924
2224msgid "Value is too large.\n" 2224msgid "Value is too large.\n"
2225msgstr "" 2225msgstr ""
2226 2226
@@ -3580,12 +3580,12 @@ msgstr ""
3580 3580
3581#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3581#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3582#: src/lib/util/crypto_mpi.c:41 3582#: src/lib/util/crypto_mpi.c:41
3583#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3584#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3585#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3586#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3583#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3587#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3584#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3588#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3585#: src/service/datacache/plugin_datacache_sqlite.c:128
3586#: src/service/datacache/plugin_datacache_sqlite.c:150
3587#: src/service/datastore/plugin_datastore_sqlite.c:63
3588#: src/service/datastore/plugin_datastore_sqlite.c:81
3589#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3589#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3590#, c-format 3590#, c-format
3591msgid "`%s' failed at %s:%d with error: %s\n" 3591msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4152,6 +4152,84 @@ msgid ""
4152"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4152"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4153msgstr "" 4153msgstr ""
4154 4154
4155#: src/plugin/datacache/plugin_datacache_heap.c:492
4156msgid "Heap datacache running\n"
4157msgstr ""
4158
4159#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4160#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4161#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4162#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4163msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4164msgstr ""
4165
4166#: src/plugin/datastore/plugin_datastore_heap.c:895
4167msgid "Heap database running\n"
4168msgstr ""
4169
4170#: src/plugin/datastore/plugin_datastore_postgres.c:238
4171#: src/plugin/datastore/plugin_datastore_postgres.c:850
4172msgid "Postgresql exec failure"
4173msgstr ""
4174
4175#: src/plugin/datastore/plugin_datastore_postgres.c:811
4176#, fuzzy
4177msgid "Failed to drop table from database.\n"
4178msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
4179
4180#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4181#, fuzzy, c-format
4182msgid "`%s' failed at %s:%u with error: %s"
4183msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
4184
4185#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4186#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4187#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4188#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4189#, fuzzy, c-format
4190msgid "Unable to initialize SQLite: %s.\n"
4191msgstr "Kunde inte initiera SQLite.\n"
4192
4193#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4194msgid "sqlite bind failure"
4195msgstr ""
4196
4197#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4198#, fuzzy
4199msgid "Data too large"
4200msgstr "antal iterationer"
4201
4202#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4203msgid "sqlite version to old to determine size, assuming zero\n"
4204msgstr ""
4205
4206#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4207#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4208#, fuzzy
4209msgid "error preparing statement\n"
4210msgstr "Klar med skapandet av värdnyckel.\n"
4211
4212#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4213#, fuzzy
4214msgid "error stepping\n"
4215msgstr "# byte krypterade"
4216
4217#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4218#, c-format
4219msgid ""
4220"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4221"bytes)\n"
4222msgstr ""
4223
4224#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4225#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4226msgid "Sqlite database running\n"
4227msgstr ""
4228
4229#: src/plugin/datastore/plugin_datastore_template.c:252
4230msgid "Template database running\n"
4231msgstr ""
4232
4155#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4233#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4156msgid "This is a memento of an older block for internal maintenance." 4234msgid "This is a memento of an older block for internal maintenance."
4157msgstr "" 4235msgstr ""
@@ -4283,32 +4361,12 @@ msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
4283msgid "flat plugin running\n" 4361msgid "flat plugin running\n"
4284msgstr "" 4362msgstr ""
4285 4363
4286#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4287#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4288#: src/service/datastore/plugin_datastore_sqlite.c:311
4289#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4290#, fuzzy, c-format
4291msgid "Unable to initialize SQLite: %s.\n"
4292msgstr "Kunde inte initiera SQLite.\n"
4293
4294#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4364#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4295#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4365#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4296#, fuzzy, c-format 4366#, fuzzy, c-format
4297msgid "Failed to setup database at `%s'\n" 4367msgid "Failed to setup database at `%s'\n"
4298msgstr "Fel vid %s:%d.\n" 4368msgstr "Fel vid %s:%d.\n"
4299 4369
4300#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4301#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4302#: src/service/datacache/plugin_datacache_sqlite.c:1035
4303#: src/service/datastore/plugin_datastore_sqlite.c:532
4304msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4305msgstr ""
4306
4307#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4308#: src/service/datastore/plugin_datastore_sqlite.c:1338
4309msgid "Sqlite database running\n"
4310msgstr ""
4311
4312#: src/plugin/namestore/plugin_namestore_flat.c:194 4370#: src/plugin/namestore/plugin_namestore_flat.c:194
4313#, c-format 4371#, c-format
4314msgid "File too big to map: %llu bytes.\n" 4372msgid "File too big to map: %llu bytes.\n"
@@ -4333,42 +4391,6 @@ msgstr "Fel vid %s:%d.\n"
4333msgid "SQlite database running\n" 4391msgid "SQlite database running\n"
4334msgstr "" 4392msgstr ""
4335 4393
4336#: src/plugin/namestore/plugin_rest_namestore.c:1320
4337#, fuzzy
4338msgid "Namestore REST API initialized\n"
4339msgstr " Anslutning misslyckades\n"
4340
4341#: src/rest-plugin/gns/plugin_rest_gns.c:450
4342#, fuzzy
4343msgid "Gns REST API initialized\n"
4344msgstr " Anslutning misslyckades\n"
4345
4346#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4347#, fuzzy
4348msgid "Identity REST API initialized\n"
4349msgstr " Anslutning misslyckades\n"
4350
4351#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4352#, fuzzy
4353msgid "OpenID Connect REST API initialized\n"
4354msgstr " Anslutning misslyckades\n"
4355
4356#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4357#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4358#, fuzzy
4359msgid "Identity Provider REST API initialized\n"
4360msgstr " Anslutning misslyckades\n"
4361
4362#: src/rest-plugin/rest/plugin_rest_config.c:428
4363#, fuzzy
4364msgid "CONFIG REST API initialized\n"
4365msgstr " Anslutning misslyckades\n"
4366
4367#: src/rest-plugin/rest/plugin_rest_copying.c:211
4368#, fuzzy
4369msgid "COPYING REST API initialized\n"
4370msgstr " Anslutning misslyckades\n"
4371
4372#: src/service/arm/gnunet-service-arm.c:391 4394#: src/service/arm/gnunet-service-arm.c:391
4373#, c-format 4395#, c-format
4374msgid "" 4396msgid ""
@@ -4663,10 +4685,6 @@ msgstr "# krypterade PONG-meddelanden mottagna"
4663msgid "# updates to my type map" 4685msgid "# updates to my type map"
4664msgstr "" 4686msgstr ""
4665 4687
4666#: src/service/datacache/plugin_datacache_heap.c:492
4667msgid "Heap datacache running\n"
4668msgstr ""
4669
4670#: src/service/datastore/datastore_api.c:340 4688#: src/service/datastore/datastore_api.c:340
4671#, fuzzy 4689#, fuzzy
4672msgid "DATASTORE disconnected" 4690msgid "DATASTORE disconnected"
@@ -4886,60 +4904,6 @@ msgstr "Kunde inte spara konfigurationsfil \"%s\":"
4886msgid "Failed to initialize bloomfilter.\n" 4904msgid "Failed to initialize bloomfilter.\n"
4887msgstr "Misslyckades att initiera tjänsten \"%s\".\n" 4905msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
4888 4906
4889#: src/service/datastore/plugin_datastore_heap.c:895
4890msgid "Heap database running\n"
4891msgstr ""
4892
4893#: src/service/datastore/plugin_datastore_postgres.c:238
4894#: src/service/datastore/plugin_datastore_postgres.c:850
4895msgid "Postgresql exec failure"
4896msgstr ""
4897
4898#: src/service/datastore/plugin_datastore_postgres.c:811
4899#, fuzzy
4900msgid "Failed to drop table from database.\n"
4901msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
4902
4903#: src/service/datastore/plugin_datastore_sqlite.c:87
4904#, fuzzy, c-format
4905msgid "`%s' failed at %s:%u with error: %s"
4906msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
4907
4908#: src/service/datastore/plugin_datastore_sqlite.c:634
4909msgid "sqlite bind failure"
4910msgstr ""
4911
4912#: src/service/datastore/plugin_datastore_sqlite.c:675
4913#, fuzzy
4914msgid "Data too large"
4915msgstr "antal iterationer"
4916
4917#: src/service/datastore/plugin_datastore_sqlite.c:1252
4918msgid "sqlite version to old to determine size, assuming zero\n"
4919msgstr ""
4920
4921#: src/service/datastore/plugin_datastore_sqlite.c:1267
4922#: src/service/datastore/plugin_datastore_sqlite.c:1280
4923#, fuzzy
4924msgid "error preparing statement\n"
4925msgstr "Klar med skapandet av värdnyckel.\n"
4926
4927#: src/service/datastore/plugin_datastore_sqlite.c:1288
4928#, fuzzy
4929msgid "error stepping\n"
4930msgstr "# byte krypterade"
4931
4932#: src/service/datastore/plugin_datastore_sqlite.c:1296
4933#, c-format
4934msgid ""
4935"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4936"bytes)\n"
4937msgstr ""
4938
4939#: src/service/datastore/plugin_datastore_template.c:252
4940msgid "Template database running\n"
4941msgstr ""
4942
4943#: src/service/dht/gnunet_dht_profiler.c:925 4907#: src/service/dht/gnunet_dht_profiler.c:925
4944#, fuzzy, c-format 4908#, fuzzy, c-format
4945msgid "Exiting as the number of peers is %u\n" 4909msgid "Exiting as the number of peers is %u\n"
@@ -5745,7 +5709,7 @@ msgstr "GNUnet-konfiguration"
5745 5709
5746#: src/service/fs/gnunet-service-fs.c:1271 5710#: src/service/fs/gnunet-service-fs.c:1271
5747#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5711#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5748#: src/service/topology/gnunet-daemon-topology.c:976 5712#: src/service/topology/gnunet-daemon-topology.c:966
5749#, fuzzy, c-format 5713#, fuzzy, c-format
5750msgid "Failed to connect to `%s' service.\n" 5714msgid "Failed to connect to `%s' service.\n"
5751msgstr "Misslyckades att initiera tjänsten \"%s\".\n" 5715msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
@@ -6211,7 +6175,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6211msgstr "Misslyckades att starta samling.\n" 6175msgstr "Misslyckades att starta samling.\n"
6212 6176
6213#: src/service/gns/gnunet-gns-proxy.c:2919 6177#: src/service/gns/gnunet-gns-proxy.c:2919
6214#: src/service/rest/gnunet-rest-server.c:957 6178#: src/service/rest/gnunet-rest-server.c:993
6215#, fuzzy 6179#, fuzzy
6216msgid "Failed to pass client to MHD\n" 6180msgid "Failed to pass client to MHD\n"
6217msgstr "Misslyckades att ansluta till gnunetd.\n" 6181msgstr "Misslyckades att ansluta till gnunetd.\n"
@@ -6566,7 +6530,7 @@ msgid "# hostlist advertisements send"
6566msgstr "" 6530msgstr ""
6567 6531
6568#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6532#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6569#: src/service/topology/gnunet-daemon-topology.c:747 6533#: src/service/topology/gnunet-daemon-topology.c:738
6570#, fuzzy, c-format 6534#, fuzzy, c-format
6571msgid "Error in communication with PEERSTORE service: %s\n" 6535msgid "Error in communication with PEERSTORE service: %s\n"
6572msgstr "Skriv ut information om GNUnets motparter." 6536msgstr "Skriv ut information om GNUnets motparter."
@@ -7224,41 +7188,76 @@ msgstr "\"%s\" är inte en fil.\n"
7224msgid "Search string `%s' is too long!\n" 7188msgid "Search string `%s' is too long!\n"
7225msgstr "\"%s\" är inte en fil.\n" 7189msgstr "\"%s\" är inte en fil.\n"
7226 7190
7227#: src/service/rest/gnunet-rest-server.c:1369 7191#: src/service/rest/config_plugin.c:432
7192#, fuzzy
7193msgid "CONFIG REST API initialized\n"
7194msgstr " Anslutning misslyckades\n"
7195
7196#: src/service/rest/copying_plugin.c:208
7197#, fuzzy
7198msgid "COPYING REST API initialized\n"
7199msgstr " Anslutning misslyckades\n"
7200
7201#: src/service/rest/gns_plugin.c:451
7202#, fuzzy
7203msgid "Gns REST API initialized\n"
7204msgstr " Anslutning misslyckades\n"
7205
7206#: src/service/rest/gnunet-rest-server.c:1448
7228#, fuzzy 7207#, fuzzy
7229msgid "GNUnet REST server" 7208msgid "GNUnet REST server"
7230msgstr "Spåra GNUnets nätverkstopologi." 7209msgstr "Spåra GNUnets nätverkstopologi."
7231 7210
7232#: src/service/revocation/gnunet-service-revocation.c:539 7211#: src/service/rest/identity_plugin.c:1248
7212#, fuzzy
7213msgid "Identity REST API initialized\n"
7214msgstr " Anslutning misslyckades\n"
7215
7216#: src/service/rest/namestore_plugin.c:1322
7217#, fuzzy
7218msgid "Namestore REST API initialized\n"
7219msgstr " Anslutning misslyckades\n"
7220
7221#: src/service/rest/openid_plugin.c:3102
7222#, fuzzy
7223msgid "OpenID Connect REST API initialized\n"
7224msgstr " Anslutning misslyckades\n"
7225
7226#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7227#, fuzzy
7228msgid "Identity Provider REST API initialized\n"
7229msgstr " Anslutning misslyckades\n"
7230
7231#: src/service/revocation/gnunet-service-revocation.c:541
7233#, fuzzy 7232#, fuzzy
7234msgid "# unsupported revocations received via set union" 7233msgid "# unsupported revocations received via set union"
7235msgstr "# byte mottogs via TCP" 7234msgstr "# byte mottogs via TCP"
7236 7235
7237#: src/service/revocation/gnunet-service-revocation.c:549 7236#: src/service/revocation/gnunet-service-revocation.c:551
7238#, fuzzy 7237#, fuzzy
7239msgid "# revocation messages received via set union" 7238msgid "# revocation messages received via set union"
7240msgstr "# krypterade PONG-meddelanden mottagna" 7239msgstr "# krypterade PONG-meddelanden mottagna"
7241 7240
7242#: src/service/revocation/gnunet-service-revocation.c:554 7241#: src/service/revocation/gnunet-service-revocation.c:556
7243#, c-format 7242#, c-format
7244msgid "Error computing revocation set union with %s\n" 7243msgid "Error computing revocation set union with %s\n"
7245msgstr "" 7244msgstr ""
7246 7245
7247#: src/service/revocation/gnunet-service-revocation.c:558 7246#: src/service/revocation/gnunet-service-revocation.c:560
7248#, fuzzy 7247#, fuzzy
7249msgid "# revocation set unions failed" 7248msgid "# revocation set unions failed"
7250msgstr "# sessionsnycklar accepterade" 7249msgstr "# sessionsnycklar accepterade"
7251 7250
7252#: src/service/revocation/gnunet-service-revocation.c:566 7251#: src/service/revocation/gnunet-service-revocation.c:568
7253#, fuzzy 7252#, fuzzy
7254msgid "# revocation set unions completed" 7253msgid "# revocation set unions completed"
7255msgstr "# klartext PONG-meddelanden mottagna" 7254msgstr "# klartext PONG-meddelanden mottagna"
7256 7255
7257#: src/service/revocation/gnunet-service-revocation.c:604 7256#: src/service/revocation/gnunet-service-revocation.c:606
7258msgid "SET service crashed, terminating revocation service\n" 7257msgid "SET service crashed, terminating revocation service\n"
7259msgstr "" 7258msgstr ""
7260 7259
7261#: src/service/revocation/gnunet-service-revocation.c:959 7260#: src/service/revocation/gnunet-service-revocation.c:961
7262#, fuzzy 7261#, fuzzy
7263msgid "Could not open revocation database file!" 7262msgid "Could not open revocation database file!"
7264msgstr "Kunde inte ansluta till gnunetd.\n" 7263msgstr "Kunde inte ansluta till gnunetd.\n"
@@ -7406,16 +7405,16 @@ msgstr "# byte mottogs via TCP"
7406msgid "# HELLO messages gossipped" 7405msgid "# HELLO messages gossipped"
7407msgstr "" 7406msgstr ""
7408 7407
7409#: src/service/topology/gnunet-daemon-topology.c:805 7408#: src/service/topology/gnunet-daemon-topology.c:796
7410msgid "Failed to connect to core service, can not manage topology!\n" 7409msgid "Failed to connect to core service, can not manage topology!\n"
7411msgstr "" 7410msgstr ""
7412 7411
7413#: src/service/topology/gnunet-daemon-topology.c:870 7412#: src/service/topology/gnunet-daemon-topology.c:859
7414#, fuzzy 7413#, fuzzy
7415msgid "# HELLO messages received" 7414msgid "# HELLO messages received"
7416msgstr "# krypterade PONG-meddelanden mottagna" 7415msgstr "# krypterade PONG-meddelanden mottagna"
7417 7416
7418#: src/service/topology/gnunet-daemon-topology.c:1005 7417#: src/service/topology/gnunet-daemon-topology.c:995
7419msgid "GNUnet topology control" 7418msgid "GNUnet topology control"
7420msgstr "" 7419msgstr ""
7421 7420
diff --git a/po/vi.po b/po/vi.po
index 4406e42a8..3e8b03006 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: gnunet 0.8.0a\n" 9"Project-Id-Version: gnunet 0.8.0a\n"
10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
11"POT-Creation-Date: 2023-10-19 16:42+0200\n" 11"POT-Creation-Date: 2023-10-20 10:06+0200\n"
12"PO-Revision-Date: 2008-09-10 22:05+0930\n" 12"PO-Revision-Date: 2008-09-10 22:05+0930\n"
13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" 13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" 14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -2242,7 +2242,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2242msgstr "" 2242msgstr ""
2243 2243
2244#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2244#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2245#: src/service/revocation/gnunet-service-revocation.c:922 2245#: src/service/revocation/gnunet-service-revocation.c:924
2246#, fuzzy 2246#, fuzzy
2247msgid "Value is too large.\n" 2247msgid "Value is too large.\n"
2248msgstr "Giá trị không nằm trong phạm vi được phép." 2248msgstr "Giá trị không nằm trong phạm vi được phép."
@@ -3607,12 +3607,12 @@ msgstr ""
3607 3607
3608#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3608#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3609#: src/lib/util/crypto_mpi.c:41 3609#: src/lib/util/crypto_mpi.c:41
3610#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3611#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3612#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3613#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3610#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3614#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3611#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3615#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3612#: src/service/datacache/plugin_datacache_sqlite.c:128
3613#: src/service/datacache/plugin_datacache_sqlite.c:150
3614#: src/service/datastore/plugin_datastore_sqlite.c:63
3615#: src/service/datastore/plugin_datastore_sqlite.c:81
3616#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3616#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3617#, c-format 3617#, c-format
3618msgid "`%s' failed at %s:%d with error: %s\n" 3618msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4179,6 +4179,89 @@ msgid ""
4179"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4179"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4180msgstr "" 4180msgstr ""
4181 4181
4182#: src/plugin/datacache/plugin_datacache_heap.c:492
4183#, fuzzy
4184msgid "Heap datacache running\n"
4185msgstr "kho dữ liệu sqlite"
4186
4187#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4188#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4189#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4190#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4191msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4192msgstr ""
4193
4194#: src/plugin/datastore/plugin_datastore_heap.c:895
4195#, fuzzy
4196msgid "Heap database running\n"
4197msgstr "kho dữ liệu sqlite"
4198
4199#: src/plugin/datastore/plugin_datastore_postgres.c:238
4200#: src/plugin/datastore/plugin_datastore_postgres.c:850
4201msgid "Postgresql exec failure"
4202msgstr ""
4203
4204#: src/plugin/datastore/plugin_datastore_postgres.c:811
4205#, fuzzy
4206msgid "Failed to drop table from database.\n"
4207msgstr ""
4208"\n"
4209"Không nhận được đáp ứng từ gnunetd.\n"
4210
4211#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4212#, fuzzy, c-format
4213msgid "`%s' failed at %s:%u with error: %s"
4214msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s"
4215
4216#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4217#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4218#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4219#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4220#, c-format
4221msgid "Unable to initialize SQLite: %s.\n"
4222msgstr "Không thể sơ khởi SQLite: %s.\n"
4223
4224#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4225msgid "sqlite bind failure"
4226msgstr ""
4227
4228#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4229#, fuzzy
4230msgid "Data too large"
4231msgstr "số lần lặp lại"
4232
4233#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4234msgid "sqlite version to old to determine size, assuming zero\n"
4235msgstr ""
4236
4237#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4238#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4239#, fuzzy
4240msgid "error preparing statement\n"
4241msgstr "Hoàn thành tạo khoá.\n"
4242
4243#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4244#, fuzzy
4245msgid "error stepping\n"
4246msgstr "# các byte trong kho dữ liệu"
4247
4248#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4249#, c-format
4250msgid ""
4251"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4252"bytes)\n"
4253msgstr ""
4254
4255#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4256#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4257#, fuzzy
4258msgid "Sqlite database running\n"
4259msgstr "kho dữ liệu sqlite"
4260
4261#: src/plugin/datastore/plugin_datastore_template.c:252
4262msgid "Template database running\n"
4263msgstr ""
4264
4182#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4265#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4183msgid "This is a memento of an older block for internal maintenance." 4266msgid "This is a memento of an older block for internal maintenance."
4184msgstr "" 4267msgstr ""
@@ -4311,33 +4394,12 @@ msgstr "Không thể tạo miền tên.\n"
4311msgid "flat plugin running\n" 4394msgid "flat plugin running\n"
4312msgstr "kho dữ liệu sqlite" 4395msgstr "kho dữ liệu sqlite"
4313 4396
4314#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4315#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4316#: src/service/datastore/plugin_datastore_sqlite.c:311
4317#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4318#, c-format
4319msgid "Unable to initialize SQLite: %s.\n"
4320msgstr "Không thể sơ khởi SQLite: %s.\n"
4321
4322#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4397#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4323#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4398#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4324#, fuzzy, c-format 4399#, fuzzy, c-format
4325msgid "Failed to setup database at `%s'\n" 4400msgid "Failed to setup database at `%s'\n"
4326msgstr "Lỗi chạy %s: %s %d\n" 4401msgstr "Lỗi chạy %s: %s %d\n"
4327 4402
4328#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4329#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4330#: src/service/datacache/plugin_datacache_sqlite.c:1035
4331#: src/service/datastore/plugin_datastore_sqlite.c:532
4332msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4333msgstr ""
4334
4335#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4336#: src/service/datastore/plugin_datastore_sqlite.c:1338
4337#, fuzzy
4338msgid "Sqlite database running\n"
4339msgstr "kho dữ liệu sqlite"
4340
4341#: src/plugin/namestore/plugin_namestore_flat.c:194 4403#: src/plugin/namestore/plugin_namestore_flat.c:194
4342#, c-format 4404#, c-format
4343msgid "File too big to map: %llu bytes.\n" 4405msgid "File too big to map: %llu bytes.\n"
@@ -4364,42 +4426,6 @@ msgstr "Lỗi chạy %s: %s %d\n"
4364msgid "SQlite database running\n" 4426msgid "SQlite database running\n"
4365msgstr "kho dữ liệu sqlite" 4427msgstr "kho dữ liệu sqlite"
4366 4428
4367#: src/plugin/namestore/plugin_rest_namestore.c:1320
4368#, fuzzy
4369msgid "Namestore REST API initialized\n"
4370msgstr "Lỗi sơ khởi lõi.\n"
4371
4372#: src/rest-plugin/gns/plugin_rest_gns.c:450
4373#, fuzzy
4374msgid "Gns REST API initialized\n"
4375msgstr "Lỗi sơ khởi lõi.\n"
4376
4377#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4378#, fuzzy
4379msgid "Identity REST API initialized\n"
4380msgstr "Lỗi sơ khởi lõi.\n"
4381
4382#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4383#, fuzzy
4384msgid "OpenID Connect REST API initialized\n"
4385msgstr "Lỗi sơ khởi lõi.\n"
4386
4387#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4388#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4389#, fuzzy
4390msgid "Identity Provider REST API initialized\n"
4391msgstr "Lỗi sơ khởi lõi.\n"
4392
4393#: src/rest-plugin/rest/plugin_rest_config.c:428
4394#, fuzzy
4395msgid "CONFIG REST API initialized\n"
4396msgstr "Lỗi sơ khởi lõi.\n"
4397
4398#: src/rest-plugin/rest/plugin_rest_copying.c:211
4399#, fuzzy
4400msgid "COPYING REST API initialized\n"
4401msgstr "Lỗi sơ khởi lõi.\n"
4402
4403#: src/service/arm/gnunet-service-arm.c:391 4429#: src/service/arm/gnunet-service-arm.c:391
4404#, c-format 4430#, c-format
4405msgid "" 4431msgid ""
@@ -4696,11 +4722,6 @@ msgstr "# các thông báo phát hiện dht được nhận"
4696msgid "# updates to my type map" 4722msgid "# updates to my type map"
4697msgstr "" 4723msgstr ""
4698 4724
4699#: src/service/datacache/plugin_datacache_heap.c:492
4700#, fuzzy
4701msgid "Heap datacache running\n"
4702msgstr "kho dữ liệu sqlite"
4703
4704#: src/service/datastore/datastore_api.c:340 4725#: src/service/datastore/datastore_api.c:340
4705#, fuzzy 4726#, fuzzy
4706msgid "DATASTORE disconnected" 4727msgid "DATASTORE disconnected"
@@ -4926,63 +4947,6 @@ msgstr "Không thể lưu tập tin cấu hình « %s »:"
4926msgid "Failed to initialize bloomfilter.\n" 4947msgid "Failed to initialize bloomfilter.\n"
4927msgstr "Lỗi sơ khởi dịch vụ « %s ».\n" 4948msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
4928 4949
4929#: src/service/datastore/plugin_datastore_heap.c:895
4930#, fuzzy
4931msgid "Heap database running\n"
4932msgstr "kho dữ liệu sqlite"
4933
4934#: src/service/datastore/plugin_datastore_postgres.c:238
4935#: src/service/datastore/plugin_datastore_postgres.c:850
4936msgid "Postgresql exec failure"
4937msgstr ""
4938
4939#: src/service/datastore/plugin_datastore_postgres.c:811
4940#, fuzzy
4941msgid "Failed to drop table from database.\n"
4942msgstr ""
4943"\n"
4944"Không nhận được đáp ứng từ gnunetd.\n"
4945
4946#: src/service/datastore/plugin_datastore_sqlite.c:87
4947#, fuzzy, c-format
4948msgid "`%s' failed at %s:%u with error: %s"
4949msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s"
4950
4951#: src/service/datastore/plugin_datastore_sqlite.c:634
4952msgid "sqlite bind failure"
4953msgstr ""
4954
4955#: src/service/datastore/plugin_datastore_sqlite.c:675
4956#, fuzzy
4957msgid "Data too large"
4958msgstr "số lần lặp lại"
4959
4960#: src/service/datastore/plugin_datastore_sqlite.c:1252
4961msgid "sqlite version to old to determine size, assuming zero\n"
4962msgstr ""
4963
4964#: src/service/datastore/plugin_datastore_sqlite.c:1267
4965#: src/service/datastore/plugin_datastore_sqlite.c:1280
4966#, fuzzy
4967msgid "error preparing statement\n"
4968msgstr "Hoàn thành tạo khoá.\n"
4969
4970#: src/service/datastore/plugin_datastore_sqlite.c:1288
4971#, fuzzy
4972msgid "error stepping\n"
4973msgstr "# các byte trong kho dữ liệu"
4974
4975#: src/service/datastore/plugin_datastore_sqlite.c:1296
4976#, c-format
4977msgid ""
4978"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4979"bytes)\n"
4980msgstr ""
4981
4982#: src/service/datastore/plugin_datastore_template.c:252
4983msgid "Template database running\n"
4984msgstr ""
4985
4986#: src/service/dht/gnunet_dht_profiler.c:925 4950#: src/service/dht/gnunet_dht_profiler.c:925
4987#, fuzzy, c-format 4951#, fuzzy, c-format
4988msgid "Exiting as the number of peers is %u\n" 4952msgid "Exiting as the number of peers is %u\n"
@@ -5784,7 +5748,7 @@ msgstr "Lưu cấu hình ngay bây giờ không?"
5784 5748
5785#: src/service/fs/gnunet-service-fs.c:1271 5749#: src/service/fs/gnunet-service-fs.c:1271
5786#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5750#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5787#: src/service/topology/gnunet-daemon-topology.c:976 5751#: src/service/topology/gnunet-daemon-topology.c:966
5788#, fuzzy, c-format 5752#, fuzzy, c-format
5789msgid "Failed to connect to `%s' service.\n" 5753msgid "Failed to connect to `%s' service.\n"
5790msgstr "Lỗi sơ khởi dịch vụ « %s ».\n" 5754msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
@@ -6258,7 +6222,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6258msgstr "Lỗi bắt đầu thu thập.\n" 6222msgstr "Lỗi bắt đầu thu thập.\n"
6259 6223
6260#: src/service/gns/gnunet-gns-proxy.c:2919 6224#: src/service/gns/gnunet-gns-proxy.c:2919
6261#: src/service/rest/gnunet-rest-server.c:957 6225#: src/service/rest/gnunet-rest-server.c:993
6262#, fuzzy 6226#, fuzzy
6263msgid "Failed to pass client to MHD\n" 6227msgid "Failed to pass client to MHD\n"
6264msgstr "Lỗi kết nối đến gnunetd.\n" 6228msgstr "Lỗi kết nối đến gnunetd.\n"
@@ -6626,7 +6590,7 @@ msgid "# hostlist advertisements send"
6626msgstr "# Các quảng cáo ngoại được chuyển tiếp" 6590msgstr "# Các quảng cáo ngoại được chuyển tiếp"
6627 6591
6628#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6592#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6629#: src/service/topology/gnunet-daemon-topology.c:747 6593#: src/service/topology/gnunet-daemon-topology.c:738
6630#, fuzzy, c-format 6594#, fuzzy, c-format
6631msgid "Error in communication with PEERSTORE service: %s\n" 6595msgid "Error in communication with PEERSTORE service: %s\n"
6632msgstr "Cổng để liên lạc với giao diện người dùng GNUnet" 6596msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
@@ -7277,41 +7241,76 @@ msgstr "« %s » không phải là một tập tin.\n"
7277msgid "Search string `%s' is too long!\n" 7241msgid "Search string `%s' is too long!\n"
7278msgstr "« %s » không phải là một tập tin.\n" 7242msgstr "« %s » không phải là một tập tin.\n"
7279 7243
7280#: src/service/rest/gnunet-rest-server.c:1369 7244#: src/service/rest/config_plugin.c:432
7245#, fuzzy
7246msgid "CONFIG REST API initialized\n"
7247msgstr "Lỗi sơ khởi lõi.\n"
7248
7249#: src/service/rest/copying_plugin.c:208
7250#, fuzzy
7251msgid "COPYING REST API initialized\n"
7252msgstr "Lỗi sơ khởi lõi.\n"
7253
7254#: src/service/rest/gns_plugin.c:451
7255#, fuzzy
7256msgid "Gns REST API initialized\n"
7257msgstr "Lỗi sơ khởi lõi.\n"
7258
7259#: src/service/rest/gnunet-rest-server.c:1448
7281#, fuzzy 7260#, fuzzy
7282msgid "GNUnet REST server" 7261msgid "GNUnet REST server"
7283msgstr "Bản ghi lỗi GNUnet" 7262msgstr "Bản ghi lỗi GNUnet"
7284 7263
7285#: src/service/revocation/gnunet-service-revocation.c:539 7264#: src/service/rest/identity_plugin.c:1248
7265#, fuzzy
7266msgid "Identity REST API initialized\n"
7267msgstr "Lỗi sơ khởi lõi.\n"
7268
7269#: src/service/rest/namestore_plugin.c:1322
7270#, fuzzy
7271msgid "Namestore REST API initialized\n"
7272msgstr "Lỗi sơ khởi lõi.\n"
7273
7274#: src/service/rest/openid_plugin.c:3102
7275#, fuzzy
7276msgid "OpenID Connect REST API initialized\n"
7277msgstr "Lỗi sơ khởi lõi.\n"
7278
7279#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7280#, fuzzy
7281msgid "Identity Provider REST API initialized\n"
7282msgstr "Lỗi sơ khởi lõi.\n"
7283
7284#: src/service/revocation/gnunet-service-revocation.c:541
7286#, fuzzy 7285#, fuzzy
7287msgid "# unsupported revocations received via set union" 7286msgid "# unsupported revocations received via set union"
7288msgstr "# các yêu cầu danh sách máy được nhận" 7287msgstr "# các yêu cầu danh sách máy được nhận"
7289 7288
7290#: src/service/revocation/gnunet-service-revocation.c:549 7289#: src/service/revocation/gnunet-service-revocation.c:551
7291#, fuzzy 7290#, fuzzy
7292msgid "# revocation messages received via set union" 7291msgid "# revocation messages received via set union"
7293msgstr "# các thông báo PONG đã mật mã được nhận" 7292msgstr "# các thông báo PONG đã mật mã được nhận"
7294 7293
7295#: src/service/revocation/gnunet-service-revocation.c:554 7294#: src/service/revocation/gnunet-service-revocation.c:556
7296#, c-format 7295#, c-format
7297msgid "Error computing revocation set union with %s\n" 7296msgid "Error computing revocation set union with %s\n"
7298msgstr "" 7297msgstr ""
7299 7298
7300#: src/service/revocation/gnunet-service-revocation.c:558 7299#: src/service/revocation/gnunet-service-revocation.c:560
7301#, fuzzy 7300#, fuzzy
7302msgid "# revocation set unions failed" 7301msgid "# revocation set unions failed"
7303msgstr "# các khoá phiên chạy được chấp nhận" 7302msgstr "# các khoá phiên chạy được chấp nhận"
7304 7303
7305#: src/service/revocation/gnunet-service-revocation.c:566 7304#: src/service/revocation/gnunet-service-revocation.c:568
7306#, fuzzy 7305#, fuzzy
7307msgid "# revocation set unions completed" 7306msgid "# revocation set unions completed"
7308msgstr "# các sự truyền PONG bị lỗi" 7307msgstr "# các sự truyền PONG bị lỗi"
7309 7308
7310#: src/service/revocation/gnunet-service-revocation.c:604 7309#: src/service/revocation/gnunet-service-revocation.c:606
7311msgid "SET service crashed, terminating revocation service\n" 7310msgid "SET service crashed, terminating revocation service\n"
7312msgstr "" 7311msgstr ""
7313 7312
7314#: src/service/revocation/gnunet-service-revocation.c:959 7313#: src/service/revocation/gnunet-service-revocation.c:961
7315#, fuzzy 7314#, fuzzy
7316msgid "Could not open revocation database file!" 7315msgid "Could not open revocation database file!"
7317msgstr "« %s »: Không thể kết nối.\n" 7316msgstr "« %s »: Không thể kết nối.\n"
@@ -7459,16 +7458,16 @@ msgstr "# các yêu cầu máy/trình khách lỗ hổng được phun vào"
7459msgid "# HELLO messages gossipped" 7458msgid "# HELLO messages gossipped"
7460msgstr "# các thông báo gửi đi bị loại bỏ" 7459msgstr "# các thông báo gửi đi bị loại bỏ"
7461 7460
7462#: src/service/topology/gnunet-daemon-topology.c:805 7461#: src/service/topology/gnunet-daemon-topology.c:796
7463msgid "Failed to connect to core service, can not manage topology!\n" 7462msgid "Failed to connect to core service, can not manage topology!\n"
7464msgstr "" 7463msgstr ""
7465 7464
7466#: src/service/topology/gnunet-daemon-topology.c:870 7465#: src/service/topology/gnunet-daemon-topology.c:859
7467#, fuzzy 7466#, fuzzy
7468msgid "# HELLO messages received" 7467msgid "# HELLO messages received"
7469msgstr "# các thông báo PONG đã mật mã được nhận" 7468msgstr "# các thông báo PONG đã mật mã được nhận"
7470 7469
7471#: src/service/topology/gnunet-daemon-topology.c:1005 7470#: src/service/topology/gnunet-daemon-topology.c:995
7472msgid "GNUnet topology control" 7471msgid "GNUnet topology control"
7473msgstr "" 7472msgstr ""
7474 7473
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 734c57f60..3c31fbe8a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet-0.8.1\n" 8"Project-Id-Version: gnunet-0.8.1\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2023-10-19 16:42+0200\n" 10"POT-Creation-Date: 2023-10-20 10:06+0200\n"
11"PO-Revision-Date: 2011-07-09 12:12+0800\n" 11"PO-Revision-Date: 2011-07-09 12:12+0800\n"
12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n" 12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" 13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -2187,7 +2187,7 @@ msgid "Loading hostkey from `%s' failed.\n"
2187msgstr "" 2187msgstr ""
2188 2188
2189#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441 2189#: src/cli/util/gnunet-scrypt.c:243 src/service/nse/gnunet-service-nse.c:1441
2190#: src/service/revocation/gnunet-service-revocation.c:922 2190#: src/service/revocation/gnunet-service-revocation.c:924
2191#, fuzzy 2191#, fuzzy
2192msgid "Value is too large.\n" 2192msgid "Value is too large.\n"
2193msgstr "值不在合法范围内。" 2193msgstr "值不在合法范围内。"
@@ -3528,12 +3528,12 @@ msgstr ""
3528 3528
3529#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48 3529#: src/lib/util/crypto_ecc.c:79 src/lib/util/crypto_ecc_setup.c:48
3530#: src/lib/util/crypto_mpi.c:41 3530#: src/lib/util/crypto_mpi.c:41
3531#: src/plugin/datacache/plugin_datacache_sqlite.c:128
3532#: src/plugin/datacache/plugin_datacache_sqlite.c:150
3533#: src/plugin/datastore/plugin_datastore_sqlite.c:63
3534#: src/plugin/datastore/plugin_datastore_sqlite.c:81
3531#: src/plugin/namecache/plugin_namecache_sqlite.c:53 3535#: src/plugin/namecache/plugin_namecache_sqlite.c:53
3532#: src/plugin/namestore/plugin_namestore_sqlite.c:55 3536#: src/plugin/namestore/plugin_namestore_sqlite.c:55
3533#: src/service/datacache/plugin_datacache_sqlite.c:128
3534#: src/service/datacache/plugin_datacache_sqlite.c:150
3535#: src/service/datastore/plugin_datastore_sqlite.c:63
3536#: src/service/datastore/plugin_datastore_sqlite.c:81
3537#: src/service/peerstore/plugin_peerstore_sqlite.c:54 3537#: src/service/peerstore/plugin_peerstore_sqlite.c:54
3538#, fuzzy, c-format 3538#, fuzzy, c-format
3539msgid "`%s' failed at %s:%d with error: %s\n" 3539msgid "`%s' failed at %s:%d with error: %s\n"
@@ -4095,6 +4095,87 @@ msgid ""
4095"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n" 4095"Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
4096msgstr "" 4096msgstr ""
4097 4097
4098#: src/plugin/datacache/plugin_datacache_heap.c:492
4099#, fuzzy
4100msgid "Heap datacache running\n"
4101msgstr "sqlite 数据仓库"
4102
4103#: src/plugin/datacache/plugin_datacache_sqlite.c:1035
4104#: src/plugin/datastore/plugin_datastore_sqlite.c:532
4105#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4106#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4107msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4108msgstr ""
4109
4110#: src/plugin/datastore/plugin_datastore_heap.c:895
4111#, fuzzy
4112msgid "Heap database running\n"
4113msgstr "sqlite 数据仓库"
4114
4115#: src/plugin/datastore/plugin_datastore_postgres.c:238
4116#: src/plugin/datastore/plugin_datastore_postgres.c:850
4117msgid "Postgresql exec failure"
4118msgstr ""
4119
4120#: src/plugin/datastore/plugin_datastore_postgres.c:811
4121#, fuzzy
4122msgid "Failed to drop table from database.\n"
4123msgstr "发送消息失败。\n"
4124
4125#: src/plugin/datastore/plugin_datastore_sqlite.c:87
4126#, fuzzy, c-format
4127msgid "`%s' failed at %s:%u with error: %s"
4128msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
4129
4130#: src/plugin/datastore/plugin_datastore_sqlite.c:311
4131#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4132#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4133#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4134#, c-format
4135msgid "Unable to initialize SQLite: %s.\n"
4136msgstr "无法初始化 SQLite:%s。\n"
4137
4138#: src/plugin/datastore/plugin_datastore_sqlite.c:634
4139msgid "sqlite bind failure"
4140msgstr ""
4141
4142#: src/plugin/datastore/plugin_datastore_sqlite.c:675
4143#, fuzzy
4144msgid "Data too large"
4145msgstr "迭代次数"
4146
4147#: src/plugin/datastore/plugin_datastore_sqlite.c:1252
4148msgid "sqlite version to old to determine size, assuming zero\n"
4149msgstr ""
4150
4151#: src/plugin/datastore/plugin_datastore_sqlite.c:1267
4152#: src/plugin/datastore/plugin_datastore_sqlite.c:1280
4153#, fuzzy
4154msgid "error preparing statement\n"
4155msgstr "创建用户出错"
4156
4157#: src/plugin/datastore/plugin_datastore_sqlite.c:1288
4158#, fuzzy
4159msgid "error stepping\n"
4160msgstr "创建用户出错"
4161
4162#: src/plugin/datastore/plugin_datastore_sqlite.c:1296
4163#, c-format
4164msgid ""
4165"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4166"bytes)\n"
4167msgstr ""
4168
4169#: src/plugin/datastore/plugin_datastore_sqlite.c:1338
4170#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4171#, fuzzy
4172msgid "Sqlite database running\n"
4173msgstr "sqlite 数据仓库"
4174
4175#: src/plugin/datastore/plugin_datastore_template.c:252
4176msgid "Template database running\n"
4177msgstr ""
4178
4098#: src/plugin/gns/plugin_gnsrecord_gns.c:137 4179#: src/plugin/gns/plugin_gnsrecord_gns.c:137
4099msgid "This is a memento of an older block for internal maintenance." 4180msgid "This is a memento of an older block for internal maintenance."
4100msgstr "" 4181msgstr ""
@@ -4227,33 +4308,12 @@ msgstr "发送消息失败。\n"
4227msgid "flat plugin running\n" 4308msgid "flat plugin running\n"
4228msgstr "sqlite 数据仓库" 4309msgstr "sqlite 数据仓库"
4229 4310
4230#: src/plugin/namecache/plugin_namecache_sqlite.c:179
4231#: src/plugin/namestore/plugin_namestore_sqlite.c:893
4232#: src/service/datastore/plugin_datastore_sqlite.c:311
4233#: src/service/peerstore/plugin_peerstore_sqlite.c:540
4234#, c-format
4235msgid "Unable to initialize SQLite: %s.\n"
4236msgstr "无法初始化 SQLite:%s。\n"
4237
4238#: src/plugin/namecache/plugin_namecache_sqlite.c:189 4311#: src/plugin/namecache/plugin_namecache_sqlite.c:189
4239#: src/plugin/namecache/plugin_namecache_sqlite.c:203 4312#: src/plugin/namecache/plugin_namecache_sqlite.c:203
4240#, fuzzy, c-format 4313#, fuzzy, c-format
4241msgid "Failed to setup database at `%s'\n" 4314msgid "Failed to setup database at `%s'\n"
4242msgstr "运行 %s失败:%s %d\n" 4315msgstr "运行 %s失败:%s %d\n"
4243 4316
4244#: src/plugin/namecache/plugin_namecache_sqlite.c:236
4245#: src/plugin/namestore/plugin_namestore_sqlite.c:227
4246#: src/service/datacache/plugin_datacache_sqlite.c:1035
4247#: src/service/datastore/plugin_datastore_sqlite.c:532
4248msgid "Tried to close sqlite without finalizing all prepared statements.\n"
4249msgstr ""
4250
4251#: src/plugin/namecache/plugin_namecache_sqlite.c:563
4252#: src/service/datastore/plugin_datastore_sqlite.c:1338
4253#, fuzzy
4254msgid "Sqlite database running\n"
4255msgstr "sqlite 数据仓库"
4256
4257#: src/plugin/namestore/plugin_namestore_flat.c:194 4317#: src/plugin/namestore/plugin_namestore_flat.c:194
4258#, c-format 4318#, c-format
4259msgid "File too big to map: %llu bytes.\n" 4319msgid "File too big to map: %llu bytes.\n"
@@ -4280,35 +4340,6 @@ msgstr "运行 %s失败:%s %d\n"
4280msgid "SQlite database running\n" 4340msgid "SQlite database running\n"
4281msgstr "sqlite 数据仓库" 4341msgstr "sqlite 数据仓库"
4282 4342
4283#: src/plugin/namestore/plugin_rest_namestore.c:1320
4284msgid "Namestore REST API initialized\n"
4285msgstr ""
4286
4287#: src/rest-plugin/gns/plugin_rest_gns.c:450
4288msgid "Gns REST API initialized\n"
4289msgstr ""
4290
4291#: src/rest-plugin/identity/plugin_rest_identity.c:1245
4292msgid "Identity REST API initialized\n"
4293msgstr ""
4294
4295#: src/rest-plugin/reclaim/plugin_rest_openid_connect.c:3095
4296msgid "OpenID Connect REST API initialized\n"
4297msgstr ""
4298
4299#: src/rest-plugin/reclaim/plugin_rest_pabc.c:637
4300#: src/rest-plugin/reclaim/plugin_rest_reclaim.c:1520
4301msgid "Identity Provider REST API initialized\n"
4302msgstr ""
4303
4304#: src/rest-plugin/rest/plugin_rest_config.c:428
4305msgid "CONFIG REST API initialized\n"
4306msgstr ""
4307
4308#: src/rest-plugin/rest/plugin_rest_copying.c:211
4309msgid "COPYING REST API initialized\n"
4310msgstr ""
4311
4312#: src/service/arm/gnunet-service-arm.c:391 4343#: src/service/arm/gnunet-service-arm.c:391
4313#, c-format 4344#, c-format
4314msgid "" 4345msgid ""
@@ -4578,11 +4609,6 @@ msgstr ""
4578msgid "# updates to my type map" 4609msgid "# updates to my type map"
4579msgstr "" 4610msgstr ""
4580 4611
4581#: src/service/datacache/plugin_datacache_heap.c:492
4582#, fuzzy
4583msgid "Heap datacache running\n"
4584msgstr "sqlite 数据仓库"
4585
4586#: src/service/datastore/datastore_api.c:340 4612#: src/service/datastore/datastore_api.c:340
4587#, fuzzy 4613#, fuzzy
4588msgid "DATASTORE disconnected" 4614msgid "DATASTORE disconnected"
@@ -4792,61 +4818,6 @@ msgstr "解析配置文件“%s”失败\n"
4792msgid "Failed to initialize bloomfilter.\n" 4818msgid "Failed to initialize bloomfilter.\n"
4793msgstr "初始化“%s”服务失败。\n" 4819msgstr "初始化“%s”服务失败。\n"
4794 4820
4795#: src/service/datastore/plugin_datastore_heap.c:895
4796#, fuzzy
4797msgid "Heap database running\n"
4798msgstr "sqlite 数据仓库"
4799
4800#: src/service/datastore/plugin_datastore_postgres.c:238
4801#: src/service/datastore/plugin_datastore_postgres.c:850
4802msgid "Postgresql exec failure"
4803msgstr ""
4804
4805#: src/service/datastore/plugin_datastore_postgres.c:811
4806#, fuzzy
4807msgid "Failed to drop table from database.\n"
4808msgstr "发送消息失败。\n"
4809
4810#: src/service/datastore/plugin_datastore_sqlite.c:87
4811#, fuzzy, c-format
4812msgid "`%s' failed at %s:%u with error: %s"
4813msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
4814
4815#: src/service/datastore/plugin_datastore_sqlite.c:634
4816msgid "sqlite bind failure"
4817msgstr ""
4818
4819#: src/service/datastore/plugin_datastore_sqlite.c:675
4820#, fuzzy
4821msgid "Data too large"
4822msgstr "迭代次数"
4823
4824#: src/service/datastore/plugin_datastore_sqlite.c:1252
4825msgid "sqlite version to old to determine size, assuming zero\n"
4826msgstr ""
4827
4828#: src/service/datastore/plugin_datastore_sqlite.c:1267
4829#: src/service/datastore/plugin_datastore_sqlite.c:1280
4830#, fuzzy
4831msgid "error preparing statement\n"
4832msgstr "创建用户出错"
4833
4834#: src/service/datastore/plugin_datastore_sqlite.c:1288
4835#, fuzzy
4836msgid "error stepping\n"
4837msgstr "创建用户出错"
4838
4839#: src/service/datastore/plugin_datastore_sqlite.c:1296
4840#, c-format
4841msgid ""
4842"Using sqlite page utilization to estimate payload (%llu pages of size %llu "
4843"bytes)\n"
4844msgstr ""
4845
4846#: src/service/datastore/plugin_datastore_template.c:252
4847msgid "Template database running\n"
4848msgstr ""
4849
4850#: src/service/dht/gnunet_dht_profiler.c:925 4821#: src/service/dht/gnunet_dht_profiler.c:925
4851#, fuzzy, c-format 4822#, fuzzy, c-format
4852msgid "Exiting as the number of peers is %u\n" 4823msgid "Exiting as the number of peers is %u\n"
@@ -5625,7 +5596,7 @@ msgstr "立即保存配置?"
5625 5596
5626#: src/service/fs/gnunet-service-fs.c:1271 5597#: src/service/fs/gnunet-service-fs.c:1271
5627#: src/service/hostlist/gnunet-daemon-hostlist.c:343 5598#: src/service/hostlist/gnunet-daemon-hostlist.c:343
5628#: src/service/topology/gnunet-daemon-topology.c:976 5599#: src/service/topology/gnunet-daemon-topology.c:966
5629#, fuzzy, c-format 5600#, fuzzy, c-format
5630msgid "Failed to connect to `%s' service.\n" 5601msgid "Failed to connect to `%s' service.\n"
5631msgstr "初始化“%s”服务失败。\n" 5602msgstr "初始化“%s”服务失败。\n"
@@ -6075,7 +6046,7 @@ msgid "Failed to start HTTPS server for `%s'\n"
6075msgstr "初始化“%s”服务失败。\n" 6046msgstr "初始化“%s”服务失败。\n"
6076 6047
6077#: src/service/gns/gnunet-gns-proxy.c:2919 6048#: src/service/gns/gnunet-gns-proxy.c:2919
6078#: src/service/rest/gnunet-rest-server.c:957 6049#: src/service/rest/gnunet-rest-server.c:993
6079#, fuzzy 6050#, fuzzy
6080msgid "Failed to pass client to MHD\n" 6051msgid "Failed to pass client to MHD\n"
6081msgstr "初始化“%s”服务失败。\n" 6052msgstr "初始化“%s”服务失败。\n"
@@ -6426,7 +6397,7 @@ msgid "# hostlist advertisements send"
6426msgstr "" 6397msgstr ""
6427 6398
6428#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484 6399#: src/service/hostlist/gnunet-daemon-hostlist_server.c:484
6429#: src/service/topology/gnunet-daemon-topology.c:747 6400#: src/service/topology/gnunet-daemon-topology.c:738
6430#, fuzzy, c-format 6401#, fuzzy, c-format
6431msgid "Error in communication with PEERSTORE service: %s\n" 6402msgid "Error in communication with PEERSTORE service: %s\n"
6432msgstr "连接 %s:%u 出错。守护程序在运行吗?\n" 6403msgstr "连接 %s:%u 出错。守护程序在运行吗?\n"
@@ -7064,40 +7035,68 @@ msgstr "服务已删除。\n"
7064msgid "Search string `%s' is too long!\n" 7035msgid "Search string `%s' is too long!\n"
7065msgstr "服务已删除。\n" 7036msgstr "服务已删除。\n"
7066 7037
7067#: src/service/rest/gnunet-rest-server.c:1369 7038#: src/service/rest/config_plugin.c:432
7039msgid "CONFIG REST API initialized\n"
7040msgstr ""
7041
7042#: src/service/rest/copying_plugin.c:208
7043msgid "COPYING REST API initialized\n"
7044msgstr ""
7045
7046#: src/service/rest/gns_plugin.c:451
7047msgid "Gns REST API initialized\n"
7048msgstr ""
7049
7050#: src/service/rest/gnunet-rest-server.c:1448
7068#, fuzzy 7051#, fuzzy
7069msgid "GNUnet REST server" 7052msgid "GNUnet REST server"
7070msgstr "GNUnet 错误日志" 7053msgstr "GNUnet 错误日志"
7071 7054
7072#: src/service/revocation/gnunet-service-revocation.c:539 7055#: src/service/rest/identity_plugin.c:1248
7056msgid "Identity REST API initialized\n"
7057msgstr ""
7058
7059#: src/service/rest/namestore_plugin.c:1322
7060msgid "Namestore REST API initialized\n"
7061msgstr ""
7062
7063#: src/service/rest/openid_plugin.c:3102
7064msgid "OpenID Connect REST API initialized\n"
7065msgstr ""
7066
7067#: src/service/rest/pabc_plugin.c:637 src/service/rest/reclaim_plugin.c:1522
7068msgid "Identity Provider REST API initialized\n"
7069msgstr ""
7070
7071#: src/service/revocation/gnunet-service-revocation.c:541
7073msgid "# unsupported revocations received via set union" 7072msgid "# unsupported revocations received via set union"
7074msgstr "" 7073msgstr ""
7075 7074
7076#: src/service/revocation/gnunet-service-revocation.c:549 7075#: src/service/revocation/gnunet-service-revocation.c:551
7077msgid "# revocation messages received via set union" 7076msgid "# revocation messages received via set union"
7078msgstr "" 7077msgstr ""
7079 7078
7080#: src/service/revocation/gnunet-service-revocation.c:554 7079#: src/service/revocation/gnunet-service-revocation.c:556
7081#, c-format 7080#, c-format
7082msgid "Error computing revocation set union with %s\n" 7081msgid "Error computing revocation set union with %s\n"
7083msgstr "" 7082msgstr ""
7084 7083
7085#: src/service/revocation/gnunet-service-revocation.c:558 7084#: src/service/revocation/gnunet-service-revocation.c:560
7086#, fuzzy 7085#, fuzzy
7087msgid "# revocation set unions failed" 7086msgid "# revocation set unions failed"
7088msgstr "" 7087msgstr ""
7089"\n" 7088"\n"
7090"按任意键继续\n" 7089"按任意键继续\n"
7091 7090
7092#: src/service/revocation/gnunet-service-revocation.c:566 7091#: src/service/revocation/gnunet-service-revocation.c:568
7093msgid "# revocation set unions completed" 7092msgid "# revocation set unions completed"
7094msgstr "" 7093msgstr ""
7095 7094
7096#: src/service/revocation/gnunet-service-revocation.c:604 7095#: src/service/revocation/gnunet-service-revocation.c:606
7097msgid "SET service crashed, terminating revocation service\n" 7096msgid "SET service crashed, terminating revocation service\n"
7098msgstr "" 7097msgstr ""
7099 7098
7100#: src/service/revocation/gnunet-service-revocation.c:959 7099#: src/service/revocation/gnunet-service-revocation.c:961
7101#, fuzzy 7100#, fuzzy
7102msgid "Could not open revocation database file!" 7101msgid "Could not open revocation database file!"
7103msgstr "无法连接到 %s:%u:%s\n" 7102msgstr "无法连接到 %s:%u:%s\n"
@@ -7243,15 +7242,15 @@ msgstr ""
7243msgid "# HELLO messages gossipped" 7242msgid "# HELLO messages gossipped"
7244msgstr "" 7243msgstr ""
7245 7244
7246#: src/service/topology/gnunet-daemon-topology.c:805 7245#: src/service/topology/gnunet-daemon-topology.c:796
7247msgid "Failed to connect to core service, can not manage topology!\n" 7246msgid "Failed to connect to core service, can not manage topology!\n"
7248msgstr "" 7247msgstr ""
7249 7248
7250#: src/service/topology/gnunet-daemon-topology.c:870 7249#: src/service/topology/gnunet-daemon-topology.c:859
7251msgid "# HELLO messages received" 7250msgid "# HELLO messages received"
7252msgstr "" 7251msgstr ""
7253 7252
7254#: src/service/topology/gnunet-daemon-topology.c:1005 7253#: src/service/topology/gnunet-daemon-topology.c:995
7255msgid "GNUnet topology control" 7254msgid "GNUnet topology control"
7256msgstr "" 7255msgstr ""
7257 7256
diff --git a/src/Makefile.am b/src/Makefile.am
index 2b1e94c50..524b989c1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,8 +5,7 @@
5SUBDIRS = \ 5SUBDIRS = \
6 include $(INTLEMU_SUBDIRS) \ 6 include $(INTLEMU_SUBDIRS) \
7 lib \ 7 lib \
8 service \
9 plugin \ 8 plugin \
10 rest-plugin \ 9 service \
11 cli \ 10 cli \
12 contrib 11 contrib
diff --git a/src/cli/namestore/meson.build b/src/cli/namestore/meson.build
index 2bad795b9..e619876c5 100644
--- a/src/cli/namestore/meson.build
+++ b/src/cli/namestore/meson.build
@@ -1,5 +1,5 @@
1executable ('gnunet-namestore', 1executable ('gnunet-namestore',
2 gnunetnamestore_src, 2 ['gnunet-namestore.c'],
3 dependencies: [libgnunetnamestore_dep, 3 dependencies: [libgnunetnamestore_dep,
4 libgnunetutil_dep, 4 libgnunetutil_dep,
5 libgnunetgnsrecord_dep, 5 libgnunetgnsrecord_dep,
diff --git a/src/cli/revocation/Makefile.am b/src/cli/revocation/Makefile.am
index 6bd4919f9..3f8f5bb69 100644
--- a/src/cli/revocation/Makefile.am
+++ b/src/cli/revocation/Makefile.am
@@ -20,6 +20,7 @@ gnunet_revocation_SOURCES = \
20gnunet_revocation_LDADD = \ 20gnunet_revocation_LDADD = \
21 $(top_builddir)/src/service/revocation/libgnunetrevocation.la \ 21 $(top_builddir)/src/service/revocation/libgnunetrevocation.la \
22 $(top_builddir)/src/service/identity/libgnunetidentity.la \ 22 $(top_builddir)/src/service/identity/libgnunetidentity.la \
23 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
23 $(top_builddir)/src/lib/util/libgnunetutil.la \ 24 $(top_builddir)/src/lib/util/libgnunetutil.la \
24 $(GN_LIBINTL) 25 $(GN_LIBINTL)
25 26
@@ -27,7 +28,7 @@ gnunet_revocation_tvg_SOURCES = \
27 gnunet-revocation-tvg.c 28 gnunet-revocation-tvg.c
28gnunet_revocation_tvg_LDADD = \ 29gnunet_revocation_tvg_LDADD = \
29 $(top_builddir)/src/service/revocation/libgnunetrevocation.la \ 30 $(top_builddir)/src/service/revocation/libgnunetrevocation.la \
30 $(top_builddir)/src/service/identity/libgnunetidentity.la \ 31 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
31 $(top_builddir)/src/lib/util/libgnunetutil.la \ 32 $(top_builddir)/src/lib/util/libgnunetutil.la \
32 $(GN_LIBINTL) 33 $(GN_LIBINTL)
33 34
diff --git a/src/cli/revocation/gnunet-revocation-tvg.c b/src/cli/revocation/gnunet-revocation-tvg.c
index 7d354ed74..5c2bfbe45 100644
--- a/src/cli/revocation/gnunet-revocation-tvg.c
+++ b/src/cli/revocation/gnunet-revocation-tvg.c
@@ -29,7 +29,7 @@
29#include "gnunet_revocation_service.h" 29#include "gnunet_revocation_service.h"
30#include "gnunet_testing_lib.h" 30#include "gnunet_testing_lib.h"
31// FIXME try to avoid this include somehow 31// FIXME try to avoid this include somehow
32#include "../../service/revocation/revocation.h" 32#include "../../lib/gnsrecord/gnsrecord_crypto.h"
33#include <inttypes.h> 33#include <inttypes.h>
34 34
35#define TEST_EPOCHS 2 35#define TEST_EPOCHS 2
@@ -105,8 +105,8 @@ static void
105run_with_key (struct GNUNET_CRYPTO_PrivateKey *id_priv) 105run_with_key (struct GNUNET_CRYPTO_PrivateKey *id_priv)
106{ 106{
107 struct GNUNET_CRYPTO_PublicKey id_pub; 107 struct GNUNET_CRYPTO_PublicKey id_pub;
108 struct GNUNET_REVOCATION_PowP *pow; 108 struct GNUNET_GNSRECORD_PowP *pow;
109 struct GNUNET_REVOCATION_PowCalculationHandle *ph; 109 struct GNUNET_GNSRECORD_PowCalculationHandle *ph;
110 struct GNUNET_TIME_Relative exp; 110 struct GNUNET_TIME_Relative exp;
111 char ztld[128]; 111 char ztld[128];
112 ssize_t key_len; 112 ssize_t key_len;
@@ -127,10 +127,10 @@ run_with_key (struct GNUNET_CRYPTO_PrivateKey *id_priv)
127 fprintf (stdout, "Encoded zone identifier (zkl = zTLD):\n"); 127 fprintf (stdout, "Encoded zone identifier (zkl = zTLD):\n");
128 fprintf (stdout, "%s\n", ztld); 128 fprintf (stdout, "%s\n", ztld);
129 fprintf (stdout, "\n"); 129 fprintf (stdout, "\n");
130 pow = GNUNET_malloc (GNUNET_REVOCATION_MAX_PROOF_SIZE); 130 pow = GNUNET_malloc (GNUNET_MAX_POW_SIZE);
131 GNUNET_REVOCATION_pow_init (id_priv, 131 GNUNET_GNSRECORD_pow_init (id_priv,
132 pow); 132 pow);
133 ph = GNUNET_REVOCATION_pow_start (pow, 133 ph = GNUNET_GNSRECORD_pow_start (pow,
134 TEST_EPOCHS, 134 TEST_EPOCHS,
135 TEST_DIFFICULTY); 135 TEST_DIFFICULTY);
136 fprintf (stdout, "Difficulty (%d base difficulty + %d epochs): %d\n\n", 136 fprintf (stdout, "Difficulty (%d base difficulty + %d epochs): %d\n\n",
@@ -138,12 +138,12 @@ run_with_key (struct GNUNET_CRYPTO_PrivateKey *id_priv)
138 TEST_EPOCHS, 138 TEST_EPOCHS,
139 TEST_DIFFICULTY + TEST_EPOCHS); 139 TEST_DIFFICULTY + TEST_EPOCHS);
140 uint64_t pow_passes = 0; 140 uint64_t pow_passes = 0;
141 while (GNUNET_YES != GNUNET_REVOCATION_pow_round (ph)) 141 while (GNUNET_YES != GNUNET_GNSRECORD_pow_round (ph))
142 { 142 {
143 pow_passes++; 143 pow_passes++;
144 } 144 }
145 struct GNUNET_REVOCATION_SignaturePurposePS *purp; 145 struct GNUNET_GNSRECORD_SignaturePurposePS *purp;
146 purp = REV_create_signature_message (pow); 146 purp = GNR_create_signature_message (pow);
147 fprintf (stdout, "Signed message:\n"); 147 fprintf (stdout, "Signed message:\n");
148 print_bytes (purp, 148 print_bytes (purp,
149 ntohl (purp->purpose.size), 149 ntohl (purp->purpose.size),
@@ -153,12 +153,12 @@ run_with_key (struct GNUNET_CRYPTO_PrivateKey *id_priv)
153 153
154 exp = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS, 154 exp = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS,
155 TEST_EPOCHS); 155 TEST_EPOCHS);
156 GNUNET_assert (GNUNET_OK == GNUNET_REVOCATION_check_pow (pow, 156 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_check_pow (pow,
157 TEST_DIFFICULTY, 157 TEST_DIFFICULTY,
158 exp)); 158 exp));
159 fprintf (stdout, "Proof:\n"); 159 fprintf (stdout, "Proof:\n");
160 print_bytes (pow, 160 print_bytes (pow,
161 GNUNET_REVOCATION_proof_get_size (pow), 161 GNUNET_GNSRECORD_proof_get_size (pow),
162 8); 162 8);
163 GNUNET_free (ph); 163 GNUNET_free (ph);
164 164
diff --git a/src/cli/revocation/gnunet-revocation.c b/src/cli/revocation/gnunet-revocation.c
index 9667e7655..add9a003b 100644
--- a/src/cli/revocation/gnunet-revocation.c
+++ b/src/cli/revocation/gnunet-revocation.c
@@ -24,9 +24,9 @@
24 * @author Christian Grothoff 24 * @author Christian Grothoff
25 */ 25 */
26#include "platform.h" 26#include "platform.h"
27#include "gnunet_gnsrecord_lib.h"
27#include "gnunet_util_lib.h" 28#include "gnunet_util_lib.h"
28#include "gnunet_revocation_service.h" 29#include "gnunet_revocation_service.h"
29#include "gnunet_identity_service.h"
30 30
31/** 31/**
32 * Pow passes 32 * Pow passes
@@ -101,7 +101,7 @@ static struct GNUNET_SCHEDULER_Task *pow_task;
101/** 101/**
102 * Proof-of-work object 102 * Proof-of-work object
103 */ 103 */
104static struct GNUNET_REVOCATION_PowP *proof_of_work; 104static struct GNUNET_GNSRECORD_PowP *proof_of_work;
105 105
106/** 106/**
107 * Function run if the user aborts with CTRL-C. 107 * Function run if the user aborts with CTRL-C.
@@ -228,7 +228,7 @@ perform_revocation ()
228static void 228static void
229sync_pow () 229sync_pow ()
230{ 230{
231 size_t psize = GNUNET_REVOCATION_proof_get_size (proof_of_work); 231 size_t psize = GNUNET_GNSRECORD_proof_get_size (proof_of_work);
232 if ((NULL != filename) && 232 if ((NULL != filename) &&
233 (GNUNET_OK != 233 (GNUNET_OK !=
234 GNUNET_DISK_fn_write (filename, 234 GNUNET_DISK_fn_write (filename,
@@ -248,7 +248,7 @@ sync_pow ()
248static void 248static void
249calculate_pow_shutdown (void *cls) 249calculate_pow_shutdown (void *cls)
250{ 250{
251 struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; 251 struct GNUNET_GNSRECORD_PowCalculationHandle *ph = cls;
252 fprintf (stderr, "%s", _ ("Cancelling calculation.\n")); 252 fprintf (stderr, "%s", _ ("Cancelling calculation.\n"));
253 sync_pow (); 253 sync_pow ();
254 if (NULL != pow_task) 254 if (NULL != pow_task)
@@ -257,7 +257,7 @@ calculate_pow_shutdown (void *cls)
257 pow_task = NULL; 257 pow_task = NULL;
258 } 258 }
259 if (NULL != ph) 259 if (NULL != ph)
260 GNUNET_REVOCATION_pow_stop (ph); 260 GNUNET_GNSRECORD_pow_stop (ph);
261} 261}
262 262
263 263
@@ -269,7 +269,7 @@ calculate_pow_shutdown (void *cls)
269static void 269static void
270calculate_pow (void *cls) 270calculate_pow (void *cls)
271{ 271{
272 struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; 272 struct GNUNET_GNSRECORD_PowCalculationHandle *ph = cls;
273 size_t psize; 273 size_t psize;
274 274
275 /* store temporary results */ 275 /* store temporary results */
@@ -277,9 +277,9 @@ calculate_pow (void *cls)
277 if (0 == (pow_passes % 128)) 277 if (0 == (pow_passes % 128))
278 sync_pow (); 278 sync_pow ();
279 /* actually do POW calculation */ 279 /* actually do POW calculation */
280 if (GNUNET_OK == GNUNET_REVOCATION_pow_round (ph)) 280 if (GNUNET_OK == GNUNET_GNSRECORD_pow_round (ph))
281 { 281 {
282 psize = GNUNET_REVOCATION_proof_get_size (proof_of_work); 282 psize = GNUNET_GNSRECORD_proof_get_size (proof_of_work);
283 if (NULL != filename) 283 if (NULL != filename)
284 { 284 {
285 (void) GNUNET_DISK_directory_remove (filename); 285 (void) GNUNET_DISK_directory_remove (filename);
@@ -325,7 +325,7 @@ ego_callback (void *cls, struct GNUNET_IDENTITY_Ego *ego)
325{ 325{
326 struct GNUNET_CRYPTO_PublicKey key; 326 struct GNUNET_CRYPTO_PublicKey key;
327 const struct GNUNET_CRYPTO_PrivateKey *privkey; 327 const struct GNUNET_CRYPTO_PrivateKey *privkey;
328 struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; 328 struct GNUNET_GNSRECORD_PowCalculationHandle *ph = NULL;
329 size_t psize; 329 size_t psize;
330 330
331 el = NULL; 331 el = NULL;
@@ -337,11 +337,11 @@ ego_callback (void *cls, struct GNUNET_IDENTITY_Ego *ego)
337 } 337 }
338 GNUNET_IDENTITY_ego_get_public_key (ego, &key); 338 GNUNET_IDENTITY_ego_get_public_key (ego, &key);
339 privkey = GNUNET_IDENTITY_ego_get_private_key (ego); 339 privkey = GNUNET_IDENTITY_ego_get_private_key (ego);
340 proof_of_work = GNUNET_malloc (GNUNET_REVOCATION_MAX_PROOF_SIZE); 340 proof_of_work = GNUNET_malloc (GNUNET_MAX_POW_SIZE);
341 if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) && 341 if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) &&
342 (0 < (psize = 342 (0 < (psize =
343 GNUNET_DISK_fn_read (filename, proof_of_work, 343 GNUNET_DISK_fn_read (filename, proof_of_work,
344 GNUNET_REVOCATION_MAX_PROOF_SIZE)))) 344 GNUNET_MAX_POW_SIZE))))
345 { 345 {
346 ssize_t ksize = GNUNET_CRYPTO_public_key_get_length (&key); 346 ssize_t ksize = GNUNET_CRYPTO_public_key_get_length (&key);
347 if (0 > ksize) 347 if (0 > ksize)
@@ -360,9 +360,9 @@ ego_callback (void *cls, struct GNUNET_IDENTITY_Ego *ego)
360 return; 360 return;
361 } 361 }
362 if (GNUNET_YES == 362 if (GNUNET_YES ==
363 GNUNET_REVOCATION_check_pow (proof_of_work, 363 GNUNET_GNSRECORD_check_pow (proof_of_work,
364 (unsigned int) matching_bits, 364 (unsigned int) matching_bits,
365 epoch_duration)) 365 epoch_duration))
366 { 366 {
367 fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); 367 fprintf (stderr, "%s", _ ("Revocation certificate ready\n"));
368 if (perform) 368 if (perform)
@@ -377,20 +377,20 @@ ego_callback (void *cls, struct GNUNET_IDENTITY_Ego *ego)
377 fprintf (stderr, 377 fprintf (stderr,
378 "%s", 378 "%s",
379 _ ("Continuing calculation where left off...\n")); 379 _ ("Continuing calculation where left off...\n"));
380 ph = GNUNET_REVOCATION_pow_start (proof_of_work, 380 ph = GNUNET_GNSRECORD_pow_start (proof_of_work,
381 epochs, 381 epochs,
382 matching_bits); 382 matching_bits);
383 } 383 }
384 fprintf (stderr, 384 fprintf (stderr,
385 "%s", 385 "%s",
386 _ ("Revocation certificate not ready, calculating proof of work\n")); 386 _ ("Revocation certificate not ready, calculating proof of work\n"));
387 if (NULL == ph) 387 if (NULL == ph)
388 { 388 {
389 GNUNET_REVOCATION_pow_init (privkey, 389 GNUNET_GNSRECORD_pow_init (privkey,
390 proof_of_work); 390 proof_of_work);
391 ph = GNUNET_REVOCATION_pow_start (proof_of_work, 391 ph = GNUNET_GNSRECORD_pow_start (proof_of_work,
392 epochs, /* Epochs */ 392 epochs, /* Epochs */
393 matching_bits); 393 matching_bits);
394 } 394 }
395 pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); 395 pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph);
396 GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); 396 GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph);
@@ -419,7 +419,7 @@ run (void *cls,
419 { 419 {
420 if (GNUNET_OK != 420 if (GNUNET_OK !=
421 GNUNET_CRYPTO_public_key_from_string (test_ego, 421 GNUNET_CRYPTO_public_key_from_string (test_ego,
422 &pk)) 422 &pk))
423 { 423 {
424 fprintf (stderr, _ ("Public key `%s' malformed\n"), test_ego); 424 fprintf (stderr, _ ("Public key `%s' malformed\n"), test_ego);
425 return; 425 return;
@@ -472,17 +472,17 @@ run (void *cls,
472 if ((NULL != filename) && (perform)) 472 if ((NULL != filename) && (perform))
473 { 473 {
474 size_t bread; 474 size_t bread;
475 proof_of_work = GNUNET_malloc (GNUNET_REVOCATION_MAX_PROOF_SIZE); 475 proof_of_work = GNUNET_malloc (GNUNET_MAX_POW_SIZE);
476 if (0 < (bread = GNUNET_DISK_fn_read (filename, 476 if (0 < (bread = GNUNET_DISK_fn_read (filename,
477 proof_of_work, 477 proof_of_work,
478 GNUNET_REVOCATION_MAX_PROOF_SIZE))) 478 GNUNET_MAX_POW_SIZE)))
479 { 479 {
480 fprintf (stderr, 480 fprintf (stderr,
481 _ ("Failed to read revocation certificate from `%s'\n"), 481 _ ("Failed to read revocation certificate from `%s'\n"),
482 filename); 482 filename);
483 return; 483 return;
484 } 484 }
485 psize = GNUNET_REVOCATION_proof_get_size (proof_of_work); 485 psize = GNUNET_GNSRECORD_proof_get_size (proof_of_work);
486 if (bread != psize) 486 if (bread != psize)
487 { 487 {
488 fprintf (stderr, 488 fprintf (stderr,
@@ -492,14 +492,14 @@ run (void *cls,
492 } 492 }
493 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); 493 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
494 if (GNUNET_YES != 494 if (GNUNET_YES !=
495 GNUNET_REVOCATION_check_pow (proof_of_work, 495 GNUNET_GNSRECORD_check_pow (proof_of_work,
496 (unsigned int) matching_bits, 496 (unsigned int) matching_bits,
497 epoch_duration)) 497 epoch_duration))
498 { 498 {
499 struct GNUNET_REVOCATION_PowCalculationHandle *ph; 499 struct GNUNET_GNSRECORD_PowCalculationHandle *ph;
500 ph = GNUNET_REVOCATION_pow_start (proof_of_work, 500 ph = GNUNET_GNSRECORD_pow_start (proof_of_work,
501 epochs, /* Epochs */ 501 epochs, /* Epochs */
502 matching_bits); 502 matching_bits);
503 503
504 pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); 504 pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph);
505 GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); 505 GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph);
diff --git a/src/cli/revocation/meson.build b/src/cli/revocation/meson.build
index 83923c278..090b381df 100644
--- a/src/cli/revocation/meson.build
+++ b/src/cli/revocation/meson.build
@@ -4,9 +4,19 @@ executable ('gnunet-revocation',
4 libgnunetutil_dep, 4 libgnunetutil_dep,
5 libgnunetstatistics_dep, 5 libgnunetstatistics_dep,
6 libgnunetcore_dep, 6 libgnunetcore_dep,
7 libgnunetgnsrecord_dep,
7 libgnunetsetu_dep, 8 libgnunetsetu_dep,
8 libgnunetidentity_dep], 9 libgnunetidentity_dep],
9 include_directories: [incdir, configuration_inc], 10 include_directories: [incdir, configuration_inc],
10 install: true, 11 install: true,
11 install_dir: get_option('bindir')) 12 install_dir: get_option('bindir'))
12 13
14executable ('gnunet-revocation-tvg',
15 ['gnunet-revocation.c'],
16 dependencies: [libgnunetrevocation_dep,
17 libgnunetutil_dep,
18 libgnunetgnsrecord_dep,
19 libgnunetidentity_dep],
20 include_directories: [incdir, configuration_inc],
21 install: false)
22
diff --git a/src/include/gnunet_crypto_lib.h b/src/include/gnunet_crypto_lib.h
index ca51f586c..f3ea3ed25 100644
--- a/src/include/gnunet_crypto_lib.h
+++ b/src/include/gnunet_crypto_lib.h
@@ -3637,8 +3637,6 @@ GNUNET_CRYPTO_key_get_public (const struct
3637 GNUNET_CRYPTO_PrivateKey *privkey, 3637 GNUNET_CRYPTO_PrivateKey *privkey,
3638 struct GNUNET_CRYPTO_PublicKey *key); 3638 struct GNUNET_CRYPTO_PublicKey *key);
3639 3639
3640
3641
3642#if 0 /* keep Emacsens' auto-indent happy */ 3640#if 0 /* keep Emacsens' auto-indent happy */
3643{ 3641{
3644#endif 3642#endif
diff --git a/src/include/gnunet_gnsrecord_lib.h b/src/include/gnunet_gnsrecord_lib.h
index d78e637e8..3f1830498 100644
--- a/src/include/gnunet_gnsrecord_lib.h
+++ b/src/include/gnunet_gnsrecord_lib.h
@@ -829,6 +829,135 @@ GNUNET_GNSRECORD_normalize_record_set (const char *label,
829enum GNUNET_GenericReturnValue 829enum GNUNET_GenericReturnValue
830GNUNET_GNSRECORD_label_check (const char*label, char **emsg); 830GNUNET_GNSRECORD_label_check (const char*label, char **emsg);
831 831
832/**
833 * Maximum length of a revocation
834 */
835#define GNUNET_MAX_POW_SIZE sizeof(struct GNUNET_GNSRECORD_PowP) +\
836 sizeof(struct GNUNET_CRYPTO_PublicKey) +\
837 1024 //FIXME max sig_len
838
839/**
840 * The proof-of-work narrowing factor.
841 * The number of PoWs that are calculates as part of revocation.
842 */
843#define POW_COUNT 32
844
845
846GNUNET_NETWORK_STRUCT_BEGIN
847
848/**
849 * Struct for a proof of work as part of the revocation.
850 */
851struct GNUNET_GNSRECORD_PowP
852{
853 /**
854 * The timestamp of the revocation
855 */
856 struct GNUNET_TIME_AbsoluteNBO timestamp;
857
858 /**
859 * The TTL of this revocation (purely informational)
860 */
861 struct GNUNET_TIME_RelativeNBO ttl;
862
863 /**
864 * The PoWs
865 */
866 uint64_t pow[POW_COUNT] GNUNET_PACKED;
867
868 /** followed by the public key type, the key and a signature **/
869};
870
871
872/**
873 * The signature object we use for the PoW
874 */
875struct GNUNET_GNSRECORD_SignaturePurposePS
876{
877 /**
878 * The signature purpose
879 */
880 struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
881
882 /**
883 * The timestamp of the revocation
884 */
885 struct GNUNET_TIME_AbsoluteNBO timestamp;
886
887 /** Followed by the zone public key type and key **/
888};
889
890GNUNET_NETWORK_STRUCT_END
891
892
893/**
894 * Handle to a running proof-of-work calculation.
895 */
896struct GNUNET_GNSRECORD_PowCalculationHandle;
897
898
899/**
900 * Check if the given proof-of-work is valid.
901 *
902 * @param pow proof of work
903 * @param matching_bits how many bits must match (configuration)
904 * @param epoch_duration length of single epoch in configuration
905 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
906 */
907enum GNUNET_GenericReturnValue
908GNUNET_GNSRECORD_check_pow (const struct GNUNET_GNSRECORD_PowP *pow,
909 unsigned int matching_bits,
910 struct GNUNET_TIME_Relative epoch_duration);
911
912
913/**
914 * Initializes a fresh PoW computation.
915 *
916 * @param key the key to calculate the PoW for.
917 * @param pow the pow object to work with in the calculation.
918 */
919void
920GNUNET_GNSRECORD_pow_init (const struct GNUNET_CRYPTO_PrivateKey *key,
921 struct GNUNET_GNSRECORD_PowP *pow);
922
923
924/**
925 * Starts a proof-of-work calculation given the pow object as well as
926 * target epochs and difficulty.
927 *
928 * @param pow the PoW to based calculations on.
929 * @param epochs the number of epochs for which the PoW must be valid.
930 * @param difficulty the base difficulty of the PoW.
931 * @return a handle for use in PoW rounds
932 */
933struct GNUNET_GNSRECORD_PowCalculationHandle*
934GNUNET_GNSRECORD_pow_start (struct GNUNET_GNSRECORD_PowP *pow,
935 int epochs,
936 unsigned int difficulty);
937
938
939/**
940 * Calculate a single round in the key revocation PoW.
941 *
942 * @param pc handle to the PoW, initially called with NULL.
943 * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not
944 */
945enum GNUNET_GenericReturnValue
946GNUNET_GNSRECORD_pow_round (struct GNUNET_GNSRECORD_PowCalculationHandle *pc);
947
948size_t
949GNUNET_GNSRECORD_proof_get_size (const struct GNUNET_GNSRECORD_PowP *pow);
950
951/**
952 * Stop a PoW calculation
953 *
954 * @param pc the calculation to clean up
955 * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not
956 * valid
957 */
958void
959GNUNET_GNSRECORD_pow_stop (struct GNUNET_GNSRECORD_PowCalculationHandle *pc);
960
832#if 0 /* keep Emacsens' auto-indent happy */ 961#if 0 /* keep Emacsens' auto-indent happy */
833{ 962{
834#endif 963#endif
diff --git a/src/include/gnunet_rest_plugin.h b/src/include/gnunet_rest_plugin.h
index 45b391ca1..3a8af5389 100644
--- a/src/include/gnunet_rest_plugin.h
+++ b/src/include/gnunet_rest_plugin.h
@@ -63,24 +63,13 @@ struct GNUNET_REST_Plugin
63 * e.g. http://hostname:port/name 63 * e.g. http://hostname:port/name
64 */ 64 */
65 char *name; 65 char *name;
66
67 /**
68 * Function to process a REST call
69 *
70 * @param method the HTTP method called
71 * @param url the relative url accessed
72 * @param data the REST data (can be NULL)
73 * @param data_size the length of the data
74 * @param proc the callback for result
75 * @param proc_cls closure for callback
76 * @return GNUNET_YES if the request was processed
77 */
78 enum GNUNET_GenericReturnValue (*process_request)(
79 struct GNUNET_REST_RequestHandle *handle,
80 GNUNET_REST_ResultProcessor proc,
81 void *proc_cls);
82}; 66};
83 67
68typedef enum GNUNET_GenericReturnValue (*GNUNET_REST_ProcessingFunction)(
69 void *plugin,
70 struct GNUNET_REST_RequestHandle *handle,
71 GNUNET_REST_ResultProcessor proc,
72 void *proc_cls);
84 73
85#if 0 /* keep Emacsens' auto-indent happy */ 74#if 0 /* keep Emacsens' auto-indent happy */
86{ 75{
diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h
index de5eedbb9..427be62ac 100644
--- a/src/include/gnunet_revocation_service.h
+++ b/src/include/gnunet_revocation_service.h
@@ -22,6 +22,7 @@
22#define GNUNET_REVOCATION_SERVICE_H_ 22#define GNUNET_REVOCATION_SERVICE_H_
23 23
24 24
25#include "gnunet_gnsrecord_lib.h"
25#include "gnunet_identity_service.h" 26#include "gnunet_identity_service.h"
26 27
27/** 28/**
@@ -56,71 +57,6 @@ extern "C"
56 */ 57 */
57#define GNUNET_REVOCATION_VERSION 0x00000001 58#define GNUNET_REVOCATION_VERSION 0x00000001
58 59
59/**
60 * Maximum length of a revocation
61 */
62#define GNUNET_REVOCATION_MAX_PROOF_SIZE sizeof(struct GNUNET_REVOCATION_PowP) +\
63 sizeof(struct GNUNET_CRYPTO_PublicKey) +\
64 1024 //FIXME max sig_len
65
66/**
67 * The proof-of-work narrowing factor.
68 * The number of PoWs that are calculates as part of revocation.
69 */
70#define POW_COUNT 32
71
72
73GNUNET_NETWORK_STRUCT_BEGIN
74
75/**
76 * Struct for a proof of work as part of the revocation.
77 */
78struct GNUNET_REVOCATION_PowP
79{
80 /**
81 * The timestamp of the revocation
82 */
83 struct GNUNET_TIME_AbsoluteNBO timestamp;
84
85 /**
86 * The TTL of this revocation (purely informational)
87 */
88 struct GNUNET_TIME_RelativeNBO ttl;
89
90 /**
91 * The PoWs
92 */
93 uint64_t pow[POW_COUNT] GNUNET_PACKED;
94
95 /** followed by the public key type, the key and a signature **/
96};
97
98
99/**
100 * The signature object we use for the PoW
101 */
102struct GNUNET_REVOCATION_SignaturePurposePS
103{
104 /**
105 * The signature purpose
106 */
107 struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
108
109 /**
110 * The timestamp of the revocation
111 */
112 struct GNUNET_TIME_AbsoluteNBO timestamp;
113
114 /** Followed by the zone public key type and key **/
115};
116
117GNUNET_NETWORK_STRUCT_END
118
119
120/**
121 * Handle to a running proof-of-work calculation.
122 */
123struct GNUNET_REVOCATION_PowCalculationHandle;
124 60
125/** 61/**
126 * Handle for the key revocation query. 62 * Handle for the key revocation query.
@@ -176,7 +112,7 @@ struct GNUNET_REVOCATION_Handle;
176 * 112 *
177 * @param cfg the configuration to use 113 * @param cfg the configuration to use
178 * @param pow proof of work to use (should have been created by 114 * @param pow proof of work to use (should have been created by
179 * iteratively calling #GNUNET_REVOCATION_pow_round) 115 * iteratively calling #GNUNET_CRYPTO_pow_round)
180 * @param func function to call with the result of the check 116 * @param func function to call with the result of the check
181 * (called with `is_valid` being #GNUNET_NO if 117 * (called with `is_valid` being #GNUNET_NO if
182 * the revocation worked). 118 * the revocation worked).
@@ -185,7 +121,7 @@ struct GNUNET_REVOCATION_Handle;
185 */ 121 */
186struct GNUNET_REVOCATION_Handle * 122struct GNUNET_REVOCATION_Handle *
187GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, 123GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg,
188 const struct GNUNET_REVOCATION_PowP *pow, 124 const struct GNUNET_GNSRECORD_PowP *pow,
189 GNUNET_REVOCATION_Callback func, void *func_cls); 125 GNUNET_REVOCATION_Callback func, void *func_cls);
190 126
191 127
@@ -198,68 +134,6 @@ void
198GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); 134GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h);
199 135
200 136
201/**
202 * Check if the given proof-of-work is valid.
203 *
204 * @param pow proof of work
205 * @param matching_bits how many bits must match (configuration)
206 * @param epoch_duration length of single epoch in configuration
207 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
208 */
209enum GNUNET_GenericReturnValue
210GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_PowP *pow,
211 unsigned int matching_bits,
212 struct GNUNET_TIME_Relative epoch_duration);
213
214
215/**
216 * Initializes a fresh PoW computation.
217 *
218 * @param key the key to calculate the PoW for.
219 * @param pow the pow object to work with in the calculation.
220 */
221void
222GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_PrivateKey *key,
223 struct GNUNET_REVOCATION_PowP *pow);
224
225
226/**
227 * Starts a proof-of-work calculation given the pow object as well as
228 * target epochs and difficulty.
229 *
230 * @param pow the PoW to based calculations on.
231 * @param epochs the number of epochs for which the PoW must be valid.
232 * @param difficulty the base difficulty of the PoW.
233 * @return a handle for use in PoW rounds
234 */
235struct GNUNET_REVOCATION_PowCalculationHandle*
236GNUNET_REVOCATION_pow_start (struct GNUNET_REVOCATION_PowP *pow,
237 int epochs,
238 unsigned int difficulty);
239
240
241/**
242 * Calculate a single round in the key revocation PoW.
243 *
244 * @param pc handle to the PoW, initially called with NULL.
245 * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not
246 */
247enum GNUNET_GenericReturnValue
248GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc);
249
250
251/**
252 * Stop a PoW calculation
253 *
254 * @param pc the calculation to clean up
255 * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not
256 * valid
257 */
258void
259GNUNET_REVOCATION_pow_stop (struct GNUNET_REVOCATION_PowCalculationHandle *pc);
260
261size_t
262GNUNET_REVOCATION_proof_get_size (const struct GNUNET_REVOCATION_PowP *pow);
263 137
264 138
265#if 0 /* keep Emacsens' auto-indent happy */ 139#if 0 /* keep Emacsens' auto-indent happy */
diff --git a/src/lib/gnsrecord/Makefile.am b/src/lib/gnsrecord/Makefile.am
index 57b004847..ab79de900 100644
--- a/src/lib/gnsrecord/Makefile.am
+++ b/src/lib/gnsrecord/Makefile.am
@@ -47,6 +47,7 @@ libgnunetgnsrecord_la_SOURCES = \
47 gnsrecord.c \ 47 gnsrecord.c \
48 gnsrecord_serialization.c \ 48 gnsrecord_serialization.c \
49 gnsrecord_crypto.c \ 49 gnsrecord_crypto.c \
50 gnsrecord_pow.c \
50 gnsrecord_misc.c 51 gnsrecord_misc.c
51libgnunetgnsrecord_la_LIBADD = \ 52libgnunetgnsrecord_la_LIBADD = \
52 $(top_builddir)/src/lib/util/libgnunetutil.la \ 53 $(top_builddir)/src/lib/util/libgnunetutil.la \
diff --git a/src/lib/gnsrecord/gnsrecord_crypto.h b/src/lib/gnsrecord/gnsrecord_crypto.h
index 4f2e4a5ca..85f2258ab 100644
--- a/src/lib/gnsrecord/gnsrecord_crypto.h
+++ b/src/lib/gnsrecord/gnsrecord_crypto.h
@@ -83,3 +83,12 @@ GNR_derive_block_xsalsa_key (unsigned char *nonce,
83 uint64_t exp, 83 uint64_t exp,
84 const struct GNUNET_CRYPTO_EddsaPublicKey *pub); 84 const struct GNUNET_CRYPTO_EddsaPublicKey *pub);
85 85
86/**
87 * Create the revocation metadata to sign for a revocation message
88 *
89 * @param pow the PoW to sign
90 * @return the signature purpose
91 */
92struct GNUNET_GNSRECORD_SignaturePurposePS *
93GNR_create_signature_message (const struct GNUNET_GNSRECORD_PowP *pow);
94
diff --git a/src/lib/gnsrecord/gnsrecord_pow.c b/src/lib/gnsrecord/gnsrecord_pow.c
new file mode 100644
index 000000000..a40dd7802
--- /dev/null
+++ b/src/lib/gnsrecord/gnsrecord_pow.c
@@ -0,0 +1,462 @@
1/*
2 This file is part of GNUnet
3 Copyright (C) 2013, 2016 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
20
21
22/**
23 * @brief API for proof of work
24 * @author Martin Schanzenbach
25 */
26#include "platform.h"
27#include "gnunet_util_lib.h"
28#include "gnunet_gnsrecord_lib.h"
29#include "gnunet_signatures.h"
30#include "gnunet_protocols.h"
31#include <inttypes.h>
32
33/**
34 * Helper struct that holds a found pow nonce
35 * and the corresponding number of leading zeros.
36 */
37struct BestPow
38{
39 /**
40 * PoW nonce
41 */
42 uint64_t pow;
43
44 /**
45 * Corresponding zero bits in hash
46 */
47 unsigned int bits;
48};
49
50
51/**
52 * The handle to a PoW calculation.
53 * Used in iterative PoW rounds.
54 */
55struct GNUNET_GNSRECORD_PowCalculationHandle
56{
57 /**
58 * Current set of found PoWs
59 */
60 struct BestPow best[POW_COUNT];
61
62 /**
63 * The final PoW result data structure.
64 */
65 struct GNUNET_GNSRECORD_PowP *pow;
66
67 /**
68 * The current nonce to try
69 */
70 uint64_t current_pow;
71
72 /**
73 * Epochs how long the PoW should be valid.
74 * This is added on top of the difficulty in the PoW.
75 */
76 unsigned int epochs;
77
78 /**
79 * The difficulty (leading zeros) to achieve.
80 */
81 unsigned int difficulty;
82
83};
84
85static struct GNUNET_CRYPTO_PowSalt salt = { "GnsRevocationPow" };
86
87/**
88 * Calculate the average zeros in the pows.
89 *
90 * @param ph the PowHandle
91 * @return the average number of zeros.
92 */
93static unsigned int
94calculate_score (const struct GNUNET_GNSRECORD_PowCalculationHandle *ph)
95{
96 double sum = 0.0;
97 for (unsigned int j = 0; j<POW_COUNT; j++)
98 sum += ph->best[j].bits;
99 double avg = sum / POW_COUNT;
100 return avg;
101}
102
103
104struct GNUNET_GNSRECORD_SignaturePurposePS *
105GNR_create_signature_message (const struct GNUNET_GNSRECORD_PowP *pow)
106{
107 struct GNUNET_GNSRECORD_SignaturePurposePS *spurp;
108 const struct GNUNET_CRYPTO_PublicKey *pk;
109 size_t ksize;
110
111 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
112 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
113 spurp = GNUNET_malloc (sizeof (*spurp) + ksize);
114 spurp->timestamp = pow->timestamp;
115 spurp->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_GNS_REVOCATION);
116 spurp->purpose.size = htonl (sizeof(*spurp) + ksize);
117 GNUNET_CRYPTO_write_public_key_to_buffer (pk,
118 (char*) &spurp[1],
119 ksize);
120 return spurp;
121}
122
123
124enum GNUNET_GenericReturnValue
125check_signature_identity (const struct GNUNET_GNSRECORD_PowP *pow,
126 const struct GNUNET_CRYPTO_PublicKey *key)
127{
128 struct GNUNET_GNSRECORD_SignaturePurposePS *spurp;
129 unsigned char *sig;
130 size_t ksize;
131 int ret;
132
133 ksize = GNUNET_CRYPTO_public_key_get_length (key);
134 spurp = GNR_create_signature_message (pow);
135 sig = ((unsigned char*) &pow[1] + ksize);
136 ret =
137 GNUNET_CRYPTO_signature_verify_raw_ (
138 GNUNET_SIGNATURE_PURPOSE_GNS_REVOCATION,
139 &spurp->purpose,
140 sig,
141 key);
142 GNUNET_free (spurp);
143 return ret == GNUNET_OK ? GNUNET_OK : GNUNET_SYSERR;
144}
145
146
147enum GNUNET_GenericReturnValue
148check_signature (const struct GNUNET_GNSRECORD_PowP *pow)
149{
150 const struct GNUNET_CRYPTO_PublicKey *pk;
151
152 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
153 return check_signature_identity (pow, pk);
154}
155
156
157/**
158 * Check if the given proof-of-work is valid.
159 *
160 * @param pow proof of work
161 * @param difficulty how many bits must match (configuration) LSD0001: D
162 * @param epoch_duration length of single epoch in configuration
163 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
164 */
165enum GNUNET_GenericReturnValue
166GNUNET_GNSRECORD_check_pow (const struct GNUNET_GNSRECORD_PowP *pow,
167 unsigned int difficulty,
168 struct GNUNET_TIME_Relative epoch_duration)
169{
170 char buf[sizeof(struct GNUNET_CRYPTO_PublicKey)
171 + sizeof (struct GNUNET_TIME_AbsoluteNBO)
172 + sizeof (uint64_t)] GNUNET_ALIGN;
173 struct GNUNET_HashCode result;
174 struct GNUNET_TIME_Absolute ts;
175 struct GNUNET_TIME_Absolute exp;
176 struct GNUNET_TIME_Relative ttl;
177 struct GNUNET_TIME_Relative buffer;
178 /* LSD0001: D' */
179 unsigned int score = 0;
180 unsigned int tmp_score = 0;
181 unsigned int epochs;
182 uint64_t pow_val;
183 ssize_t pklen;
184 const struct GNUNET_CRYPTO_PublicKey *pk;
185
186 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
187
188 /**
189 * Check if signature valid
190 */
191 if (GNUNET_OK != check_signature (pow))
192 {
193 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
194 "Proof of work signature invalid!\n");
195 return GNUNET_SYSERR;
196 }
197
198 /**
199 * First, check if PoW set is strictly monotically increasing
200 */
201 for (unsigned int i = 0; i < POW_COUNT - 1; i++)
202 {
203 if (GNUNET_ntohll (pow->pow[i]) >= GNUNET_ntohll (pow->pow[i + 1]))
204 return GNUNET_NO;
205 }
206 GNUNET_memcpy (&buf[sizeof(uint64_t)],
207 &pow->timestamp,
208 sizeof (uint64_t));
209 pklen = GNUNET_CRYPTO_public_key_get_length (pk);
210 if (0 > pklen)
211 {
212 GNUNET_break (0);
213 return GNUNET_NO;
214 }
215 GNUNET_memcpy (&buf[sizeof(uint64_t) * 2],
216 pk,
217 pklen);
218 for (unsigned int i = 0; i < POW_COUNT; i++)
219 {
220 pow_val = GNUNET_ntohll (pow->pow[i]);
221 GNUNET_memcpy (buf, &pow->pow[i], sizeof(uint64_t));
222 GNUNET_CRYPTO_pow_hash (&salt,
223 buf,
224 sizeof(buf),
225 &result);
226 tmp_score = GNUNET_CRYPTO_hash_count_leading_zeros (&result);
227 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
228 "Score %u with %" PRIu64 " (#%u)\n",
229 tmp_score, pow_val, i);
230
231 score += tmp_score;
232
233 }
234 score = score / POW_COUNT;
235 if (score < difficulty)
236 return GNUNET_NO;
237 /* LSD0001: (D'-D+1) */
238 epochs = score - difficulty + 1;
239
240 /**
241 * Check expiration
242 */
243 ts = GNUNET_TIME_absolute_ntoh (pow->timestamp);
244 ttl = GNUNET_TIME_relative_multiply (epoch_duration,
245 epochs);
246 /**
247 * Extend by 10% for unsynchronized clocks
248 */
249 buffer = GNUNET_TIME_relative_divide (epoch_duration,
250 10);
251 exp = GNUNET_TIME_absolute_add (ts, ttl);
252 exp = GNUNET_TIME_absolute_add (exp,
253 buffer);
254
255 if (0 != GNUNET_TIME_absolute_get_remaining (ts).rel_value_us)
256 return GNUNET_NO; /* Not yet valid. */
257 /* Revert to actual start time */
258 ts = GNUNET_TIME_absolute_add (ts,
259 buffer);
260
261 if (0 == GNUNET_TIME_absolute_get_remaining (exp).rel_value_us)
262 return GNUNET_NO; /* expired */
263 return GNUNET_YES;
264}
265
266
267enum GNUNET_GenericReturnValue
268sign_pow_identity (const struct GNUNET_CRYPTO_PrivateKey *key,
269 struct GNUNET_GNSRECORD_PowP *pow)
270{
271 struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get ();
272 struct GNUNET_GNSRECORD_SignaturePurposePS *rp;
273 const struct GNUNET_CRYPTO_PublicKey *pk;
274 size_t ksize;
275 char *sig;
276
277 /**
278 * Predate the validity period to prevent rejections due to
279 * unsynchronized clocks
280 */
281 ts = GNUNET_TIME_absolute_subtract (ts,
282 GNUNET_TIME_UNIT_WEEKS);
283 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
284 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
285 pow->timestamp = GNUNET_TIME_absolute_hton (ts);
286 rp = GNR_create_signature_message (pow);
287 sig = ((char*) &pow[1]) + ksize;
288 int result = GNUNET_CRYPTO_sign_raw_ (key,
289 &rp->purpose,
290 (void*) sig);
291 GNUNET_free (rp);
292 if (result == GNUNET_SYSERR)
293 return GNUNET_NO;
294 else
295 return result;
296}
297
298
299enum GNUNET_GenericReturnValue
300sign_pow (const struct GNUNET_CRYPTO_PrivateKey *key,
301 struct GNUNET_GNSRECORD_PowP *pow)
302{
303 struct GNUNET_CRYPTO_PublicKey *pk;
304
305 pk = (struct GNUNET_CRYPTO_PublicKey *) &pow[1];
306 GNUNET_CRYPTO_key_get_public (key, pk);
307 return sign_pow_identity (key, pow);
308}
309
310
311/**
312 * Initializes a fresh PoW computation.
313 *
314 * @param key the key to calculate the PoW for.
315 * @param[out] pow starting point for PoW calculation (not yet valid)
316 */
317void
318GNUNET_GNSRECORD_pow_init (const struct GNUNET_CRYPTO_PrivateKey *key,
319 struct GNUNET_GNSRECORD_PowP *pow)
320{
321 GNUNET_assert (GNUNET_OK == sign_pow (key, pow));
322}
323
324
325struct GNUNET_GNSRECORD_PowCalculationHandle*
326GNUNET_GNSRECORD_pow_start (struct GNUNET_GNSRECORD_PowP *pow,
327 int epochs,
328 unsigned int difficulty)
329{
330 struct GNUNET_GNSRECORD_PowCalculationHandle *pc;
331 struct GNUNET_TIME_Relative ttl;
332
333
334 pc = GNUNET_new (struct GNUNET_GNSRECORD_PowCalculationHandle);
335 pc->pow = pow;
336 ttl = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS,
337 epochs);
338 pc->pow->ttl = GNUNET_TIME_relative_hton (ttl);
339 pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
340 UINT64_MAX);
341 pc->difficulty = difficulty;
342 pc->epochs = epochs;
343 return pc;
344}
345
346
347/**
348 * Comparison function for quicksort
349 *
350 * @param a left element
351 * @param b right element
352 * @return a-b
353 */
354static int
355cmp_pow_value (const void *a, const void *b)
356{
357 return (GNUNET_ntohll (*(uint64_t*) a) - GNUNET_ntohll (*(uint64_t*) b));
358}
359
360
361/**
362 * Calculate a key revocation valid for broadcasting for a number
363 * of epochs.
364 *
365 * @param pc handle to the PoW, initially called with NULL.
366 * @param epochs number of epochs for which the revocation must be valid.
367 * @param pow current pow value to try
368 * @param difficulty current base difficulty to achieve
369 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
370 */
371enum GNUNET_GenericReturnValue
372GNUNET_GNSRECORD_pow_round (struct GNUNET_GNSRECORD_PowCalculationHandle *pc)
373{
374 char buf[sizeof(struct GNUNET_CRYPTO_PublicKey)
375 + sizeof (uint64_t)
376 + sizeof (uint64_t)] GNUNET_ALIGN;
377 struct GNUNET_HashCode result;
378 const struct GNUNET_CRYPTO_PublicKey *pk;
379 unsigned int zeros;
380 int ret;
381 uint64_t pow_nbo;
382 ssize_t ksize;
383
384 pc->current_pow++;
385 pk = (const struct GNUNET_CRYPTO_PublicKey *) &(pc->pow[1]);
386
387 /**
388 * Do not try duplicates
389 */
390 for (unsigned int i = 0; i < POW_COUNT; i++)
391 if (pc->current_pow == pc->best[i].pow)
392 return GNUNET_NO;
393 pow_nbo = GNUNET_htonll (pc->current_pow);
394 GNUNET_memcpy (buf, &pow_nbo, sizeof(uint64_t));
395 GNUNET_memcpy (&buf[sizeof(uint64_t)],
396 &pc->pow->timestamp,
397 sizeof (uint64_t));
398 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
399 GNUNET_assert (0 < ksize);
400 GNUNET_memcpy (&buf[sizeof(uint64_t) * 2],
401 pk,
402 ksize);
403 GNUNET_CRYPTO_pow_hash (&salt,
404 buf,
405 sizeof(buf),
406 &result);
407 zeros = GNUNET_CRYPTO_hash_count_leading_zeros (&result);
408 for (unsigned int i = 0; i < POW_COUNT; i++)
409 {
410 if (pc->best[i].bits < zeros)
411 {
412 pc->best[i].bits = zeros;
413 pc->best[i].pow = pc->current_pow;
414 pc->pow->pow[i] = pow_nbo;
415 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
416 "New best score %u with %" PRIu64 " (#%u)\n",
417 zeros, pc->current_pow, i);
418
419 break;
420 }
421 }
422 ret = calculate_score (pc) >= pc->difficulty + pc->epochs ? GNUNET_YES :
423 GNUNET_NO;
424 if (GNUNET_YES == ret)
425 {
426 /* Sort POWs) */
427 qsort (pc->pow->pow, POW_COUNT, sizeof (uint64_t), &cmp_pow_value);
428 }
429 return ret;
430}
431
432
433size_t
434GNUNET_GNSRECORD_proof_get_size (const struct GNUNET_GNSRECORD_PowP *pow)
435{
436 size_t size;
437 size_t ksize;
438 const struct GNUNET_CRYPTO_PublicKey *pk;
439
440 size = sizeof (struct GNUNET_GNSRECORD_PowP);
441 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
442 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
443 size += ksize;
444 size += GNUNET_CRYPTO_signature_get_raw_length_by_type (pk->type);
445 return size;
446}
447
448
449/**
450 * Stop a PoW calculation
451 *
452 * @param pc the calculation to clean up
453 * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not
454 * valid
455 */
456void
457GNUNET_GNSRECORD_pow_stop (struct GNUNET_GNSRECORD_PowCalculationHandle *pc)
458{
459 GNUNET_free (pc);
460}
461
462
diff --git a/src/lib/gnsrecord/meson.build b/src/lib/gnsrecord/meson.build
index 3e35e0caf..a35d6b66e 100644
--- a/src/lib/gnsrecord/meson.build
+++ b/src/lib/gnsrecord/meson.build
@@ -1,6 +1,7 @@
1libgnunetgnsrecord_src = ['gnsrecord.c', 1libgnunetgnsrecord_src = ['gnsrecord.c',
2 'gnsrecord_serialization.c', 2 'gnsrecord_serialization.c',
3 'gnsrecord_crypto.c', 3 'gnsrecord_crypto.c',
4 'gnsrecord_pow.c',
4 'gnsrecord_misc.c'] 5 'gnsrecord_misc.c']
5libgnunetgnsrecordjson_src = ['json_gnsrecord.c'] 6libgnunetgnsrecordjson_src = ['json_gnsrecord.c']
6 7
diff --git a/src/meson.build b/src/meson.build
index 5efd7e97a..8f8342a4d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -4,8 +4,7 @@ endif
4 4
5subdir('include') 5subdir('include')
6subdir('lib') 6subdir('lib')
7subdir('service')
8subdir('plugin') 7subdir('plugin')
9subdir('rest-plugin') 8subdir('service')
10subdir('cli') 9subdir('cli')
11subdir('contrib') 10subdir('contrib')
diff --git a/src/plugin/Makefile.am b/src/plugin/Makefile.am
index 1a1ecffa7..78e06fd63 100644
--- a/src/plugin/Makefile.am
+++ b/src/plugin/Makefile.am
@@ -1,10 +1,16 @@
1SUBDIRS = \ 1SUBDIRS = \
2 block \ 2 block \
3 dns \
3 gnsrecord \ 4 gnsrecord \
4 dhtu \ 5 peerstore \
6 datacache \
7 datastore \
5 namecache \ 8 namecache \
6 namestore \ 9 namestore \
10 dht \
7 revocation \ 11 revocation \
12 regex \
8 gns \ 13 gns \
9 fs \ 14 fs \
10 reclaim 15 reclaim \
16 messenger
diff --git a/src/plugin/datacache/Makefile.am b/src/plugin/datacache/Makefile.am
new file mode 100644
index 000000000..b9ae06975
--- /dev/null
+++ b/src/plugin/datacache/Makefile.am
@@ -0,0 +1,76 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6pkgcfgdir= $(pkgdatadir)/config.d/
7
8sqldir = $(prefix)/share/gnunet/sql/
9
10sql_DATA = \
11 datacache-0001.sql \
12 datacache-drop.sql
13
14
15if USE_COVERAGE
16 AM_CFLAGS = --coverage -O0
17 XLIBS = -lgcov
18endif
19
20if HAVE_SQLITE
21 SQLITE_PLUGIN = libgnunet_plugin_datacache_sqlite.la
22endif
23if HAVE_POSTGRESQL
24 POSTGRES_PLUGIN = libgnunet_plugin_datacache_postgres.la
25endif
26
27plugin_LTLIBRARIES = \
28 $(SQLITE_PLUGIN) \
29 $(POSTGRES_PLUGIN) \
30 libgnunet_plugin_datacache_heap.la
31
32# Real plugins should of course go into
33# plugin_LTLIBRARIES
34noinst_LTLIBRARIES = \
35 libgnunet_plugin_datacache_template.la
36
37
38libgnunet_plugin_datacache_sqlite_la_SOURCES = \
39 plugin_datacache_sqlite.c
40libgnunet_plugin_datacache_sqlite_la_LIBADD = \
41 $(top_builddir)/src/lib/sq/libgnunetsq.la \
42 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
43 $(LTLIBINTL)
44libgnunet_plugin_datacache_sqlite_la_LDFLAGS = \
45 $(GN_PLUGIN_LDFLAGS)
46
47libgnunet_plugin_datacache_heap_la_SOURCES = \
48 plugin_datacache_heap.c
49libgnunet_plugin_datacache_heap_la_LIBADD = \
50 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
51 $(LTLIBINTL)
52libgnunet_plugin_datacache_heap_la_LDFLAGS = \
53 $(GN_PLUGIN_LDFLAGS)
54
55libgnunet_plugin_datacache_postgres_la_SOURCES = \
56 plugin_datacache_postgres.c
57libgnunet_plugin_datacache_postgres_la_LIBADD = \
58 $(top_builddir)/src/lib/pq/libgnunetpq.la \
59 $(top_builddir)/src/lib/util/libgnunetutil.la \
60 $(GN_PLUGIN_LDFLAGS) -lpq
61libgnunet_plugin_datacache_postgres_la_CPPFLAGS = \
62 $(POSTGRESQL_CPPFLAGS) $(AM_CPPFLAGS)
63libgnunet_plugin_datacache_postgres_la_LDFLAGS = \
64 $(GN_PLUGIN_LDFLAGS) $(POSTGRESQL_LDFLAGS)
65
66libgnunet_plugin_datacache_template_la_SOURCES = \
67 plugin_datacache_template.c
68libgnunet_plugin_datacache_template_la_LIBADD = \
69 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
70 $(LTLIBINTL)
71libgnunet_plugin_datacache_template_la_LDFLAGS = \
72 $(GN_PLUGIN_LDFLAGS)
73
74
75EXTRA_DIST = \
76 $(sql_DATA)
diff --git a/src/service/datacache/datacache-0001.sql b/src/plugin/datacache/datacache-0001.sql
index 6567de3c2..6567de3c2 100644
--- a/src/service/datacache/datacache-0001.sql
+++ b/src/plugin/datacache/datacache-0001.sql
diff --git a/src/service/datacache/datacache-drop.sql b/src/plugin/datacache/datacache-drop.sql
index 2dd84bca8..2dd84bca8 100644
--- a/src/service/datacache/datacache-drop.sql
+++ b/src/plugin/datacache/datacache-drop.sql
diff --git a/src/plugin/datacache/meson.build b/src/plugin/datacache/meson.build
new file mode 100644
index 000000000..3c9e7d330
--- /dev/null
+++ b/src/plugin/datacache/meson.build
@@ -0,0 +1,30 @@
1install_data ('datacache-0001.sql',
2 'datacache-drop.sql',
3 install_dir: get_option('datadir')/'gnunet'/'sql')
4
5shared_module('gnunet_plugin_datacache_sqlite',
6 ['plugin_datacache_sqlite.c'],
7 dependencies: [libgnunetutil_dep,
8 sqlite_dep,
9 libgnunetsq_dep],
10 include_directories: [incdir, configuration_inc],
11 install: true,
12 install_dir: get_option('libdir')/'gnunet')
13
14shared_module('gnunet_plugin_datacache_heap',
15 ['plugin_datacache_heap.c'],
16 dependencies: [libgnunetutil_dep],
17 include_directories: [incdir, configuration_inc],
18 install: true,
19 install_dir: get_option('libdir')/'gnunet')
20
21if pq_dep.found()
22 shared_module('gnunet_plugin_datacache_postgres',
23 ['plugin_datacache_postgres.c'],
24 dependencies: [libgnunetutil_dep,
25 pq_dep,
26 libgnunetpq_dep],
27 include_directories: [incdir, configuration_inc],
28 install: true,
29 install_dir: get_option('libdir')/'gnunet')
30endif
diff --git a/src/service/datacache/plugin_datacache_heap.c b/src/plugin/datacache/plugin_datacache_heap.c
index 0dd8e47f8..0dd8e47f8 100644
--- a/src/service/datacache/plugin_datacache_heap.c
+++ b/src/plugin/datacache/plugin_datacache_heap.c
diff --git a/src/service/datacache/plugin_datacache_postgres.c b/src/plugin/datacache/plugin_datacache_postgres.c
index 8bfd04aea..8bfd04aea 100644
--- a/src/service/datacache/plugin_datacache_postgres.c
+++ b/src/plugin/datacache/plugin_datacache_postgres.c
diff --git a/src/service/datacache/plugin_datacache_sqlite.c b/src/plugin/datacache/plugin_datacache_sqlite.c
index 1c6f24a82..1c6f24a82 100644
--- a/src/service/datacache/plugin_datacache_sqlite.c
+++ b/src/plugin/datacache/plugin_datacache_sqlite.c
diff --git a/src/service/datacache/plugin_datacache_template.c b/src/plugin/datacache/plugin_datacache_template.c
index 1bd712d39..1bd712d39 100644
--- a/src/service/datacache/plugin_datacache_template.c
+++ b/src/plugin/datacache/plugin_datacache_template.c
diff --git a/src/plugin/datastore/Makefile.am b/src/plugin/datastore/Makefile.am
new file mode 100644
index 000000000..1f4ab59c8
--- /dev/null
+++ b/src/plugin/datastore/Makefile.am
@@ -0,0 +1,150 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6pkgcfgdir= $(pkgdatadir)/config.d/
7
8libexecdir= $(pkglibdir)/libexec/
9
10sqldir = $(prefix)/share/gnunet/sql/
11
12sql_DATA = \
13 datastore-0001.sql \
14 datastore-drop.sql
15
16if USE_COVERAGE
17 AM_CFLAGS = --coverage -O0
18 XLIBS = -lgcov
19endif
20
21
22if HAVE_SQLITE
23 SQLITE_PLUGIN = libgnunet_plugin_datastore_sqlite.la
24if HAVE_BENCHMARKS
25 SQLITE_BENCHMARKS = \
26 perf_plugin_datastore_sqlite
27endif
28 SQLITE_TESTS = \
29 test_plugin_datastore_sqlite \
30 $(SQLITE_BENCHMARKS)
31endif
32if HAVE_POSTGRESQL
33 POSTGRES_PLUGIN = libgnunet_plugin_datastore_postgres.la
34if HAVE_BENCHMARKS
35 POSTGRES_BENCHMARKS = \
36 perf_plugin_datastore_postgres
37endif
38 POSTGRES_TESTS = \
39 test_plugin_datastore_postgres \
40 $(POSTGRES_BENCHMARKS)
41endif
42
43plugin_LTLIBRARIES = \
44 $(SQLITE_PLUGIN) \
45 $(POSTGRES_PLUGIN) \
46 libgnunet_plugin_datastore_heap.la
47
48# Real plugins should of course go into
49# plugin_LTLIBRARIES
50noinst_LTLIBRARIES = \
51 libgnunet_plugin_datastore_template.la
52
53
54libgnunet_plugin_datastore_sqlite_la_SOURCES = \
55 plugin_datastore_sqlite.c
56libgnunet_plugin_datastore_sqlite_la_LIBADD = \
57 $(top_builddir)/src/lib/sq/libgnunetsq.la \
58 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
59 $(LTLIBINTL)
60libgnunet_plugin_datastore_sqlite_la_LDFLAGS = \
61 $(GN_PLUGIN_LDFLAGS)
62
63
64libgnunet_plugin_datastore_heap_la_SOURCES = \
65 plugin_datastore_heap.c
66libgnunet_plugin_datastore_heap_la_LIBADD = \
67 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
68 $(LTLIBINTL)
69libgnunet_plugin_datastore_heap_la_LDFLAGS = \
70 $(GN_PLUGIN_LDFLAGS)
71
72
73libgnunet_plugin_datastore_postgres_la_SOURCES = \
74 plugin_datastore_postgres.c
75libgnunet_plugin_datastore_postgres_la_LIBADD = \
76 $(top_builddir)/src/lib/pq/libgnunetpq.la \
77 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq
78libgnunet_plugin_datastore_postgres_la_LDFLAGS = \
79 $(GN_PLUGIN_LDFLAGS) $(POSTGRESQL_LDFLAGS)
80libgnunet_plugin_datastore_postgres_la_CPPFLAGS = \
81 $(POSTGRESQL_CPPFLAGS) $(AM_CPPFLAGS)
82
83
84libgnunet_plugin_datastore_template_la_SOURCES = \
85 plugin_datastore_template.c
86libgnunet_plugin_datastore_template_la_LIBADD = \
87 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
88 $(LTLIBINTL)
89libgnunet_plugin_datastore_template_la_LDFLAGS = \
90 $(GN_PLUGIN_LDFLAGS)
91
92check_PROGRAMS = \
93 perf_plugin_datastore_heap \
94 test_plugin_datastore_heap \
95 $(SQLITE_TESTS) \
96 $(POSTGRES_TESTS)
97
98if ENABLE_TEST_RUN
99AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
100TESTS = $(check_PROGRAMS)
101endif
102
103perf_plugin_datastore_heap_SOURCES = \
104 perf_plugin_datastore.c
105perf_plugin_datastore_heap_LDADD = \
106 $(top_builddir)/src/service/testing/libgnunettesting.la \
107 $(top_builddir)/src/lib/util/libgnunetutil.la
108
109test_plugin_datastore_heap_SOURCES = \
110 test_plugin_datastore.c
111test_plugin_datastore_heap_LDADD = \
112 $(top_builddir)/src/service/testing/libgnunettesting.la \
113 $(top_builddir)/src/lib/util/libgnunetutil.la
114
115
116perf_plugin_datastore_sqlite_SOURCES = \
117 perf_plugin_datastore.c
118perf_plugin_datastore_sqlite_LDADD = \
119 $(top_builddir)/src/service/testing/libgnunettesting.la \
120 $(top_builddir)/src/lib/util/libgnunetutil.la
121
122test_plugin_datastore_sqlite_SOURCES = \
123 test_plugin_datastore.c
124test_plugin_datastore_sqlite_LDADD = \
125 $(top_builddir)/src/service/testing/libgnunettesting.la \
126 $(top_builddir)/src/lib/util/libgnunetutil.la
127
128
129test_plugin_datastore_postgres_SOURCES = \
130 test_plugin_datastore.c
131test_plugin_datastore_postgres_LDADD = \
132 $(top_builddir)/src/service/testing/libgnunettesting.la \
133 $(top_builddir)/src/lib/util/libgnunetutil.la
134
135perf_plugin_datastore_postgres_SOURCES = \
136 perf_plugin_datastore.c
137perf_plugin_datastore_postgres_LDADD = \
138 $(top_builddir)/src/service/testing/libgnunettesting.la \
139 $(top_builddir)/src/lib/util/libgnunetutil.la
140
141
142EXTRA_DIST = \
143 test_defaults.conf \
144 perf_plugin_datastore_data_sqlite.conf \
145 test_plugin_datastore_data_sqlite.conf \
146 perf_plugin_datastore_data_heap.conf \
147 test_plugin_datastore_data_heap.conf \
148 perf_plugin_datastore_data_postgres.conf \
149 test_plugin_datastore_data_postgres.conf \
150 $(sql_DATA)
diff --git a/src/service/datastore/datastore-0001.sql b/src/plugin/datastore/datastore-0001.sql
index 0d4758be2..0d4758be2 100644
--- a/src/service/datastore/datastore-0001.sql
+++ b/src/plugin/datastore/datastore-0001.sql
diff --git a/src/service/datastore/datastore-drop.sql b/src/plugin/datastore/datastore-drop.sql
index 67fee303d..67fee303d 100644
--- a/src/service/datastore/datastore-drop.sql
+++ b/src/plugin/datastore/datastore-drop.sql
diff --git a/src/plugin/datastore/meson.build b/src/plugin/datastore/meson.build
new file mode 100644
index 000000000..6769cb78b
--- /dev/null
+++ b/src/plugin/datastore/meson.build
@@ -0,0 +1,75 @@
1install_data ('datastore-0001.sql',
2 'datastore-drop.sql',
3 install_dir: get_option('datadir')/'gnunet'/'sql')
4
5shared_module('gnunet_plugin_datastore_sqlite',
6 ['plugin_datastore_sqlite.c'],
7 dependencies: [libgnunetutil_dep,
8 sqlite_dep,
9 libgnunetsq_dep],
10 include_directories: [incdir, configuration_inc],
11 install: true,
12 install_dir: get_option('libdir')/'gnunet')
13
14shared_module('gnunet_plugin_datastore_heap',
15 ['plugin_datastore_heap.c'],
16 dependencies: [libgnunetutil_dep],
17 include_directories: [incdir, configuration_inc],
18 install: true,
19 install_dir: get_option('libdir')/'gnunet')
20
21if pq_dep.found()
22 shared_module('gnunet_plugin_datastore_postgres',
23 ['plugin_datastore_postgres.c'],
24 dependencies: [libgnunetutil_dep,
25 pq_dep,
26 libgnunetpq_dep],
27 include_directories: [incdir, configuration_inc],
28 install: true,
29 install_dir: get_option('libdir')/'gnunet')
30endif
31
32testds_plugin_sqlite = executable ('test_plugin_datastore_sqlite',
33 ['test_plugin_datastore.c'],
34 dependencies: [
35 libgnunetutil_dep,
36 ],
37 include_directories: [incdir, configuration_inc],
38 install: false)
39
40testds_plugin_heap = executable ('test_plugin_datastore_heap',
41 ['test_plugin_datastore.c'],
42 dependencies: [
43 libgnunetutil_dep,
44 ],
45 include_directories: [incdir, configuration_inc],
46 install: false)
47
48testds_plugin_pq = executable ('test_plugin_datastore_postgres',
49 ['test_plugin_datastore.c'],
50 dependencies: [
51 libgnunetutil_dep,
52 ],
53 include_directories: [incdir, configuration_inc],
54 install: false)
55
56configure_file(input : 'test_defaults.conf',
57 output : 'test_defaults.conf',
58 copy: true)
59configure_file(input : 'test_plugin_datastore_data_sqlite.conf',
60 output : 'test_plugin_datastore_data_sqlite.conf',
61 copy: true)
62configure_file(input : 'test_plugin_datastore_data_heap.conf',
63 output : 'test_plugin_datastore_data_heap.conf',
64 copy: true)
65configure_file(input : 'test_plugin_datastore_data_postgres.conf',
66 output : 'test_plugin_datastore_data_postgres.conf',
67 copy: true)
68
69test('test_plugin_datastore_sqlite', testds_plugin_sqlite,
70 suite: 'datastore', workdir: meson.current_build_dir())
71test('test_plugin_datastore_heap', testds_plugin_heap,
72 suite: 'datastore', workdir: meson.current_build_dir())
73test('test_plugin_datastore_postgres', testds_plugin_pq,
74 suite: 'datastore', workdir: meson.current_build_dir())
75
diff --git a/src/service/datastore/perf_plugin_datastore.c b/src/plugin/datastore/perf_plugin_datastore.c
index 8e63b08e6..8e63b08e6 100644
--- a/src/service/datastore/perf_plugin_datastore.c
+++ b/src/plugin/datastore/perf_plugin_datastore.c
diff --git a/src/service/datastore/perf_plugin_datastore_data_heap.conf b/src/plugin/datastore/perf_plugin_datastore_data_heap.conf
index 873cf9606..873cf9606 100644
--- a/src/service/datastore/perf_plugin_datastore_data_heap.conf
+++ b/src/plugin/datastore/perf_plugin_datastore_data_heap.conf
diff --git a/src/service/datastore/perf_plugin_datastore_data_postgres.conf b/src/plugin/datastore/perf_plugin_datastore_data_postgres.conf
index 7683887a8..7683887a8 100644
--- a/src/service/datastore/perf_plugin_datastore_data_postgres.conf
+++ b/src/plugin/datastore/perf_plugin_datastore_data_postgres.conf
diff --git a/src/service/datastore/perf_plugin_datastore_data_sqlite.conf b/src/plugin/datastore/perf_plugin_datastore_data_sqlite.conf
index 888e020a6..888e020a6 100644
--- a/src/service/datastore/perf_plugin_datastore_data_sqlite.conf
+++ b/src/plugin/datastore/perf_plugin_datastore_data_sqlite.conf
diff --git a/src/service/datastore/plugin_datastore_heap.c b/src/plugin/datastore/plugin_datastore_heap.c
index a827a2763..a827a2763 100644
--- a/src/service/datastore/plugin_datastore_heap.c
+++ b/src/plugin/datastore/plugin_datastore_heap.c
diff --git a/src/service/datastore/plugin_datastore_postgres.c b/src/plugin/datastore/plugin_datastore_postgres.c
index 5fcacc17b..5fcacc17b 100644
--- a/src/service/datastore/plugin_datastore_postgres.c
+++ b/src/plugin/datastore/plugin_datastore_postgres.c
diff --git a/src/service/datastore/plugin_datastore_sqlite.c b/src/plugin/datastore/plugin_datastore_sqlite.c
index 5ea9da4cb..5ea9da4cb 100644
--- a/src/service/datastore/plugin_datastore_sqlite.c
+++ b/src/plugin/datastore/plugin_datastore_sqlite.c
diff --git a/src/service/datastore/plugin_datastore_template.c b/src/plugin/datastore/plugin_datastore_template.c
index 2b455f8cb..2b455f8cb 100644
--- a/src/service/datastore/plugin_datastore_template.c
+++ b/src/plugin/datastore/plugin_datastore_template.c
diff --git a/src/service/datastore/test_plugin_datastore.c b/src/plugin/datastore/test_plugin_datastore.c
index 7de1acf2d..7de1acf2d 100644
--- a/src/service/datastore/test_plugin_datastore.c
+++ b/src/plugin/datastore/test_plugin_datastore.c
diff --git a/src/service/datastore/test_plugin_datastore_data_heap.conf b/src/plugin/datastore/test_plugin_datastore_data_heap.conf
index b1ea8ff67..b1ea8ff67 100644
--- a/src/service/datastore/test_plugin_datastore_data_heap.conf
+++ b/src/plugin/datastore/test_plugin_datastore_data_heap.conf
diff --git a/src/service/datastore/test_plugin_datastore_data_postgres.conf b/src/plugin/datastore/test_plugin_datastore_data_postgres.conf
index d0e29437f..d0e29437f 100644
--- a/src/service/datastore/test_plugin_datastore_data_postgres.conf
+++ b/src/plugin/datastore/test_plugin_datastore_data_postgres.conf
diff --git a/src/service/datastore/test_plugin_datastore_data_sqlite.conf b/src/plugin/datastore/test_plugin_datastore_data_sqlite.conf
index ca837c77a..ca837c77a 100644
--- a/src/service/datastore/test_plugin_datastore_data_sqlite.conf
+++ b/src/plugin/datastore/test_plugin_datastore_data_sqlite.conf
diff --git a/src/plugin/dht/Makefile.am b/src/plugin/dht/Makefile.am
new file mode 100644
index 000000000..4df810066
--- /dev/null
+++ b/src/plugin/dht/Makefile.am
@@ -0,0 +1,27 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6pkgcfgdir= $(pkgdatadir)/config.d/
7
8libexecdir= $(pkglibdir)/libexec/
9
10if USE_COVERAGE
11 AM_CFLAGS = --coverage -O0
12 XLIB = -lgcov
13endif
14
15plugin_LTLIBRARIES = \
16 libgnunet_plugin_block_dht.la
17
18libgnunet_plugin_block_dht_la_SOURCES = \
19 plugin_block_dht.c
20libgnunet_plugin_block_dht_la_LIBADD = \
21 $(top_builddir)/src/lib/hello/libgnunethello.la \
22 $(top_builddir)/src/lib/block/libgnunetblock.la \
23 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
24 $(top_builddir)/src/lib/util/libgnunetutil.la \
25 $(LTLIBINTL)
26libgnunet_plugin_block_dht_la_LDFLAGS = \
27 $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/dht/meson.build b/src/plugin/dht/meson.build
new file mode 100644
index 000000000..81b829dac
--- /dev/null
+++ b/src/plugin/dht/meson.build
@@ -0,0 +1,9 @@
1shared_module('gnunet_plugin_block_dht',
2 ['plugin_block_dht.c'],
3 dependencies: [libgnunetutil_dep,
4 libgnunethello_dep,
5 libgnunetblock_dep,
6 libgnunetblockgroup_dep],
7 include_directories: [incdir, configuration_inc],
8 install:true,
9 install_dir: get_option('libdir')/'gnunet')
diff --git a/src/service/dht/plugin_block_dht.c b/src/plugin/dht/plugin_block_dht.c
index aa5ffc719..aa5ffc719 100644
--- a/src/service/dht/plugin_block_dht.c
+++ b/src/plugin/dht/plugin_block_dht.c
diff --git a/src/plugin/dns/Makefile.am b/src/plugin/dns/Makefile.am
new file mode 100644
index 000000000..8b5843159
--- /dev/null
+++ b/src/plugin/dns/Makefile.am
@@ -0,0 +1,25 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4if USE_COVERAGE
5 AM_CFLAGS = --coverage -O0
6endif
7
8pkgcfgdir= $(pkgdatadir)/config.d/
9
10libexecdir= $(pkglibdir)/libexec/
11
12plugindir = $(libdir)/gnunet
13
14plugin_LTLIBRARIES = \
15 libgnunet_plugin_block_dns.la
16
17libgnunet_plugin_block_dns_la_SOURCES = \
18 plugin_block_dns.c
19libgnunet_plugin_block_dns_la_LIBADD = \
20 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
21 $(top_builddir)/src/lib/block/libgnunetblock.la \
22 $(top_builddir)/src/lib/util/libgnunetutil.la
23libgnunet_plugin_block_dns_la_LDFLAGS = \
24 $(GN_LIBINTL) \
25 $(top_builddir)/src/block/$(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/dns/meson.build b/src/plugin/dns/meson.build
new file mode 100644
index 000000000..974b2c38d
--- /dev/null
+++ b/src/plugin/dns/meson.build
@@ -0,0 +1,6 @@
1shared_module('gnunet_plugin_block_dns',
2 ['plugin_block_dns.c'],
3 dependencies: [libgnunetutil_dep, libgnunetblockgroup_dep],
4 include_directories: [incdir, configuration_inc],
5 install: true,
6 install_dir: get_option('libdir')/'gnunet')
diff --git a/src/service/dns/plugin_block_dns.c b/src/plugin/dns/plugin_block_dns.c
index 1bbd7f750..1bbd7f750 100644
--- a/src/service/dns/plugin_block_dns.c
+++ b/src/plugin/dns/plugin_block_dns.c
diff --git a/src/plugin/fs/Makefile.am b/src/plugin/fs/Makefile.am
index 928997e4d..7c0e55cba 100644
--- a/src/plugin/fs/Makefile.am
+++ b/src/plugin/fs/Makefile.am
@@ -20,7 +20,6 @@ libgnunet_plugin_block_fs_la_SOURCES = \
20libgnunet_plugin_block_fs_la_LIBADD = \ 20libgnunet_plugin_block_fs_la_LIBADD = \
21 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \ 21 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
22 $(top_builddir)/src/lib/block/libgnunetblock.la \ 22 $(top_builddir)/src/lib/block/libgnunetblock.la \
23 $(top_builddir)/src/service/fs/libgnunetfs.la \
24 $(top_builddir)/src/lib/util/libgnunetutil.la \ 23 $(top_builddir)/src/lib/util/libgnunetutil.la \
25 $(LTLIBINTL) 24 $(LTLIBINTL)
26libgnunet_plugin_block_fs_la_LDFLAGS = \ 25libgnunet_plugin_block_fs_la_LDFLAGS = \
diff --git a/src/plugin/gns/Makefile.am b/src/plugin/gns/Makefile.am
index ebbb9aa51..8dc9ef2b2 100644
--- a/src/plugin/gns/Makefile.am
+++ b/src/plugin/gns/Makefile.am
@@ -34,7 +34,6 @@ libgnunet_plugin_gnsrecord_gns_la_SOURCES = \
34 plugin_gnsrecord_gns.c 34 plugin_gnsrecord_gns.c
35libgnunet_plugin_gnsrecord_gns_la_LIBADD = \ 35libgnunet_plugin_gnsrecord_gns_la_LIBADD = \
36 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 36 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
37 $(top_builddir)/src/service/identity/libgnunetidentity.la \
38 $(top_builddir)/src/lib/util/libgnunetutil.la \ 37 $(top_builddir)/src/lib/util/libgnunetutil.la \
39 $(LTLIBINTL) 38 $(LTLIBINTL)
40libgnunet_plugin_gnsrecord_gns_la_LDFLAGS = \ 39libgnunet_plugin_gnsrecord_gns_la_LDFLAGS = \
@@ -47,7 +46,6 @@ libgnunet_plugin_block_gns_la_LIBADD = \
47 $(top_builddir)/src/lib/util/libgnunetutil.la \ 46 $(top_builddir)/src/lib/util/libgnunetutil.la \
48 $(top_builddir)/src/lib/block/libgnunetblock.la \ 47 $(top_builddir)/src/lib/block/libgnunetblock.la \
49 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \ 48 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
50 $(top_builddir)/src/service/identity/libgnunetidentity.la \
51 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la 49 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la
52libgnunet_plugin_block_gns_la_LDFLAGS = \ 50libgnunet_plugin_block_gns_la_LDFLAGS = \
53 $(GN_LIBINTL) \ 51 $(GN_LIBINTL) \
diff --git a/src/plugin/gns/meson.build b/src/plugin/gns/meson.build
index 0e551b22e..2cdf770f8 100644
--- a/src/plugin/gns/meson.build
+++ b/src/plugin/gns/meson.build
@@ -2,7 +2,7 @@ shared_module('gnunet_plugin_gnsrecord_gns',
2 ['plugin_gnsrecord_gns.c'], 2 ['plugin_gnsrecord_gns.c'],
3 dependencies: [libgnunetutil_dep, 3 dependencies: [libgnunetutil_dep,
4 libgnunetgnsrecord_dep, 4 libgnunetgnsrecord_dep,
5 libgnunetidentity_dep], 5 ],
6 include_directories: [incdir, configuration_inc], 6 include_directories: [incdir, configuration_inc],
7 install: true, 7 install: true,
8 install_dir: get_option('libdir')/'gnunet') 8 install_dir: get_option('libdir')/'gnunet')
diff --git a/src/plugin/meson.build b/src/plugin/meson.build
index 6ebae59d7..d4f797c54 100644
--- a/src/plugin/meson.build
+++ b/src/plugin/meson.build
@@ -1,9 +1,17 @@
1subdir('block') 1subdir('block')
2subdir('dhtu') 2subdir('dns')
3subdir('gnsrecord') 3subdir('gnsrecord')
4subdir('datacache')
5subdir('datastore')
6subdir('peerstore')
4subdir('namecache') 7subdir('namecache')
5subdir('namestore') 8subdir('namestore')
9subdir('dht')
10subdir('seti')
11subdir('setu')
12subdir('regex')
6subdir('revocation') 13subdir('revocation')
7subdir('gns') 14subdir('gns')
8subdir('fs') 15subdir('fs')
9subdir('reclaim') 16subdir('reclaim')
17subdir('messenger')
diff --git a/src/plugin/messenger/Makefile.am b/src/plugin/messenger/Makefile.am
new file mode 100644
index 000000000..e3c69ea33
--- /dev/null
+++ b/src/plugin/messenger/Makefile.am
@@ -0,0 +1,26 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4if USE_COVERAGE
5 AM_CFLAGS = --coverage -O0
6 XLIB = -lgcov
7endif
8
9pkgcfgdir= $(pkgdatadir)/config.d/
10
11libexecdir= $(pkglibdir)/libexec/
12
13plugin_LTLIBRARIES = \
14 libgnunet_plugin_gnsrecord_messenger.la
15
16
17libgnunet_plugin_gnsrecord_messenger_la_SOURCES = \
18 plugin_gnsrecord_messenger.c
19libgnunet_plugin_gnsrecord_messenger_la_LIBADD = \
20 $(top_builddir)/src/lib/util/libgnunetutil.la \
21 $(LTLIBINTL)
22libgnunet_plugin_gnsrecord_messenger_la_LDFLAGS = \
23 $(GN_PLUGIN_LDFLAGS)
24
25
26plugindir = $(libdir)/gnunet
diff --git a/src/plugin/messenger/meson.build b/src/plugin/messenger/meson.build
new file mode 100644
index 000000000..17dd9bd32
--- /dev/null
+++ b/src/plugin/messenger/meson.build
@@ -0,0 +1,7 @@
1shared_module('gnunet_plugin_gnsrecord_messenger',
2 ['plugin_gnsrecord_messenger.c'],
3 dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep,
4 ],
5 include_directories: [incdir, configuration_inc],
6 install: true,
7 install_dir: get_option('libdir')/'gnunet')
diff --git a/src/service/messenger/plugin_gnsrecord_messenger.c b/src/plugin/messenger/plugin_gnsrecord_messenger.c
index e09a0330d..e09a0330d 100644
--- a/src/service/messenger/plugin_gnsrecord_messenger.c
+++ b/src/plugin/messenger/plugin_gnsrecord_messenger.c
diff --git a/src/plugin/namecache/Makefile.am b/src/plugin/namecache/Makefile.am
index 0ccbf9ea1..bf8fc9b8d 100644
--- a/src/plugin/namecache/Makefile.am
+++ b/src/plugin/namecache/Makefile.am
@@ -56,10 +56,7 @@ plugin_LTLIBRARIES = \
56libgnunet_plugin_namecache_flat_la_SOURCES = \ 56libgnunet_plugin_namecache_flat_la_SOURCES = \
57 plugin_namecache_flat.c 57 plugin_namecache_flat.c
58libgnunet_plugin_namecache_flat_la_LIBADD = \ 58libgnunet_plugin_namecache_flat_la_LIBADD = \
59 $(top_builddir)/src/service/namecache/libgnunetnamecache.la \
60 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
61 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 59 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
62 $(top_builddir)/src/service/identity/libgnunetidentity.la \
63 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \ 60 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
64 $(LTLIBINTL) 61 $(LTLIBINTL)
65libgnunet_plugin_namecache_flat_la_LDFLAGS = \ 62libgnunet_plugin_namecache_flat_la_LDFLAGS = \
@@ -68,11 +65,8 @@ libgnunet_plugin_namecache_flat_la_LDFLAGS = \
68libgnunet_plugin_namecache_sqlite_la_SOURCES = \ 65libgnunet_plugin_namecache_sqlite_la_SOURCES = \
69 plugin_namecache_sqlite.c 66 plugin_namecache_sqlite.c
70libgnunet_plugin_namecache_sqlite_la_LIBADD = \ 67libgnunet_plugin_namecache_sqlite_la_LIBADD = \
71 $(top_builddir)/src/service/namecache/libgnunetnamecache.la \
72 $(top_builddir)/src/lib/sq/libgnunetsq.la \ 68 $(top_builddir)/src/lib/sq/libgnunetsq.la \
73 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
74 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 69 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
75 $(top_builddir)/src/service/identity/libgnunetidentity.la \
76 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \ 70 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
77 $(LTLIBINTL) 71 $(LTLIBINTL)
78libgnunet_plugin_namecache_sqlite_la_LDFLAGS = \ 72libgnunet_plugin_namecache_sqlite_la_LDFLAGS = \
@@ -82,11 +76,8 @@ libgnunet_plugin_namecache_sqlite_la_LDFLAGS = \
82libgnunet_plugin_namecache_postgres_la_SOURCES = \ 76libgnunet_plugin_namecache_postgres_la_SOURCES = \
83 plugin_namecache_postgres.c 77 plugin_namecache_postgres.c
84libgnunet_plugin_namecache_postgres_la_LIBADD = \ 78libgnunet_plugin_namecache_postgres_la_LIBADD = \
85 $(top_builddir)/src/service/namecache/libgnunetnamecache.la \
86 $(top_builddir)/src/lib/pq/libgnunetpq.la \ 79 $(top_builddir)/src/lib/pq/libgnunetpq.la \
87 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
88 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 80 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
89 $(top_builddir)/src/service/identity/libgnunetidentity.la \
90 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq \ 81 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq \
91 $(LTLIBINTL) 82 $(LTLIBINTL)
92libgnunet_plugin_namecache_postgres_la_LDFLAGS = \ 83libgnunet_plugin_namecache_postgres_la_LDFLAGS = \
diff --git a/src/plugin/namestore/Makefile.am b/src/plugin/namestore/Makefile.am
index e413c1b08..03b743d7a 100644
--- a/src/plugin/namestore/Makefile.am
+++ b/src/plugin/namestore/Makefile.am
@@ -76,37 +76,16 @@ TESTS = \
76 $(check_SCRIPTS) 76 $(check_SCRIPTS)
77endif 77endif
78 78
79REST_PLUGIN = libgnunet_plugin_rest_namestore.la
80
81plugin_LTLIBRARIES = \ 79plugin_LTLIBRARIES = \
82 $(SQLITE_PLUGIN) \ 80 $(SQLITE_PLUGIN) \
83 $(POSTGRES_PLUGIN) \ 81 $(POSTGRES_PLUGIN)
84 $(REST_PLUGIN)
85
86
87libgnunet_plugin_rest_namestore_la_SOURCES = \
88 plugin_rest_namestore.c
89libgnunet_plugin_rest_namestore_la_LIBADD = \
90 $(top_builddir)/src/service/namestore/libgnunetnamestore.la \
91 $(top_builddir)/src/service/rest/libgnunetrest.la \
92 $(top_builddir)/src/service/identity/libgnunetidentity.la \
93 $(top_builddir)/src/lib/json/libgnunetjson.la \
94 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
95 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecordjson.la \
96 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
97 $(LTLIBINTL) -ljansson $(MHD_LIBS)
98libgnunet_plugin_rest_namestore_la_LDFLAGS = \
99 $(GN_PLUGIN_LDFLAGS)
100libgnunet_plugin_rest_namestore_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
101 82
102 83
103libgnunet_plugin_namestore_sqlite_la_SOURCES = \ 84libgnunet_plugin_namestore_sqlite_la_SOURCES = \
104 plugin_namestore_sqlite.c 85 plugin_namestore_sqlite.c
105libgnunet_plugin_namestore_sqlite_la_LIBADD = \ 86libgnunet_plugin_namestore_sqlite_la_LIBADD = \
106 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 87 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
107 $(top_builddir)/src/service/identity/libgnunetidentity.la \
108 $(top_builddir)/src/lib/sq/libgnunetsq.la \ 88 $(top_builddir)/src/lib/sq/libgnunetsq.la \
109 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
110 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \ 89 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
111 $(LTLIBINTL) 90 $(LTLIBINTL)
112libgnunet_plugin_namestore_sqlite_la_LDFLAGS = \ 91libgnunet_plugin_namestore_sqlite_la_LDFLAGS = \
@@ -116,9 +95,7 @@ libgnunet_plugin_namestore_postgres_la_SOURCES = \
116 plugin_namestore_postgres.c 95 plugin_namestore_postgres.c
117libgnunet_plugin_namestore_postgres_la_LIBADD = \ 96libgnunet_plugin_namestore_postgres_la_LIBADD = \
118 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \ 97 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
119 $(top_builddir)/src/service/identity/libgnunetidentity.la \
120 $(top_builddir)/src/lib/pq/libgnunetpq.la \ 98 $(top_builddir)/src/lib/pq/libgnunetpq.la \
121 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
122 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq \ 99 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq \
123 $(LTLIBINTL) 100 $(LTLIBINTL)
124libgnunet_plugin_namestore_postgres_la_LDFLAGS = \ 101libgnunet_plugin_namestore_postgres_la_LDFLAGS = \
@@ -422,9 +399,6 @@ test_plugin_namestore_postgres_LDADD = \
422 $(top_builddir)/src/service/testing/libgnunettesting.la \ 399 $(top_builddir)/src/service/testing/libgnunettesting.la \
423 $(top_builddir)/src/lib/util/libgnunetutil.la 400 $(top_builddir)/src/lib/util/libgnunetutil.la
424 401
425check_SCRIPTS = \
426 test_plugin_rest_namestore.sh
427
428EXTRA_DIST = \ 402EXTRA_DIST = \
429 test_common.c \ 403 test_common.c \
430 test_namestore_api.conf \ 404 test_namestore_api.conf \
@@ -434,5 +408,4 @@ EXTRA_DIST = \
434 perf_namestore_api_sqlite.conf \ 408 perf_namestore_api_sqlite.conf \
435 test_plugin_namestore_sqlite.conf \ 409 test_plugin_namestore_sqlite.conf \
436 test_plugin_namestore_postgres.conf \ 410 test_plugin_namestore_postgres.conf \
437 $(check_SCRIPTS) \
438 $(sql_DATA) 411 $(sql_DATA)
diff --git a/src/plugin/namestore/meson.build b/src/plugin/namestore/meson.build
index 32db8c104..d51b4b730 100644
--- a/src/plugin/namestore/meson.build
+++ b/src/plugin/namestore/meson.build
@@ -1,26 +1,10 @@
1shared_module('gnunet_plugin_rest_namestore', 1libgnunetpluginnamestore_sqlite_src = ['plugin_namestore_sqlite.c']
2 ['plugin_rest_namestore.c'],
3 dependencies: [libgnunetrest_dep,
4 libgnunetidentity_dep,
5 libgnunetgnsrecordjson_dep,
6 libgnunetgnsrecord_dep,
7 libgnunetnamestore_dep,
8 libgnunetjson_dep,
9 libgnunetutil_dep,
10 json_dep,
11 mhd_dep],
12 include_directories: [incdir, configuration_inc],
13 install: true,
14 install_dir: get_option('libdir') / 'gnunet')
15
16 2
17shared_module('gnunet_plugin_namestore_sqlite', 3shared_module('gnunet_plugin_namestore_sqlite',
18 libgnunetpluginnamestore_sqlite_src, 4 libgnunetpluginnamestore_sqlite_src,
19 dependencies: [libgnunetutil_dep, 5 dependencies: [libgnunetutil_dep,
20 libgnunetgnsrecord_dep, 6 libgnunetgnsrecord_dep,
21 libgnunetidentity_dep,
22 libgnunetsq_dep, 7 libgnunetsq_dep,
23 libgnunetstatistics_dep,
24 sqlite_dep], 8 sqlite_dep],
25 include_directories: [incdir, configuration_inc], 9 include_directories: [incdir, configuration_inc],
26 install: true, 10 install: true,
@@ -31,9 +15,7 @@ if pq_dep.found()
31 ['plugin_namestore_postgres.c'], 15 ['plugin_namestore_postgres.c'],
32 dependencies: [libgnunetutil_dep, 16 dependencies: [libgnunetutil_dep,
33 libgnunetgnsrecord_dep, 17 libgnunetgnsrecord_dep,
34 libgnunetidentity_dep,
35 libgnunetpq_dep, 18 libgnunetpq_dep,
36 libgnunetstatistics_dep,
37 pq_dep], 19 pq_dep],
38 include_directories: [incdir, configuration_inc], 20 include_directories: [incdir, configuration_inc],
39 install: true, 21 install: true,
diff --git a/src/plugin/peerstore/Makefile.am b/src/plugin/peerstore/Makefile.am
new file mode 100644
index 000000000..225e9a71e
--- /dev/null
+++ b/src/plugin/peerstore/Makefile.am
@@ -0,0 +1,67 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6pkgcfgdir= $(pkgdatadir)/config.d/
7
8libexecdir= $(pkglibdir)/libexec/
9
10if USE_COVERAGE
11 AM_CFLAGS = -fprofile-arcs -ftest-coverage
12endif
13
14if HAVE_EXPERIMENTAL
15FLAT_PLUGIN = libgnunet_plugin_peerstore_flat.la
16FLAT_TESTS = test_plugin_peerstore_flat
17libgnunet_plugin_peerstore_flat_la_SOURCES = \
18 plugin_peerstore_flat.c
19libgnunet_plugin_peerstore_flat_la_LIBADD = \
20 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
21 $(LTLIBINTL)
22libgnunet_plugin_peerstore_flat_la_LDFLAGS = \
23 $(GN_PLUGIN_LDFLAGS)
24endif
25
26if HAVE_SQLITE
27SQLITE_PLUGIN = libgnunet_plugin_peerstore_sqlite.la
28SQLITE_TESTS = test_plugin_peerstore_sqlite
29libgnunet_plugin_peerstore_sqlite_la_SOURCES = \
30 plugin_peerstore_sqlite.c
31libgnunet_plugin_peerstore_sqlite_la_LIBADD = \
32 $(top_builddir)/src/lib/sq/libgnunetsq.la \
33 $(top_builddir)/src/lib/util/libgnunetutil.la \
34 $(XLIBS) -lsqlite3 \
35 $(LTLIBINTL)
36libgnunet_plugin_peerstore_sqlite_la_LDFLAGS = \
37 $(GN_PLUGIN_LDFLAGS)
38endif
39
40plugin_LTLIBRARIES = \
41 $(SQLITE_PLUGIN) \
42 $(FLAT_PLUGIN)
43
44test_plugin_peerstore_sqlite_SOURCES = \
45 test_plugin_peerstore.c
46test_plugin_peerstore_sqlite_LDADD = \
47 $(top_builddir)/src/service/testing/libgnunettesting.la \
48 $(top_builddir)/src/lib/util/libgnunetutil.la
49
50test_plugin_peerstore_flat_SOURCES = \
51 test_plugin_peerstore.c
52test_plugin_peerstore_flat_LDADD = \
53 $(top_builddir)/src/service/testing/libgnunettesting.la \
54 $(top_builddir)/src/lib/util/libgnunetutil.la
55
56check_PROGRAMS = \
57 $(SQLITE_TESTS) \
58 $(FLAT_TESTS)
59
60EXTRA_DIST = \
61 test_plugin_peerstore_flat.conf \
62 test_plugin_peerstore_sqlite.conf
63
64if ENABLE_TEST_RUN
65AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
66TESTS = $(check_PROGRAMS)
67endif
diff --git a/src/plugin/peerstore/meson.build b/src/plugin/peerstore/meson.build
new file mode 100644
index 000000000..1d22ca798
--- /dev/null
+++ b/src/plugin/peerstore/meson.build
@@ -0,0 +1,9 @@
1shared_module('gnunet_plugin_peerstore_sqlite',
2 ['plugin_peerstore_sqlite.c'],
3 dependencies: [libgnunetutil_dep,
4 libgnunetsq_dep,
5 sqlite_dep],
6 include_directories: [incdir,
7 configuration_inc],
8 install: true,
9 install_dir: get_option('libdir')/'gnunet')
diff --git a/src/service/peerstore/plugin_peerstore_flat.c b/src/plugin/peerstore/plugin_peerstore_flat.c
index cc5b8b76b..cc304d4db 100644
--- a/src/service/peerstore/plugin_peerstore_flat.c
+++ b/src/plugin/peerstore/plugin_peerstore_flat.c
@@ -27,7 +27,7 @@
27#include "platform.h" 27#include "platform.h"
28#include "gnunet_peerstore_plugin.h" 28#include "gnunet_peerstore_plugin.h"
29#include "gnunet_peerstore_service.h" 29#include "gnunet_peerstore_service.h"
30#include "peerstore.h" 30#include "../../service/peerstore/peerstore.h"
31 31
32/** 32/**
33 * Context for all functions in this plugin. 33 * Context for all functions in this plugin.
diff --git a/src/service/peerstore/plugin_peerstore_sqlite.c b/src/plugin/peerstore/plugin_peerstore_sqlite.c
index ad69efdf4..7d06d2c63 100644
--- a/src/service/peerstore/plugin_peerstore_sqlite.c
+++ b/src/plugin/peerstore/plugin_peerstore_sqlite.c
@@ -29,7 +29,7 @@
29#include "gnunet_peerstore_plugin.h" 29#include "gnunet_peerstore_plugin.h"
30#include "gnunet_peerstore_service.h" 30#include "gnunet_peerstore_service.h"
31#include "gnunet_sq_lib.h" 31#include "gnunet_sq_lib.h"
32#include "peerstore.h" 32#include "../../service/peerstore/peerstore.h"
33#include <sqlite3.h> 33#include <sqlite3.h>
34 34
35/** 35/**
diff --git a/src/service/peerstore/test_plugin_peerstore.c b/src/plugin/peerstore/test_plugin_peerstore.c
index bce62dda9..bce62dda9 100644
--- a/src/service/peerstore/test_plugin_peerstore.c
+++ b/src/plugin/peerstore/test_plugin_peerstore.c
diff --git a/src/service/peerstore/test_plugin_peerstore_flat.conf b/src/plugin/peerstore/test_plugin_peerstore_flat.conf
index c55b1e9d6..c55b1e9d6 100644
--- a/src/service/peerstore/test_plugin_peerstore_flat.conf
+++ b/src/plugin/peerstore/test_plugin_peerstore_flat.conf
diff --git a/src/service/peerstore/test_plugin_peerstore_sqlite.conf b/src/plugin/peerstore/test_plugin_peerstore_sqlite.conf
index dcf1fc1a4..dcf1fc1a4 100644
--- a/src/service/peerstore/test_plugin_peerstore_sqlite.conf
+++ b/src/plugin/peerstore/test_plugin_peerstore_sqlite.conf
diff --git a/src/plugin/reclaim/Makefile.am b/src/plugin/reclaim/Makefile.am
index 0b5159c6b..e8ac2f94d 100644
--- a/src/plugin/reclaim/Makefile.am
+++ b/src/plugin/reclaim/Makefile.am
@@ -59,11 +59,11 @@ endif
59 59
60 60
61libgnunet_plugin_reclaim_credential_jwt_la_SOURCES = \ 61libgnunet_plugin_reclaim_credential_jwt_la_SOURCES = \
62 plugin_reclaim_credential_jwt.c 62 plugin_reclaim_credential_jwt.c \
63 $(top_builddir)/src/service/reclaim/reclaim_attribute.c \
64 $(top_builddir)/src/service/reclaim/reclaim_credential.c
63libgnunet_plugin_reclaim_credential_jwt_la_LIBADD = \ 65libgnunet_plugin_reclaim_credential_jwt_la_LIBADD = \
64 $(top_builddir)/src/service/identity/libgnunetidentity.la \
65 $(top_builddir)/src/lib/util/libgnunetutil.la \ 66 $(top_builddir)/src/lib/util/libgnunetutil.la \
66 $(top_builddir)/src/service/reclaim/libgnunetreclaim.la \
67 -ljansson\ 67 -ljansson\
68 $(LTLIBINTL) 68 $(LTLIBINTL)
69libgnunet_plugin_reclaim_credential_jwt_la_LDFLAGS = \ 69libgnunet_plugin_reclaim_credential_jwt_la_LDFLAGS = \
diff --git a/src/plugin/reclaim/meson.build b/src/plugin/reclaim/meson.build
index 51346b108..df0289ca2 100644
--- a/src/plugin/reclaim/meson.build
+++ b/src/plugin/reclaim/meson.build
@@ -7,9 +7,7 @@ shared_module('gnunet_plugin_gnsrecord_reclaim',
7 7
8shared_module('gnunet_plugin_reclaim_attribute_basic', 8shared_module('gnunet_plugin_reclaim_attribute_basic',
9 ['plugin_reclaim_attribute_basic.c'], 9 ['plugin_reclaim_attribute_basic.c'],
10 dependencies: [libgnunetrest_dep, 10 dependencies: [
11 libgnunetidentity_dep,
12 libgnunetreclaim_dep,
13 libgnunetjson_dep, 11 libgnunetjson_dep,
14 libgnunetutil_dep, 12 libgnunetutil_dep,
15 json_dep], 13 json_dep],
@@ -18,9 +16,7 @@ shared_module('gnunet_plugin_reclaim_attribute_basic',
18 install_dir: get_option('libdir') / 'gnunet') 16 install_dir: get_option('libdir') / 'gnunet')
19shared_module('gnunet_plugin_reclaim_credential_jwt', 17shared_module('gnunet_plugin_reclaim_credential_jwt',
20 ['plugin_reclaim_credential_jwt.c'], 18 ['plugin_reclaim_credential_jwt.c'],
21 dependencies: [libgnunetrest_dep, 19 dependencies: [
22 libgnunetidentity_dep,
23 libgnunetreclaim_dep,
24 libgnunetjson_dep, 20 libgnunetjson_dep,
25 libgnunetutil_dep, 21 libgnunetutil_dep,
26 json_dep], 22 json_dep],
diff --git a/src/plugin/regex/Makefile.am b/src/plugin/regex/Makefile.am
new file mode 100644
index 000000000..a39cfc927
--- /dev/null
+++ b/src/plugin/regex/Makefile.am
@@ -0,0 +1,40 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4if USE_COVERAGE
5 AM_CFLAGS = --coverage
6endif
7
8pkgcfgdir= $(pkgdatadir)/config.d/
9
10libexecdir= $(pkglibdir)/libexec/
11
12plugindir = $(libdir)/gnunet
13
14lib_LTLIBRARIES = \
15 libgnunetregexblock.la
16
17libgnunetregexblock_la_SOURCES = \
18 regex_block_lib.c regex_block_lib.h
19libgnunetregexblock_la_LIBADD = \
20 $(top_builddir)/src/lib/util/libgnunetutil.la \
21 $(XLIB) \
22 $(LTLIBINTL)
23libgnunetregexblock_la_LDFLAGS = \
24 $(GN_LIB_LDFLAGS) \
25 -version-info 1:0:0
26
27
28plugin_LTLIBRARIES = \
29 libgnunet_plugin_block_regex.la
30
31libgnunet_plugin_block_regex_la_SOURCES = \
32 plugin_block_regex.c
33libgnunet_plugin_block_regex_la_LIBADD = \
34 libgnunetregexblock.la \
35 $(top_builddir)/src/lib/block/libgnunetblock.la \
36 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
37 $(top_builddir)/src/lib/util/libgnunetutil.la
38libgnunet_plugin_block_regex_la_LDFLAGS = \
39 $(GN_LIBINTL) \
40 $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/regex/meson.build b/src/plugin/regex/meson.build
new file mode 100644
index 000000000..0e1b4b08d
--- /dev/null
+++ b/src/plugin/regex/meson.build
@@ -0,0 +1,23 @@
1libgnunetregexblock_src = ['regex_block_lib.c']
2
3libgnunetregexblock = library('gnunetregexblock',
4 libgnunetregexblock_src,
5 soversion: '1',
6 version: '1.0.0',
7 dependencies: libgnunetutil_dep,
8 include_directories: [incdir, configuration_inc],
9 install: true,
10 install_dir: get_option('libdir'))
11libgnunetregexblock_dep = declare_dependency(link_with : libgnunetregexblock)
12
13shared_module('gnunet_plugin_block_regex',
14 ['plugin_block_regex.c'],
15 dependencies: [libgnunetutil_dep,
16 libgnunetregexblock_dep,
17 libgnunetblock_dep,
18 libgnunetblockgroup_dep],
19 include_directories: [incdir, configuration_inc],
20 install:true,
21 install_dir: get_option('libdir')/'gnunet')
22
23
diff --git a/src/service/regex/plugin_block_regex.c b/src/plugin/regex/plugin_block_regex.c
index 5f23a32df..5f23a32df 100644
--- a/src/service/regex/plugin_block_regex.c
+++ b/src/plugin/regex/plugin_block_regex.c
diff --git a/src/service/regex/regex_block_lib.c b/src/plugin/regex/regex_block_lib.c
index 048d6d743..048d6d743 100644
--- a/src/service/regex/regex_block_lib.c
+++ b/src/plugin/regex/regex_block_lib.c
diff --git a/src/service/regex/regex_block_lib.h b/src/plugin/regex/regex_block_lib.h
index 11029b9af..11029b9af 100644
--- a/src/service/regex/regex_block_lib.h
+++ b/src/plugin/regex/regex_block_lib.h
diff --git a/src/plugin/revocation/Makefile.am b/src/plugin/revocation/Makefile.am
index db6df02c9..99373f8d7 100644
--- a/src/plugin/revocation/Makefile.am
+++ b/src/plugin/revocation/Makefile.am
@@ -18,11 +18,10 @@ plugin_LTLIBRARIES = \
18libgnunet_plugin_block_revocation_la_SOURCES = \ 18libgnunet_plugin_block_revocation_la_SOURCES = \
19 plugin_block_revocation.c 19 plugin_block_revocation.c
20libgnunet_plugin_block_revocation_la_LIBADD = \ 20libgnunet_plugin_block_revocation_la_LIBADD = \
21 $(top_builddir)/src/service/revocation/libgnunetrevocation.la \ 21 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
22 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \ 22 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
23 $(top_builddir)/src/lib/block/libgnunetblock.la \ 23 $(top_builddir)/src/lib/block/libgnunetblock.la \
24 $(top_builddir)/src/lib/util/libgnunetutil.la \ 24 $(top_builddir)/src/lib/util/libgnunetutil.la \
25 $(top_builddir)/src/service/identity/libgnunetidentity.la \
26 $(LTLIBINTL) 25 $(LTLIBINTL)
27libgnunet_plugin_block_revocation_la_LDFLAGS = \ 26libgnunet_plugin_block_revocation_la_LDFLAGS = \
28 $(GN_PLUGIN_LDFLAGS) 27 $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/revocation/meson.build b/src/plugin/revocation/meson.build
index 7f8c8ec5e..c4405e9b8 100644
--- a/src/plugin/revocation/meson.build
+++ b/src/plugin/revocation/meson.build
@@ -1,8 +1,6 @@
1shared_module('gnunet_plugin_block_revocation', 1shared_module('gnunet_plugin_block_revocation',
2 ['plugin_block_revocation.c'], 2 ['plugin_block_revocation.c'],
3 dependencies: [libgnunetutil_dep, 3 dependencies: [libgnunetutil_dep,
4 libgnunetidentity_dep,
5 libgnunetrevocation_dep,
6 libgnunetblock_dep], 4 libgnunetblock_dep],
7 include_directories: [incdir, configuration_inc], 5 include_directories: [incdir, configuration_inc],
8 install: true, 6 install: true,
diff --git a/src/plugin/revocation/plugin_block_revocation.c b/src/plugin/revocation/plugin_block_revocation.c
index 4c5991507..c4332184e 100644
--- a/src/plugin/revocation/plugin_block_revocation.c
+++ b/src/plugin/revocation/plugin_block_revocation.c
@@ -27,8 +27,8 @@
27#include "platform.h" 27#include "platform.h"
28#include "gnunet_signatures.h" 28#include "gnunet_signatures.h"
29#include "gnunet_block_plugin.h" 29#include "gnunet_block_plugin.h"
30#include "gnunet_gnsrecord_lib.h"
30#include "gnunet_block_group_lib.h" 31#include "gnunet_block_group_lib.h"
31// FIXME try to avoid this include somehow
32#include "../../service/revocation/revocation.h" 32#include "../../service/revocation/revocation.h"
33#include "gnunet_revocation_service.h" 33#include "gnunet_revocation_service.h"
34 34
@@ -93,8 +93,8 @@ block_plugin_revocation_check_block (void *cls,
93{ 93{
94 struct InternalContext *ic = cls; 94 struct InternalContext *ic = cls;
95 const struct RevokeMessage *rm = block; 95 const struct RevokeMessage *rm = block;
96 const struct GNUNET_REVOCATION_PowP *pow 96 const struct GNUNET_GNSRECORD_PowP *pow
97 = (const struct GNUNET_REVOCATION_PowP *) &rm[1]; 97 = (const struct GNUNET_GNSRECORD_PowP *) &rm[1];
98 struct GNUNET_CRYPTO_PublicKey pk; 98 struct GNUNET_CRYPTO_PublicKey pk;
99 size_t pklen; 99 size_t pklen;
100 size_t left; 100 size_t left;
@@ -117,9 +117,9 @@ block_plugin_revocation_check_block (void *cls,
117 left = block_size - sizeof (*rm) - sizeof (*pow); 117 left = block_size - sizeof (*rm) - sizeof (*pow);
118 if (GNUNET_SYSERR == 118 if (GNUNET_SYSERR ==
119 GNUNET_CRYPTO_read_public_key_from_buffer (&pow[1], 119 GNUNET_CRYPTO_read_public_key_from_buffer (&pow[1],
120 left, 120 left,
121 &pk, 121 &pk,
122 &pklen)) 122 &pklen))
123 { 123 {
124 GNUNET_break_op (0); 124 GNUNET_break_op (0);
125 return GNUNET_NO; 125 return GNUNET_NO;
@@ -130,9 +130,9 @@ block_plugin_revocation_check_block (void *cls,
130 return GNUNET_NO; 130 return GNUNET_NO;
131 } 131 }
132 if (GNUNET_YES != 132 if (GNUNET_YES !=
133 GNUNET_REVOCATION_check_pow (pow, 133 GNUNET_GNSRECORD_check_pow (pow,
134 ic->matching_bits, 134 ic->matching_bits,
135 ic->epoch_duration)) 135 ic->epoch_duration))
136 { 136 {
137 GNUNET_break_op (0); 137 GNUNET_break_op (0);
138 return GNUNET_NO; 138 return GNUNET_NO;
@@ -203,8 +203,8 @@ block_plugin_revocation_get_key (void *cls,
203 struct GNUNET_HashCode *key) 203 struct GNUNET_HashCode *key)
204{ 204{
205 const struct RevokeMessage *rm = block; 205 const struct RevokeMessage *rm = block;
206 const struct GNUNET_REVOCATION_PowP *pow 206 const struct GNUNET_GNSRECORD_PowP *pow
207 = (const struct GNUNET_REVOCATION_PowP *) &rm[1]; 207 = (const struct GNUNET_GNSRECORD_PowP *) &rm[1];
208 struct GNUNET_CRYPTO_PublicKey pk; 208 struct GNUNET_CRYPTO_PublicKey pk;
209 size_t pklen; 209 size_t pklen;
210 size_t left; 210 size_t left;
@@ -226,9 +226,9 @@ block_plugin_revocation_get_key (void *cls,
226 } 226 }
227 left = block_size - sizeof (*rm) - sizeof (*pow); 227 left = block_size - sizeof (*rm) - sizeof (*pow);
228 if (GNUNET_SYSERR == GNUNET_CRYPTO_read_public_key_from_buffer (&pow[1], 228 if (GNUNET_SYSERR == GNUNET_CRYPTO_read_public_key_from_buffer (&pow[1],
229 left, 229 left,
230 &pk, 230 &pk,
231 &pklen)) 231 &pklen))
232 { 232 {
233 GNUNET_break_op (0); 233 GNUNET_break_op (0);
234 return GNUNET_NO; 234 return GNUNET_NO;
diff --git a/src/plugin/seti/Makefile.am b/src/plugin/seti/Makefile.am
new file mode 100644
index 000000000..e6f579a65
--- /dev/null
+++ b/src/plugin/seti/Makefile.am
@@ -0,0 +1,25 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4pkgcfgdir= $(pkgdatadir)/config.d/
5
6libexecdir= $(pkglibdir)/libexec/
7
8plugindir = $(libdir)/gnunet
9
10if USE_COVERAGE
11 AM_CFLAGS = -fprofile-arcs -ftest-coverage
12endif
13
14plugin_LTLIBRARIES = \
15 libgnunet_plugin_block_seti_test.la
16
17libgnunet_plugin_block_seti_test_la_SOURCES = \
18 plugin_block_seti_test.c
19libgnunet_plugin_block_seti_test_la_LIBADD = \
20 $(top_builddir)/src/lib/block/libgnunetblock.la \
21 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
22 $(top_builddir)/src/lib/util/libgnunetutil.la \
23 $(LTLIBINTL)
24libgnunet_plugin_block_seti_test_la_LDFLAGS = \
25 $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/seti/meson.build b/src/plugin/seti/meson.build
new file mode 100644
index 000000000..880936164
--- /dev/null
+++ b/src/plugin/seti/meson.build
@@ -0,0 +1,7 @@
1shared_module('gnunet_plugin_block_seti_test',
2 ['plugin_block_seti_test.c'],
3 dependencies: libgnunetutil_dep,
4 include_directories: [incdir, configuration_inc],
5 install:true,
6 install_dir: get_option('libdir')/'gnunet')
7
diff --git a/src/service/seti/plugin_block_seti_test.c b/src/plugin/seti/plugin_block_seti_test.c
index 5b9196cef..5b9196cef 100644
--- a/src/service/seti/plugin_block_seti_test.c
+++ b/src/plugin/seti/plugin_block_seti_test.c
diff --git a/src/plugin/setu/Makefile.am b/src/plugin/setu/Makefile.am
new file mode 100644
index 000000000..90a14cce0
--- /dev/null
+++ b/src/plugin/setu/Makefile.am
@@ -0,0 +1,21 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4pkgcfgdir= $(pkgdatadir)/config.d/
5
6libexecdir= $(pkglibdir)/libexec/
7
8plugindir = $(libdir)/gnunet
9
10plugin_LTLIBRARIES = \
11 libgnunet_plugin_block_setu_test.la
12
13libgnunet_plugin_block_setu_test_la_SOURCES = \
14 plugin_block_setu_test.c
15libgnunet_plugin_block_setu_test_la_LIBADD = \
16 $(top_builddir)/src/lib/block/libgnunetblock.la \
17 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
18 $(top_builddir)/src/lib/util/libgnunetutil.la \
19 $(LTLIBINTL)
20libgnunet_plugin_block_setu_test_la_LDFLAGS = \
21 $(GN_PLUGIN_LDFLAGS)
diff --git a/src/plugin/setu/meson.build b/src/plugin/setu/meson.build
new file mode 100644
index 000000000..e22738ab6
--- /dev/null
+++ b/src/plugin/setu/meson.build
@@ -0,0 +1,7 @@
1shared_module('gnunet_plugin_block_setu_test',
2 ['plugin_block_setu_test.c'],
3 dependencies: libgnunetutil_dep,
4 include_directories: [incdir, configuration_inc],
5 install:true,
6 install_dir: get_option('libdir')/'gnunet')
7
diff --git a/src/service/setu/plugin_block_setu_test.c b/src/plugin/setu/plugin_block_setu_test.c
index 178ad3314..178ad3314 100644
--- a/src/service/setu/plugin_block_setu_test.c
+++ b/src/plugin/setu/plugin_block_setu_test.c
diff --git a/src/rest-plugin/Makefile.am b/src/rest-plugin/Makefile.am
deleted file mode 100644
index d76972b78..000000000
--- a/src/rest-plugin/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
1SUBDIRS = \
2 rest \
3 identity \
4 gns \
5 reclaim
diff --git a/src/rest-plugin/gns/Makefile.am b/src/rest-plugin/gns/Makefile.am
deleted file mode 100644
index 48b278df6..000000000
--- a/src/rest-plugin/gns/Makefile.am
+++ /dev/null
@@ -1,61 +0,0 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4if HAVE_LIBIDN
5 LIBIDN= -lidn
6else
7 LIBIDN=
8endif
9
10if HAVE_LIBIDN2
11 LIBIDN2= -lidn2
12else
13 LIBIDN2=
14endif
15
16USE_VPN = $(top_builddir)/src/service/vpn/libgnunetvpn.la
17
18if USE_COVERAGE
19 AM_CFLAGS = --coverage -O0
20endif
21
22pkgcfgdir = $(pkgdatadir)/config.d/
23
24libexecdir= $(pkglibdir)/libexec/
25
26plugindir = $(libdir)/gnunet
27
28REST_PLUGIN = libgnunet_plugin_rest_gns.la
29
30plugin_LTLIBRARIES = \
31 $(REST_PLUGIN)
32
33
34libgnunet_plugin_rest_gns_la_SOURCES = \
35 plugin_rest_gns.c
36libgnunet_plugin_rest_gns_la_LIBADD = \
37 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
38 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecordjson.la \
39 $(top_builddir)/src/service/gns/libgnunetgns.la \
40 $(top_builddir)/src/service/rest/libgnunetrest.la \
41 $(top_builddir)/src/service/identity/libgnunetidentity.la \
42 $(top_builddir)/src/lib/json/libgnunetjson.la \
43 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
44 $(LTLIBINTL) -ljansson $(MHD_LIBS)
45libgnunet_plugin_rest_gns_la_LDFLAGS = \
46 $(GN_PLUGIN_LDFLAGS)
47libgnunet_plugin_rest_gns_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
48
49
50check_SCRIPTS = \
51 test_plugin_rest_gns.sh
52
53EXTRA_DIST = \
54 test_plugin_rest_gns.sh
55
56if ENABLE_TEST_RUN
57if HAVE_SQLITE
58 AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
59 TESTS = $(check_SCRIPTS)
60endif
61endif
diff --git a/src/rest-plugin/gns/meson.build b/src/rest-plugin/gns/meson.build
deleted file mode 100644
index 7a4deffed..000000000
--- a/src/rest-plugin/gns/meson.build
+++ /dev/null
@@ -1,13 +0,0 @@
1shared_module('gnunet_plugin_rest_gns',
2 ['plugin_rest_gns.c'],
3 dependencies: [libgnunetrest_dep,
4 libgnunetgnsrecord_dep,
5 libgnunetgnsrecordjson_dep,
6 libgnunetgns_dep,
7 libgnunetutil_dep,
8 json_dep,
9 mhd_dep],
10 include_directories: [incdir, configuration_inc],
11 install: true,
12 install_dir: get_option('libdir') / 'gnunet')
13
diff --git a/src/rest-plugin/gns/test_plugin_rest_gns.sh b/src/rest-plugin/gns/test_plugin_rest_gns.sh
deleted file mode 100755
index 3bcfb5a08..000000000
--- a/src/rest-plugin/gns/test_plugin_rest_gns.sh
+++ /dev/null
@@ -1,76 +0,0 @@
1#!/bin/sh
2# This file is in the public domain.
3trap "gnunet-arm -e -c test_gns_lookup.conf" INT
4LOCATION=$(which gnunet-config)
5if [ -z $LOCATION ]
6then
7 LOCATION="gnunet-config"
8fi
9$LOCATION --version 1> /dev/null
10if test $? != 0
11then
12 echo "GNUnet command line tools cannot be found, check environmental variables PATH and GNUNET_PREFIX"
13 exit 77
14fi
15
16rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME`
17
18gns_link="http://localhost:7776/gns"
19wrong_link="http://localhost:7776/gnsandmore"
20
21curl_get () {
22 #$1 is link
23 #$2 is grep
24 XURL=`which curl`
25 if [ "" = "$XURL" ]
26 then
27 echo "HTTP client (curl) not found, exiting"
28 exit 77
29 fi
30 sleep 0.5
31 cache="$(${XURL} -v "$1" 2>&1 | grep "$2")"
32 #echo "$cache"
33 if [ "" = "$cache" ]
34 then
35 gnunet-identity -D "$TEST_TLD" -c test_gns_lookup.conf > /dev/null 2>&1
36 gnunet-arm -e -c test_gns_lookup.conf
37 echo "Download of $1 using $XURL failed, expected $2"
38 exit 1
39 fi
40}
41TEST_TLD="testtld"
42
43gnunet-arm -s -c test_gns_lookup.conf
44
45curl_get "$gns_link/www.$TEST_TLD" "error"
46
47gnunet-identity -C "$TEST_TLD" -c test_gns_lookup.conf
48sleep 0.5
49curl_get "$gns_link/www.$TEST_TLD" "\[\]"
50
51gnunet-namestore -z "$TEST_TLD" -p -a -n www -e 1d -V 1.1.1.1 -t A -c test_gns_lookup.conf
52
53curl_get "$gns_link/www.$TEST_TLD" "1.1.1.1"
54
55gnunet-namestore -z "$TEST_TLD" -p -a -n www -e 1d -V 1::1 -t AAAA -c test_gns_lookup.conf
56
57curl_get "$gns_link/www.$TEST_TLD" "1::1.*1.1.1.1"
58
59gnunet-namestore -z "$TEST_TLD" -p -a -n www -e 1d -V 1.1.1.2 -t A -c test_gns_lookup.conf
60
61curl_get "$gns_link/www.$TEST_TLD" "1.1.1.2.*1::1.*1.1.1.1"
62curl_get "$gns_link/www.$TEST_TLD?record_type=A" "1.1.1.2.*1.1.1.1"
63curl_get "$gns_link/www.$TEST_TLD?record_type=AAAA" "1::1"
64curl_get "$gns_link/www.$TEST_TLD?record_type=WRONG_TYPE" "1.1.1.2.*1::1.*1.1.1.1"
65
66gnunet-namestore -z "$TEST_TLD" -p -a -n www1 -e 1d -V 1.1.1.1 -t A -c test_gns_lookup.conf
67curl_get "$gns_link/www1.$TEST_TLD" "1.1.1.1"
68
69gnunet-namestore -z "$TEST_TLD" -d -n www1 -c test_gns_lookup.conf
70gnunet-namestore -z "$TEST_TLD" -d -n www -c test_gns_lookup.conf
71
72gnunet-identity -D "$TEST_TLD" -c test_gns_lookup.conf > /dev/null 2>&1
73
74curl_get "$gns_link/www1.$TEST_TLD" "error"
75gnunet-arm -e -c test_gns_lookup.conf
76exit 0
diff --git a/src/rest-plugin/identity/Makefile.am b/src/rest-plugin/identity/Makefile.am
deleted file mode 100644
index bcad0c2dd..000000000
--- a/src/rest-plugin/identity/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6if USE_COVERAGE
7 AM_CFLAGS = --coverage -O0
8 XLIB = -lgcov
9endif
10
11plugin_LTLIBRARIES = libgnunet_plugin_rest_identity.la
12
13pkgcfgdir= $(pkgdatadir)/config.d/
14
15libexecdir= $(pkglibdir)/libexec/
16
17libgnunet_plugin_rest_identity_la_SOURCES = \
18 plugin_rest_identity.c
19libgnunet_plugin_rest_identity_la_LIBADD = \
20 $(top_builddir)/src/service/identity/libgnunetidentity.la \
21 $(top_builddir)/src/service/rest/libgnunetrest.la \
22 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
23 $(LTLIBINTL) -ljansson $(MHD_LIBS)
24libgnunet_plugin_rest_identity_la_LDFLAGS = \
25 $(GN_PLUGIN_LDFLAGS)
26libgnunet_plugin_rest_identity_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
diff --git a/src/rest-plugin/identity/meson.build b/src/rest-plugin/identity/meson.build
deleted file mode 100644
index f459918db..000000000
--- a/src/rest-plugin/identity/meson.build
+++ /dev/null
@@ -1,11 +0,0 @@
1shared_module('gnunet_plugin_rest_identity',
2 ['plugin_rest_identity.c'],
3 dependencies: [libgnunetrest_dep,
4 libgnunetidentity_dep,
5 libgnunetutil_dep,
6 json_dep,
7 mhd_dep],
8 include_directories: [incdir, configuration_inc],
9 install: true,
10 install_dir: get_option('libdir') / 'gnunet')
11
diff --git a/src/rest-plugin/meson.build b/src/rest-plugin/meson.build
deleted file mode 100644
index 31d49864e..000000000
--- a/src/rest-plugin/meson.build
+++ /dev/null
@@ -1,6 +0,0 @@
1if get_option('monolith') == false
2 subdir('rest')
3endif
4subdir('identity')
5subdir('gns')
6subdir('reclaim')
diff --git a/src/rest-plugin/reclaim/Makefile.am b/src/rest-plugin/reclaim/Makefile.am
deleted file mode 100644
index 7bc305bef..000000000
--- a/src/rest-plugin/reclaim/Makefile.am
+++ /dev/null
@@ -1,81 +0,0 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4 plugindir = $(libdir)/gnunet
5
6if USE_COVERAGE
7 AM_CFLAGS = --coverage -O0
8 XLIB = -lgcov
9endif
10
11
12REST_PLUGIN = \
13 libgnunet_plugin_rest_reclaim.la
14
15if HAVE_JOSE
16REST_PLUGIN += libgnunet_plugin_rest_openid_connect.la
17endif
18
19if HAVE_PABC
20 REST_PLUGIN += libgnunet_plugin_rest_pabc.la
21endif
22
23pkgcfgdir= $(pkgdatadir)/config.d/
24
25libexecdir= $(pkglibdir)/libexec/
26
27plugin_LTLIBRARIES = \
28 $(REST_PLUGIN)
29
30libgnunet_plugin_rest_reclaim_la_SOURCES = \
31 plugin_rest_reclaim.c \
32 json_reclaim.h \
33 json_reclaim.c
34libgnunet_plugin_rest_reclaim_la_LIBADD = \
35 $(top_builddir)/src/service/identity/libgnunetidentity.la \
36 $(top_builddir)/src/service/reclaim/libgnunetreclaim.la \
37 $(top_builddir)/src/lib/json/libgnunetjson.la \
38 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
39 $(top_builddir)/src/service/rest/libgnunetrest.la \
40 $(top_builddir)/src/service/namestore/libgnunetnamestore.la \
41 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
42 $(LTLIBINTL) -ljansson $(MHD_LIBS)
43libgnunet_plugin_rest_reclaim_la_LDFLAGS = \
44 $(GN_PLUGIN_LDFLAGS)
45libgnunet_plugin_rest_reclaim_la_CFLAGS = \
46 $(MHD_CFLAGS) $(AM_CFLAGS)
47
48if HAVE_JOSE
49libgnunet_plugin_rest_openid_connect_la_SOURCES = \
50 plugin_rest_openid_connect.c \
51 oidc_helper.h \
52 oidc_helper.c
53libgnunet_plugin_rest_openid_connect_la_LIBADD = \
54 $(top_builddir)/src/service/identity/libgnunetidentity.la \
55 $(top_builddir)/src/service/reclaim/libgnunetreclaim.la \
56 $(top_builddir)/src/service/rest/libgnunetrest.la \
57 $(top_builddir)/src/service/namestore/libgnunetnamestore.la \
58 $(top_builddir)/src/service/gns/libgnunetgns.la \
59 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
60 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
61 $(LTLIBINTL) -ljansson -ljose $(MHD_LIBS) \
62 $(LIBGCRYPT_LIBS)
63libgnunet_plugin_rest_openid_connect_la_LDFLAGS = \
64 $(GN_PLUGIN_LDFLAGS)
65libgnunet_plugin_rest_openid_connect_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
66endif
67
68if HAVE_PABC
69libgnunet_plugin_rest_pabc_la_SOURCES = \
70 plugin_rest_pabc.c \
71 $(top_builddir)/src/plugin/reclaim/pabc_helper.c
72libgnunet_plugin_rest_pabc_la_LIBADD = \
73 $(top_builddir)/src/service/reclaim/libgnunetreclaim.la \
74 $(top_builddir)/src/lib/json/libgnunetjson.la \
75 $(top_builddir)/src/service/rest/libgnunetrest.la \
76 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
77 $(LTLIBINTL) -ljansson -lpabc $(MHD_LIBS)
78libgnunet_plugin_rest_pabc_la_LDFLAGS = \
79 $(GN_PLUGIN_LDFLAGS)
80libgnunet_plugin_rest_pabc_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
81endif
diff --git a/src/rest-plugin/reclaim/meson.build b/src/rest-plugin/reclaim/meson.build
deleted file mode 100644
index da4406850..000000000
--- a/src/rest-plugin/reclaim/meson.build
+++ /dev/null
@@ -1,29 +0,0 @@
1shared_module('gnunet_plugin_rest_reclaim',
2 ['plugin_rest_reclaim.c', 'json_reclaim.c'],
3 dependencies: [libgnunetrest_dep,
4 libgnunetidentity_dep,
5 libgnunetreclaim_dep,
6 libgnunetjson_dep,
7 libgnunetutil_dep,
8 json_dep,
9 mhd_dep],
10 include_directories: [incdir, configuration_inc],
11 install: true,
12 install_dir: get_option('libdir') / 'gnunet')
13
14shared_module('gnunet_plugin_rest_openid_connect',
15 ['plugin_rest_openid_connect.c', 'oidc_helper.c'],
16 dependencies: [libgnunetrest_dep,
17 libgnunetreclaim_dep,
18 libgnunetidentity_dep,
19 libgnunetgns_dep,
20 libgnunetutil_dep,
21 jose_dep,
22 gcrypt_dep,
23 json_dep,
24 mhd_dep],
25 include_directories: [incdir, configuration_inc],
26 install: true,
27 install_dir: get_option('libdir') / 'gnunet')
28
29
diff --git a/src/rest-plugin/rest/Makefile.am b/src/rest-plugin/rest/Makefile.am
deleted file mode 100644
index 4f7f834fb..000000000
--- a/src/rest-plugin/rest/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
1# This Makefile.am is in the public domain
2AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4plugindir = $(libdir)/gnunet
5
6pkgcfgdir= $(pkgdatadir)/config.d/
7
8libexecdir= $(pkglibdir)/libexec/
9
10if USE_COVERAGE
11 AM_CFLAGS = --coverage -O0
12 XLIBS = -lgcov
13endif
14
15plugin_LTLIBRARIES = \
16 libgnunet_plugin_rest_copying.la \
17 libgnunet_plugin_rest_config.la
18
19libgnunet_plugin_rest_copying_la_SOURCES = \
20 plugin_rest_copying.c
21libgnunet_plugin_rest_copying_la_LIBADD = \
22 $(top_builddir)/src/service/rest/libgnunetrest.la \
23 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
24 $(LTLIBINTL) $(MHD_LIBS)
25libgnunet_plugin_rest_copying_la_LDFLAGS = \
26 $(GN_PLUGIN_LDFLAGS)
27libgnunet_plugin_rest_copying_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
28
29libgnunet_plugin_rest_config_la_SOURCES = \
30 plugin_rest_config.c
31libgnunet_plugin_rest_config_la_LIBADD = \
32 $(top_builddir)/src/service/rest/libgnunetrest.la \
33 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
34 $(LTLIBINTL) $(MHD_LIBS) -ljansson
35libgnunet_plugin_rest_config_la_LDFLAGS = \
36 $(GN_PLUGIN_LDFLAGS)
37libgnunet_plugin_rest_config_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
diff --git a/src/rest-plugin/rest/meson.build b/src/rest-plugin/rest/meson.build
deleted file mode 100644
index 0c7219327..000000000
--- a/src/rest-plugin/rest/meson.build
+++ /dev/null
@@ -1,18 +0,0 @@
1shared_module('gnunet_plugin_rest_config',
2 ['plugin_rest_config.c'],
3 dependencies: [libgnunetrest_dep,
4 libgnunetutil_dep,
5 json_dep,
6 mhd_dep],
7 include_directories: [incdir, configuration_inc],
8 install: true,
9 install_dir: get_option('libdir') / 'gnunet')
10shared_module('gnunet_plugin_rest_copying',
11 ['plugin_rest_copying.c'],
12 dependencies: [libgnunetrest_dep,
13 libgnunetutil_dep,
14 json_dep,
15 mhd_dep],
16 include_directories: [incdir, configuration_inc],
17 install: true,
18 install_dir: get_option('libdir') / 'gnunet')
diff --git a/src/service/Makefile.am b/src/service/Makefile.am
index 8e661e432..041442725 100644
--- a/src/service/Makefile.am
+++ b/src/service/Makefile.am
@@ -13,9 +13,9 @@ SUBDIRS = \
13 topology \ 13 topology \
14 dns \ 14 dns \
15 identity \ 15 identity \
16 rest \
17 datacache \ 16 datacache \
18 datastore \ 17 datastore \
18 dhtu \
19 dht \ 19 dht \
20 namecache \ 20 namecache \
21 namestore \ 21 namestore \
@@ -31,5 +31,6 @@ SUBDIRS = \
31 exit \ 31 exit \
32 pt \ 32 pt \
33 reclaim \ 33 reclaim \
34 messenger 34 messenger \
35 rest
35 36
diff --git a/src/service/datacache/Makefile.am b/src/service/datacache/Makefile.am
index 9caeac543..022b45253 100644
--- a/src/service/datacache/Makefile.am
+++ b/src/service/datacache/Makefile.am
@@ -8,25 +8,11 @@ pkgcfgdir= $(pkgdatadir)/config.d/
8dist_pkgcfg_DATA = \ 8dist_pkgcfg_DATA = \
9 datacache.conf 9 datacache.conf
10 10
11sqldir = $(prefix)/share/gnunet/sql/
12
13sql_DATA = \
14 datacache-0001.sql \
15 datacache-drop.sql
16
17
18if USE_COVERAGE 11if USE_COVERAGE
19 AM_CFLAGS = --coverage -O0 12 AM_CFLAGS = --coverage -O0
20 XLIBS = -lgcov 13 XLIBS = -lgcov
21endif 14endif
22 15
23if HAVE_SQLITE
24 SQLITE_PLUGIN = libgnunet_plugin_datacache_sqlite.la
25endif
26if HAVE_POSTGRESQL
27 POSTGRES_PLUGIN = libgnunet_plugin_datacache_postgres.la
28endif
29
30lib_LTLIBRARIES = \ 16lib_LTLIBRARIES = \
31 libgnunetdatacache.la 17 libgnunetdatacache.la
32 18
@@ -41,57 +27,6 @@ libgnunetdatacache_la_LDFLAGS = \
41 -version-info 0:1:0 27 -version-info 0:1:0
42 28
43 29
44plugin_LTLIBRARIES = \
45 $(SQLITE_PLUGIN) \
46 $(POSTGRES_PLUGIN) \
47 libgnunet_plugin_datacache_heap.la
48
49# Real plugins should of course go into
50# plugin_LTLIBRARIES
51noinst_LTLIBRARIES = \
52 libgnunet_plugin_datacache_template.la
53
54
55libgnunet_plugin_datacache_sqlite_la_SOURCES = \
56 plugin_datacache_sqlite.c
57libgnunet_plugin_datacache_sqlite_la_LIBADD = \
58 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
59 $(top_builddir)/src/lib/sq/libgnunetsq.la \
60 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
61 $(LTLIBINTL)
62libgnunet_plugin_datacache_sqlite_la_LDFLAGS = \
63 $(GN_PLUGIN_LDFLAGS)
64
65libgnunet_plugin_datacache_heap_la_SOURCES = \
66 plugin_datacache_heap.c
67libgnunet_plugin_datacache_heap_la_LIBADD = \
68 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
69 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
70 $(LTLIBINTL)
71libgnunet_plugin_datacache_heap_la_LDFLAGS = \
72 $(GN_PLUGIN_LDFLAGS)
73
74libgnunet_plugin_datacache_postgres_la_SOURCES = \
75 plugin_datacache_postgres.c
76libgnunet_plugin_datacache_postgres_la_LIBADD = \
77 $(top_builddir)/src/lib/pq/libgnunetpq.la \
78 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
79 $(top_builddir)/src/lib/util/libgnunetutil.la \
80 $(GN_PLUGIN_LDFLAGS) -lpq
81libgnunet_plugin_datacache_postgres_la_CPPFLAGS = \
82 $(POSTGRESQL_CPPFLAGS) $(AM_CPPFLAGS)
83libgnunet_plugin_datacache_postgres_la_LDFLAGS = \
84 $(GN_PLUGIN_LDFLAGS) $(POSTGRESQL_LDFLAGS)
85
86libgnunet_plugin_datacache_template_la_SOURCES = \
87 plugin_datacache_template.c
88libgnunet_plugin_datacache_template_la_LIBADD = \
89 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
90 $(LTLIBINTL)
91libgnunet_plugin_datacache_template_la_LDFLAGS = \
92 $(GN_PLUGIN_LDFLAGS)
93
94
95if HAVE_SQLITE 30if HAVE_SQLITE
96SQLITE_TESTS = \ 31SQLITE_TESTS = \
97 test_datacache_sqlite \ 32 test_datacache_sqlite \
@@ -166,5 +101,4 @@ test_datacache_quota_postgres_LDADD = \
166EXTRA_DIST = \ 101EXTRA_DIST = \
167 test_datacache_data_sqlite.conf \ 102 test_datacache_data_sqlite.conf \
168 test_datacache_data_heap.conf \ 103 test_datacache_data_heap.conf \
169 test_datacache_data_postgres.conf \ 104 test_datacache_data_postgres.conf
170 $(sql_DATA)
diff --git a/src/service/datacache/meson.build b/src/service/datacache/meson.build
index 528885c0d..f50036c03 100644
--- a/src/service/datacache/meson.build
+++ b/src/service/datacache/meson.build
@@ -5,9 +5,6 @@ configure_file(input : 'datacache.conf',
5 configuration : cdata, 5 configuration : cdata,
6 install: true, 6 install: true,
7 install_dir: pkgcfgdir) 7 install_dir: pkgcfgdir)
8install_data ('datacache-0001.sql',
9 'datacache-drop.sql',
10 install_dir: get_option('datadir')/'gnunet'/'sql')
11 8
12if get_option('monolith') 9if get_option('monolith')
13 foreach p : libgnunetdatacache_src 10 foreach p : libgnunetdatacache_src
@@ -27,36 +24,6 @@ libgnunetdatacache_dep = declare_dependency(link_with : libgnunetdatacache)
27pkg.generate(libgnunetdatacache, url: 'https://www.gnunet.org', 24pkg.generate(libgnunetdatacache, url: 'https://www.gnunet.org',
28 description : 'Provides datacache API for temporary storage to disk') 25 description : 'Provides datacache API for temporary storage to disk')
29 26
30shared_module('gnunet_plugin_datacache_sqlite',
31 ['plugin_datacache_sqlite.c'],
32 dependencies: [libgnunetutil_dep,
33 libgnunetdatacache_dep,
34 sqlite_dep,
35 libgnunetsq_dep],
36 include_directories: [incdir, configuration_inc],
37 install: true,
38 install_dir: get_option('libdir')/'gnunet')
39
40shared_module('gnunet_plugin_datacache_heap',
41 ['plugin_datacache_heap.c'],
42 dependencies: [libgnunetutil_dep,
43 libgnunetdatacache_dep],
44 include_directories: [incdir, configuration_inc],
45 install: true,
46 install_dir: get_option('libdir')/'gnunet')
47
48if pq_dep.found()
49 shared_module('gnunet_plugin_datacache_postgres',
50 ['plugin_datacache_postgres.c'],
51 dependencies: [libgnunetutil_dep,
52 libgnunetdatacache_dep,
53 pq_dep,
54 libgnunetpq_dep],
55 include_directories: [incdir, configuration_inc],
56 install: true,
57 install_dir: get_option('libdir')/'gnunet')
58endif
59
60testdc_sqlite = executable ('test_datacache_sqlite', 27testdc_sqlite = executable ('test_datacache_sqlite',
61 ['test_datacache.c'], 28 ['test_datacache.c'],
62 dependencies: [ 29 dependencies: [
diff --git a/src/service/datastore/Makefile.am b/src/service/datastore/Makefile.am
index 9ae5004c6..22f98482a 100644
--- a/src/service/datastore/Makefile.am
+++ b/src/service/datastore/Makefile.am
@@ -10,12 +10,6 @@ libexecdir= $(pkglibdir)/libexec/
10pkgcfg_DATA = \ 10pkgcfg_DATA = \
11 datastore.conf 11 datastore.conf
12 12
13sqldir = $(prefix)/share/gnunet/sql/
14
15sql_DATA = \
16 datastore-0001.sql \
17 datastore-drop.sql
18
19if USE_COVERAGE 13if USE_COVERAGE
20 AM_CFLAGS = --coverage -O0 14 AM_CFLAGS = --coverage -O0
21 XLIBS = -lgcov 15 XLIBS = -lgcov
@@ -46,89 +40,30 @@ gnunet_service_datastore_LDADD = \
46 $(GN_LIBINTL) 40 $(GN_LIBINTL)
47 41
48if HAVE_SQLITE 42if HAVE_SQLITE
49 SQLITE_PLUGIN = libgnunet_plugin_datastore_sqlite.la
50if HAVE_BENCHMARKS 43if HAVE_BENCHMARKS
51 SQLITE_BENCHMARKS = \ 44 SQLITE_BENCHMARKS = \
52 perf_datastore_api_sqlite \ 45 perf_datastore_api_sqlite
53 perf_plugin_datastore_sqlite
54endif 46endif
55 SQLITE_TESTS = \ 47 SQLITE_TESTS = \
56 test_datastore_api_sqlite \ 48 test_datastore_api_sqlite \
57 test_datastore_api_management_sqlite \ 49 test_datastore_api_management_sqlite \
58 test_plugin_datastore_sqlite \
59 $(SQLITE_BENCHMARKS) 50 $(SQLITE_BENCHMARKS)
60endif 51endif
61if HAVE_POSTGRESQL 52if HAVE_POSTGRESQL
62 POSTGRES_PLUGIN = libgnunet_plugin_datastore_postgres.la
63if HAVE_BENCHMARKS 53if HAVE_BENCHMARKS
64 POSTGRES_BENCHMARKS = \ 54 POSTGRES_BENCHMARKS = \
65 perf_datastore_api_postgres \ 55 perf_datastore_api_postgres
66 perf_plugin_datastore_postgres
67endif 56endif
68 POSTGRES_TESTS = \ 57 POSTGRES_TESTS = \
69 test_datastore_api_postgres \ 58 test_datastore_api_postgres \
70 test_datastore_api_management_postgres \ 59 test_datastore_api_management_postgres \
71 test_plugin_datastore_postgres \
72 $(POSTGRES_BENCHMARKS) 60 $(POSTGRES_BENCHMARKS)
73endif 61endif
74 62
75plugin_LTLIBRARIES = \
76 $(SQLITE_PLUGIN) \
77 $(POSTGRES_PLUGIN) \
78 libgnunet_plugin_datastore_heap.la
79
80# Real plugins should of course go into
81# plugin_LTLIBRARIES
82noinst_LTLIBRARIES = \
83 libgnunet_plugin_datastore_template.la
84
85
86libgnunet_plugin_datastore_sqlite_la_SOURCES = \
87 plugin_datastore_sqlite.c
88libgnunet_plugin_datastore_sqlite_la_LIBADD = \
89 $(top_builddir)/src/lib/sq/libgnunetsq.la \
90 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
91 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lsqlite3 \
92 $(LTLIBINTL)
93libgnunet_plugin_datastore_sqlite_la_LDFLAGS = \
94 $(GN_PLUGIN_LDFLAGS)
95
96
97libgnunet_plugin_datastore_heap_la_SOURCES = \
98 plugin_datastore_heap.c
99libgnunet_plugin_datastore_heap_la_LIBADD = \
100 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
101 $(LTLIBINTL)
102libgnunet_plugin_datastore_heap_la_LDFLAGS = \
103 $(GN_PLUGIN_LDFLAGS)
104
105
106libgnunet_plugin_datastore_postgres_la_SOURCES = \
107 plugin_datastore_postgres.c
108libgnunet_plugin_datastore_postgres_la_LIBADD = \
109 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
110 $(top_builddir)/src/lib/pq/libgnunetpq.la \
111 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) -lpq
112libgnunet_plugin_datastore_postgres_la_LDFLAGS = \
113 $(GN_PLUGIN_LDFLAGS) $(POSTGRESQL_LDFLAGS)
114libgnunet_plugin_datastore_postgres_la_CPPFLAGS = \
115 $(POSTGRESQL_CPPFLAGS) $(AM_CPPFLAGS)
116
117
118libgnunet_plugin_datastore_template_la_SOURCES = \
119 plugin_datastore_template.c
120libgnunet_plugin_datastore_template_la_LIBADD = \
121 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
122 $(LTLIBINTL)
123libgnunet_plugin_datastore_template_la_LDFLAGS = \
124 $(GN_PLUGIN_LDFLAGS)
125
126check_PROGRAMS = \ 63check_PROGRAMS = \
127 test_datastore_api_heap \ 64 test_datastore_api_heap \
128 test_datastore_api_management_heap \ 65 test_datastore_api_management_heap \
129 perf_datastore_api_heap \ 66 perf_datastore_api_heap \
130 perf_plugin_datastore_heap \
131 test_plugin_datastore_heap \
132 $(SQLITE_TESTS) \ 67 $(SQLITE_TESTS) \
133 $(POSTGRES_TESTS) 68 $(POSTGRES_TESTS)
134 69
@@ -158,19 +93,6 @@ perf_datastore_api_heap_LDADD = \
158 libgnunetdatastore.la \ 93 libgnunetdatastore.la \
159 $(top_builddir)/src/lib/util/libgnunetutil.la 94 $(top_builddir)/src/lib/util/libgnunetutil.la
160 95
161perf_plugin_datastore_heap_SOURCES = \
162 perf_plugin_datastore.c
163perf_plugin_datastore_heap_LDADD = \
164 $(top_builddir)/src/service/testing/libgnunettesting.la \
165 $(top_builddir)/src/lib/util/libgnunetutil.la
166
167test_plugin_datastore_heap_SOURCES = \
168 test_plugin_datastore.c
169test_plugin_datastore_heap_LDADD = \
170 $(top_builddir)/src/service/testing/libgnunettesting.la \
171 $(top_builddir)/src/lib/util/libgnunetutil.la
172
173
174test_datastore_api_sqlite_SOURCES = \ 96test_datastore_api_sqlite_SOURCES = \
175 test_datastore_api.c 97 test_datastore_api.c
176test_datastore_api_sqlite_LDADD = \ 98test_datastore_api_sqlite_LDADD = \
@@ -192,19 +114,6 @@ perf_datastore_api_sqlite_LDADD = \
192 libgnunetdatastore.la \ 114 libgnunetdatastore.la \
193 $(top_builddir)/src/lib/util/libgnunetutil.la 115 $(top_builddir)/src/lib/util/libgnunetutil.la
194 116
195perf_plugin_datastore_sqlite_SOURCES = \
196 perf_plugin_datastore.c
197perf_plugin_datastore_sqlite_LDADD = \
198 $(top_builddir)/src/service/testing/libgnunettesting.la \
199 $(top_builddir)/src/lib/util/libgnunetutil.la
200
201test_plugin_datastore_sqlite_SOURCES = \
202 test_plugin_datastore.c
203test_plugin_datastore_sqlite_LDADD = \
204 $(top_builddir)/src/service/testing/libgnunettesting.la \
205 $(top_builddir)/src/lib/util/libgnunetutil.la
206
207
208test_datastore_api_postgres_SOURCES = \ 117test_datastore_api_postgres_SOURCES = \
209 test_datastore_api.c 118 test_datastore_api.c
210test_datastore_api_postgres_LDADD = \ 119test_datastore_api_postgres_LDADD = \
@@ -226,28 +135,8 @@ perf_datastore_api_postgres_LDADD = \
226 libgnunetdatastore.la \ 135 libgnunetdatastore.la \
227 $(top_builddir)/src/lib/util/libgnunetutil.la 136 $(top_builddir)/src/lib/util/libgnunetutil.la
228 137
229test_plugin_datastore_postgres_SOURCES = \
230 test_plugin_datastore.c
231test_plugin_datastore_postgres_LDADD = \
232 $(top_builddir)/src/service/testing/libgnunettesting.la \
233 $(top_builddir)/src/lib/util/libgnunetutil.la
234
235perf_plugin_datastore_postgres_SOURCES = \
236 perf_plugin_datastore.c
237perf_plugin_datastore_postgres_LDADD = \
238 $(top_builddir)/src/service/testing/libgnunettesting.la \
239 $(top_builddir)/src/lib/util/libgnunetutil.la
240
241
242EXTRA_DIST = \ 138EXTRA_DIST = \
243 test_defaults.conf \ 139 test_defaults.conf \
244 test_datastore_api_data_sqlite.conf \ 140 test_datastore_api_data_sqlite.conf \
245 perf_plugin_datastore_data_sqlite.conf \
246 test_plugin_datastore_data_sqlite.conf \
247 test_datastore_api_data_heap.conf \ 141 test_datastore_api_data_heap.conf \
248 perf_plugin_datastore_data_heap.conf \ 142 test_datastore_api_data_postgres.conf
249 test_plugin_datastore_data_heap.conf \
250 test_datastore_api_data_postgres.conf \
251 perf_plugin_datastore_data_postgres.conf \
252 test_plugin_datastore_data_postgres.conf \
253 $(sql_DATA)
diff --git a/src/service/datastore/meson.build b/src/service/datastore/meson.build
index 9dde488a0..b81d8bb86 100644
--- a/src/service/datastore/meson.build
+++ b/src/service/datastore/meson.build
@@ -8,10 +8,6 @@ configure_file(input : 'datastore.conf.in',
8 install: true, 8 install: true,
9 install_dir: pkgcfgdir) 9 install_dir: pkgcfgdir)
10 10
11install_data ('datastore-0001.sql',
12 'datastore-drop.sql',
13 install_dir: get_option('datadir')/'gnunet'/'sql')
14
15if get_option('monolith') 11if get_option('monolith')
16 foreach p : libgnunetdatastore_src + gnunetservicedatastore_src 12 foreach p : libgnunetdatastore_src + gnunetservicedatastore_src
17 gnunet_src += 'datastore/' + p 13 gnunet_src += 'datastore/' + p
@@ -32,36 +28,6 @@ libgnunetdatastore_dep = declare_dependency(link_with : libgnunetdatastore)
32pkg.generate(libgnunetdatastore, url: 'https://www.gnunet.org', 28pkg.generate(libgnunetdatastore, url: 'https://www.gnunet.org',
33 description : 'Management API for the datastore for persistent storage to disk') 29 description : 'Management API for the datastore for persistent storage to disk')
34 30
35shared_module('gnunet_plugin_datastore_sqlite',
36 ['plugin_datastore_sqlite.c'],
37 dependencies: [libgnunetutil_dep,
38 libgnunetdatastore_dep,
39 sqlite_dep,
40 libgnunetsq_dep],
41 include_directories: [incdir, configuration_inc],
42 install: true,
43 install_dir: get_option('libdir')/'gnunet')
44
45shared_module('gnunet_plugin_datastore_heap',
46 ['plugin_datastore_heap.c'],
47 dependencies: [libgnunetutil_dep,
48 libgnunetdatacache_dep],
49 include_directories: [incdir, configuration_inc],
50 install: true,
51 install_dir: get_option('libdir')/'gnunet')
52
53if pq_dep.found()
54 shared_module('gnunet_plugin_datastore_postgres',
55 ['plugin_datastore_postgres.c'],
56 dependencies: [libgnunetutil_dep,
57 libgnunetdatastore_dep,
58 pq_dep,
59 libgnunetpq_dep],
60 include_directories: [incdir, configuration_inc],
61 install: true,
62 install_dir: get_option('libdir')/'gnunet')
63endif
64
65executable ('gnunet-service-datastore', 31executable ('gnunet-service-datastore',
66 gnunetservicedatastore_src, 32 gnunetservicedatastore_src,
67 dependencies: [libgnunetdatastore_dep, 33 dependencies: [libgnunetdatastore_dep,
@@ -92,16 +58,6 @@ testds_mgmt_sqlite = executable ('test_datastore_api_management_sqlite',
92 include_directories: [incdir, configuration_inc], 58 include_directories: [incdir, configuration_inc],
93 install: false) 59 install: false)
94 60
95testds_plugin_sqlite = executable ('test_plugin_datastore_sqlite',
96 ['test_plugin_datastore.c'],
97 dependencies: [
98 libgnunetdatastore_dep,
99 libgnunetutil_dep,
100 libgnunettesting_dep
101 ],
102 include_directories: [incdir, configuration_inc],
103 install: false)
104
105testds_heap = executable ('test_datastore_api_heap', 61testds_heap = executable ('test_datastore_api_heap',
106 ['test_datastore_api.c'], 62 ['test_datastore_api.c'],
107 dependencies: [ 63 dependencies: [
@@ -122,16 +78,6 @@ testds_mgmt_heap = executable ('test_datastore_api_management_heap',
122 include_directories: [incdir, configuration_inc], 78 include_directories: [incdir, configuration_inc],
123 install: false) 79 install: false)
124 80
125testds_plugin_heap = executable ('test_plugin_datastore_heap',
126 ['test_plugin_datastore.c'],
127 dependencies: [
128 libgnunetdatastore_dep,
129 libgnunetutil_dep,
130 libgnunettesting_dep
131 ],
132 include_directories: [incdir, configuration_inc],
133 install: false)
134
135testds_pq = executable ('test_datastore_api_postgres', 81testds_pq = executable ('test_datastore_api_postgres',
136 ['test_datastore_api.c'], 82 ['test_datastore_api.c'],
137 dependencies: [ 83 dependencies: [
@@ -142,16 +88,6 @@ testds_pq = executable ('test_datastore_api_postgres',
142 include_directories: [incdir, configuration_inc], 88 include_directories: [incdir, configuration_inc],
143 install: false) 89 install: false)
144 90
145testds_plugin_pq = executable ('test_plugin_datastore_postgres',
146 ['test_plugin_datastore.c'],
147 dependencies: [
148 libgnunetdatastore_dep,
149 libgnunetutil_dep,
150 libgnunettesting_dep
151 ],
152 include_directories: [incdir, configuration_inc],
153 install: false)
154
155testds_mgmt_pq = executable ('test_datastore_api_management_postgres', 91testds_mgmt_pq = executable ('test_datastore_api_management_postgres',
156 ['test_datastore_api_management.c'], 92 ['test_datastore_api_management.c'],
157 dependencies: [ 93 dependencies: [
@@ -179,18 +115,12 @@ test('test_datastore_api_sqlite', testds_sqlite,
179 suite: 'datastore', workdir: meson.current_build_dir()) 115 suite: 'datastore', workdir: meson.current_build_dir())
180test('test_datastore_api_management_sqlite', testds_mgmt_sqlite, 116test('test_datastore_api_management_sqlite', testds_mgmt_sqlite,
181 suite: 'datastore', workdir: meson.current_build_dir()) 117 suite: 'datastore', workdir: meson.current_build_dir())
182test('test_plugin_datastore_sqlite', testds_plugin_sqlite,
183 suite: 'datastore', workdir: meson.current_build_dir())
184test('test_datastore_api_heap', testds_heap, 118test('test_datastore_api_heap', testds_heap,
185 suite: 'datastore', workdir: meson.current_build_dir()) 119 suite: 'datastore', workdir: meson.current_build_dir())
186test('test_datastore_api_management_heap', testds_mgmt_heap, 120test('test_datastore_api_management_heap', testds_mgmt_heap,
187 suite: 'datastore', workdir: meson.current_build_dir()) 121 suite: 'datastore', workdir: meson.current_build_dir())
188test('test_plugin_datastore_heap', testds_plugin_heap,
189 suite: 'datastore', workdir: meson.current_build_dir())
190test('test_datastore_api_postgres', testds_pq, 122test('test_datastore_api_postgres', testds_pq,
191 suite: 'datastore', workdir: meson.current_build_dir()) 123 suite: 'datastore', workdir: meson.current_build_dir())
192test('test_datastore_api_management_postgres', testds_mgmt_pq, 124test('test_datastore_api_management_postgres', testds_mgmt_pq,
193 suite: 'datastore', workdir: meson.current_build_dir()) 125 suite: 'datastore', workdir: meson.current_build_dir())
194test('test_plugin_datastore_postgres', testds_plugin_pq,
195 suite: 'datastore', workdir: meson.current_build_dir())
196 126
diff --git a/src/service/dht/Makefile.am b/src/service/dht/Makefile.am
index bf3d26235..53df04faf 100644
--- a/src/service/dht/Makefile.am
+++ b/src/service/dht/Makefile.am
@@ -29,21 +29,6 @@ libgnunetdht_la_LDFLAGS = \
29 -version-info 4:0:0 29 -version-info 4:0:0
30 30
31 31
32plugin_LTLIBRARIES = \
33 libgnunet_plugin_block_dht.la
34
35libgnunet_plugin_block_dht_la_SOURCES = \
36 plugin_block_dht.c
37libgnunet_plugin_block_dht_la_LIBADD = \
38 $(top_builddir)/src/lib/hello/libgnunethello.la \
39 $(top_builddir)/src/lib/block/libgnunetblock.la \
40 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
41 $(top_builddir)/src/lib/util/libgnunetutil.la \
42 $(LTLIBINTL)
43libgnunet_plugin_block_dht_la_LDFLAGS = \
44 $(GN_PLUGIN_LDFLAGS)
45
46
47libexec_PROGRAMS = \ 32libexec_PROGRAMS = \
48 gnunet-service-dht 33 gnunet-service-dht
49 34
diff --git a/src/service/dht/meson.build b/src/service/dht/meson.build
index 49ace7e0b..3972a0983 100644
--- a/src/service/dht/meson.build
+++ b/src/service/dht/meson.build
@@ -29,16 +29,6 @@ libgnunetdht_dep = declare_dependency(link_with : libgnunetdht)
29pkg.generate(libgnunetdht, url: 'https://www.gnunet.org', 29pkg.generate(libgnunetdht, url: 'https://www.gnunet.org',
30 description : 'Provides API for the R5N distributed hash table') 30 description : 'Provides API for the R5N distributed hash table')
31 31
32shared_module('gnunet_plugin_block_dht',
33 ['plugin_block_dht.c'],
34 dependencies: [libgnunetutil_dep,
35 libgnunethello_dep,
36 libgnunetblock_dep,
37 libgnunetblockgroup_dep],
38 include_directories: [incdir, configuration_inc],
39 install:true,
40 install_dir: get_option('libdir')/'gnunet')
41
42executable ('gnunet-service-dht', 32executable ('gnunet-service-dht',
43 gnunetservicedht_src, 33 gnunetservicedht_src,
44 dependencies: [libgnunetdht_dep, libgnunetutil_dep, 34 dependencies: [libgnunetdht_dep, libgnunetutil_dep,
diff --git a/src/plugin/dhtu/.gitignore b/src/service/dhtu/.gitignore
index 21f1a7c9b..21f1a7c9b 100644
--- a/src/plugin/dhtu/.gitignore
+++ b/src/service/dhtu/.gitignore
diff --git a/src/plugin/dhtu/Makefile.am b/src/service/dhtu/Makefile.am
index 500d5a7b1..500d5a7b1 100644
--- a/src/plugin/dhtu/Makefile.am
+++ b/src/service/dhtu/Makefile.am
diff --git a/src/plugin/dhtu/dhtu.conf b/src/service/dhtu/dhtu.conf
index ea5ade752..ea5ade752 100644
--- a/src/plugin/dhtu/dhtu.conf
+++ b/src/service/dhtu/dhtu.conf
diff --git a/src/plugin/dhtu/meson.build b/src/service/dhtu/meson.build
index b2525e782..b2525e782 100644
--- a/src/plugin/dhtu/meson.build
+++ b/src/service/dhtu/meson.build
diff --git a/src/plugin/dhtu/plugin_dhtu_gnunet.c b/src/service/dhtu/plugin_dhtu_gnunet.c
index 75f466916..75f466916 100644
--- a/src/plugin/dhtu/plugin_dhtu_gnunet.c
+++ b/src/service/dhtu/plugin_dhtu_gnunet.c
diff --git a/src/plugin/dhtu/plugin_dhtu_ip.c b/src/service/dhtu/plugin_dhtu_ip.c
index 06d0f0f60..06d0f0f60 100644
--- a/src/plugin/dhtu/plugin_dhtu_ip.c
+++ b/src/service/dhtu/plugin_dhtu_ip.c
diff --git a/src/plugin/dhtu/test_dhtu_ip.c b/src/service/dhtu/test_dhtu_ip.c
index 030b17b5f..030b17b5f 100644
--- a/src/plugin/dhtu/test_dhtu_ip.c
+++ b/src/service/dhtu/test_dhtu_ip.c
diff --git a/src/plugin/dhtu/testing_dhtu_cmd_send.c b/src/service/dhtu/testing_dhtu_cmd_send.c
index 45d166b14..45d166b14 100644
--- a/src/plugin/dhtu/testing_dhtu_cmd_send.c
+++ b/src/service/dhtu/testing_dhtu_cmd_send.c
diff --git a/src/service/dns/Makefile.am b/src/service/dns/Makefile.am
index 38ee78c3a..0d07b9e5e 100644
--- a/src/service/dns/Makefile.am
+++ b/src/service/dns/Makefile.am
@@ -29,9 +29,6 @@ noinst_PROGRAMS = \
29 gnunet-dns-redirector \ 29 gnunet-dns-redirector \
30 gnunet-zonewalk 30 gnunet-zonewalk
31 31
32plugin_LTLIBRARIES = \
33 libgnunet_plugin_block_dns.la
34
35if LINUX 32if LINUX
36check_SCRIPTS = \ 33check_SCRIPTS = \
37 test_gnunet_dns.sh 34 test_gnunet_dns.sh
@@ -77,17 +74,6 @@ libgnunetdns_la_LDFLAGS = \
77 $(GN_LIB_LDFLAGS) \ 74 $(GN_LIB_LDFLAGS) \
78 -version-info 0:0:0 75 -version-info 0:0:0
79 76
80libgnunet_plugin_block_dns_la_SOURCES = \
81 plugin_block_dns.c
82libgnunet_plugin_block_dns_la_LIBADD = \
83 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
84 $(top_builddir)/src/lib/block/libgnunetblock.la \
85 $(top_builddir)/src/lib/util/libgnunetutil.la
86libgnunet_plugin_block_dns_la_LDFLAGS = \
87 $(GN_LIBINTL) \
88 $(top_builddir)/src/block/$(GN_PLUGIN_LDFLAGS)
89
90
91if ENABLE_TEST_RUN 77if ENABLE_TEST_RUN
92AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME; 78AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
93TESTS = $(check_PROGRAMS) $(check_SCRIPTS) 79TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
diff --git a/src/service/dns/meson.build b/src/service/dns/meson.build
index fe0f6e954..e1b7f7670 100644
--- a/src/service/dns/meson.build
+++ b/src/service/dns/meson.build
@@ -1,5 +1,4 @@
1libgnunetdns_src = ['dns_api.c'] 1libgnunetdns_src = ['dns_api.c']
2libgnunetpluginblockdns_src = ['plugin_block_dns.c']
3 2
4gnunetservicedns_src = ['gnunet-service-dns.c'] 3gnunetservicedns_src = ['gnunet-service-dns.c']
5gnunetdnsredirector_src = ['gnunet-dns-monitor.c'] 4gnunetdnsredirector_src = ['gnunet-dns-monitor.c']
@@ -12,7 +11,7 @@ configure_file(input : 'dns.conf.in',
12 install_dir: pkgcfgdir) 11 install_dir: pkgcfgdir)
13 12
14if get_option('monolith') 13if get_option('monolith')
15 foreach p : libgnunetdns_src + gnunetservicedns_src + libgnunetpluginblockdns_src 14 foreach p : libgnunetdns_src + gnunetservicedns_src
16 gnunet_src += 'dns/' + p 15 gnunet_src += 'dns/' + p
17 endforeach 16 endforeach
18endif 17endif
@@ -29,13 +28,6 @@ libgnunetdns_dep = declare_dependency(link_with : libgnunetdns)
29pkg.generate(libgnunetdns, url: 'https://www.gnunet.org', 28pkg.generate(libgnunetdns, url: 'https://www.gnunet.org',
30 description : 'Provides API to access GNUnet\'s DNS service (to intercept and manipulate DNS queries)') 29 description : 'Provides API to access GNUnet\'s DNS service (to intercept and manipulate DNS queries)')
31 30
32shared_module('gnunet_plugin_block_dns',
33 libgnunetpluginblockdns_src,
34 dependencies: [libgnunetutil_dep, libgnunetblockgroup_dep],
35 include_directories: [incdir, configuration_inc],
36 install: true,
37 install_dir: get_option('libdir')/'gnunet')
38
39executable ('gnunet-service-dns', 31executable ('gnunet-service-dns',
40 gnunetservicedns_src, 32 gnunetservicedns_src,
41 dependencies: [libgnunetdns_dep, libgnunetutil_dep, 33 dependencies: [libgnunetdns_dep, libgnunetutil_dep,
diff --git a/src/service/meson.build b/src/service/meson.build
index 6acbc3b10..b089c9794 100644
--- a/src/service/meson.build
+++ b/src/service/meson.build
@@ -2,7 +2,6 @@ subdir('util')
2subdir('arm') 2subdir('arm')
3subdir('statistics') 3subdir('statistics')
4subdir('testing') 4subdir('testing')
5subdir('rest')
6subdir('datacache') 5subdir('datacache')
7subdir('datastore') 6subdir('datastore')
8subdir('peerstore') 7subdir('peerstore')
@@ -11,6 +10,7 @@ subdir('nat-auto')
11subdir('transport') 10subdir('transport')
12subdir('core') 11subdir('core')
13subdir('nse') 12subdir('nse')
13subdir('dhtu')
14subdir('dht') 14subdir('dht')
15subdir('hostlist') 15subdir('hostlist')
16subdir('regex') 16subdir('regex')
@@ -30,6 +30,7 @@ subdir('exit')
30subdir('pt') 30subdir('pt')
31subdir('reclaim') 31subdir('reclaim')
32subdir('messenger') 32subdir('messenger')
33subdir('rest')
33 34
34if not get_option('monolith') 35if not get_option('monolith')
35 subdir_done() 36 subdir_done()
@@ -42,7 +43,10 @@ libgnunet = library('gnunet',
42 libgnunetjson_dep, 43 libgnunetjson_dep,
43 libgnunetblock_dep, 44 libgnunetblock_dep,
44 libgnunetblockgroup_dep, 45 libgnunetblockgroup_dep,
46 libgnunetregexblock_dep,
45 libgnunetgnsrecord_dep, 47 libgnunetgnsrecord_dep,
48 libgnunetgnsrecordjson_dep,
49 jose_dep,
46 libgnunetcurl_dep], 50 libgnunetcurl_dep],
47 c_args: ['-DHAVE_GNUNET_MONOLITH=1'], 51 c_args: ['-DHAVE_GNUNET_MONOLITH=1'],
48 include_directories: [incdir, configuration_inc, exitdir]) 52 include_directories: [incdir, configuration_inc, exitdir])
diff --git a/src/service/messenger/Makefile.am b/src/service/messenger/Makefile.am
index d778d6e0c..c2ae65a08 100644
--- a/src/service/messenger/Makefile.am
+++ b/src/service/messenger/Makefile.am
@@ -10,19 +10,6 @@ pkgcfgdir= $(pkgdatadir)/config.d/
10 10
11libexecdir= $(pkglibdir)/libexec/ 11libexecdir= $(pkglibdir)/libexec/
12 12
13plugin_LTLIBRARIES = \
14 libgnunet_plugin_gnsrecord_messenger.la
15
16
17libgnunet_plugin_gnsrecord_messenger_la_SOURCES = \
18 plugin_gnsrecord_messenger.c
19libgnunet_plugin_gnsrecord_messenger_la_LIBADD = \
20 $(top_builddir)/src/lib/util/libgnunetutil.la \
21 $(LTLIBINTL)
22libgnunet_plugin_gnsrecord_messenger_la_LDFLAGS = \
23 $(GN_PLUGIN_LDFLAGS)
24
25
26pkgcfg_DATA = \ 13pkgcfg_DATA = \
27 messenger.conf 14 messenger.conf
28 15
diff --git a/src/service/messenger/meson.build b/src/service/messenger/meson.build
index a6de2f516..3c05d7760 100644
--- a/src/service/messenger/meson.build
+++ b/src/service/messenger/meson.build
@@ -55,14 +55,6 @@ libgnunetmessenger_dep = declare_dependency(link_with : libgnunetmessenger)
55pkg.generate(libgnunetmessenger, url: 'https://www.gnunet.org', 55pkg.generate(libgnunetmessenger, url: 'https://www.gnunet.org',
56 description : 'Provides API to access the GNUnet Messenger subsystem') 56 description : 'Provides API to access the GNUnet Messenger subsystem')
57 57
58shared_module('gnunet_plugin_gnsrecord_messenger',
59 ['plugin_gnsrecord_messenger.c'],
60 dependencies: [libgnunetutil_dep, libgnunetgnsrecord_dep,
61 libgnunetmessenger_dep],
62 include_directories: [incdir, configuration_inc],
63 install: true,
64 install_dir: get_option('libdir')/'gnunet')
65
66executable ('gnunet-service-messenger', 58executable ('gnunet-service-messenger',
67 gnunetservicemessenger_src, 59 gnunetservicemessenger_src,
68 dependencies: [libgnunetmessenger_dep, 60 dependencies: [libgnunetmessenger_dep,
diff --git a/src/service/namestore/meson.build b/src/service/namestore/meson.build
index 879eaef09..912b312fa 100644
--- a/src/service/namestore/meson.build
+++ b/src/service/namestore/meson.build
@@ -1,7 +1,5 @@
1libgnunetnamestore_src = ['namestore_api.c', 'namestore_api_monitor.c'] 1libgnunetnamestore_src = ['namestore_api.c', 'namestore_api_monitor.c']
2libgnunetpluginnamestore_sqlite_src = ['plugin_namestore_sqlite.c']
3 2
4gnunetnamestore_src = ['gnunet-namestore.c']
5gnunetservicenamestore_src = ['gnunet-service-namestore.c'] 3gnunetservicenamestore_src = ['gnunet-service-namestore.c']
6 4
7configure_file(input : 'namestore.conf.in', 5configure_file(input : 'namestore.conf.in',
diff --git a/src/service/peerstore/Makefile.am b/src/service/peerstore/Makefile.am
index 28948b7db..de301bbcf 100644
--- a/src/service/peerstore/Makefile.am
+++ b/src/service/peerstore/Makefile.am
@@ -51,63 +51,15 @@ libgnunetpeerstore_la_LDFLAGS = \
51 $(GN_LIBINTL) \ 51 $(GN_LIBINTL) \
52 $(GN_LIB_LDFLAGS) 52 $(GN_LIB_LDFLAGS)
53 53
54if HAVE_EXPERIMENTAL
55FLAT_PLUGIN = libgnunet_plugin_peerstore_flat.la
56FLAT_TESTS = test_plugin_peerstore_flat
57libgnunet_plugin_peerstore_flat_la_SOURCES = \
58 plugin_peerstore_flat.c
59libgnunet_plugin_peerstore_flat_la_LIBADD = \
60 libgnunetpeerstore.la \
61 $(top_builddir)/src/lib/util/libgnunetutil.la $(XLIBS) \
62 $(LTLIBINTL)
63libgnunet_plugin_peerstore_flat_la_LDFLAGS = \
64 $(GN_PLUGIN_LDFLAGS)
65endif
66
67if HAVE_SQLITE
68SQLITE_PLUGIN = libgnunet_plugin_peerstore_sqlite.la
69SQLITE_TESTS = test_plugin_peerstore_sqlite
70libgnunet_plugin_peerstore_sqlite_la_SOURCES = \
71 plugin_peerstore_sqlite.c
72libgnunet_plugin_peerstore_sqlite_la_LIBADD = \
73 libgnunetpeerstore.la \
74 $(top_builddir)/src/lib/sq/libgnunetsq.la \
75 $(top_builddir)/src/lib/util/libgnunetutil.la \
76 $(XLIBS) -lsqlite3 \
77 $(LTLIBINTL)
78libgnunet_plugin_peerstore_sqlite_la_LDFLAGS = \
79 $(GN_PLUGIN_LDFLAGS)
80endif
81
82plugin_LTLIBRARIES = \
83 $(SQLITE_PLUGIN) \
84 $(FLAT_PLUGIN)
85
86test_plugin_peerstore_sqlite_SOURCES = \
87 test_plugin_peerstore.c
88test_plugin_peerstore_sqlite_LDADD = \
89 $(top_builddir)/src/service/testing/libgnunettesting.la \
90 $(top_builddir)/src/lib/util/libgnunetutil.la
91
92test_plugin_peerstore_flat_SOURCES = \
93 test_plugin_peerstore.c
94test_plugin_peerstore_flat_LDADD = \
95 $(top_builddir)/src/service/testing/libgnunettesting.la \
96 $(top_builddir)/src/lib/util/libgnunetutil.la
97
98check_PROGRAMS = \ 54check_PROGRAMS = \
99 test_peerstore_api_store \ 55 test_peerstore_api_store \
100 test_peerstore_api_iterate \ 56 test_peerstore_api_iterate \
101 test_peerstore_api_watch \ 57 test_peerstore_api_watch \
102 test_peerstore_api_sync \ 58 test_peerstore_api_sync \
103 perf_peerstore_store \ 59 perf_peerstore_store
104 $(SQLITE_TESTS) \
105 $(FLAT_TESTS)
106 60
107EXTRA_DIST = \ 61EXTRA_DIST = \
108 test_peerstore_api_data.conf \ 62 test_peerstore_api_data.conf
109 test_plugin_peerstore_flat.conf \
110 test_plugin_peerstore_sqlite.conf
111 63
112if ENABLE_TEST_RUN 64if ENABLE_TEST_RUN
113AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME; 65AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
diff --git a/src/service/peerstore/meson.build b/src/service/peerstore/meson.build
index 7d8710c4b..db70b0b9e 100644
--- a/src/service/peerstore/meson.build
+++ b/src/service/peerstore/meson.build
@@ -28,16 +28,6 @@ pkg.generate(libgnunetpeerstore, url: 'https://www.gnunet.org',
28 description : 'Provides API for accessing the peerstore service') 28 description : 'Provides API for accessing the peerstore service')
29libgnunetpeerstore_dep = declare_dependency(link_with : libgnunetpeerstore) 29libgnunetpeerstore_dep = declare_dependency(link_with : libgnunetpeerstore)
30 30
31shared_module('gnunet_plugin_peerstore_sqlite',
32 ['plugin_peerstore_sqlite.c'],
33 dependencies: [libgnunetutil_dep,
34 libgnunetpeerstore_dep,
35 libgnunetsq_dep,
36 sqlite_dep],
37 include_directories: [incdir, configuration_inc],
38 install: true,
39 install_dir: get_option('libdir')/'gnunet')
40
41executable ('gnunet-service-peerstore', 31executable ('gnunet-service-peerstore',
42 gnunetservicepeerstore_src, 32 gnunetservicepeerstore_src,
43 dependencies: [libgnunetpeerstore_dep, 33 dependencies: [libgnunetpeerstore_dep,
diff --git a/src/service/regex/Makefile.am b/src/service/regex/Makefile.am
index 14cdb054b..255988889 100644
--- a/src/service/regex/Makefile.am
+++ b/src/service/regex/Makefile.am
@@ -31,27 +31,15 @@ REGEX_INTERNAL_TEST = \
31gnunet_service_regex_SOURCES = \ 31gnunet_service_regex_SOURCES = \
32 $(REGEX_INTERNAL) gnunet-service-regex.c 32 $(REGEX_INTERNAL) gnunet-service-regex.c
33gnunet_service_regex_LDADD = -lm \ 33gnunet_service_regex_LDADD = -lm \
34 libgnunetregexblock.la \ 34 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
35 $(top_builddir)/src/service/dht/libgnunetdht.la \ 35 $(top_builddir)/src/service/dht/libgnunetdht.la \
36 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 36 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
37 $(top_builddir)/src/lib/util/libgnunetutil.la \ 37 $(top_builddir)/src/lib/util/libgnunetutil.la \
38 $(GN_LIBINTL) 38 $(GN_LIBINTL)
39 39
40lib_LTLIBRARIES = \ 40lib_LTLIBRARIES = \
41 libgnunetregexblock.la \
42 libgnunetregex.la 41 libgnunetregex.la
43 42
44libgnunetregexblock_la_SOURCES = \
45 regex_block_lib.c regex_block_lib.h
46libgnunetregexblock_la_LIBADD = \
47 $(top_builddir)/src/lib/util/libgnunetutil.la \
48 $(XLIB) \
49 $(LTLIBINTL)
50libgnunetregexblock_la_LDFLAGS = \
51 $(GN_LIB_LDFLAGS) \
52 -version-info 1:0:0
53
54
55libgnunetregex_la_SOURCES = \ 43libgnunetregex_la_SOURCES = \
56 regex_api_announce.c \ 44 regex_api_announce.c \
57 regex_api_search.c \ 45 regex_api_search.c \
@@ -64,20 +52,6 @@ libgnunetregex_la_LDFLAGS = \
64 -version-info 3:1:0 52 -version-info 3:1:0
65 53
66 54
67plugin_LTLIBRARIES = \
68 libgnunet_plugin_block_regex.la
69
70libgnunet_plugin_block_regex_la_SOURCES = \
71 plugin_block_regex.c
72libgnunet_plugin_block_regex_la_LIBADD = \
73 libgnunetregexblock.la \
74 $(top_builddir)/src/lib/block/libgnunetblock.la \
75 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
76 $(top_builddir)/src/lib/util/libgnunetutil.la
77libgnunet_plugin_block_regex_la_LDFLAGS = \
78 $(GN_LIBINTL) \
79 $(GN_PLUGIN_LDFLAGS)
80
81# FIXME we phased out mysql. If we want to keep, needs rewrite 55# FIXME we phased out mysql. If we want to keep, needs rewrite
82#if HAVE_MYSQL 56#if HAVE_MYSQL
83#noinst_mysql_progs = \ 57#noinst_mysql_progs = \
@@ -100,7 +74,7 @@ perf_regex_SOURCES = \
100 $(REGEX_INTERNAL_TEST) perf-regex.c 74 $(REGEX_INTERNAL_TEST) perf-regex.c
101perf_regex_LDADD = -lm \ 75perf_regex_LDADD = -lm \
102 $(top_builddir)/src/service/dht/libgnunetdht.la \ 76 $(top_builddir)/src/service/dht/libgnunetdht.la \
103 libgnunetregexblock.la \ 77 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
104 $(top_builddir)/src/lib/util/libgnunetutil.la \ 78 $(top_builddir)/src/lib/util/libgnunetutil.la \
105 $(top_builddir)/src/service/statistics/libgnunetstatistics.la 79 $(top_builddir)/src/service/statistics/libgnunetstatistics.la
106perf_regex_LDFLAGS = \ 80perf_regex_LDFLAGS = \
@@ -110,7 +84,7 @@ gnunet_daemon_regexprofiler_SOURCES = \
110 $(REGEX_INTERNAL_TEST) gnunet-daemon-regexprofiler.c 84 $(REGEX_INTERNAL_TEST) gnunet-daemon-regexprofiler.c
111gnunet_daemon_regexprofiler_LDADD = -lm \ 85gnunet_daemon_regexprofiler_LDADD = -lm \
112 $(top_builddir)/src/service/dht/libgnunetdht.la \ 86 $(top_builddir)/src/service/dht/libgnunetdht.la \
113 libgnunetregexblock.la \ 87 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
114 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 88 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
115 $(top_builddir)/src/lib/util/libgnunetutil.la 89 $(top_builddir)/src/lib/util/libgnunetutil.la
116gnunet_daemon_regexprofiler_LDFLAGS = \ 90gnunet_daemon_regexprofiler_LDFLAGS = \
@@ -133,7 +107,7 @@ test_regex_eval_api_SOURCES = \
133 $(REGEX_INTERNAL_TEST) test_regex_eval_api.c 107 $(REGEX_INTERNAL_TEST) test_regex_eval_api.c
134test_regex_eval_api_LDADD = -lm \ 108test_regex_eval_api_LDADD = -lm \
135 $(top_builddir)/src/service/dht/libgnunetdht.la \ 109 $(top_builddir)/src/service/dht/libgnunetdht.la \
136 libgnunetregexblock.la \ 110 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
137 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 111 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
138 $(top_builddir)/src/lib/util/libgnunetutil.la 112 $(top_builddir)/src/lib/util/libgnunetutil.la
139 113
@@ -154,7 +128,7 @@ test_regex_api_LDADD = -lm \
154test_regex_iterate_api_SOURCES = \ 128test_regex_iterate_api_SOURCES = \
155 $(REGEX_INTERNAL) test_regex_iterate_api.c 129 $(REGEX_INTERNAL) test_regex_iterate_api.c
156test_regex_iterate_api_LDADD = -lm \ 130test_regex_iterate_api_LDADD = -lm \
157 libgnunetregexblock.la \ 131 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
158 $(top_builddir)/src/service/dht/libgnunetdht.la \ 132 $(top_builddir)/src/service/dht/libgnunetdht.la \
159 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 133 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
160 $(top_builddir)/src/lib/util/libgnunetutil.la 134 $(top_builddir)/src/lib/util/libgnunetutil.la
@@ -163,7 +137,7 @@ test_regex_proofs_SOURCES = \
163 $(REGEX_INTERNAL_TEST) test_regex_proofs.c 137 $(REGEX_INTERNAL_TEST) test_regex_proofs.c
164test_regex_proofs_LDADD = -lm \ 138test_regex_proofs_LDADD = -lm \
165 $(top_builddir)/src/service/dht/libgnunetdht.la \ 139 $(top_builddir)/src/service/dht/libgnunetdht.la \
166 libgnunetregexblock.la \ 140 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
167 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 141 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
168 $(top_builddir)/src/lib/util/libgnunetutil.la 142 $(top_builddir)/src/lib/util/libgnunetutil.la
169 143
@@ -171,7 +145,7 @@ test_regex_graph_api_SOURCES = \
171 $(REGEX_INTERNAL_TEST) test_regex_graph_api.c 145 $(REGEX_INTERNAL_TEST) test_regex_graph_api.c
172test_regex_graph_api_LDADD = -lm \ 146test_regex_graph_api_LDADD = -lm \
173 $(top_builddir)/src/service/dht/libgnunetdht.la \ 147 $(top_builddir)/src/service/dht/libgnunetdht.la \
174 libgnunetregexblock.la \ 148 $(top_builddir)/src/plugin/regex/libgnunetregexblock.la \
175 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 149 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
176 $(top_builddir)/src/lib/util/libgnunetutil.la 150 $(top_builddir)/src/lib/util/libgnunetutil.la
177 151
diff --git a/src/service/regex/meson.build b/src/service/regex/meson.build
index da607ca47..3c25a5148 100644
--- a/src/service/regex/meson.build
+++ b/src/service/regex/meson.build
@@ -1,7 +1,5 @@
1libgnunetregex_src = ['regex_api_announce.c', 1libgnunetregex_src = ['regex_api_announce.c',
2 'regex_api_search.c'] 2 'regex_api_search.c']
3libgnunetregexblock_src = ['regex_block_lib.c']
4
5gnunetserviceregex_src = ['gnunet-service-regex.c', 3gnunetserviceregex_src = ['gnunet-service-regex.c',
6 'regex_internal_dht.c', 4 'regex_internal_dht.c',
7 'regex_internal.c'] 5 'regex_internal.c']
@@ -14,7 +12,7 @@ configure_file(input : 'regex.conf.in',
14 12
15 13
16if get_option('monolith') 14if get_option('monolith')
17 foreach p : libgnunetregex_src + libgnunetregexblock_src + gnunetserviceregex_src 15 foreach p : libgnunetregex_src + gnunetserviceregex_src
18 gnunet_src += 'regex/' + p 16 gnunet_src += 'regex/' + p
19 endforeach 17 endforeach
20endif 18endif
@@ -30,26 +28,6 @@ libgnunetregex = library('gnunetregex',
30pkg.generate(libgnunetregex, url: 'https://www.gnunet.org', 28pkg.generate(libgnunetregex, url: 'https://www.gnunet.org',
31 description : 'Provides API for accessing the regex service') 29 description : 'Provides API for accessing the regex service')
32libgnunetregex_dep = declare_dependency(link_with : libgnunetregex) 30libgnunetregex_dep = declare_dependency(link_with : libgnunetregex)
33libgnunetregexblock = library('gnunetregexblock',
34 libgnunetregexblock_src,
35 soversion: '1',
36 version: '1.0.0',
37 dependencies: libgnunetutil_dep,
38 include_directories: [incdir, configuration_inc],
39 install: true,
40 install_dir: get_option('libdir'))
41libgnunetregexblock_dep = declare_dependency(link_with : libgnunetregexblock)
42
43shared_module('gnunet_plugin_block_regex',
44 ['plugin_block_regex.c'],
45 dependencies: [libgnunetutil_dep,
46 libgnunetregexblock_dep,
47 libgnunetblock_dep,
48 libgnunetblockgroup_dep],
49 include_directories: [incdir, configuration_inc],
50 install:true,
51 install_dir: get_option('libdir')/'gnunet')
52
53 31
54executable ('gnunet-service-regex', 32executable ('gnunet-service-regex',
55 gnunetserviceregex_src, 33 gnunetserviceregex_src,
diff --git a/src/service/regex/regex_internal_dht.c b/src/service/regex/regex_internal_dht.c
index bda979edb..9850f106f 100644
--- a/src/service/regex/regex_internal_dht.c
+++ b/src/service/regex/regex_internal_dht.c
@@ -25,7 +25,6 @@
25 */ 25 */
26#include "platform.h" 26#include "platform.h"
27#include "regex_internal_lib.h" 27#include "regex_internal_lib.h"
28#include "regex_block_lib.h"
29#include "gnunet_dht_service.h" 28#include "gnunet_dht_service.h"
30#include "gnunet_statistics_service.h" 29#include "gnunet_statistics_service.h"
31#include "gnunet_constants.h" 30#include "gnunet_constants.h"
diff --git a/src/service/regex/regex_internal_lib.h b/src/service/regex/regex_internal_lib.h
index 9baf84995..bfa3fc97d 100644
--- a/src/service/regex/regex_internal_lib.h
+++ b/src/service/regex/regex_internal_lib.h
@@ -29,7 +29,7 @@
29#include "gnunet_util_lib.h" 29#include "gnunet_util_lib.h"
30#include "gnunet_dht_service.h" 30#include "gnunet_dht_service.h"
31#include "gnunet_statistics_service.h" 31#include "gnunet_statistics_service.h"
32#include "regex_block_lib.h" 32#include "../../plugin/regex/regex_block_lib.h"
33 33
34#ifdef __cplusplus 34#ifdef __cplusplus
35extern "C" 35extern "C"
diff --git a/src/service/rest/Makefile.am b/src/service/rest/Makefile.am
index 401be36f4..60769e366 100644
--- a/src/service/rest/Makefile.am
+++ b/src/service/rest/Makefile.am
@@ -24,10 +24,35 @@ libexec_PROGRAMS = \
24EXTRA_DIST = \ 24EXTRA_DIST = \
25 rest.conf 25 rest.conf
26 26
27if HAVE_JOSE
28OPENID_PLUGIN = \
29 openid_plugin.c \
30 oidc_helper.c
31OPENID_JOSE_LIBS = -ljose
32endif
33
27gnunet_rest_server_SOURCES = \ 34gnunet_rest_server_SOURCES = \
28 gnunet-rest-server.c 35 gnunet-rest-server.c \
36 config_plugin.c \
37 copying_plugin.c \
38 identity_plugin.c \
39 namestore_plugin.c \
40 gns_plugin.c \
41 $(OPENID_PLUGIN) \
42 reclaim_plugin.c json_reclaim.c
29gnunet_rest_server_LDADD = \ 43gnunet_rest_server_LDADD = \
30 $(top_builddir)/src/lib/util/libgnunetutil.la \ 44 $(top_builddir)/src/lib/util/libgnunetutil.la \
45 $(top_builddir)/src/lib/json/libgnunetjson.la \
46 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
47 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecordjson.la \
48 $(top_builddir)/src/service/identity/libgnunetidentity.la \
49 $(top_builddir)/src/service/namestore/libgnunetnamestore.la \
50 $(top_builddir)/src/service/gns/libgnunetgns.la \
51 $(top_builddir)/src/service/reclaim/libgnunetreclaim.la \
52 libgnunetrest.la \
53 $(OPENID_JOSE_LIBS) \
54 -ljansson \
55 $(LIBGCRYPT_LIBS) \
31 $(GN_LIBINTL) $(MHD_LIBS) 56 $(GN_LIBINTL) $(MHD_LIBS)
32gnunet_rest_server_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS) 57gnunet_rest_server_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
33 58
diff --git a/src/rest-plugin/rest/plugin_rest_config.c b/src/service/rest/config_plugin.c
index 826188702..fd0ac011a 100644
--- a/src/rest-plugin/rest/plugin_rest_config.c
+++ b/src/service/rest/config_plugin.c
@@ -40,7 +40,7 @@ struct Plugin
40 const struct GNUNET_CONFIGURATION_Handle *cfg; 40 const struct GNUNET_CONFIGURATION_Handle *cfg;
41}; 41};
42 42
43const struct GNUNET_CONFIGURATION_Handle *cfg; 43const struct GNUNET_CONFIGURATION_Handle *config_cfg;
44 44
45struct RequestHandle 45struct RequestHandle
46{ 46{
@@ -78,6 +78,7 @@ struct RequestHandle
78 * The URL 78 * The URL
79 */ 79 */
80 char *url; 80 char *url;
81
81}; 82};
82 83
83/** 84/**
@@ -184,13 +185,13 @@ get_cont (struct GNUNET_REST_RequestHandle *con_handle,
184 if (strlen (GNUNET_REST_API_NS_CONFIG) == strlen (handle->url)) 185 if (strlen (GNUNET_REST_API_NS_CONFIG) == strlen (handle->url))
185 { 186 {
186 result = json_object (); 187 result = json_object ();
187 GNUNET_CONFIGURATION_iterate (cfg, &add_sections, result); 188 GNUNET_CONFIGURATION_iterate (config_cfg, &add_sections, result);
188 } 189 }
189 else 190 else
190 { 191 {
191 result = json_object (); 192 result = json_object ();
192 section = &handle->url[strlen (GNUNET_REST_API_NS_CONFIG) + 1]; 193 section = &handle->url[strlen (GNUNET_REST_API_NS_CONFIG) + 1];
193 GNUNET_CONFIGURATION_iterate_section_values (cfg, 194 GNUNET_CONFIGURATION_iterate_section_values (config_cfg,
194 section, 195 section,
195 &add_section_contents, 196 &add_section_contents,
196 result); 197 result);
@@ -243,7 +244,7 @@ set_cont (struct GNUNET_REST_RequestHandle *con_handle,
243{ 244{
244 struct RequestHandle *handle = cls; 245 struct RequestHandle *handle = cls;
245 char term_data[handle->rest_handle->data_size + 1]; 246 char term_data[handle->rest_handle->data_size + 1];
246 struct GNUNET_CONFIGURATION_Handle *out = GNUNET_CONFIGURATION_dup (cfg); 247 struct GNUNET_CONFIGURATION_Handle *out = GNUNET_CONFIGURATION_dup (config_cfg);
247 248
248 json_error_t err; 249 json_error_t err;
249 json_t *data_json; 250 json_t *data_json;
@@ -330,7 +331,7 @@ set_cont (struct GNUNET_REST_RequestHandle *con_handle,
330 cfg_fn = GNUNET_strdup (GNUNET_OS_project_data_get ()->user_config_file); 331 cfg_fn = GNUNET_strdup (GNUNET_OS_project_data_get ()->user_config_file);
331 332
332 GNUNET_CONFIGURATION_write (out, cfg_fn); 333 GNUNET_CONFIGURATION_write (out, cfg_fn);
333 cfg = out; 334 config_cfg = out;
334 handle->proc (handle->proc_cls, 335 handle->proc (handle->proc_cls,
335 GNUNET_REST_create_response (NULL), 336 GNUNET_REST_create_response (NULL),
336 MHD_HTTP_OK); 337 MHD_HTTP_OK);
@@ -361,19 +362,9 @@ options_cont (struct GNUNET_REST_RequestHandle *con_handle,
361} 362}
362 363
363 364
364/** 365enum GNUNET_GenericReturnValue
365 * Function processing the REST call 366REST_config_process_request (void *plugin,
366 * 367 struct GNUNET_REST_RequestHandle *conndata_handle,
367 * @param method HTTP method
368 * @param url URL of the HTTP request
369 * @param data body of the HTTP request (optional)
370 * @param data_size length of the body
371 * @param proc callback function for the result
372 * @param proc_cls closure for @a proc
373 * @return #GNUNET_OK if request accepted
374 */
375static enum GNUNET_GenericReturnValue
376rest_config_process_request (struct GNUNET_REST_RequestHandle *conndata_handle,
377 GNUNET_REST_ResultProcessor proc, 368 GNUNET_REST_ResultProcessor proc,
378 void *proc_cls) 369 void *proc_cls)
379{ 370{
@@ -383,6 +374,7 @@ rest_config_process_request (struct GNUNET_REST_RequestHandle *conndata_handle,
383 { MHD_HTTP_METHOD_OPTIONS, GNUNET_REST_API_NS_CONFIG, &options_cont }, 374 { MHD_HTTP_METHOD_OPTIONS, GNUNET_REST_API_NS_CONFIG, &options_cont },
384 GNUNET_REST_HANDLER_END 375 GNUNET_REST_HANDLER_END
385 }; 376 };
377 (void) plugin;
386 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 378 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
387 struct GNUNET_REST_RequestHandlerError err; 379 struct GNUNET_REST_RequestHandlerError err;
388 380
@@ -404,6 +396,19 @@ rest_config_process_request (struct GNUNET_REST_RequestHandle *conndata_handle,
404 return GNUNET_YES; 396 return GNUNET_YES;
405} 397}
406 398
399void
400REST_config_done (struct GNUNET_REST_Plugin *api)
401{
402 struct Plugin *plugin;
403
404 while (NULL != requests_head)
405 cleanup_handle (requests_head);
406 plugin = api->cls;
407 plugin->cfg = NULL;
408 GNUNET_free (api);
409 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONFIG REST plugin is finished\n");
410}
411
407 412
408/** 413/**
409 * Entry point for the plugin. 414 * Entry point for the plugin.
@@ -412,44 +417,22 @@ rest_config_process_request (struct GNUNET_REST_RequestHandle *conndata_handle,
412 * @return NULL on error, otherwise the plugin context 417 * @return NULL on error, otherwise the plugin context
413 */ 418 */
414void * 419void *
415libgnunet_plugin_rest_config_init (void *cls) 420REST_config_init (const struct GNUNET_CONFIGURATION_Handle *c)
416{ 421{
417 static struct Plugin plugin; 422 static struct Plugin plugin;
418 423
419 cfg = cls; 424 config_cfg = c;
420 struct GNUNET_REST_Plugin *api; 425 struct GNUNET_REST_Plugin *api;
421 426
422 memset (&plugin, 0, sizeof(struct Plugin)); 427 memset (&plugin, 0, sizeof(struct Plugin));
423 plugin.cfg = cfg; 428 plugin.cfg = c;
424 api = GNUNET_new (struct GNUNET_REST_Plugin); 429 api = GNUNET_new (struct GNUNET_REST_Plugin);
425 api->cls = &plugin; 430 api->cls = &plugin;
426 api->name = GNUNET_REST_API_NS_CONFIG; 431 api->name = GNUNET_REST_API_NS_CONFIG;
427 api->process_request = &rest_config_process_request;
428 GNUNET_log (GNUNET_ERROR_TYPE_INFO, _ ("CONFIG REST API initialized\n")); 432 GNUNET_log (GNUNET_ERROR_TYPE_INFO, _ ("CONFIG REST API initialized\n"));
429 return api; 433 return api;
430} 434}
431 435
432 436
433/**
434 * Exit point from the plugin.
435 *
436 * @param cls the plugin context (as returned by "init")
437 * @return always NULL
438 */
439void *
440libgnunet_plugin_rest_config_done (void *cls)
441{
442 struct GNUNET_REST_Plugin *api = cls;
443 struct Plugin *plugin;
444
445 while (NULL != requests_head)
446 cleanup_handle (requests_head);
447 plugin = api->cls;
448 plugin->cfg = NULL;
449 GNUNET_free (api);
450 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "CONFIG REST plugin is finished\n");
451 return NULL;
452}
453
454 437
455/* end of plugin_rest_config.c */ 438/* end of plugin_rest_config.c */
diff --git a/src/service/rest/config_plugin.h b/src/service/rest/config_plugin.h
new file mode 100644
index 000000000..c959a94f2
--- /dev/null
+++ b/src/service/rest/config_plugin.h
@@ -0,0 +1,37 @@
1#include "platform.h"
2#include "gnunet_util_lib.h"
3#include "gnunet_rest_plugin.h"
4
5/**
6 * Function processing the REST call
7 *
8 * @param method HTTP method
9 * @param url URL of the HTTP request
10 * @param data body of the HTTP request (optional)
11 * @param data_size length of the body
12 * @param proc callback function for the result
13 * @param proc_cls closure for @a proc
14 * @return #GNUNET_OK if request accepted
15 */
16enum GNUNET_GenericReturnValue
17REST_config_process_request (void *plugin,
18 struct GNUNET_REST_RequestHandle *conndata_handle,
19 GNUNET_REST_ResultProcessor proc,
20 void *proc_cls);
21
22/**
23 * Entry point for the plugin.
24 *
25 */
26void *
27REST_config_init (const struct GNUNET_CONFIGURATION_Handle *cfg);
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_config_done (struct GNUNET_REST_Plugin *api);
37
diff --git a/src/rest-plugin/rest/plugin_rest_copying.c b/src/service/rest/copying_plugin.c
index 52783a81a..d907f6729 100644
--- a/src/rest-plugin/rest/plugin_rest_copying.c
+++ b/src/service/rest/copying_plugin.c
@@ -31,7 +31,7 @@
31#define GNUNET_REST_API_NS_COPYING "/copying" 31#define GNUNET_REST_API_NS_COPYING "/copying"
32 32
33#define GNUNET_REST_COPYING_TEXT \ 33#define GNUNET_REST_COPYING_TEXT \
34 "GNU Affero General Public License version 3 or later. See also: <http://www.gnu.org/licenses/>" 34 "GNU Affero General Public License version 3 or later. See also: <http://www.gnu.org/licenses/>"
35 35
36/** 36/**
37 * @brief struct returned by the initialization function of the plugin 37 * @brief struct returned by the initialization function of the plugin
@@ -41,8 +41,6 @@ struct Plugin
41 const struct GNUNET_CONFIGURATION_Handle *cfg; 41 const struct GNUNET_CONFIGURATION_Handle *cfg;
42}; 42};
43 43
44const struct GNUNET_CONFIGURATION_Handle *cfg;
45
46struct RequestHandle 44struct RequestHandle
47{ 45{
48 /** 46 /**
@@ -159,8 +157,9 @@ options_cont (struct GNUNET_REST_RequestHandle *con_handle,
159 * @param proc_cls closure for @a proc 157 * @param proc_cls closure for @a proc
160 * @return #GNUNET_OK if request accepted 158 * @return #GNUNET_OK if request accepted
161 */ 159 */
162static enum GNUNET_GenericReturnValue 160enum GNUNET_GenericReturnValue
163rest_copying_process_request (struct GNUNET_REST_RequestHandle *conndata_handle, 161REST_copying_process_request (void *plugin,
162 struct GNUNET_REST_RequestHandle *conndata_handle,
164 GNUNET_REST_ResultProcessor proc, 163 GNUNET_REST_ResultProcessor proc,
165 void *proc_cls) 164 void *proc_cls)
166{ 165{
@@ -191,22 +190,20 @@ rest_copying_process_request (struct GNUNET_REST_RequestHandle *conndata_handle,
191 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*" 190 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
192 * @return NULL on error, otherwise the plugin context 191 * @return NULL on error, otherwise the plugin context
193 */ 192 */
194void * 193void*
195libgnunet_plugin_rest_copying_init (void *cls) 194REST_copying_init (const struct GNUNET_CONFIGURATION_Handle *c)
196{ 195{
197 static struct Plugin plugin; 196 static struct Plugin plugin;
198 197
199 cfg = cls;
200 struct GNUNET_REST_Plugin *api; 198 struct GNUNET_REST_Plugin *api;
201 199
202 if (NULL != plugin.cfg) 200 if (NULL != plugin.cfg)
203 return NULL; /* can only initialize once! */ 201 return NULL; /* can only initialize once! */
204 memset (&plugin, 0, sizeof(struct Plugin)); 202 memset (&plugin, 0, sizeof(struct Plugin));
205 plugin.cfg = cfg; 203 plugin.cfg = c;
206 api = GNUNET_new (struct GNUNET_REST_Plugin); 204 api = GNUNET_new (struct GNUNET_REST_Plugin);
207 api->cls = &plugin; 205 api->cls = &plugin;
208 api->name = GNUNET_REST_API_NS_COPYING; 206 api->name = GNUNET_REST_API_NS_COPYING;
209 api->process_request = &rest_copying_process_request;
210 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 207 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
211 _ ("COPYING REST API initialized\n")); 208 _ ("COPYING REST API initialized\n"));
212 return api; 209 return api;
@@ -219,10 +216,9 @@ libgnunet_plugin_rest_copying_init (void *cls)
219 * @param cls the plugin context (as returned by "init") 216 * @param cls the plugin context (as returned by "init")
220 * @return always NULL 217 * @return always NULL
221 */ 218 */
222void * 219void
223libgnunet_plugin_rest_copying_done (void *cls) 220REST_copying_done (struct GNUNET_REST_Plugin *api)
224{ 221{
225 struct GNUNET_REST_Plugin *api = cls;
226 struct Plugin *plugin = api->cls; 222 struct Plugin *plugin = api->cls;
227 223
228 while (NULL != requests_head) 224 while (NULL != requests_head)
@@ -231,7 +227,6 @@ libgnunet_plugin_rest_copying_done (void *cls)
231 GNUNET_free (api); 227 GNUNET_free (api);
232 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 228 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
233 "COPYING REST plugin is finished\n"); 229 "COPYING REST plugin is finished\n");
234 return NULL;
235} 230}
236 231
237 232
diff --git a/src/service/rest/copying_plugin.h b/src/service/rest/copying_plugin.h
new file mode 100644
index 000000000..4ba1a2e36
--- /dev/null
+++ b/src/service/rest/copying_plugin.h
@@ -0,0 +1,36 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_copying_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *conndata_handle,
16 GNUNET_REST_ResultProcessor proc,
17 void *proc_cls);
18
19/**
20 * Entry point for the plugin.
21 *
22 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
23 * @return NULL on error, otherwise the plugin context
24 */
25void*
26REST_copying_init (const struct GNUNET_CONFIGURATION_Handle *c);
27
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_copying_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/rest-plugin/gns/plugin_rest_gns.c b/src/service/rest/gns_plugin.c
index 659b77493..0ea89d0cd 100644
--- a/src/rest-plugin/gns/plugin_rest_gns.c
+++ b/src/service/rest/gns_plugin.c
@@ -56,7 +56,7 @@
56/** 56/**
57 * The configuration handle 57 * The configuration handle
58 */ 58 */
59const struct GNUNET_CONFIGURATION_Handle *cfg; 59const struct GNUNET_CONFIGURATION_Handle *gns_cfg;
60 60
61/** 61/**
62 * HTTP methods allows for this plugin 62 * HTTP methods allows for this plugin
@@ -221,7 +221,7 @@ do_error (void *cls)
221 handle->proc (handle->proc_cls, resp, handle->response_code); 221 handle->proc (handle->proc_cls, resp, handle->response_code);
222 json_decref (json_error); 222 json_decref (json_error);
223 GNUNET_free (response); 223 GNUNET_free (response);
224 cleanup_handle(handle); 224 cleanup_handle (handle);
225} 225}
226 226
227 227
@@ -265,7 +265,8 @@ handle_gns_response (void *cls,
265 return; 265 return;
266 } 266 }
267 267
268 result_obj = GNUNET_GNSRECORD_JSON_from_gnsrecord (handle->name, rd, rd_count); 268 result_obj = GNUNET_GNSRECORD_JSON_from_gnsrecord (handle->name, rd,
269 rd_count);
269 270
270 result = json_dumps (result_obj, 0); 271 result = json_dumps (result_obj, 0);
271 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Result %s\n", result); 272 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Result %s\n", result);
@@ -381,10 +382,11 @@ options_cont (struct GNUNET_REST_RequestHandle *con_handle,
381 * @param proc_cls closure for callback function 382 * @param proc_cls closure for callback function
382 * @return GNUNET_OK if request accepted 383 * @return GNUNET_OK if request accepted
383 */ 384 */
384static enum GNUNET_GenericReturnValue 385enum GNUNET_GenericReturnValue
385rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle, 386REST_gns_process_request (void *plugin,
386 GNUNET_REST_ResultProcessor proc, 387 struct GNUNET_REST_RequestHandle *rest_handle,
387 void *proc_cls) 388 GNUNET_REST_ResultProcessor proc,
389 void *proc_cls)
388{ 390{
389 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 391 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
390 struct GNUNET_REST_RequestHandlerError err; 392 struct GNUNET_REST_RequestHandlerError err;
@@ -426,18 +428,17 @@ rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
426 * @return NULL on error, otherwise the plugin context 428 * @return NULL on error, otherwise the plugin context
427 */ 429 */
428void * 430void *
429libgnunet_plugin_rest_gns_init (void *cls) 431REST_gns_init (const struct GNUNET_CONFIGURATION_Handle *c)
430{ 432{
431 static struct Plugin plugin; 433 static struct Plugin plugin;
432 struct GNUNET_REST_Plugin *api; 434 struct GNUNET_REST_Plugin *api;
433 435
434 cfg = cls; 436 gns_cfg = c;
435 memset (&plugin, 0, sizeof(struct Plugin)); 437 memset (&plugin, 0, sizeof(struct Plugin));
436 plugin.cfg = cfg; 438 plugin.cfg = gns_cfg;
437 api = GNUNET_new (struct GNUNET_REST_Plugin); 439 api = GNUNET_new (struct GNUNET_REST_Plugin);
438 api->cls = &plugin; 440 api->cls = &plugin;
439 api->name = GNUNET_REST_API_NS_GNS; 441 api->name = GNUNET_REST_API_NS_GNS;
440 api->process_request = &rest_process_request;
441 GNUNET_asprintf (&allow_methods, 442 GNUNET_asprintf (&allow_methods,
442 "%s, %s, %s, %s, %s", 443 "%s, %s, %s, %s, %s",
443 MHD_HTTP_METHOD_GET, 444 MHD_HTTP_METHOD_GET,
@@ -445,7 +446,7 @@ libgnunet_plugin_rest_gns_init (void *cls)
445 MHD_HTTP_METHOD_PUT, 446 MHD_HTTP_METHOD_PUT,
446 MHD_HTTP_METHOD_DELETE, 447 MHD_HTTP_METHOD_DELETE,
447 MHD_HTTP_METHOD_OPTIONS); 448 MHD_HTTP_METHOD_OPTIONS);
448 gns = GNUNET_GNS_connect (cfg); 449 gns = GNUNET_GNS_connect (gns_cfg);
449 450
450 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ ("Gns REST API initialized\n")); 451 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ ("Gns REST API initialized\n"));
451 return api; 452 return api;
@@ -459,7 +460,7 @@ libgnunet_plugin_rest_gns_init (void *cls)
459 * @return always NULL 460 * @return always NULL
460 */ 461 */
461void * 462void *
462libgnunet_plugin_rest_gns_done (void *cls) 463REST_gns_done (void *cls)
463{ 464{
464 struct GNUNET_REST_Plugin *api = cls; 465 struct GNUNET_REST_Plugin *api = cls;
465 struct RequestHandle *request; 466 struct RequestHandle *request;
diff --git a/src/service/rest/gns_plugin.h b/src/service/rest/gns_plugin.h
new file mode 100644
index 000000000..13878c139
--- /dev/null
+++ b/src/service/rest/gns_plugin.h
@@ -0,0 +1,36 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_gns_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *conndata_handle,
16 GNUNET_REST_ResultProcessor proc,
17 void *proc_cls);
18
19/**
20 * Entry point for the plugin.
21 *
22 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
23 * @return NULL on error, otherwise the plugin context
24 */
25void*
26REST_gns_init (const struct GNUNET_CONFIGURATION_Handle *c);
27
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_gns_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/service/rest/gnunet-rest-server.c b/src/service/rest/gnunet-rest-server.c
index 5163c2271..ce81704ae 100644
--- a/src/service/rest/gnunet-rest-server.c
+++ b/src/service/rest/gnunet-rest-server.c
@@ -29,6 +29,16 @@
29#include "gnunet_rest_plugin.h" 29#include "gnunet_rest_plugin.h"
30#include "gnunet_mhd_compat.h" 30#include "gnunet_mhd_compat.h"
31 31
32#include "config_plugin.h"
33#include "copying_plugin.h"
34#include "identity_plugin.h"
35#include "namestore_plugin.h"
36#include "gns_plugin.h"
37#ifdef HAVE_JOSE
38#include "openid_plugin.h"
39#endif
40#include "reclaim_plugin.h"
41
32/** 42/**
33 * Default Socks5 listen port. 43 * Default Socks5 listen port.
34 */ 44 */
@@ -54,7 +64,7 @@
54 * After how long do we clean up unused MHD SSL/TLS instances? 64 * After how long do we clean up unused MHD SSL/TLS instances?
55 */ 65 */
56#define MHD_CACHE_TIMEOUT \ 66#define MHD_CACHE_TIMEOUT \
57 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5) 67 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5)
58 68
59#define GN_REST_STATE_INIT 0 69#define GN_REST_STATE_INIT 0
60#define GN_REST_STATE_PROCESSING 1 70#define GN_REST_STATE_PROCESSING 1
@@ -178,7 +188,12 @@ struct PluginListEntry
178 /** 188 /**
179 * The plugin 189 * The plugin
180 */ 190 */
181 struct GNUNET_REST_Plugin *plugin; 191 void *plugin;
192
193 /**
194 * Request function
195 */
196 GNUNET_REST_ProcessingFunction process_request;
182}; 197};
183 198
184/** 199/**
@@ -240,6 +255,21 @@ static struct AcceptedRequest *req_list_head;
240 */ 255 */
241static struct AcceptedRequest *req_list_tail; 256static struct AcceptedRequest *req_list_tail;
242 257
258
259/**
260 * plugins
261 */
262
263struct GNUNET_REST_Plugin *config_plugin;
264struct GNUNET_REST_Plugin *copying_plugin;
265struct GNUNET_REST_Plugin *identity_plugin;
266struct GNUNET_REST_Plugin *namestore_plugin;
267struct GNUNET_REST_Plugin *gns_plugin;
268#ifdef HAVE_JOSE
269struct GNUNET_REST_Plugin *openid_plugin;
270#endif
271struct GNUNET_REST_Plugin *reclaim_plugin;
272
243/* ************************* Global helpers ********************* */ 273/* ************************* Global helpers ********************* */
244 274
245 275
@@ -294,6 +324,7 @@ cleanup_url_map (void *cls, const struct GNUNET_HashCode *key, void *value)
294 return GNUNET_YES; 324 return GNUNET_YES;
295} 325}
296 326
327
297static void 328static void
298cleanup_handle (struct MhdConnectionHandle *handle) 329cleanup_handle (struct MhdConnectionHandle *handle)
299{ 330{
@@ -323,6 +354,7 @@ cleanup_handle (struct MhdConnectionHandle *handle)
323 GNUNET_free (handle); 354 GNUNET_free (handle);
324} 355}
325 356
357
326static void 358static void
327cleanup_ar (struct AcceptedRequest *ar) 359cleanup_ar (struct AcceptedRequest *ar)
328{ 360{
@@ -334,7 +366,8 @@ cleanup_ar (struct AcceptedRequest *ar)
334 { 366 {
335 GNUNET_NETWORK_socket_free_memory_only_ (ar->sock); 367 GNUNET_NETWORK_socket_free_memory_only_ (ar->sock);
336 } 368 }
337 else { 369 else
370 {
338 GNUNET_NETWORK_socket_close (ar->sock); 371 GNUNET_NETWORK_socket_close (ar->sock);
339 } 372 }
340 ar->sock = NULL; 373 ar->sock = NULL;
@@ -344,6 +377,7 @@ cleanup_ar (struct AcceptedRequest *ar)
344 GNUNET_free (ar); 377 GNUNET_free (ar);
345} 378}
346 379
380
347static int 381static int
348header_iterator (void *cls, 382header_iterator (void *cls,
349 enum MHD_ValueKind kind, 383 enum MHD_ValueKind kind,
@@ -561,9 +595,10 @@ create_response (void *cls,
561 con_handle->state = GN_REST_STATE_PROCESSING; 595 con_handle->state = GN_REST_STATE_PROCESSING;
562 for (ple = plugins_head; NULL != ple; ple = ple->next) 596 for (ple = plugins_head; NULL != ple; ple = ple->next)
563 { 597 {
564 if (GNUNET_YES == ple->plugin->process_request (rest_conndata_handle, 598 if (GNUNET_YES == ple->process_request (ple->plugin,
565 &plugin_callback, 599 rest_conndata_handle,
566 con_handle)) 600 &plugin_callback,
601 con_handle))
567 break; /* Request handled */ 602 break; /* Request handled */
568 } 603 }
569 if (NULL == ple) 604 if (NULL == ple)
@@ -603,8 +638,8 @@ create_response (void *cls,
603 strlen ("chrome-extension://")))) 638 strlen ("chrome-extension://"))))
604 { 639 {
605 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response, 640 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response,
606 MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, 641 MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
607 origin)); 642 origin));
608 } 643 }
609 } 644 }
610 if (NULL != allow_origins) 645 if (NULL != allow_origins)
@@ -615,9 +650,10 @@ create_response (void *cls,
615 { 650 {
616 if (0 == strncmp (allow_origin, origin, strlen (allow_origin))) 651 if (0 == strncmp (allow_origin, origin, strlen (allow_origin)))
617 { 652 {
618 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response, 653 GNUNET_assert (MHD_NO != MHD_add_response_header (
619 MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, 654 con_handle->response,
620 allow_origin)); 655 MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN,
656 allow_origin));
621 break; 657 break;
622 } 658 }
623 allow_origin = strtok (NULL, ","); 659 allow_origin = strtok (NULL, ",");
@@ -628,14 +664,14 @@ create_response (void *cls,
628 if (NULL != allow_credentials) 664 if (NULL != allow_credentials)
629 { 665 {
630 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response, 666 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response,
631 "Access-Control-Allow-Credentials", 667 "Access-Control-Allow-Credentials",
632 allow_credentials)); 668 allow_credentials));
633 } 669 }
634 if (NULL != allow_headers) 670 if (NULL != allow_headers)
635 { 671 {
636 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response, 672 GNUNET_assert (MHD_NO != MHD_add_response_header (con_handle->response,
637 "Access-Control-Allow-Headers", 673 "Access-Control-Allow-Headers",
638 allow_headers)); 674 allow_headers));
639 } 675 }
640 run_mhd_now (); 676 run_mhd_now ();
641 { 677 {
@@ -757,6 +793,7 @@ schedule_httpd ()
757 GNUNET_NETWORK_fdset_destroy (wws); 793 GNUNET_NETWORK_fdset_destroy (wws);
758} 794}
759 795
796
760/** 797/**
761 * Function called when MHD first processes an incoming connection. 798 * Function called when MHD first processes an incoming connection.
762 * Gives us the respective URI information. 799 * Gives us the respective URI information.
@@ -791,7 +828,6 @@ mhd_log_callback (void *cls,
791} 828}
792 829
793 830
794
795/** 831/**
796 * Function called when MHD decides that we are done with a connection. 832 * Function called when MHD decides that we are done with a connection.
797 * 833 *
@@ -823,6 +859,7 @@ mhd_completed_cb (void *cls,
823 *con_cls = NULL; 859 *con_cls = NULL;
824} 860}
825 861
862
826/** 863/**
827 * Function called when MHD connection is opened or closed. 864 * Function called when MHD connection is opened or closed.
828 * 865 *
@@ -886,7 +923,6 @@ mhd_connection_cb (void *cls,
886} 923}
887 924
888 925
889
890/** 926/**
891 * Task run whenever HTTP server operations are pending. 927 * Task run whenever HTTP server operations are pending.
892 * 928 *
@@ -977,10 +1013,17 @@ do_shutdown (void *cls)
977 GNUNET_CONTAINER_DLL_remove (plugins_head, 1013 GNUNET_CONTAINER_DLL_remove (plugins_head,
978 plugins_tail, 1014 plugins_tail,
979 ple); 1015 ple);
980 GNUNET_PLUGIN_unload (ple->libname, ple->plugin);
981 GNUNET_free (ple->libname); 1016 GNUNET_free (ple->libname);
982 GNUNET_free (ple); 1017 GNUNET_free (ple);
983 } 1018 }
1019 REST_config_done (config_plugin);
1020 REST_copying_done (copying_plugin);
1021 REST_identity_done (identity_plugin);
1022 REST_gns_done (gns_plugin);
1023#ifdef HAVE_JOSE
1024 REST_openid_done (openid_plugin);
1025#endif
1026 REST_reclaim_done (reclaim_plugin);
984 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down...\n"); 1027 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down...\n");
985 kill_httpd (); 1028 kill_httpd ();
986 GNUNET_free (allow_credentials); 1029 GNUNET_free (allow_credentials);
@@ -1065,28 +1108,30 @@ bind_v6 ()
1065 * @param libname the name of the library loaded 1108 * @param libname the name of the library loaded
1066 * @param lib_ret the object returned by the plugin initializer 1109 * @param lib_ret the object returned by the plugin initializer
1067 */ 1110 */
1068static void 1111static enum GNUNET_GenericReturnValue
1069load_plugin (void *cls, const char *libname, void *lib_ret) 1112setup_plugin (const char *name,
1113 GNUNET_REST_ProcessingFunction proc,
1114 void *plugin_cls)
1070{ 1115{
1071 struct GNUNET_REST_Plugin *plugin = lib_ret;
1072 struct PluginListEntry *ple; 1116 struct PluginListEntry *ple;
1073 1117
1074 if (NULL == lib_ret) 1118 if (NULL == plugin_cls)
1075 { 1119 {
1076 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1120 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1077 "Could not load plugin `%s'\n", 1121 "Could not load plugin\n");
1078 libname); 1122 return GNUNET_SYSERR;
1079 return;
1080 } 1123 }
1081 GNUNET_assert (1 < strlen (plugin->name)); 1124 GNUNET_assert (1 < strlen (name));
1082 GNUNET_assert ('/' == *plugin->name); 1125 GNUNET_assert ('/' == *name);
1083 ple = GNUNET_new (struct PluginListEntry); 1126 ple = GNUNET_new (struct PluginListEntry);
1084 ple->libname = GNUNET_strdup (libname); 1127 ple->libname = GNUNET_strdup (name);
1085 ple->plugin = plugin; 1128 ple->plugin = plugin_cls;
1129 ple->process_request = proc;
1086 GNUNET_CONTAINER_DLL_insert (plugins_head, 1130 GNUNET_CONTAINER_DLL_insert (plugins_head,
1087 plugins_tail, 1131 plugins_tail,
1088 ple); 1132 ple);
1089 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Loaded plugin `%s'\n", libname); 1133 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Loaded plugin `%s'\n", name);
1134 return GNUNET_OK;
1090} 1135}
1091 1136
1092 1137
@@ -1201,7 +1246,8 @@ run (void *cls,
1201 memset (basic_auth_secret_tmp, 0, 16); 1246 memset (basic_auth_secret_tmp, 0, 16);
1202 if (GNUNET_SYSERR == GNUNET_DISK_fn_read (basic_auth_file, 1247 if (GNUNET_SYSERR == GNUNET_DISK_fn_read (basic_auth_file,
1203 basic_auth_secret_tmp, 1248 basic_auth_secret_tmp,
1204 sizeof (basic_auth_secret_tmp) - 1)) 1249 sizeof (basic_auth_secret_tmp)
1250 - 1))
1205 { 1251 {
1206 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1252 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1207 "Unable to read basic auth secret file.\n"); 1253 "Unable to read basic auth secret file.\n");
@@ -1330,12 +1376,45 @@ run (void *cls,
1330 GNUNET_SCHEDULER_shutdown (); 1376 GNUNET_SCHEDULER_shutdown ();
1331 return; 1377 return;
1332 } 1378 }
1333/* Load plugins */ 1379 /* Load plugins */
1334 GNUNET_PLUGIN_load_all_in_context (GNUNET_OS_project_data_default (), 1380 // FIXME: Use per-plugin rest plugin structs
1335 "libgnunet_plugin_rest", 1381 struct GNUNET_REST_Plugin *config_plugin = REST_config_init (cfg);
1336 (void *) cfg, 1382 if (GNUNET_OK != setup_plugin (config_plugin->name, &REST_config_process_request, config_plugin))
1337 &load_plugin, 1383 {
1338 NULL); 1384 GNUNET_SCHEDULER_shutdown ();
1385 }
1386 struct GNUNET_REST_Plugin *copying_plugin = REST_copying_init (cfg);
1387 if (GNUNET_OK != setup_plugin (copying_plugin->name, &REST_copying_process_request, copying_plugin))
1388 {
1389 GNUNET_SCHEDULER_shutdown ();
1390 }
1391 struct GNUNET_REST_Plugin *identity_plugin = REST_identity_init (cfg);
1392 if (GNUNET_OK != setup_plugin (identity_plugin->name, &REST_identity_process_request, identity_plugin))
1393 {
1394 GNUNET_SCHEDULER_shutdown ();
1395 }
1396 struct GNUNET_REST_Plugin *namestore_plugin = REST_namestore_init (cfg);
1397 if (GNUNET_OK != setup_plugin (namestore_plugin->name, &REST_namestore_process_request, namestore_plugin))
1398 {
1399 GNUNET_SCHEDULER_shutdown ();
1400 }
1401 struct GNUNET_REST_Plugin *gns_plugin = REST_gns_init (cfg);
1402 if (GNUNET_OK != setup_plugin (gns_plugin->name, &REST_gns_process_request, gns_plugin))
1403 {
1404 GNUNET_SCHEDULER_shutdown ();
1405 }
1406#ifdef HAVE_JOSE
1407 struct GNUNET_REST_Plugin *openid_plugin = REST_openid_init (cfg);
1408 if (GNUNET_OK != setup_plugin (openid_plugin->name, &REST_openid_process_request, openid_plugin))
1409 {
1410 GNUNET_SCHEDULER_shutdown ();
1411 }
1412#endif
1413 struct GNUNET_REST_Plugin *reclaim_plugin = REST_reclaim_init (cfg);
1414 if (GNUNET_OK != setup_plugin (reclaim_plugin->name, &REST_reclaim_process_request, reclaim_plugin))
1415 {
1416 GNUNET_SCHEDULER_shutdown ();
1417 }
1339 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); 1418 GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
1340} 1419}
1341 1420
diff --git a/src/rest-plugin/identity/plugin_rest_identity.c b/src/service/rest/identity_plugin.c
index e7b7f8a9c..f6c9dd792 100644
--- a/src/rest-plugin/identity/plugin_rest_identity.c
+++ b/src/service/rest/identity_plugin.c
@@ -106,7 +106,7 @@
106/** 106/**
107 * The configuration handle 107 * The configuration handle
108 */ 108 */
109const struct GNUNET_CONFIGURATION_Handle *cfg; 109const struct GNUNET_CONFIGURATION_Handle *id_cfg;
110 110
111/** 111/**
112 * HTTP methods allows for this plugin 112 * HTTP methods allows for this plugin
@@ -921,6 +921,7 @@ ego_delete_name (struct GNUNET_REST_RequestHandle *con_handle,
921 handle); 921 handle);
922} 922}
923 923
924
924struct ego_sign_data_cls 925struct ego_sign_data_cls
925{ 926{
926 void *data; 927 void *data;
@@ -952,10 +953,10 @@ ego_sign_data_cb (void *cls, struct GNUNET_IDENTITY_Ego *ego)
952 return; 953 return;
953 } 954 }
954 955
955 if ( GNUNET_OK != GNUNET_CRYPTO_eddsa_sign_raw (&(ego->pk.eddsa_key), 956 if (GNUNET_OK != GNUNET_CRYPTO_eddsa_sign_raw (&(ego->pk.eddsa_key),
956 (void *) data, 957 (void *) data,
957 strlen ( (char*) data), 958 strlen ( (char*) data),
958 &sig)) 959 &sig))
959 { 960 {
960 handle->ec = GNUNET_EC_UNKNOWN; 961 handle->ec = GNUNET_EC_UNKNOWN;
961 GNUNET_SCHEDULER_add_now (&do_error, handle); 962 GNUNET_SCHEDULER_add_now (&do_error, handle);
@@ -980,6 +981,7 @@ ego_sign_data_cb (void *cls, struct GNUNET_IDENTITY_Ego *ego)
980 GNUNET_SCHEDULER_add_now (&cleanup_handle, handle); 981 GNUNET_SCHEDULER_add_now (&cleanup_handle, handle);
981} 982}
982 983
984
983/** 985/**
984 * 986 *
985 * @param con_handle the connection handle 987 * @param con_handle the connection handle
@@ -1030,12 +1032,13 @@ ego_sign_data (struct GNUNET_REST_RequestHandle *con_handle,
1030 cls2->data = (void *) GNUNET_strdup (data); 1032 cls2->data = (void *) GNUNET_strdup (data);
1031 cls2->handle = handle; 1033 cls2->handle = handle;
1032 1034
1033 GNUNET_IDENTITY_ego_lookup (cfg, 1035 GNUNET_IDENTITY_ego_lookup (id_cfg,
1034 username, 1036 username,
1035 ego_sign_data_cb, 1037 ego_sign_data_cb,
1036 cls2); 1038 cls2);
1037} 1039}
1038 1040
1041
1039/** 1042/**
1040 * Respond to OPTIONS request 1043 * Respond to OPTIONS request
1041 * 1044 *
@@ -1155,10 +1158,11 @@ list_ego (void *cls,
1155 * @param proc_cls closure for callback function 1158 * @param proc_cls closure for callback function
1156 * @return GNUNET_OK if request accepted 1159 * @return GNUNET_OK if request accepted
1157 */ 1160 */
1158static enum GNUNET_GenericReturnValue 1161enum GNUNET_GenericReturnValue
1159rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle, 1162REST_identity_process_request (void* plugin,
1160 GNUNET_REST_ResultProcessor proc, 1163 struct GNUNET_REST_RequestHandle *rest_handle,
1161 void *proc_cls) 1164 GNUNET_REST_ResultProcessor proc,
1165 void *proc_cls)
1162{ 1166{
1163 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 1167 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
1164 struct GNUNET_REST_RequestHandlerError err; 1168 struct GNUNET_REST_RequestHandlerError err;
@@ -1218,20 +1222,19 @@ rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
1218 * @return NULL on error, otherwise the plugin context 1222 * @return NULL on error, otherwise the plugin context
1219 */ 1223 */
1220void * 1224void *
1221libgnunet_plugin_rest_identity_init (void *cls) 1225REST_identity_init (const struct GNUNET_CONFIGURATION_Handle *c)
1222{ 1226{
1223 static struct Plugin plugin; 1227 static struct Plugin plugin;
1224 struct GNUNET_REST_Plugin *api; 1228 struct GNUNET_REST_Plugin *api;
1225 1229
1226 cfg = cls; 1230 id_cfg = c;
1227 if (NULL != plugin.cfg) 1231 if (NULL != plugin.cfg)
1228 return NULL; /* can only initialize once! */ 1232 return NULL; /* can only initialize once! */
1229 memset (&plugin, 0, sizeof(struct Plugin)); 1233 memset (&plugin, 0, sizeof(struct Plugin));
1230 plugin.cfg = cfg; 1234 plugin.cfg = c;
1231 api = GNUNET_new (struct GNUNET_REST_Plugin); 1235 api = GNUNET_new (struct GNUNET_REST_Plugin);
1232 api->cls = &plugin; 1236 api->cls = &plugin;
1233 api->name = GNUNET_REST_API_NS_IDENTITY; 1237 api->name = GNUNET_REST_API_NS_IDENTITY;
1234 api->process_request = &rest_process_request;
1235 GNUNET_asprintf (&allow_methods, 1238 GNUNET_asprintf (&allow_methods,
1236 "%s, %s, %s, %s, %s", 1239 "%s, %s, %s, %s, %s",
1237 MHD_HTTP_METHOD_GET, 1240 MHD_HTTP_METHOD_GET,
@@ -1240,7 +1243,7 @@ libgnunet_plugin_rest_identity_init (void *cls)
1240 MHD_HTTP_METHOD_DELETE, 1243 MHD_HTTP_METHOD_DELETE,
1241 MHD_HTTP_METHOD_OPTIONS); 1244 MHD_HTTP_METHOD_OPTIONS);
1242 state = ID_REST_STATE_INIT; 1245 state = ID_REST_STATE_INIT;
1243 identity_handle = GNUNET_IDENTITY_connect (cfg, &list_ego, NULL); 1246 identity_handle = GNUNET_IDENTITY_connect (id_cfg, &list_ego, NULL);
1244 1247
1245 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ ("Identity REST API initialized\n")); 1248 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ ("Identity REST API initialized\n"));
1246 return api; 1249 return api;
@@ -1253,10 +1256,9 @@ libgnunet_plugin_rest_identity_init (void *cls)
1253 * @param cls the plugin context (as returned by "init") 1256 * @param cls the plugin context (as returned by "init")
1254 * @return always NULL 1257 * @return always NULL
1255 */ 1258 */
1256void * 1259void
1257libgnunet_plugin_rest_identity_done (void *cls) 1260REST_identity_done (struct GNUNET_REST_Plugin *api)
1258{ 1261{
1259 struct GNUNET_REST_Plugin *api = cls;
1260 struct Plugin *plugin = api->cls; 1262 struct Plugin *plugin = api->cls;
1261 struct EgoEntry *ego_entry; 1263 struct EgoEntry *ego_entry;
1262 struct EgoEntry *ego_tmp; 1264 struct EgoEntry *ego_tmp;
@@ -1279,7 +1281,6 @@ libgnunet_plugin_rest_identity_done (void *cls)
1279 GNUNET_free (allow_methods); 1281 GNUNET_free (allow_methods);
1280 GNUNET_free (api); 1282 GNUNET_free (api);
1281 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Identity REST plugin is finished\n"); 1283 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Identity REST plugin is finished\n");
1282 return NULL;
1283} 1284}
1284 1285
1285 1286
diff --git a/src/service/rest/identity_plugin.h b/src/service/rest/identity_plugin.h
new file mode 100644
index 000000000..0886156c1
--- /dev/null
+++ b/src/service/rest/identity_plugin.h
@@ -0,0 +1,36 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_identity_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *conndata_handle,
16 GNUNET_REST_ResultProcessor proc,
17 void *proc_cls);
18
19/**
20 * Entry point for the plugin.
21 *
22 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
23 * @return NULL on error, otherwise the plugin context
24 */
25void*
26REST_identity_init (const struct GNUNET_CONFIGURATION_Handle *c);
27
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_identity_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/rest-plugin/reclaim/json_reclaim.c b/src/service/rest/json_reclaim.c
index b1ca7a4a5..b1ca7a4a5 100644
--- a/src/rest-plugin/reclaim/json_reclaim.c
+++ b/src/service/rest/json_reclaim.c
diff --git a/src/rest-plugin/reclaim/json_reclaim.h b/src/service/rest/json_reclaim.h
index 613ddf873..613ddf873 100644
--- a/src/rest-plugin/reclaim/json_reclaim.h
+++ b/src/service/rest/json_reclaim.h
diff --git a/src/service/rest/meson.build b/src/service/rest/meson.build
index 316724fdb..347cbb852 100644
--- a/src/service/rest/meson.build
+++ b/src/service/rest/meson.build
@@ -1,6 +1,16 @@
1libgnunetrest_src = ['rest.c'] 1libgnunetrest_src = ['rest.c']
2 2
3gnunetservicerest_src = ['gnunet-rest-server.c'] 3gnunetservicerest_src = ['gnunet-rest-server.c',
4 'config_plugin.c',
5 'copying_plugin.c',
6 'identity_plugin.c',
7 'namestore_plugin.c',
8 'gns_plugin.c',
9 'openid_plugin.c',
10 'oidc_helper.c',
11 'json_reclaim.c',
12 'reclaim_plugin.c',
13 ]
4 14
5configure_file(input : 'rest.conf', 15configure_file(input : 'rest.conf',
6 output : 'rest.conf', 16 output : 'rest.conf',
@@ -30,7 +40,19 @@ libgnunetrest_dep = declare_dependency(link_with : libgnunetrest)
30 40
31executable ('gnunet-rest-server', 41executable ('gnunet-rest-server',
32 gnunetservicerest_src, 42 gnunetservicerest_src,
33 dependencies: [libgnunetrest_dep, libgnunetutil_dep, mhd_dep], 43 dependencies: [libgnunetrest_dep,
44 libgnunetutil_dep,
45 libgnunetidentity_dep,
46 libgnunetgns_dep,
47 libgnunetreclaim_dep,
48 libgnunetnamestore_dep,
49 libgnunetjson_dep,
50 libgnunetgnsrecord_dep,
51 libgnunetgnsrecordjson_dep,
52 json_dep,
53 jose_dep,
54 gcrypt_dep,
55 mhd_dep],
34 include_directories: [incdir, configuration_inc], 56 include_directories: [incdir, configuration_inc],
35 install: true, 57 install: true,
36 install_dir: get_option('libdir') / 'gnunet' / 'libexec') 58 install_dir: get_option('libdir') / 'gnunet' / 'libexec')
diff --git a/src/plugin/namestore/plugin_rest_namestore.c b/src/service/rest/namestore_plugin.c
index 31e78e6dd..8c5b8b824 100644
--- a/src/plugin/namestore/plugin_rest_namestore.c
+++ b/src/service/rest/namestore_plugin.c
@@ -57,7 +57,7 @@
57/** 57/**
58 * The configuration handle 58 * The configuration handle
59 */ 59 */
60const struct GNUNET_CONFIGURATION_Handle *cfg; 60const struct GNUNET_CONFIGURATION_Handle *ns_cfg;
61 61
62/** 62/**
63 * HTTP methods allows for this plugin 63 * HTTP methods allows for this plugin
@@ -333,7 +333,7 @@ do_error (void *cls)
333 struct MHD_Response *resp; 333 struct MHD_Response *resp;
334 json_t *json_error = json_object (); 334 json_t *json_error = json_object ();
335 char *response; 335 char *response;
336 const char* emsg; 336 const char*emsg;
337 int response_code; 337 int response_code;
338 338
339 emsg = GNUNET_ErrorCode_get_hint (handle->ec); 339 emsg = GNUNET_ErrorCode_get_hint (handle->ec);
@@ -788,6 +788,7 @@ import_next_cb (void *cls, enum GNUNET_ErrorCode ec)
788 handle->rd_set_pos += sent_rds; 788 handle->rd_set_pos += sent_rds;
789} 789}
790 790
791
791static void 792static void
792bulk_tx_start (void *cls, enum GNUNET_ErrorCode ec) 793bulk_tx_start (void *cls, enum GNUNET_ErrorCode ec)
793{ 794{
@@ -920,7 +921,7 @@ namestore_import (struct GNUNET_REST_RequestHandle *con_handle,
920 handle->zone_pkey = GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego); 921 handle->zone_pkey = GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego);
921 922
922 // We need a per-client connection for a transactional bulk import 923 // We need a per-client connection for a transactional bulk import
923 handle->nc = GNUNET_NAMESTORE_connect (cfg); 924 handle->nc = GNUNET_NAMESTORE_connect (ns_cfg);
924 if (NULL == handle->nc) 925 if (NULL == handle->nc)
925 { 926 {
926 handle->ec = GNUNET_EC_NAMESTORE_UNKNOWN; 927 handle->ec = GNUNET_EC_NAMESTORE_UNKNOWN;
@@ -932,6 +933,7 @@ namestore_import (struct GNUNET_REST_RequestHandle *con_handle,
932 handle); 933 handle);
933} 934}
934 935
936
935/** 937/**
936 * Handle namestore POST/PUT request 938 * Handle namestore POST/PUT request
937 * 939 *
@@ -1238,10 +1240,11 @@ list_ego (void *cls,
1238 * @param proc_cls closure for callback function 1240 * @param proc_cls closure for callback function
1239 * @return GNUNET_OK if request accepted 1241 * @return GNUNET_OK if request accepted
1240 */ 1242 */
1241static enum GNUNET_GenericReturnValue 1243enum GNUNET_GenericReturnValue
1242rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle, 1244REST_namestore_process_request (void *plugin,
1243 GNUNET_REST_ResultProcessor proc, 1245 struct GNUNET_REST_RequestHandle *rest_handle,
1244 void *proc_cls) 1246 GNUNET_REST_ResultProcessor proc,
1247 void *proc_cls)
1245{ 1248{
1246 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 1249 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
1247 struct GNUNET_REST_RequestHandlerError err; 1250 struct GNUNET_REST_RequestHandlerError err;
@@ -1291,20 +1294,19 @@ rest_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
1291 * @return NULL on error, otherwise the plugin context 1294 * @return NULL on error, otherwise the plugin context
1292 */ 1295 */
1293void * 1296void *
1294libgnunet_plugin_rest_namestore_init (void *cls) 1297REST_namestore_init (const struct GNUNET_CONFIGURATION_Handle *c)
1295{ 1298{
1296 static struct Plugin plugin; 1299 static struct Plugin plugin;
1297 struct GNUNET_REST_Plugin *api; 1300 struct GNUNET_REST_Plugin *api;
1298 1301
1299 cfg = cls; 1302 ns_cfg = c;
1300 if (NULL != plugin.cfg) 1303 if (NULL != plugin.cfg)
1301 return NULL; /* can only initialize once! */ 1304 return NULL; /* can only initialize once! */
1302 memset (&plugin, 0, sizeof(struct Plugin)); 1305 memset (&plugin, 0, sizeof(struct Plugin));
1303 plugin.cfg = cfg; 1306 plugin.cfg = c;
1304 api = GNUNET_new (struct GNUNET_REST_Plugin); 1307 api = GNUNET_new (struct GNUNET_REST_Plugin);
1305 api->cls = &plugin; 1308 api->cls = &plugin;
1306 api->name = GNUNET_REST_API_NS_NAMESTORE; 1309 api->name = GNUNET_REST_API_NS_NAMESTORE;
1307 api->process_request = &rest_process_request;
1308 state = ID_REST_STATE_INIT; 1310 state = ID_REST_STATE_INIT;
1309 GNUNET_asprintf (&allow_methods, 1311 GNUNET_asprintf (&allow_methods,
1310 "%s, %s, %s, %s, %s", 1312 "%s, %s, %s, %s, %s",
@@ -1313,8 +1315,8 @@ libgnunet_plugin_rest_namestore_init (void *cls)
1313 MHD_HTTP_METHOD_PUT, 1315 MHD_HTTP_METHOD_PUT,
1314 MHD_HTTP_METHOD_DELETE, 1316 MHD_HTTP_METHOD_DELETE,
1315 MHD_HTTP_METHOD_OPTIONS); 1317 MHD_HTTP_METHOD_OPTIONS);
1316 ns_handle = GNUNET_NAMESTORE_connect (cfg); 1318 ns_handle = GNUNET_NAMESTORE_connect (ns_cfg);
1317 identity_handle = GNUNET_IDENTITY_connect (cfg, &list_ego, NULL); 1319 identity_handle = GNUNET_IDENTITY_connect (ns_cfg, &list_ego, NULL);
1318 1320
1319 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ ( 1321 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _ (
1320 "Namestore REST API initialized\n")); 1322 "Namestore REST API initialized\n"));
@@ -1328,10 +1330,9 @@ libgnunet_plugin_rest_namestore_init (void *cls)
1328 * @param cls the plugin context (as returned by "init") 1330 * @param cls the plugin context (as returned by "init")
1329 * @return always NULL 1331 * @return always NULL
1330 */ 1332 */
1331void * 1333void
1332libgnunet_plugin_rest_namestore_done (void *cls) 1334REST_namestore_done (struct GNUNET_REST_Plugin *api)
1333{ 1335{
1334 struct GNUNET_REST_Plugin *api = cls;
1335 struct Plugin *plugin = api->cls; 1336 struct Plugin *plugin = api->cls;
1336 struct RequestHandle *request; 1337 struct RequestHandle *request;
1337 struct EgoEntry *ego_entry; 1338 struct EgoEntry *ego_entry;
@@ -1357,7 +1358,6 @@ libgnunet_plugin_rest_namestore_done (void *cls)
1357 GNUNET_free (allow_methods); 1358 GNUNET_free (allow_methods);
1358 GNUNET_free (api); 1359 GNUNET_free (api);
1359 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Namestore REST plugin is finished\n"); 1360 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Namestore REST plugin is finished\n");
1360 return NULL;
1361} 1361}
1362 1362
1363 1363
diff --git a/src/service/rest/namestore_plugin.h b/src/service/rest/namestore_plugin.h
new file mode 100644
index 000000000..2bdf77546
--- /dev/null
+++ b/src/service/rest/namestore_plugin.h
@@ -0,0 +1,37 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_namestore_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *
16 conndata_handle,
17 GNUNET_REST_ResultProcessor proc,
18 void *proc_cls);
19
20/**
21 * Entry point for the plugin.
22 *
23 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
24 * @return NULL on error, otherwise the plugin context
25 */
26void*
27REST_namestore_init (const struct GNUNET_CONFIGURATION_Handle *c);
28
29
30/**
31 * Exit point from the plugin.
32 *
33 * @param cls the plugin context (as returned by "init")
34 * @return always NULL
35 */
36void
37REST_namestore_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/rest-plugin/reclaim/oidc_helper.c b/src/service/rest/oidc_helper.c
index a2da7312b..a2da7312b 100644
--- a/src/rest-plugin/reclaim/oidc_helper.c
+++ b/src/service/rest/oidc_helper.c
diff --git a/src/rest-plugin/reclaim/oidc_helper.h b/src/service/rest/oidc_helper.h
index de788fbdb..de788fbdb 100644
--- a/src/rest-plugin/reclaim/oidc_helper.h
+++ b/src/service/rest/oidc_helper.h
diff --git a/src/rest-plugin/reclaim/plugin_rest_openid_connect.c b/src/service/rest/openid_plugin.c
index d0aee043e..a4f082d2a 100644
--- a/src/rest-plugin/reclaim/plugin_rest_openid_connect.c
+++ b/src/service/rest/openid_plugin.c
@@ -242,7 +242,7 @@
242 * How long to wait for a consume in userinfo endpoint 242 * How long to wait for a consume in userinfo endpoint
243 */ 243 */
244#define CONSUME_TIMEOUT GNUNET_TIME_relative_multiply ( \ 244#define CONSUME_TIMEOUT GNUNET_TIME_relative_multiply ( \
245 GNUNET_TIME_UNIT_SECONDS,2) 245 GNUNET_TIME_UNIT_SECONDS,2)
246 246
247/** 247/**
248 * OIDC ignored parameter array 248 * OIDC ignored parameter array
@@ -268,7 +268,7 @@ struct GNUNET_CONTAINER_MultiHashMap *OIDC_cookie_jar_map;
268/** 268/**
269 * The configuration handle 269 * The configuration handle
270 */ 270 */
271const struct GNUNET_CONFIGURATION_Handle *cfg; 271const struct GNUNET_CONFIGURATION_Handle *oid_cfg;
272 272
273/** 273/**
274 * HTTP methods allows for this plugin 274 * HTTP methods allows for this plugin
@@ -905,6 +905,7 @@ read_jwk_from_file (const char *filename)
905 return jwk; 905 return jwk;
906} 906}
907 907
908
908/** 909/**
909 * @brief Write the JWK to file. If unsuccessful emit warning 910 * @brief Write the JWK to file. If unsuccessful emit warning
910 * 911 *
@@ -927,6 +928,7 @@ write_jwk_to_file (const char *filename,
927 return GNUNET_OK; 928 return GNUNET_OK;
928} 929}
929 930
931
930/** 932/**
931 * @brief Generate a new RSA JSON Web Key 933 * @brief Generate a new RSA JSON Web Key
932 * 934 *
@@ -942,6 +944,7 @@ generate_jwk ()
942 return jwk; 944 return jwk;
943} 945}
944 946
947
945/** 948/**
946 * Return the path to the oidc directory path 949 * Return the path to the oidc directory path
947 * 950 *
@@ -954,7 +957,7 @@ get_oidc_dir_path (void *cls)
954 struct RequestHandle *handle = cls; 957 struct RequestHandle *handle = cls;
955 958
956 // Read OIDC directory from config 959 // Read OIDC directory from config
957 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (cfg, 960 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (oid_cfg,
958 "reclaim-rest-plugin", 961 "reclaim-rest-plugin",
959 "oidc_dir", 962 "oidc_dir",
960 &oidc_directory)) 963 &oidc_directory))
@@ -970,6 +973,7 @@ get_oidc_dir_path (void *cls)
970 return oidc_directory; 973 return oidc_directory;
971} 974}
972 975
976
973/** 977/**
974 * Return the path to the RSA JWK key file 978 * Return the path to the RSA JWK key file
975 * 979 *
@@ -1004,7 +1008,7 @@ login_redirect (void *cls)
1004 struct GNUNET_Buffer buf = { 0 }; 1008 struct GNUNET_Buffer buf = { 0 };
1005 struct RequestHandle *handle = cls; 1009 struct RequestHandle *handle = cls;
1006 1010
1007 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (cfg, 1011 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (oid_cfg,
1008 "reclaim-rest-plugin", 1012 "reclaim-rest-plugin",
1009 "address", 1013 "address",
1010 &login_base_url)) 1014 &login_base_url))
@@ -1451,8 +1455,8 @@ code_redirect (void *cls)
1451 { 1455 {
1452 if (GNUNET_OK != 1456 if (GNUNET_OK !=
1453 GNUNET_CRYPTO_public_key_from_string (handle->oidc 1457 GNUNET_CRYPTO_public_key_from_string (handle->oidc
1454 ->login_identity, 1458 ->login_identity,
1455 &pubkey)) 1459 &pubkey))
1456 { 1460 {
1457 handle->emsg = GNUNET_strdup (OIDC_ERROR_KEY_INVALID_COOKIE); 1461 handle->emsg = GNUNET_strdup (OIDC_ERROR_KEY_INVALID_COOKIE);
1458 handle->edesc = 1462 handle->edesc =
@@ -1833,7 +1837,7 @@ authorize_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
1833 1837
1834 if (GNUNET_OK != 1838 if (GNUNET_OK !=
1835 GNUNET_CRYPTO_public_key_from_string (handle->oidc->client_id, 1839 GNUNET_CRYPTO_public_key_from_string (handle->oidc->client_id,
1836 &handle->oidc->client_pkey)) 1840 &handle->oidc->client_pkey))
1837 { 1841 {
1838 handle->emsg = GNUNET_strdup (OIDC_ERROR_KEY_UNAUTHORIZED_CLIENT); 1842 handle->emsg = GNUNET_strdup (OIDC_ERROR_KEY_UNAUTHORIZED_CLIENT);
1839 handle->edesc = GNUNET_strdup ("The client is not authorized to request an " 1843 handle->edesc = GNUNET_strdup ("The client is not authorized to request an "
@@ -1856,7 +1860,8 @@ authorize_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
1856 } 1860 }
1857 } 1861 }
1858 if (NULL == handle->tld) 1862 if (NULL == handle->tld)
1859 GNUNET_CONFIGURATION_iterate_section_values (cfg, "gns", tld_iter, handle); 1863 GNUNET_CONFIGURATION_iterate_section_values (oid_cfg, "gns", tld_iter,
1864 handle);
1860 if (NULL == handle->tld) 1865 if (NULL == handle->tld)
1861 handle->tld = GNUNET_strdup (handle->oidc->client_id); 1866 handle->tld = GNUNET_strdup (handle->oidc->client_id);
1862 GNUNET_SCHEDULER_add_now (&build_authz_response, handle); 1867 GNUNET_SCHEDULER_add_now (&build_authz_response, handle);
@@ -2085,7 +2090,7 @@ check_authorization (struct RequestHandle *handle,
2085 } 2090 }
2086 2091
2087 // check client password 2092 // check client password
2088 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (cfg, 2093 if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (oid_cfg,
2089 "reclaim-rest-plugin", 2094 "reclaim-rest-plugin",
2090 "OIDC_CLIENT_HMAC_SECRET", 2095 "OIDC_CLIENT_HMAC_SECRET",
2091 &expected_pass)) 2096 &expected_pass))
@@ -2277,7 +2282,7 @@ token_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2277 GNUNET_free (code_verifier); 2282 GNUNET_free (code_verifier);
2278 2283
2279 // create jwt 2284 // create jwt
2280 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, 2285 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (oid_cfg,
2281 "reclaim-rest-plugin", 2286 "reclaim-rest-plugin",
2282 "expiration_time", 2287 "expiration_time",
2283 &expiration_time)) 2288 &expiration_time))
@@ -2295,7 +2300,7 @@ token_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2295 } 2300 }
2296 2301
2297 // Check if HMAC or RSA should be used 2302 // Check if HMAC or RSA should be used
2298 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, 2303 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (oid_cfg,
2299 "reclaim-rest-plugin", 2304 "reclaim-rest-plugin",
2300 "oidc_json_web_algorithm", 2305 "oidc_json_web_algorithm",
2301 &jwa)) 2306 &jwa))
@@ -2306,7 +2311,7 @@ token_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2306 jwa = JWT_ALG_VALUE_RSA; 2311 jwa = JWT_ALG_VALUE_RSA;
2307 } 2312 }
2308 2313
2309 if ( ! strcmp (jwa, JWT_ALG_VALUE_RSA)) 2314 if (! strcmp (jwa, JWT_ALG_VALUE_RSA))
2310 { 2315 {
2311 // Replace for now 2316 // Replace for now
2312 oidc_jwk_path = get_oidc_jwk_path (cls); 2317 oidc_jwk_path = get_oidc_jwk_path (cls);
@@ -2341,10 +2346,10 @@ token_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2341 (NULL != nonce) ? nonce : NULL, 2346 (NULL != nonce) ? nonce : NULL,
2342 oidc_jwk); 2347 oidc_jwk);
2343 } 2348 }
2344 else if ( ! strcmp (jwa, JWT_ALG_VALUE_HMAC)) 2349 else if (! strcmp (jwa, JWT_ALG_VALUE_HMAC))
2345 { 2350 {
2346 // TODO OPTIONAL acr,amr,azp 2351 // TODO OPTIONAL acr,amr,azp
2347 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, 2352 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (oid_cfg,
2348 "reclaim-rest-plugin", 2353 "reclaim-rest-plugin",
2349 "jwt_secret", 2354 "jwt_secret",
2350 &jwt_secret)) 2355 &jwt_secret))
@@ -2708,6 +2713,7 @@ userinfo_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2708 GNUNET_free (authorization); 2713 GNUNET_free (authorization);
2709} 2714}
2710 2715
2716
2711/** 2717/**
2712 * Responds to /jwks.json 2718 * Responds to /jwks.json
2713 * 2719 *
@@ -2763,6 +2769,7 @@ jwks_endpoint (struct GNUNET_REST_RequestHandle *con_handle,
2763 cleanup_handle (handle); 2769 cleanup_handle (handle);
2764} 2770}
2765 2771
2772
2766/** 2773/**
2767 * If listing is enabled, prints information about the egos. 2774 * If listing is enabled, prints information about the egos.
2768 * 2775 *
@@ -2997,10 +3004,11 @@ oidc_config_cors (struct GNUNET_REST_RequestHandle *con_handle,
2997} 3004}
2998 3005
2999 3006
3000static enum GNUNET_GenericReturnValue 3007enum GNUNET_GenericReturnValue
3001rest_identity_process_request (struct GNUNET_REST_RequestHandle *rest_handle, 3008REST_openid_process_request (void *plugin,
3002 GNUNET_REST_ResultProcessor proc, 3009 struct GNUNET_REST_RequestHandle *rest_handle,
3003 void *proc_cls) 3010 GNUNET_REST_ResultProcessor proc,
3011 void *proc_cls)
3004{ 3012{
3005 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 3013 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
3006 struct GNUNET_REST_RequestHandlerError err; 3014 struct GNUNET_REST_RequestHandlerError err;
@@ -3056,24 +3064,23 @@ rest_identity_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
3056 * @return NULL on error, otherwise the plugin context 3064 * @return NULL on error, otherwise the plugin context
3057 */ 3065 */
3058void * 3066void *
3059libgnunet_plugin_rest_openid_connect_init (void *cls) 3067REST_openid_init (const struct GNUNET_CONFIGURATION_Handle *c)
3060{ 3068{
3061 static struct Plugin plugin; 3069 static struct Plugin plugin;
3062 struct GNUNET_REST_Plugin *api; 3070 struct GNUNET_REST_Plugin *api;
3063 3071
3064 cfg = cls; 3072 oid_cfg = c;
3065 if (NULL != plugin.cfg) 3073 if (NULL != plugin.cfg)
3066 return NULL; /* can only initialize once! */ 3074 return NULL; /* can only initialize once! */
3067 memset (&plugin, 0, sizeof(struct Plugin)); 3075 memset (&plugin, 0, sizeof(struct Plugin));
3068 plugin.cfg = cfg; 3076 plugin.cfg = oid_cfg;
3069 api = GNUNET_new (struct GNUNET_REST_Plugin); 3077 api = GNUNET_new (struct GNUNET_REST_Plugin);
3070 api->cls = &plugin; 3078 api->cls = &plugin;
3071 api->name = GNUNET_REST_API_NS_OIDC; 3079 api->name = GNUNET_REST_API_NS_OIDC;
3072 api->process_request = &rest_identity_process_request; 3080 identity_handle = GNUNET_IDENTITY_connect (oid_cfg, &list_ego, NULL);
3073 identity_handle = GNUNET_IDENTITY_connect (cfg, &list_ego, NULL); 3081 gns_handle = GNUNET_GNS_connect (oid_cfg);
3074 gns_handle = GNUNET_GNS_connect (cfg); 3082 idp = GNUNET_RECLAIM_connect (oid_cfg);
3075 idp = GNUNET_RECLAIM_connect (cfg); 3083 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (oid_cfg,
3076 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg,
3077 "reclaim-rest-plugin", 3084 "reclaim-rest-plugin",
3078 "OIDC_USERINFO_CONSUME_TIMEOUT", 3085 "OIDC_USERINFO_CONSUME_TIMEOUT",
3079 &consume_timeout)) 3086 &consume_timeout))
@@ -3112,7 +3119,7 @@ cleanup_hashmap (void *cls, const struct GNUNET_HashCode *key, void *value)
3112 * @return always NULL 3119 * @return always NULL
3113 */ 3120 */
3114void * 3121void *
3115libgnunet_plugin_rest_openid_connect_done (void *cls) 3122REST_openid_done (void *cls)
3116{ 3123{
3117 struct GNUNET_REST_Plugin *api = cls; 3124 struct GNUNET_REST_Plugin *api = cls;
3118 struct Plugin *plugin = api->cls; 3125 struct Plugin *plugin = api->cls;
diff --git a/src/service/rest/openid_plugin.h b/src/service/rest/openid_plugin.h
new file mode 100644
index 000000000..65545ac66
--- /dev/null
+++ b/src/service/rest/openid_plugin.h
@@ -0,0 +1,36 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_openid_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *conndata_handle,
16 GNUNET_REST_ResultProcessor proc,
17 void *proc_cls);
18
19/**
20 * Entry point for the plugin.
21 *
22 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
23 * @return NULL on error, otherwise the plugin context
24 */
25void*
26REST_openid_init (const struct GNUNET_CONFIGURATION_Handle *c);
27
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_openid_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/rest-plugin/reclaim/plugin_rest_pabc.c b/src/service/rest/pabc_plugin.c
index 4b7d21df3..4b7d21df3 100644
--- a/src/rest-plugin/reclaim/plugin_rest_pabc.c
+++ b/src/service/rest/pabc_plugin.c
diff --git a/src/rest-plugin/reclaim/plugin_rest_reclaim.c b/src/service/rest/reclaim_plugin.c
index b2586109a..677a6a676 100644
--- a/src/rest-plugin/reclaim/plugin_rest_reclaim.c
+++ b/src/service/rest/reclaim_plugin.c
@@ -80,7 +80,7 @@
80/** 80/**
81 * The configuration handle 81 * The configuration handle
82 */ 82 */
83const struct GNUNET_CONFIGURATION_Handle *cfg; 83const struct GNUNET_CONFIGURATION_Handle *rcfg;
84 84
85/** 85/**
86 * HTTP methods allows for this plugin 86 * HTTP methods allows for this plugin
@@ -317,7 +317,8 @@ do_error (void *cls)
317 handle->response_code = MHD_HTTP_BAD_REQUEST; 317 handle->response_code = MHD_HTTP_BAD_REQUEST;
318 } 318 }
319 resp = GNUNET_REST_create_response (json_error); 319 resp = GNUNET_REST_create_response (json_error);
320 GNUNET_assert (MHD_NO != MHD_add_response_header (resp, "Content-Type", "application/json")); 320 GNUNET_assert (MHD_NO != MHD_add_response_header (resp, "Content-Type",
321 "application/json"));
321 handle->proc (handle->proc_cls, resp, handle->response_code); 322 handle->proc (handle->proc_cls, resp, handle->response_code);
322 cleanup_handle (handle); 323 cleanup_handle (handle);
323 GNUNET_free (json_error); 324 GNUNET_free (json_error);
@@ -1316,7 +1317,9 @@ options_cont (struct GNUNET_REST_RequestHandle *con_handle,
1316 1317
1317 // For now, independent of path return all options 1318 // For now, independent of path return all options
1318 resp = GNUNET_REST_create_response (NULL); 1319 resp = GNUNET_REST_create_response (NULL);
1319 GNUNET_assert (MHD_NO != MHD_add_response_header (resp, "Access-Control-Allow-Methods", allow_methods)); 1320 GNUNET_assert (MHD_NO != MHD_add_response_header (resp,
1321 "Access-Control-Allow-Methods",
1322 allow_methods));
1320 handle->proc (handle->proc_cls, resp, MHD_HTTP_OK); 1323 handle->proc (handle->proc_cls, resp, MHD_HTTP_OK);
1321 cleanup_handle (handle); 1324 cleanup_handle (handle);
1322 return; 1325 return;
@@ -1431,10 +1434,10 @@ list_ego (void *cls,
1431} 1434}
1432 1435
1433 1436
1434static enum GNUNET_GenericReturnValue 1437enum GNUNET_GenericReturnValue
1435rest_identity_process_request (struct GNUNET_REST_RequestHandle *rest_handle, 1438REST_reclaim_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
1436 GNUNET_REST_ResultProcessor proc, 1439 GNUNET_REST_ResultProcessor proc,
1437 void *proc_cls) 1440 void *proc_cls)
1438{ 1441{
1439 struct RequestHandle *handle = GNUNET_new (struct RequestHandle); 1442 struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
1440 struct GNUNET_REST_RequestHandlerError err; 1443 struct GNUNET_REST_RequestHandlerError err;
@@ -1492,20 +1495,19 @@ rest_identity_process_request (struct GNUNET_REST_RequestHandle *rest_handle,
1492 * @return NULL on error, otherwise the plugin context 1495 * @return NULL on error, otherwise the plugin context
1493 */ 1496 */
1494void * 1497void *
1495libgnunet_plugin_rest_reclaim_init (void *cls) 1498REST_reclaim_init (struct GNUNET_CONFIGURATION_Handle *c)
1496{ 1499{
1497 static struct Plugin plugin; 1500 static struct Plugin plugin;
1498 struct GNUNET_REST_Plugin *api; 1501 struct GNUNET_REST_Plugin *api;
1499 1502
1500 cfg = cls; 1503 rcfg = c;
1501 if (NULL != plugin.cfg) 1504 if (NULL != plugin.cfg)
1502 return NULL; /* can only initialize once! */ 1505 return NULL; /* can only initialize once! */
1503 memset (&plugin, 0, sizeof(struct Plugin)); 1506 memset (&plugin, 0, sizeof(struct Plugin));
1504 plugin.cfg = cfg; 1507 plugin.cfg = rcfg;
1505 api = GNUNET_new (struct GNUNET_REST_Plugin); 1508 api = GNUNET_new (struct GNUNET_REST_Plugin);
1506 api->cls = &plugin; 1509 api->cls = &plugin;
1507 api->name = GNUNET_REST_API_NS_RECLAIM; 1510 api->name = GNUNET_REST_API_NS_RECLAIM;
1508 api->process_request = &rest_identity_process_request;
1509 GNUNET_asprintf (&allow_methods, 1511 GNUNET_asprintf (&allow_methods,
1510 "%s, %s, %s, %s, %s", 1512 "%s, %s, %s, %s, %s",
1511 MHD_HTTP_METHOD_GET, 1513 MHD_HTTP_METHOD_GET,
@@ -1513,9 +1515,9 @@ libgnunet_plugin_rest_reclaim_init (void *cls)
1513 MHD_HTTP_METHOD_PUT, 1515 MHD_HTTP_METHOD_PUT,
1514 MHD_HTTP_METHOD_DELETE, 1516 MHD_HTTP_METHOD_DELETE,
1515 MHD_HTTP_METHOD_OPTIONS); 1517 MHD_HTTP_METHOD_OPTIONS);
1516 identity_handle = GNUNET_IDENTITY_connect (cfg, &list_ego, NULL); 1518 identity_handle = GNUNET_IDENTITY_connect (rcfg, &list_ego, NULL);
1517 state = ID_REST_STATE_INIT; 1519 state = ID_REST_STATE_INIT;
1518 idp = GNUNET_RECLAIM_connect (cfg); 1520 idp = GNUNET_RECLAIM_connect (rcfg);
1519 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1521 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1520 _ ("Identity Provider REST API initialized\n")); 1522 _ ("Identity Provider REST API initialized\n"));
1521 return api; 1523 return api;
@@ -1529,9 +1531,8 @@ libgnunet_plugin_rest_reclaim_init (void *cls)
1529 * @return always NULL 1531 * @return always NULL
1530 */ 1532 */
1531void * 1533void *
1532libgnunet_plugin_rest_reclaim_done (void *cls) 1534REST_reclaim_done (struct GNUNET_REST_Plugin *api)
1533{ 1535{
1534 struct GNUNET_REST_Plugin *api = cls;
1535 struct Plugin *plugin = api->cls; 1536 struct Plugin *plugin = api->cls;
1536 struct RequestHandle *request; 1537 struct RequestHandle *request;
1537 struct EgoEntry *ego_entry; 1538 struct EgoEntry *ego_entry;
diff --git a/src/service/rest/reclaim_plugin.h b/src/service/rest/reclaim_plugin.h
new file mode 100644
index 000000000..102fd827e
--- /dev/null
+++ b/src/service/rest/reclaim_plugin.h
@@ -0,0 +1,36 @@
1#include "gnunet_rest_plugin.h"
2/**
3 * Function processing the REST call
4 *
5 * @param method HTTP method
6 * @param url URL of the HTTP request
7 * @param data body of the HTTP request (optional)
8 * @param data_size length of the body
9 * @param proc callback function for the result
10 * @param proc_cls closure for @a proc
11 * @return #GNUNET_OK if request accepted
12 */
13enum GNUNET_GenericReturnValue
14REST_reclaim_process_request (void *plugin,
15 struct GNUNET_REST_RequestHandle *conndata_handle,
16 GNUNET_REST_ResultProcessor proc,
17 void *proc_cls);
18
19/**
20 * Entry point for the plugin.
21 *
22 * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
23 * @return NULL on error, otherwise the plugin context
24 */
25void*
26REST_reclaim_init (const struct GNUNET_CONFIGURATION_Handle *c);
27
28
29/**
30 * Exit point from the plugin.
31 *
32 * @param cls the plugin context (as returned by "init")
33 * @return always NULL
34 */
35void
36REST_reclaim_done (struct GNUNET_REST_Plugin *api);
diff --git a/src/service/revocation/Makefile.am b/src/service/revocation/Makefile.am
index 726c75ab6..18bf21fb0 100644
--- a/src/service/revocation/Makefile.am
+++ b/src/service/revocation/Makefile.am
@@ -29,7 +29,7 @@ libgnunetrevocation_la_SOURCES = \
29 revocation_api.c revocation.h 29 revocation_api.c revocation.h
30libgnunetrevocation_la_LIBADD = \ 30libgnunetrevocation_la_LIBADD = \
31 $(top_builddir)/src/lib/util/libgnunetutil.la \ 31 $(top_builddir)/src/lib/util/libgnunetutil.la \
32 $(top_builddir)/src/service/identity/libgnunetidentity.la \ 32 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
33 $(LIBGCRYPT_LIBS) \ 33 $(LIBGCRYPT_LIBS) \
34 $(GN_LIBINTL) $(XLIB) -lgcrypt 34 $(GN_LIBINTL) $(XLIB) -lgcrypt
35libgnunetrevocation_la_LDFLAGS = \ 35libgnunetrevocation_la_LDFLAGS = \
@@ -46,7 +46,7 @@ gnunet_service_revocation_LDADD = \
46 $(top_builddir)/src/service/core/libgnunetcore.la \ 46 $(top_builddir)/src/service/core/libgnunetcore.la \
47 $(top_builddir)/src/service/setu/libgnunetsetu.la \ 47 $(top_builddir)/src/service/setu/libgnunetsetu.la \
48 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \ 48 $(top_builddir)/src/service/statistics/libgnunetstatistics.la \
49 $(top_builddir)/src/service/identity/libgnunetidentity.la \ 49 $(top_builddir)/src/lib/gnsrecord/libgnunetgnsrecord.la \
50 $(top_builddir)/src/lib/util/libgnunetutil.la \ 50 $(top_builddir)/src/lib/util/libgnunetutil.la \
51 -lm \ 51 -lm \
52 $(GN_LIBINTL) 52 $(GN_LIBINTL)
diff --git a/src/service/revocation/gnunet-service-revocation.c b/src/service/revocation/gnunet-service-revocation.c
index 3755b87e5..8a8610758 100644
--- a/src/service/revocation/gnunet-service-revocation.c
+++ b/src/service/revocation/gnunet-service-revocation.c
@@ -38,6 +38,7 @@
38#include "platform.h" 38#include "platform.h"
39#include <math.h> 39#include <math.h>
40#include "gnunet_util_lib.h" 40#include "gnunet_util_lib.h"
41#include "gnunet_gnsrecord_lib.h"
41#include "gnunet_block_lib.h" 42#include "gnunet_block_lib.h"
42#include "gnunet_constants.h" 43#include "gnunet_constants.h"
43#include "gnunet_protocols.h" 44#include "gnunet_protocols.h"
@@ -172,13 +173,13 @@ new_peer_entry (const struct GNUNET_PeerIdentity *peer)
172static enum GNUNET_GenericReturnValue 173static enum GNUNET_GenericReturnValue
173verify_revoke_message (const struct RevokeMessage *rm) 174verify_revoke_message (const struct RevokeMessage *rm)
174{ 175{
175 const struct GNUNET_REVOCATION_PowP *pow 176 const struct GNUNET_GNSRECORD_PowP *pow
176 = (const struct GNUNET_REVOCATION_PowP *) &rm[1]; 177 = (const struct GNUNET_GNSRECORD_PowP *) &rm[1];
177 178
178 if (GNUNET_YES != 179 if (GNUNET_YES !=
179 GNUNET_REVOCATION_check_pow (pow, 180 GNUNET_GNSRECORD_check_pow (pow,
180 (unsigned int) revocation_work_required, 181 (unsigned int) revocation_work_required,
181 epoch_duration)) 182 epoch_duration))
182 { 183 {
183 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 184 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
184 "Proof of work invalid!\n"); 185 "Proof of work invalid!\n");
@@ -221,6 +222,7 @@ client_disconnect_cb (void *cls,
221 GNUNET_assert (client == app_cls); 222 GNUNET_assert (client == app_cls);
222} 223}
223 224
225
224static int 226static int
225check_query_message (void *cls, 227check_query_message (void *cls,
226 const struct QueryMessage *qm) 228 const struct QueryMessage *qm)
@@ -261,7 +263,7 @@ handle_query_message (void *cls,
261 key_len = ntohl (qm->key_len); 263 key_len = ntohl (qm->key_len);
262 if ((GNUNET_SYSERR == 264 if ((GNUNET_SYSERR ==
263 GNUNET_CRYPTO_read_public_key_from_buffer (&qm[1], key_len, 265 GNUNET_CRYPTO_read_public_key_from_buffer (&qm[1], key_len,
264 &zone, &read)) || 266 &zone, &read)) ||
265 (read != key_len)) 267 (read != key_len))
266 { 268 {
267 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 269 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -342,8 +344,8 @@ publicize_rm (const struct RevokeMessage *rm)
342 struct GNUNET_HashCode hc; 344 struct GNUNET_HashCode hc;
343 struct GNUNET_SETU_Element e; 345 struct GNUNET_SETU_Element e;
344 ssize_t pklen; 346 ssize_t pklen;
345 const struct GNUNET_REVOCATION_PowP *pow 347 const struct GNUNET_GNSRECORD_PowP *pow
346 = (const struct GNUNET_REVOCATION_PowP *) &rm[1]; 348 = (const struct GNUNET_GNSRECORD_PowP *) &rm[1];
347 const struct GNUNET_CRYPTO_PublicKey *pk 349 const struct GNUNET_CRYPTO_PublicKey *pk
348 = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1]; 350 = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
349 351
@@ -980,8 +982,8 @@ run (void *cls,
980 GNUNET_free (fn); 982 GNUNET_free (fn);
981 return; 983 return;
982 } 984 }
983 struct GNUNET_REVOCATION_PowP *pow = (struct 985 struct GNUNET_GNSRECORD_PowP *pow = (struct
984 GNUNET_REVOCATION_PowP *) &rm[1]; 986 GNUNET_GNSRECORD_PowP *) &rm[1];
985 ssize_t ksize; 987 ssize_t ksize;
986 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1]; 988 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
987 ksize = GNUNET_CRYPTO_public_key_get_length (pk); 989 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
diff --git a/src/service/revocation/meson.build b/src/service/revocation/meson.build
index 14e352ffa..57f19f115 100644
--- a/src/service/revocation/meson.build
+++ b/src/service/revocation/meson.build
@@ -19,7 +19,9 @@ libgnunetrevocation = library('gnunetrevocation',
19 libgnunetrevocation_src, 19 libgnunetrevocation_src,
20 soversion: '0', 20 soversion: '0',
21 version: '0.0.0', 21 version: '0.0.0',
22 dependencies: [libgnunetutil_dep, libgnunetidentity_dep], 22 dependencies: [libgnunetutil_dep,
23 libgnunetgnsrecord_dep,
24 libgnunetidentity_dep],
23 include_directories: [incdir, configuration_inc], 25 include_directories: [incdir, configuration_inc],
24 install: true, 26 install: true,
25 install_dir: get_option('libdir')) 27 install_dir: get_option('libdir'))
@@ -34,6 +36,7 @@ executable ('gnunet-service-revocation',
34 libgnunetstatistics_dep, 36 libgnunetstatistics_dep,
35 libgnunetcore_dep, 37 libgnunetcore_dep,
36 libgnunetsetu_dep, 38 libgnunetsetu_dep,
39 libgnunetgnsrecord_dep,
37 libgnunetidentity_dep], 40 libgnunetidentity_dep],
38 include_directories: [incdir, configuration_inc], 41 include_directories: [incdir, configuration_inc],
39 install: true, 42 install: true,
diff --git a/src/service/revocation/revocation.h b/src/service/revocation/revocation.h
index 90b8c7da0..cbb36acfb 100644
--- a/src/service/revocation/revocation.h
+++ b/src/service/revocation/revocation.h
@@ -112,13 +112,4 @@ struct RevocationResponseMessage
112 112
113GNUNET_NETWORK_STRUCT_END 113GNUNET_NETWORK_STRUCT_END
114 114
115/**
116 * Create the revocation metadata to sign for a revocation message
117 *
118 * @param pow the PoW to sign
119 * @return the signature purpose
120 */
121struct GNUNET_REVOCATION_SignaturePurposePS *
122REV_create_signature_message (const struct GNUNET_REVOCATION_PowP *pow);
123
124#endif 115#endif
diff --git a/src/service/revocation/revocation_api.c b/src/service/revocation/revocation_api.c
index 3b7d83710..0e3641af8 100644
--- a/src/service/revocation/revocation_api.c
+++ b/src/service/revocation/revocation_api.c
@@ -52,60 +52,6 @@ struct GNUNET_REVOCATION_Query
52 52
53 53
54/** 54/**
55 * Helper struct that holds a found pow nonce
56 * and the corresponding number of leading zeros.
57 */
58struct BestPow
59{
60 /**
61 * PoW nonce
62 */
63 uint64_t pow;
64
65 /**
66 * Corresponding zero bits in hash
67 */
68 unsigned int bits;
69};
70
71
72/**
73 * The handle to a PoW calculation.
74 * Used in iterative PoW rounds.
75 */
76struct GNUNET_REVOCATION_PowCalculationHandle
77{
78 /**
79 * Current set of found PoWs
80 */
81 struct BestPow best[POW_COUNT];
82
83 /**
84 * The final PoW result data structure.
85 */
86 struct GNUNET_REVOCATION_PowP *pow;
87
88 /**
89 * The current nonce to try
90 */
91 uint64_t current_pow;
92
93 /**
94 * Epochs how long the PoW should be valid.
95 * This is added on top of the difficulty in the PoW.
96 */
97 unsigned int epochs;
98
99 /**
100 * The difficulty (leading zeros) to achieve.
101 */
102 unsigned int difficulty;
103
104};
105
106static struct GNUNET_CRYPTO_PowSalt salt = { "GnsRevocationPow" };
107
108/**
109 * Generic error handler, called with the appropriate 55 * Generic error handler, called with the appropriate
110 * error code and the same closure specified at the creation of 56 * error code and the same closure specified at the creation of
111 * the message queue. 57 * the message queue.
@@ -301,7 +247,7 @@ handle_revocation_response (void *cls,
301 */ 247 */
302struct GNUNET_REVOCATION_Handle * 248struct GNUNET_REVOCATION_Handle *
303GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, 249GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg,
304 const struct GNUNET_REVOCATION_PowP *pow, 250 const struct GNUNET_GNSRECORD_PowP *pow,
305 GNUNET_REVOCATION_Callback func, 251 GNUNET_REVOCATION_Callback func,
306 void *func_cls) 252 void *func_cls)
307{ 253{
@@ -339,9 +285,9 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg,
339 GNUNET_free (h); 285 GNUNET_free (h);
340 return NULL; 286 return NULL;
341 } 287 }
342 if (GNUNET_YES != GNUNET_REVOCATION_check_pow (pow, 288 if (GNUNET_YES != GNUNET_GNSRECORD_check_pow (pow,
343 (unsigned int) matching_bits, 289 (unsigned int) matching_bits,
344 epoch_duration)) 290 epoch_duration))
345 { 291 {
346 GNUNET_break (0); 292 GNUNET_break (0);
347 GNUNET_free (h); 293 GNUNET_free (h);
@@ -361,7 +307,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg,
361 } 307 }
362 h->func = func; 308 h->func = func;
363 h->func_cls = func_cls; 309 h->func_cls = func_cls;
364 size_t extra_len = GNUNET_REVOCATION_proof_get_size (pow); 310 size_t extra_len = GNUNET_GNSRECORD_proof_get_size (pow);
365 env = GNUNET_MQ_msg_extra (rm, 311 env = GNUNET_MQ_msg_extra (rm,
366 extra_len, 312 extra_len,
367 GNUNET_MESSAGE_TYPE_REVOCATION_REVOKE); 313 GNUNET_MESSAGE_TYPE_REVOCATION_REVOKE);
@@ -385,380 +331,4 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h)
385} 331}
386 332
387 333
388/**
389 * Calculate the average zeros in the pows.
390 *
391 * @param ph the PowHandle
392 * @return the average number of zeros.
393 */
394static unsigned int
395calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph)
396{
397 double sum = 0.0;
398 for (unsigned int j = 0; j<POW_COUNT; j++)
399 sum += ph->best[j].bits;
400 double avg = sum / POW_COUNT;
401 return avg;
402}
403
404
405struct GNUNET_REVOCATION_SignaturePurposePS *
406REV_create_signature_message (const struct GNUNET_REVOCATION_PowP *pow)
407{
408 struct GNUNET_REVOCATION_SignaturePurposePS *spurp;
409 const struct GNUNET_CRYPTO_PublicKey *pk;
410 size_t ksize;
411
412 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
413 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
414 spurp = GNUNET_malloc (sizeof (*spurp) + ksize);
415 spurp->timestamp = pow->timestamp;
416 spurp->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_GNS_REVOCATION);
417 spurp->purpose.size = htonl (sizeof(*spurp) + ksize);
418 GNUNET_CRYPTO_write_public_key_to_buffer (pk,
419 (char*) &spurp[1],
420 ksize);
421 return spurp;
422}
423
424
425enum GNUNET_GenericReturnValue
426check_signature_identity (const struct GNUNET_REVOCATION_PowP *pow,
427 const struct GNUNET_CRYPTO_PublicKey *key)
428{
429 struct GNUNET_REVOCATION_SignaturePurposePS *spurp;
430 unsigned char *sig;
431 size_t ksize;
432 int ret;
433
434 ksize = GNUNET_CRYPTO_public_key_get_length (key);
435 spurp = REV_create_signature_message (pow);
436 sig = ((unsigned char*) &pow[1] + ksize);
437 ret =
438 GNUNET_CRYPTO_signature_verify_raw_ (
439 GNUNET_SIGNATURE_PURPOSE_GNS_REVOCATION,
440 &spurp->purpose,
441 sig,
442 key);
443 GNUNET_free (spurp);
444 return ret == GNUNET_OK ? GNUNET_OK : GNUNET_SYSERR;
445}
446
447
448enum GNUNET_GenericReturnValue
449check_signature (const struct GNUNET_REVOCATION_PowP *pow)
450{
451 const struct GNUNET_CRYPTO_PublicKey *pk;
452
453 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
454 return check_signature_identity (pow, pk);
455}
456
457
458/**
459 * Check if the given proof-of-work is valid.
460 *
461 * @param pow proof of work
462 * @param difficulty how many bits must match (configuration) LSD0001: D
463 * @param epoch_duration length of single epoch in configuration
464 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
465 */
466enum GNUNET_GenericReturnValue
467GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_PowP *pow,
468 unsigned int difficulty,
469 struct GNUNET_TIME_Relative epoch_duration)
470{
471 char buf[sizeof(struct GNUNET_CRYPTO_PublicKey)
472 + sizeof (struct GNUNET_TIME_AbsoluteNBO)
473 + sizeof (uint64_t)] GNUNET_ALIGN;
474 struct GNUNET_HashCode result;
475 struct GNUNET_TIME_Absolute ts;
476 struct GNUNET_TIME_Absolute exp;
477 struct GNUNET_TIME_Relative ttl;
478 struct GNUNET_TIME_Relative buffer;
479 /* LSD0001: D' */
480 unsigned int score = 0;
481 unsigned int tmp_score = 0;
482 unsigned int epochs;
483 uint64_t pow_val;
484 ssize_t pklen;
485 const struct GNUNET_CRYPTO_PublicKey *pk;
486
487 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
488
489 /**
490 * Check if signature valid
491 */
492 if (GNUNET_OK != check_signature (pow))
493 {
494 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
495 "Proof of work signature invalid!\n");
496 return GNUNET_SYSERR;
497 }
498
499 /**
500 * First, check if PoW set is strictly monotically increasing
501 */
502 for (unsigned int i = 0; i < POW_COUNT - 1; i++)
503 {
504 if (GNUNET_ntohll (pow->pow[i]) >= GNUNET_ntohll (pow->pow[i + 1]))
505 return GNUNET_NO;
506 }
507 GNUNET_memcpy (&buf[sizeof(uint64_t)],
508 &pow->timestamp,
509 sizeof (uint64_t));
510 pklen = GNUNET_CRYPTO_public_key_get_length (pk);
511 if (0 > pklen)
512 {
513 GNUNET_break (0);
514 return GNUNET_NO;
515 }
516 GNUNET_memcpy (&buf[sizeof(uint64_t) * 2],
517 pk,
518 pklen);
519 for (unsigned int i = 0; i < POW_COUNT; i++)
520 {
521 pow_val = GNUNET_ntohll (pow->pow[i]);
522 GNUNET_memcpy (buf, &pow->pow[i], sizeof(uint64_t));
523 GNUNET_CRYPTO_pow_hash (&salt,
524 buf,
525 sizeof(buf),
526 &result);
527 tmp_score = GNUNET_CRYPTO_hash_count_leading_zeros (&result);
528 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
529 "Score %u with %" PRIu64 " (#%u)\n",
530 tmp_score, pow_val, i);
531
532 score += tmp_score;
533
534 }
535 score = score / POW_COUNT;
536 if (score < difficulty)
537 return GNUNET_NO;
538 /* LSD0001: (D'-D+1) */
539 epochs = score - difficulty + 1;
540
541 /**
542 * Check expiration
543 */
544 ts = GNUNET_TIME_absolute_ntoh (pow->timestamp);
545 ttl = GNUNET_TIME_relative_multiply (epoch_duration,
546 epochs);
547 /**
548 * Extend by 10% for unsynchronized clocks
549 */
550 buffer = GNUNET_TIME_relative_divide (epoch_duration,
551 10);
552 exp = GNUNET_TIME_absolute_add (ts, ttl);
553 exp = GNUNET_TIME_absolute_add (exp,
554 buffer);
555
556 if (0 != GNUNET_TIME_absolute_get_remaining (ts).rel_value_us)
557 return GNUNET_NO; /* Not yet valid. */
558 /* Revert to actual start time */
559 ts = GNUNET_TIME_absolute_add (ts,
560 buffer);
561
562 if (0 == GNUNET_TIME_absolute_get_remaining (exp).rel_value_us)
563 return GNUNET_NO; /* expired */
564 return GNUNET_YES;
565}
566
567
568enum GNUNET_GenericReturnValue
569sign_pow_identity (const struct GNUNET_CRYPTO_PrivateKey *key,
570 struct GNUNET_REVOCATION_PowP *pow)
571{
572 struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get ();
573 struct GNUNET_REVOCATION_SignaturePurposePS *rp;
574 const struct GNUNET_CRYPTO_PublicKey *pk;
575 size_t ksize;
576 char *sig;
577
578 /**
579 * Predate the validity period to prevent rejections due to
580 * unsynchronized clocks
581 */
582 ts = GNUNET_TIME_absolute_subtract (ts,
583 GNUNET_TIME_UNIT_WEEKS);
584 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
585 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
586 pow->timestamp = GNUNET_TIME_absolute_hton (ts);
587 rp = REV_create_signature_message (pow);
588 sig = ((char*) &pow[1]) + ksize;
589 int result = GNUNET_CRYPTO_sign_raw_ (key,
590 &rp->purpose,
591 (void*) sig);
592 GNUNET_free (rp);
593 if (result == GNUNET_SYSERR)
594 return GNUNET_NO;
595 else
596 return result;
597}
598
599
600enum GNUNET_GenericReturnValue
601sign_pow (const struct GNUNET_CRYPTO_PrivateKey *key,
602 struct GNUNET_REVOCATION_PowP *pow)
603{
604 struct GNUNET_CRYPTO_PublicKey *pk;
605
606 pk = (struct GNUNET_CRYPTO_PublicKey *) &pow[1];
607 GNUNET_CRYPTO_key_get_public (key, pk);
608 return sign_pow_identity (key, pow);
609}
610
611
612/**
613 * Initializes a fresh PoW computation.
614 *
615 * @param key the key to calculate the PoW for.
616 * @param[out] pow starting point for PoW calculation (not yet valid)
617 */
618void
619GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_PrivateKey *key,
620 struct GNUNET_REVOCATION_PowP *pow)
621{
622 GNUNET_assert (GNUNET_OK == sign_pow (key, pow));
623}
624
625
626struct GNUNET_REVOCATION_PowCalculationHandle*
627GNUNET_REVOCATION_pow_start (struct GNUNET_REVOCATION_PowP *pow,
628 int epochs,
629 unsigned int difficulty)
630{
631 struct GNUNET_REVOCATION_PowCalculationHandle *pc;
632 struct GNUNET_TIME_Relative ttl;
633
634
635 pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle);
636 pc->pow = pow;
637 ttl = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_YEARS,
638 epochs);
639 pc->pow->ttl = GNUNET_TIME_relative_hton (ttl);
640 pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK,
641 UINT64_MAX);
642 pc->difficulty = difficulty;
643 pc->epochs = epochs;
644 return pc;
645}
646
647
648/**
649 * Comparison function for quicksort
650 *
651 * @param a left element
652 * @param b right element
653 * @return a-b
654 */
655static int
656cmp_pow_value (const void *a, const void *b)
657{
658 return (GNUNET_ntohll (*(uint64_t*) a) - GNUNET_ntohll (*(uint64_t*) b));
659}
660
661
662/**
663 * Calculate a key revocation valid for broadcasting for a number
664 * of epochs.
665 *
666 * @param pc handle to the PoW, initially called with NULL.
667 * @param epochs number of epochs for which the revocation must be valid.
668 * @param pow current pow value to try
669 * @param difficulty current base difficulty to achieve
670 * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not
671 */
672enum GNUNET_GenericReturnValue
673GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc)
674{
675 char buf[sizeof(struct GNUNET_CRYPTO_PublicKey)
676 + sizeof (uint64_t)
677 + sizeof (uint64_t)] GNUNET_ALIGN;
678 struct GNUNET_HashCode result;
679 const struct GNUNET_CRYPTO_PublicKey *pk;
680 unsigned int zeros;
681 int ret;
682 uint64_t pow_nbo;
683 ssize_t ksize;
684
685 pc->current_pow++;
686 pk = (const struct GNUNET_CRYPTO_PublicKey *) &(pc->pow[1]);
687
688 /**
689 * Do not try duplicates
690 */
691 for (unsigned int i = 0; i < POW_COUNT; i++)
692 if (pc->current_pow == pc->best[i].pow)
693 return GNUNET_NO;
694 pow_nbo = GNUNET_htonll (pc->current_pow);
695 GNUNET_memcpy (buf, &pow_nbo, sizeof(uint64_t));
696 GNUNET_memcpy (&buf[sizeof(uint64_t)],
697 &pc->pow->timestamp,
698 sizeof (uint64_t));
699 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
700 GNUNET_assert (0 < ksize);
701 GNUNET_memcpy (&buf[sizeof(uint64_t) * 2],
702 pk,
703 ksize);
704 GNUNET_CRYPTO_pow_hash (&salt,
705 buf,
706 sizeof(buf),
707 &result);
708 zeros = GNUNET_CRYPTO_hash_count_leading_zeros (&result);
709 for (unsigned int i = 0; i < POW_COUNT; i++)
710 {
711 if (pc->best[i].bits < zeros)
712 {
713 pc->best[i].bits = zeros;
714 pc->best[i].pow = pc->current_pow;
715 pc->pow->pow[i] = pow_nbo;
716 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
717 "New best score %u with %" PRIu64 " (#%u)\n",
718 zeros, pc->current_pow, i);
719
720 break;
721 }
722 }
723 ret = calculate_score (pc) >= pc->difficulty + pc->epochs ? GNUNET_YES :
724 GNUNET_NO;
725 if (GNUNET_YES == ret)
726 {
727 /* Sort POWs) */
728 qsort (pc->pow->pow, POW_COUNT, sizeof (uint64_t), &cmp_pow_value);
729 }
730 return ret;
731}
732
733
734/**
735 * Stop a PoW calculation
736 *
737 * @param pc the calculation to clean up
738 * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not
739 * valid
740 */
741void
742GNUNET_REVOCATION_pow_stop (struct GNUNET_REVOCATION_PowCalculationHandle *pc)
743{
744 GNUNET_free (pc);
745}
746
747
748size_t
749GNUNET_REVOCATION_proof_get_size (const struct GNUNET_REVOCATION_PowP *pow)
750{
751 size_t size;
752 size_t ksize;
753 const struct GNUNET_CRYPTO_PublicKey *pk;
754
755 size = sizeof (struct GNUNET_REVOCATION_PowP);
756 pk = (const struct GNUNET_CRYPTO_PublicKey *) &pow[1];
757 ksize = GNUNET_CRYPTO_public_key_get_length (pk);
758 size += ksize;
759 size += GNUNET_CRYPTO_signature_get_raw_length_by_type (pk->type);
760 return size;
761}
762
763
764/* end of revocation_api.c */ 334/* end of revocation_api.c */
diff --git a/src/service/seti/Makefile.am b/src/service/seti/Makefile.am
index c2d31df9c..00923d56d 100644
--- a/src/service/seti/Makefile.am
+++ b/src/service/seti/Makefile.am
@@ -68,19 +68,5 @@ test_seti_api_LDADD = \
68 $(top_builddir)/src/service/testing/libgnunettesting.la \ 68 $(top_builddir)/src/service/testing/libgnunettesting.la \
69 libgnunetseti.la 69 libgnunetseti.la
70 70
71plugin_LTLIBRARIES = \
72 libgnunet_plugin_block_seti_test.la
73
74libgnunet_plugin_block_seti_test_la_SOURCES = \
75 plugin_block_seti_test.c
76libgnunet_plugin_block_seti_test_la_LIBADD = \
77 $(top_builddir)/src/lib/block/libgnunetblock.la \
78 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
79 $(top_builddir)/src/lib/util/libgnunetutil.la \
80 $(LTLIBINTL)
81libgnunet_plugin_block_seti_test_la_LDFLAGS = \
82 $(GN_PLUGIN_LDFLAGS)
83
84
85EXTRA_DIST = \ 71EXTRA_DIST = \
86 test_seti.conf 72 test_seti.conf
diff --git a/src/service/seti/meson.build b/src/service/seti/meson.build
index 8538917d8..1743e327d 100644
--- a/src/service/seti/meson.build
+++ b/src/service/seti/meson.build
@@ -26,12 +26,6 @@ libgnunetseti = library('gnunetseti',
26pkg.generate(libgnunetseti, url: 'https://www.gnunet.org', 26pkg.generate(libgnunetseti, url: 'https://www.gnunet.org',
27 description : 'Provides API for accessing the set intersection service') 27 description : 'Provides API for accessing the set intersection service')
28libgnunetseti_dep = declare_dependency(link_with : libgnunetseti) 28libgnunetseti_dep = declare_dependency(link_with : libgnunetseti)
29shared_module('gnunet_plugin_block_seti_test',
30 ['plugin_block_seti_test.c'],
31 dependencies: libgnunetutil_dep,
32 include_directories: [incdir, configuration_inc],
33 install:true,
34 install_dir: get_option('libdir')/'gnunet')
35executable ('gnunet-service-seti', 29executable ('gnunet-service-seti',
36 gnunetserviceseti_src, 30 gnunetserviceseti_src,
37 dependencies: [libgnunetseti_dep, 31 dependencies: [libgnunetseti_dep,
diff --git a/src/service/setu/Makefile.am b/src/service/setu/Makefile.am
index f7f8ed394..f0cf9fdbc 100644
--- a/src/service/setu/Makefile.am
+++ b/src/service/setu/Makefile.am
@@ -88,19 +88,5 @@ perf_setu_api_LDADD = \
88 libgnunetsetu.la 88 libgnunetsetu.la
89 89
90 90
91plugin_LTLIBRARIES = \
92 libgnunet_plugin_block_setu_test.la
93
94libgnunet_plugin_block_setu_test_la_SOURCES = \
95 plugin_block_setu_test.c
96libgnunet_plugin_block_setu_test_la_LIBADD = \
97 $(top_builddir)/src/lib/block/libgnunetblock.la \
98 $(top_builddir)/src/lib/block/libgnunetblockgroup.la \
99 $(top_builddir)/src/lib/util/libgnunetutil.la \
100 $(LTLIBINTL)
101libgnunet_plugin_block_setu_test_la_LDFLAGS = \
102 $(GN_PLUGIN_LDFLAGS)
103
104
105EXTRA_DIST = \ 91EXTRA_DIST = \
106 test_setu.conf 92 test_setu.conf
diff --git a/src/service/setu/meson.build b/src/service/setu/meson.build
index 974f16274..ccfa5762b 100644
--- a/src/service/setu/meson.build
+++ b/src/service/setu/meson.build
@@ -28,12 +28,6 @@ libgnunetsetu = library('gnunetsetu',
28pkg.generate(libgnunetsetu, url: 'https://www.gnunet.org', 28pkg.generate(libgnunetsetu, url: 'https://www.gnunet.org',
29 description : 'Provides API for accessing the set union service') 29 description : 'Provides API for accessing the set union service')
30libgnunetsetu_dep = declare_dependency(link_with : libgnunetsetu) 30libgnunetsetu_dep = declare_dependency(link_with : libgnunetsetu)
31shared_module('gnunet_plugin_block_setu_test',
32 ['plugin_block_setu_test.c'],
33 dependencies: libgnunetutil_dep,
34 include_directories: [incdir, configuration_inc],
35 install:true,
36 install_dir: get_option('libdir')/'gnunet')
37executable ('gnunet-service-setu', 31executable ('gnunet-service-setu',
38 gnunetservicesetu_src, 32 gnunetservicesetu_src,
39 dependencies: [libgnunetsetu_dep, 33 dependencies: [libgnunetsetu_dep,
diff --git a/src/service/topology/gnunet-daemon-topology.c b/src/service/topology/gnunet-daemon-topology.c
index efabac0fc..71cc5bd19 100644
--- a/src/service/topology/gnunet-daemon-topology.c
+++ b/src/service/topology/gnunet-daemon-topology.c
@@ -641,35 +641,26 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
641 int num_addresses_old; 641 int num_addresses_old;
642 int num_addresses_new; 642 int num_addresses_new;
643 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello); 643 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello);
644 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder); 644 struct GNUNET_PeerIdentity pid;
645 struct Peer *peer; 645 struct Peer *peer;
646 uint16_t size; 646 uint16_t size;
647 647
648 GNUNET_HELLO_builder_iterate (builder, 648 GNUNET_HELLO_builder_iterate (builder,
649 pid, 649 &pid,
650 &address_iterator, 650 &address_iterator,
651 &num_addresses_new); 651 &num_addresses_new);
652 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 652 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
653 "consider 0 for %s\n", 653 "consider 0 for %s\n",
654 GNUNET_i2s (pid)); 654 GNUNET_i2s (&pid));
655 if (0 == num_addresses_new) 655 if (0 == num_addresses_new)
656 { 656 {
657 GNUNET_HELLO_builder_free (builder); 657 GNUNET_HELLO_builder_free (builder);
658 return; /* no point in advertising this one... */ 658 return; /* no point in advertising this one... */
659 } 659 }
660 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 660 peer = GNUNET_CONTAINER_multipeermap_get (peers, &pid);
661 "consider 1\n");
662 if (NULL == pid)
663 {
664 GNUNET_HELLO_builder_free (builder);
665 return;
666 }
667 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
668 "consider 2\n");
669 peer = GNUNET_CONTAINER_multipeermap_get (peers, pid);
670 if (NULL == peer) 661 if (NULL == peer)
671 { 662 {
672 peer = make_peer (pid, hello); 663 peer = make_peer (&pid, hello);
673 } 664 }
674 else if (NULL != peer->hello) 665 else if (NULL != peer->hello)
675 { 666 {
@@ -679,10 +670,10 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
679 struct GNUNET_TIME_Absolute old_hello_exp = 670 struct GNUNET_TIME_Absolute old_hello_exp =
680 GNUNET_HELLO_builder_get_expiration_time (peer->hello); 671 GNUNET_HELLO_builder_get_expiration_time (peer->hello);
681 struct GNUNET_HELLO_Builder *builder_old = GNUNET_HELLO_builder_from_msg (peer->hello); 672 struct GNUNET_HELLO_Builder *builder_old = GNUNET_HELLO_builder_from_msg (peer->hello);
682 struct GNUNET_PeerIdentity *pid_old = GNUNET_HELLO_builder_get_id (builder_old); 673 struct GNUNET_PeerIdentity pid_old;
683 674
684 GNUNET_HELLO_builder_iterate (builder_old, 675 GNUNET_HELLO_builder_iterate (builder_old,
685 pid_old, 676 &pid_old,
686 &address_iterator, 677 &address_iterator,
687 &num_addresses_old); 678 &num_addresses_old);
688 if (GNUNET_TIME_absolute_cmp (new_hello_exp, >, now) && 679 if (GNUNET_TIME_absolute_cmp (new_hello_exp, >, now) &&
@@ -710,7 +701,7 @@ consider_for_advertising (const struct GNUNET_MessageHeader *hello)
710 } 701 }
711 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 702 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
712 "Found HELLO from peer `%s' for advertising\n", 703 "Found HELLO from peer `%s' for advertising\n",
713 GNUNET_i2s (pid)); 704 GNUNET_i2s (&pid));
714 if (NULL != peer->filter) 705 if (NULL != peer->filter)
715 { 706 {
716 GNUNET_CONTAINER_bloomfilter_free (peer->filter); 707 GNUNET_CONTAINER_bloomfilter_free (peer->filter);
@@ -828,7 +819,7 @@ check_hello (void *cls, const struct GNUNET_MessageHeader *message)
828{ 819{
829 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg ( 820 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (
830 message); 821 message);
831 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder); 822 const struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder);
832 823
833 if (NULL == pid) 824 if (NULL == pid)
834 { 825 {
@@ -858,10 +849,8 @@ handle_hello (void *cls, const struct GNUNET_MessageHeader *message)
858{ 849{
859 struct GNUNET_PEERSTORE_StoreHelloContext *shc; 850 struct GNUNET_PEERSTORE_StoreHelloContext *shc;
860 const struct GNUNET_PeerIdentity *other = cls; 851 const struct GNUNET_PeerIdentity *other = cls;
861 struct Peer *peer;
862 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg ( 852 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (
863 message); 853 message);
864 struct GNUNET_PeerIdentity *pid = GNUNET_HELLO_builder_get_id (builder);
865 854
866 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 855 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
867 "Received encrypted HELLO from peer `%s'", 856 "Received encrypted HELLO from peer `%s'",
@@ -871,6 +860,7 @@ handle_hello (void *cls, const struct GNUNET_MessageHeader *message)
871 1, 860 1,
872 GNUNET_NO); 861 GNUNET_NO);
873 GNUNET_HELLO_builder_from_msg (message); 862 GNUNET_HELLO_builder_from_msg (message);
863 // FIXME this is not working shc uninitialized
874 shc = GNUNET_PEERSTORE_hello_add (ps, message, &shc_cont, shc); 864 shc = GNUNET_PEERSTORE_hello_add (ps, message, &shc_cont, shc);
875 GNUNET_HELLO_builder_free (builder); 865 GNUNET_HELLO_builder_free (builder);
876} 866}