aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/man/gnunet-namestore.18
-rw-r--r--po/POTFILES.in110
-rw-r--r--src/namestore/gnunet-namestore.c117
-rw-r--r--src/namestore/test_namestore_put_multiple.sh1
4 files changed, 140 insertions, 96 deletions
diff --git a/doc/man/gnunet-namestore.1 b/doc/man/gnunet-namestore.1
index 10577a0d9..9f4b4d2d6 100644
--- a/doc/man/gnunet-namestore.1
+++ b/doc/man/gnunet-namestore.1
@@ -61,6 +61,14 @@ label)
61Determine our GNS name for the given public key (reverse lookup of the 61Determine our GNS name for the given public key (reverse lookup of the
62PKEY) in the given zone. 62PKEY) in the given zone.
63.B 63.B
64.IP "\-R RECORDLINE, \-\-replace=RECORDLINE"
65Sets record set to values given in RECORDLINE. This option can be specified multiple
66times to provide multiple records for the record set. Existing records under the
67same label will be deleted. The format for the RECORDLINE is
68"TTL TYPE FLAGS VALUE" where TTL is the time to live in seconds, TYPE is the
69DNS/GNS record type, FLAGS is "(N)ORMAL", "(S)HADOW" or "(P)UBLIC". The VALUE
70follows the usual human-readable value format(s) of DNS/GNS.
71.B
64.IP "\-s, \-\-shadow" 72.IP "\-s, \-\-shadow"
65Create a record that is a shadow record. Shadow records are only used 73Create a record that is a shadow record. Shadow records are only used
66once all other records of the same type under the same label have 74once all other records of the same type under the same label have
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5f4c5ee7f..54fe7b4e7 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -4,21 +4,13 @@ src/arm/arm_monitor_api.c
4src/arm/gnunet-arm.c 4src/arm/gnunet-arm.c
5src/arm/gnunet-service-arm.c 5src/arm/gnunet-service-arm.c
6src/arm/mockup-service.c 6src/arm/mockup-service.c
7src/ats-tests/ats-testing-experiment.c
8src/ats-tests/ats-testing-log.c
9src/ats-tests/ats-testing-preferences.c
10src/ats-tests/ats-testing-traffic.c
11src/ats-tests/ats-testing.c
12src/ats-tests/gnunet-ats-sim.c
13src/ats-tests/gnunet-solver-eval.c
14src/ats-tool/gnunet-ats.c
15src/ats/ats_api_connectivity.c 7src/ats/ats_api_connectivity.c
16src/ats/ats_api_performance.c 8src/ats/ats_api_performance.c
17src/ats/ats_api_scanner.c 9src/ats/ats_api_scanner.c
18src/ats/ats_api_scheduling.c 10src/ats/ats_api_scheduling.c
19src/ats/gnunet-ats-solver-eval.c 11src/ats/gnunet-ats-solver-eval.c
20src/ats/gnunet-service-ats.c
21src/ats/gnunet-service-ats_addresses.c 12src/ats/gnunet-service-ats_addresses.c
13src/ats/gnunet-service-ats.c
22src/ats/gnunet-service-ats_connectivity.c 14src/ats/gnunet-service-ats_connectivity.c
23src/ats/gnunet-service-ats_normalization.c 15src/ats/gnunet-service-ats_normalization.c
24src/ats/gnunet-service-ats_performance.c 16src/ats/gnunet-service-ats_performance.c
@@ -29,6 +21,14 @@ src/ats/gnunet-service-ats_scheduling.c
29src/ats/plugin_ats_mlp.c 21src/ats/plugin_ats_mlp.c
30src/ats/plugin_ats_proportional.c 22src/ats/plugin_ats_proportional.c
31src/ats/plugin_ats_ril.c 23src/ats/plugin_ats_ril.c
24src/ats-tests/ats-testing.c
25src/ats-tests/ats-testing-experiment.c
26src/ats-tests/ats-testing-log.c
27src/ats-tests/ats-testing-preferences.c
28src/ats-tests/ats-testing-traffic.c
29src/ats-tests/gnunet-ats-sim.c
30src/ats-tests/gnunet-solver-eval.c
31src/ats-tool/gnunet-ats.c
32src/auction/gnunet-auction-create.c 32src/auction/gnunet-auction-create.c
33src/auction/gnunet-auction-info.c 33src/auction/gnunet-auction-info.c
34src/auction/gnunet-auction-join.c 34src/auction/gnunet-auction-join.c
@@ -40,8 +40,8 @@ src/block/plugin_block_test.c
40src/cadet/cadet_api.c 40src/cadet/cadet_api.c
41src/cadet/cadet_test_lib.c 41src/cadet/cadet_test_lib.c
42src/cadet/desirability_table.c 42src/cadet/desirability_table.c
43src/cadet/gnunet-cadet-profiler.c
44src/cadet/gnunet-cadet.c 43src/cadet/gnunet-cadet.c
44src/cadet/gnunet-cadet-profiler.c
45src/cadet/gnunet-service-cadet.c 45src/cadet/gnunet-service-cadet.c
46src/cadet/gnunet-service-cadet_channel.c 46src/cadet/gnunet-service-cadet_channel.c
47src/cadet/gnunet-service-cadet_connection.c 47src/cadet/gnunet-service-cadet_connection.c
@@ -57,15 +57,15 @@ src/consensus/gnunet-service-consensus.c
57src/consensus/plugin_block_consensus.c 57src/consensus/plugin_block_consensus.c
58src/conversation/conversation_api.c 58src/conversation/conversation_api.c
59src/conversation/conversation_api_call.c 59src/conversation/conversation_api_call.c
60src/conversation/gnunet-conversation-test.c
61src/conversation/gnunet-conversation.c 60src/conversation/gnunet-conversation.c
62src/conversation/gnunet-helper-audio-playback-gst.c 61src/conversation/gnunet-conversation-test.c
62src/conversation/gnunet_gst.c
63src/conversation/gnunet_gst_test.c
63src/conversation/gnunet-helper-audio-playback.c 64src/conversation/gnunet-helper-audio-playback.c
64src/conversation/gnunet-helper-audio-record-gst.c 65src/conversation/gnunet-helper-audio-playback-gst.c
65src/conversation/gnunet-helper-audio-record.c 66src/conversation/gnunet-helper-audio-record.c
67src/conversation/gnunet-helper-audio-record-gst.c
66src/conversation/gnunet-service-conversation.c 68src/conversation/gnunet-service-conversation.c
67src/conversation/gnunet_gst.c
68src/conversation/gnunet_gst_test.c
69src/conversation/microphone.c 69src/conversation/microphone.c
70src/conversation/plugin_gnsrecord_conversation.c 70src/conversation/plugin_gnsrecord_conversation.c
71src/conversation/speaker.c 71src/conversation/speaker.c
@@ -101,6 +101,7 @@ src/dht/dht_api.c
101src/dht/dht_test_lib.c 101src/dht/dht_test_lib.c
102src/dht/gnunet-dht-get.c 102src/dht/gnunet-dht-get.c
103src/dht/gnunet-dht-monitor.c 103src/dht/gnunet-dht-monitor.c
104src/dht/gnunet_dht_profiler.c
104src/dht/gnunet-dht-put.c 105src/dht/gnunet-dht-put.c
105src/dht/gnunet-service-dht.c 106src/dht/gnunet-service-dht.c
106src/dht/gnunet-service-dht_clients.c 107src/dht/gnunet-service-dht_clients.c
@@ -109,7 +110,6 @@ src/dht/gnunet-service-dht_hello.c
109src/dht/gnunet-service-dht_neighbours.c 110src/dht/gnunet-service-dht_neighbours.c
110src/dht/gnunet-service-dht_nse.c 111src/dht/gnunet-service-dht_nse.c
111src/dht/gnunet-service-dht_routing.c 112src/dht/gnunet-service-dht_routing.c
112src/dht/gnunet_dht_profiler.c
113src/dht/plugin_block_dht.c 113src/dht/plugin_block_dht.c
114src/dns/dns_api.c 114src/dns/dns_api.c
115src/dns/gnunet-dns-monitor.c 115src/dns/gnunet-dns-monitor.c
@@ -123,8 +123,8 @@ src/dv/gnunet-dv.c
123src/dv/gnunet-service-dv.c 123src/dv/gnunet-service-dv.c
124src/dv/plugin_transport_dv.c 124src/dv/plugin_transport_dv.c
125src/exit/gnunet-daemon-exit.c 125src/exit/gnunet-daemon-exit.c
126src/exit/gnunet-helper-exit-windows.c
127src/exit/gnunet-helper-exit.c 126src/exit/gnunet-helper-exit.c
127src/exit/gnunet-helper-exit-windows.c
128src/fragmentation/defragmentation.c 128src/fragmentation/defragmentation.c
129src/fragmentation/fragmentation.c 129src/fragmentation/fragmentation.c
130src/fs/fs_api.c 130src/fs/fs_api.c
@@ -149,8 +149,8 @@ src/fs/gnunet-auto-share.c
149src/fs/gnunet-daemon-fsprofiler.c 149src/fs/gnunet-daemon-fsprofiler.c
150src/fs/gnunet-directory.c 150src/fs/gnunet-directory.c
151src/fs/gnunet-download.c 151src/fs/gnunet-download.c
152src/fs/gnunet-fs-profiler.c
153src/fs/gnunet-fs.c 152src/fs/gnunet-fs.c
153src/fs/gnunet-fs-profiler.c
154src/fs/gnunet-helper-fs-publish.c 154src/fs/gnunet-helper-fs-publish.c
155src/fs/gnunet-publish.c 155src/fs/gnunet-publish.c
156src/fs/gnunet-search.c 156src/fs/gnunet-search.c
@@ -170,10 +170,10 @@ src/gns/gns_tld_api.c
170src/gns/gnunet-bcd.c 170src/gns/gnunet-bcd.c
171src/gns/gnunet-dns2gns.c 171src/gns/gnunet-dns2gns.c
172src/gns/gnunet-gns-benchmark.c 172src/gns/gnunet-gns-benchmark.c
173src/gns/gnunet-gns.c
173src/gns/gnunet-gns-helper-service-w32.c 174src/gns/gnunet-gns-helper-service-w32.c
174src/gns/gnunet-gns-import.c 175src/gns/gnunet-gns-import.c
175src/gns/gnunet-gns-proxy.c 176src/gns/gnunet-gns-proxy.c
176src/gns/gnunet-gns.c
177src/gns/gnunet-service-gns.c 177src/gns/gnunet-service-gns.c
178src/gns/gnunet-service-gns_interceptor.c 178src/gns/gnunet-service-gns_interceptor.c
179src/gns/gnunet-service-gns_resolver.c 179src/gns/gnunet-service-gns_resolver.c
@@ -181,15 +181,15 @@ src/gns/nss/nss_gns.c
181src/gns/nss/nss_gns_query.c 181src/gns/nss/nss_gns_query.c
182src/gns/plugin_block_gns.c 182src/gns/plugin_block_gns.c
183src/gns/plugin_gnsrecord_gns.c 183src/gns/plugin_gnsrecord_gns.c
184src/gns/w32nsp-install.c
185src/gns/w32nsp-resolve.c
186src/gns/w32nsp-uninstall.c
187src/gns/w32nsp.c
188src/gnsrecord/gnsrecord.c 184src/gnsrecord/gnsrecord.c
189src/gnsrecord/gnsrecord_crypto.c 185src/gnsrecord/gnsrecord_crypto.c
190src/gnsrecord/gnsrecord_misc.c 186src/gnsrecord/gnsrecord_misc.c
191src/gnsrecord/gnsrecord_serialization.c 187src/gnsrecord/gnsrecord_serialization.c
192src/gnsrecord/plugin_gnsrecord_dns.c 188src/gnsrecord/plugin_gnsrecord_dns.c
189src/gns/w32nsp.c
190src/gns/w32nsp-install.c
191src/gns/w32nsp-resolve.c
192src/gns/w32nsp-uninstall.c
193src/hello/address.c 193src/hello/address.c
194src/hello/gnunet-hello.c 194src/hello/gnunet-hello.c
195src/hello/hello.c 195src/hello/hello.c
@@ -218,8 +218,8 @@ src/namecache/namecache_api.c
218src/namecache/plugin_namecache_flat.c 218src/namecache/plugin_namecache_flat.c
219src/namecache/plugin_namecache_postgres.c 219src/namecache/plugin_namecache_postgres.c
220src/namecache/plugin_namecache_sqlite.c 220src/namecache/plugin_namecache_sqlite.c
221src/namestore/gnunet-namestore-fcfsd.c
222src/namestore/gnunet-namestore.c 221src/namestore/gnunet-namestore.c
222src/namestore/gnunet-namestore-fcfsd.c
223src/namestore/gnunet-service-namestore.c 223src/namestore/gnunet-service-namestore.c
224src/namestore/gnunet-zoneimport.c 224src/namestore/gnunet-zoneimport.c
225src/namestore/namestore_api.c 225src/namestore/namestore_api.c
@@ -234,10 +234,10 @@ src/nat-auto/gnunet-service-nat-auto.c
234src/nat-auto/gnunet-service-nat-auto_legacy.c 234src/nat-auto/gnunet-service-nat-auto_legacy.c
235src/nat-auto/nat_auto_api.c 235src/nat-auto/nat_auto_api.c
236src/nat-auto/nat_auto_api_test.c 236src/nat-auto/nat_auto_api_test.c
237src/nat/gnunet-helper-nat-client-windows.c
238src/nat/gnunet-helper-nat-client.c 237src/nat/gnunet-helper-nat-client.c
239src/nat/gnunet-helper-nat-server-windows.c 238src/nat/gnunet-helper-nat-client-windows.c
240src/nat/gnunet-helper-nat-server.c 239src/nat/gnunet-helper-nat-server.c
240src/nat/gnunet-helper-nat-server-windows.c
241src/nat/gnunet-nat.c 241src/nat/gnunet-nat.c
242src/nat/gnunet-service-nat.c 242src/nat/gnunet-service-nat.c
243src/nat/gnunet-service-nat_externalip.c 243src/nat/gnunet-service-nat_externalip.c
@@ -246,15 +246,15 @@ src/nat/gnunet-service-nat_mini.c
246src/nat/gnunet-service-nat_stun.c 246src/nat/gnunet-service-nat_stun.c
247src/nat/nat_api.c 247src/nat/nat_api.c
248src/nat/nat_api_stun.c 248src/nat/nat_api_stun.c
249src/nse/gnunet-nse-profiler.c
250src/nse/gnunet-nse.c 249src/nse/gnunet-nse.c
250src/nse/gnunet-nse-profiler.c
251src/nse/gnunet-service-nse.c 251src/nse/gnunet-service-nse.c
252src/nse/nse_api.c 252src/nse/nse_api.c
253src/peerinfo-tool/gnunet-peerinfo.c
254src/peerinfo-tool/gnunet-peerinfo_plugins.c
255src/peerinfo/gnunet-service-peerinfo.c 253src/peerinfo/gnunet-service-peerinfo.c
256src/peerinfo/peerinfo_api.c 254src/peerinfo/peerinfo_api.c
257src/peerinfo/peerinfo_api_notify.c 255src/peerinfo/peerinfo_api_notify.c
256src/peerinfo-tool/gnunet-peerinfo.c
257src/peerinfo-tool/gnunet-peerinfo_plugins.c
258src/peerstore/gnunet-peerstore.c 258src/peerstore/gnunet-peerstore.c
259src/peerstore/gnunet-service-peerstore.c 259src/peerstore/gnunet-service-peerstore.c
260src/peerstore/peerstore_api.c 260src/peerstore/peerstore_api.c
@@ -301,6 +301,7 @@ src/regex/regex_internal_dht.c
301src/regex/regex_test_graph.c 301src/regex/regex_test_graph.c
302src/regex/regex_test_lib.c 302src/regex/regex_test_lib.c
303src/regex/regex_test_random.c 303src/regex/regex_test_random.c
304src/rest/gnunet-rest-server.c
304src/rest-plugins/json_reclaim.c 305src/rest-plugins/json_reclaim.c
305src/rest-plugins/oidc_helper.c 306src/rest-plugins/oidc_helper.c
306src/rest-plugins/plugin_rest_copying.c 307src/rest-plugins/plugin_rest_copying.c
@@ -311,28 +312,27 @@ src/rest-plugins/plugin_rest_namestore.c
311src/rest-plugins/plugin_rest_openid_connect.c 312src/rest-plugins/plugin_rest_openid_connect.c
312src/rest-plugins/plugin_rest_peerinfo.c 313src/rest-plugins/plugin_rest_peerinfo.c
313src/rest-plugins/plugin_rest_reclaim.c 314src/rest-plugins/plugin_rest_reclaim.c
314src/rest/gnunet-rest-server.c
315src/rest/rest.c 315src/rest/rest.c
316src/revocation/gnunet-revocation.c 316src/revocation/gnunet-revocation.c
317src/revocation/gnunet-service-revocation.c 317src/revocation/gnunet-service-revocation.c
318src/revocation/plugin_block_revocation.c 318src/revocation/plugin_block_revocation.c
319src/revocation/revocation_api.c 319src/revocation/revocation_api.c
320src/rps/gnunet-rps-profiler.c
321src/rps/gnunet-rps.c 320src/rps/gnunet-rps.c
321src/rps/gnunet-rps-profiler.c
322src/rps/gnunet-service-rps.c 322src/rps/gnunet-service-rps.c
323src/rps/gnunet-service-rps_custommap.c 323src/rps/gnunet-service-rps_custommap.c
324src/rps/gnunet-service-rps_sampler.c 324src/rps/gnunet-service-rps_sampler.c
325src/rps/gnunet-service-rps_sampler_elem.c 325src/rps/gnunet-service-rps_sampler_elem.c
326src/rps/gnunet-service-rps_view.c 326src/rps/gnunet-service-rps_view.c
327src/rps/rps_api.c
327src/rps/rps-sampler_client.c 328src/rps/rps-sampler_client.c
328src/rps/rps-sampler_common.c 329src/rps/rps-sampler_common.c
329src/rps/rps-test_util.c 330src/rps/rps-test_util.c
330src/rps/rps_api.c
331src/scalarproduct/gnunet-scalarproduct.c 331src/scalarproduct/gnunet-scalarproduct.c
332src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
333src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
334src/scalarproduct/gnunet-service-scalarproduct_alice.c 332src/scalarproduct/gnunet-service-scalarproduct_alice.c
335src/scalarproduct/gnunet-service-scalarproduct_bob.c 333src/scalarproduct/gnunet-service-scalarproduct_bob.c
334src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
335src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
336src/scalarproduct/scalarproduct_api.c 336src/scalarproduct/scalarproduct_api.c
337src/secretsharing/gnunet-secretsharing-profiler.c 337src/secretsharing/gnunet-secretsharing-profiler.c
338src/secretsharing/gnunet-service-secretsharing.c 338src/secretsharing/gnunet-service-secretsharing.c
@@ -361,16 +361,15 @@ src/statistics/gnunet-statistics.c
361src/statistics/statistics_api.c 361src/statistics/statistics_api.c
362src/template/gnunet-service-template.c 362src/template/gnunet-service-template.c
363src/template/gnunet-template.c 363src/template/gnunet-template.c
364src/testbed-logger/gnunet-service-testbed-logger.c
365src/testbed-logger/testbed_logger_api.c
366src/testbed/generate-underlay-topology.c 364src/testbed/generate-underlay-topology.c
367src/testbed/gnunet-daemon-latency-logger.c 365src/testbed/gnunet-daemon-latency-logger.c
368src/testbed/gnunet-daemon-testbed-blacklist.c 366src/testbed/gnunet-daemon-testbed-blacklist.c
369src/testbed/gnunet-daemon-testbed-underlay.c 367src/testbed/gnunet-daemon-testbed-underlay.c
370src/testbed/gnunet-helper-testbed.c 368src/testbed/gnunet-helper-testbed.c
369src/testbed/gnunet_mpi_test.c
371src/testbed/gnunet-service-test-barriers.c 370src/testbed/gnunet-service-test-barriers.c
372src/testbed/gnunet-service-testbed.c
373src/testbed/gnunet-service-testbed_barriers.c 371src/testbed/gnunet-service-testbed_barriers.c
372src/testbed/gnunet-service-testbed.c
374src/testbed/gnunet-service-testbed_cache.c 373src/testbed/gnunet-service-testbed_cache.c
375src/testbed/gnunet-service-testbed_connectionpool.c 374src/testbed/gnunet-service-testbed_connectionpool.c
376src/testbed/gnunet-service-testbed_cpustatus.c 375src/testbed/gnunet-service-testbed_cpustatus.c
@@ -378,19 +377,20 @@ src/testbed/gnunet-service-testbed_links.c
378src/testbed/gnunet-service-testbed_meminfo.c 377src/testbed/gnunet-service-testbed_meminfo.c
379src/testbed/gnunet-service-testbed_oc.c 378src/testbed/gnunet-service-testbed_oc.c
380src/testbed/gnunet-service-testbed_peers.c 379src/testbed/gnunet-service-testbed_peers.c
381src/testbed/gnunet-testbed-profiler.c
382src/testbed/gnunet_mpi_test.c
383src/testbed/gnunet_testbed_mpi_spawn.c 380src/testbed/gnunet_testbed_mpi_spawn.c
384src/testbed/testbed_api.c 381src/testbed/gnunet-testbed-profiler.c
382src/testbed-logger/gnunet-service-testbed-logger.c
383src/testbed-logger/testbed_logger_api.c
385src/testbed/testbed_api_barriers.c 384src/testbed/testbed_api_barriers.c
385src/testbed/testbed_api.c
386src/testbed/testbed_api_hosts.c 386src/testbed/testbed_api_hosts.c
387src/testbed/testbed_api_operations.c 387src/testbed/testbed_api_operations.c
388src/testbed/testbed_api_peers.c 388src/testbed/testbed_api_peers.c
389src/testbed/testbed_api_sd.c 389src/testbed/testbed_api_sd.c
390src/testbed/testbed_api_services.c 390src/testbed/testbed_api_services.c
391src/testbed/testbed_api_statistics.c 391src/testbed/testbed_api_statistics.c
392src/testbed/testbed_api_test.c
393src/testbed/testbed_api_testbed.c 392src/testbed/testbed_api_testbed.c
393src/testbed/testbed_api_test.c
394src/testbed/testbed_api_topology.c 394src/testbed/testbed_api_topology.c
395src/testbed/testbed_api_underlay.c 395src/testbed/testbed_api_underlay.c
396src/testing/gnunet-testing.c 396src/testing/gnunet-testing.c
@@ -400,29 +400,29 @@ src/topology/friends.c
400src/topology/gnunet-daemon-topology.c 400src/topology/gnunet-daemon-topology.c
401src/transport/gnunet-communicator-unix.c 401src/transport/gnunet-communicator-unix.c
402src/transport/gnunet-helper-transport-bluetooth.c 402src/transport/gnunet-helper-transport-bluetooth.c
403src/transport/gnunet-helper-transport-wlan-dummy.c
404src/transport/gnunet-helper-transport-wlan.c 403src/transport/gnunet-helper-transport-wlan.c
404src/transport/gnunet-helper-transport-wlan-dummy.c
405src/transport/gnunet-service-tng.c 405src/transport/gnunet-service-tng.c
406src/transport/gnunet-service-transport.c
407src/transport/gnunet-service-transport_ats.c 406src/transport/gnunet-service-transport_ats.c
407src/transport/gnunet-service-transport.c
408src/transport/gnunet-service-transport_hello.c 408src/transport/gnunet-service-transport_hello.c
409src/transport/gnunet-service-transport_manipulation.c 409src/transport/gnunet-service-transport_manipulation.c
410src/transport/gnunet-service-transport_neighbours.c 410src/transport/gnunet-service-transport_neighbours.c
411src/transport/gnunet-service-transport_plugins.c 411src/transport/gnunet-service-transport_plugins.c
412src/transport/gnunet-service-transport_validation.c 412src/transport/gnunet-service-transport_validation.c
413src/transport/gnunet-transport.c
413src/transport/gnunet-transport-certificate-creation.c 414src/transport/gnunet-transport-certificate-creation.c
414src/transport/gnunet-transport-profiler.c 415src/transport/gnunet-transport-profiler.c
415src/transport/gnunet-transport-wlan-receiver.c 416src/transport/gnunet-transport-wlan-receiver.c
416src/transport/gnunet-transport-wlan-sender.c 417src/transport/gnunet-transport-wlan-sender.c
417src/transport/gnunet-transport.c
418src/transport/plugin_transport_http_client.c 418src/transport/plugin_transport_http_client.c
419src/transport/plugin_transport_http_common.c 419src/transport/plugin_transport_http_common.c
420src/transport/plugin_transport_http_server.c 420src/transport/plugin_transport_http_server.c
421src/transport/plugin_transport_smtp.c 421src/transport/plugin_transport_smtp.c
422src/transport/plugin_transport_tcp.c 422src/transport/plugin_transport_tcp.c
423src/transport/plugin_transport_template.c 423src/transport/plugin_transport_template.c
424src/transport/plugin_transport_udp.c
425src/transport/plugin_transport_udp_broadcasting.c 424src/transport/plugin_transport_udp_broadcasting.c
425src/transport/plugin_transport_udp.c
426src/transport/plugin_transport_unix.c 426src/transport/plugin_transport_unix.c
427src/transport/plugin_transport_wlan.c 427src/transport/plugin_transport_wlan.c
428src/transport/plugin_transport_xt.c 428src/transport/plugin_transport_xt.c
@@ -431,11 +431,6 @@ src/transport/tcp_connection_legacy.c
431src/transport/tcp_server_legacy.c 431src/transport/tcp_server_legacy.c
432src/transport/tcp_server_mst_legacy.c 432src/transport/tcp_server_mst_legacy.c
433src/transport/tcp_service_legacy.c 433src/transport/tcp_service_legacy.c
434src/transport/transport-testing-filenames.c
435src/transport/transport-testing-loggers.c
436src/transport/transport-testing-main.c
437src/transport/transport-testing-send.c
438src/transport/transport-testing.c
439src/transport/transport_api2_communication.c 434src/transport/transport_api2_communication.c
440src/transport/transport_api_address_to_string.c 435src/transport/transport_api_address_to_string.c
441src/transport/transport_api_blacklist.c 436src/transport/transport_api_blacklist.c
@@ -445,6 +440,11 @@ src/transport/transport_api_manipulation.c
445src/transport/transport_api_monitor_peers.c 440src/transport/transport_api_monitor_peers.c
446src/transport/transport_api_monitor_plugins.c 441src/transport/transport_api_monitor_plugins.c
447src/transport/transport_api_offer_hello.c 442src/transport/transport_api_offer_hello.c
443src/transport/transport-testing.c
444src/transport/transport-testing-filenames.c
445src/transport/transport-testing-loggers.c
446src/transport/transport-testing-main.c
447src/transport/transport-testing-send.c
448src/util/bandwidth.c 448src/util/bandwidth.c
449src/util/benchmark.c 449src/util/benchmark.c
450src/util/bio.c 450src/util/bio.c
@@ -457,8 +457,8 @@ src/util/configuration_loader.c
457src/util/container_bloomfilter.c 457src/util/container_bloomfilter.c
458src/util/container_heap.c 458src/util/container_heap.c
459src/util/container_meta_data.c 459src/util/container_meta_data.c
460src/util/container_multihashmap.c
461src/util/container_multihashmap32.c 460src/util/container_multihashmap32.c
461src/util/container_multihashmap.c
462src/util/container_multipeermap.c 462src/util/container_multipeermap.c
463src/util/container_multishortmap.c 463src/util/container_multishortmap.c
464src/util/crypto_abe.c 464src/util/crypto_abe.c
@@ -480,15 +480,15 @@ src/util/dnsparser.c
480src/util/dnsstub.c 480src/util/dnsstub.c
481src/util/getopt.c 481src/util/getopt.c
482src/util/getopt_helpers.c 482src/util/getopt_helpers.c
483src/util/gnunet-config-diff.c
484src/util/gnunet-config.c 483src/util/gnunet-config.c
484src/util/gnunet-config-diff.c
485src/util/gnunet-ecc.c 485src/util/gnunet-ecc.c
486src/util/gnunet-helper-w32-console.c 486src/util/gnunet-helper-w32-console.c
487src/util/gnunet-resolver.c 487src/util/gnunet-resolver.c
488src/util/gnunet-scrypt.c 488src/util/gnunet-scrypt.c
489src/util/gnunet-service-resolver.c 489src/util/gnunet-service-resolver.c
490src/util/gnunet-timeout-w32.c
491src/util/gnunet-timeout.c 490src/util/gnunet-timeout.c
491src/util/gnunet-timeout-w32.c
492src/util/gnunet-uri.c 492src/util/gnunet-uri.c
493src/util/helper.c 493src/util/helper.c
494src/util/load.c 494src/util/load.c
@@ -516,13 +516,13 @@ src/util/tun.c
516src/util/w32cat.c 516src/util/w32cat.c
517src/util/win.c 517src/util/win.c
518src/util/winproc.c 518src/util/winproc.c
519src/vpn/gnunet-helper-vpn-windows.c
520src/vpn/gnunet-helper-vpn.c 519src/vpn/gnunet-helper-vpn.c
520src/vpn/gnunet-helper-vpn-windows.c
521src/vpn/gnunet-service-vpn.c 521src/vpn/gnunet-service-vpn.c
522src/vpn/gnunet-vpn.c 522src/vpn/gnunet-vpn.c
523src/vpn/vpn_api.c 523src/vpn/vpn_api.c
524src/zonemaster/gnunet-service-zonemaster-monitor.c
525src/zonemaster/gnunet-service-zonemaster.c 524src/zonemaster/gnunet-service-zonemaster.c
525src/zonemaster/gnunet-service-zonemaster-monitor.c
526src/fs/fs_api.h 526src/fs/fs_api.h
527src/include/gnunet_common.h 527src/include/gnunet_common.h
528src/include/gnunet_mq_lib.h 528src/include/gnunet_mq_lib.h
diff --git a/src/namestore/gnunet-namestore.c b/src/namestore/gnunet-namestore.c
index 619d0c528..8386a696d 100644
--- a/src/namestore/gnunet-namestore.c
+++ b/src/namestore/gnunet-namestore.c
@@ -136,6 +136,11 @@ static int is_shadow;
136static struct GNUNET_NAMESTORE_QueueEntry *del_qe; 136static struct GNUNET_NAMESTORE_QueueEntry *del_qe;
137 137
138/** 138/**
139 * Queue entry for the 'set/replace' operation.
140 */
141static struct GNUNET_NAMESTORE_QueueEntry *set_qe;
142
143/**
139 * Name of the records to add/list/remove. 144 * Name of the records to add/list/remove.
140 */ 145 */
141static char *name; 146static char *name;
@@ -195,7 +200,6 @@ static size_t data_size;
195 */ 200 */
196static uint64_t etime; 201static uint64_t etime;
197 202
198
199/** 203/**
200 * Is expiration time relative or absolute time? 204 * Is expiration time relative or absolute time?
201 */ 205 */
@@ -251,6 +255,11 @@ do_shutdown (void *cls)
251 GNUNET_NAMESTORE_cancel (add_qe); 255 GNUNET_NAMESTORE_cancel (add_qe);
252 add_qe = NULL; 256 add_qe = NULL;
253 } 257 }
258 if (NULL != set_qe)
259 {
260 GNUNET_NAMESTORE_cancel (set_qe);
261 set_qe = NULL;
262 }
254 if (NULL != add_qe_uri) 263 if (NULL != add_qe_uri)
255 { 264 {
256 GNUNET_NAMESTORE_cancel (add_qe_uri); 265 GNUNET_NAMESTORE_cancel (add_qe_uri);
@@ -930,43 +939,34 @@ parse_expiration (const char *expirationstring,
930} 939}
931 940
932 941
933#if 0 942/**
934/* globals? */ 943 * Function called when namestore is done with the replace
935unsigned int rd_count; 944 * operation.
936struct GNUNET_GNSRECORD_Data *rd; 945 *
937 946 * @param cls NULL
938 947 * @param success #GNUNET_SYSERR on failure (including timeout/queue drop/failure to validate)
939rd_count = 0; 948 * #GNUNET_NO if content was already there or not found
940for (struct RecordSetEntry *e = recordset; NULL != e; e = e->next) 949 * #GNUNET_YES (or other positive value) on success
941 rd_count++; 950 * @param emsg NULL on success, otherwise an error message
942rd = GNUNET_new_array (rd_count, 951 */
943 struct GNUNET_GNSRECORD_Data); 952static void
944rd_count = 0; 953replace_cont (void *cls,
945for (struct RecordSetEntry *e = recordset; NULL != e; e = e->next) 954 int success,
955 const char *emsg)
946{ 956{
947 rd[rd_count] = e->record; 957 (void) cls;
948 rd_count++; 958
959 set_qe = NULL;
960 if (GNUNET_OK != success)
961 {
962 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
963 _("Failed to replace records: %s\n"),
964 emsg);
965 ret = 1; /* fail from 'main' */
966 }
967 GNUNET_SCHEDULER_shutdown ();
949} 968}
950 969
951/* if add: */
952qe = GNUNET_NAMESTORE_records_store (...,
953 rd_count,
954 rd,
955 &my_cont
956 ..);
957
958in 'my_cont' and/or shutdown:
959
960qe = NULL;
961GNUNET_free (rd);
962
963in shutdown:
964
965if NULL != qe NAMESTORE_cancel (qe);
966GNUNET_free (rd);
967
968#endif
969
970 970
971/** 971/**
972 * Callback invoked from identity service with ego information. 972 * Callback invoked from identity service with ego information.
@@ -1000,7 +1000,7 @@ identity_cb (void *cls,
1000 GNUNET_free_non_null (ego_name); 1000 GNUNET_free_non_null (ego_name);
1001 ego_name = NULL; 1001 ego_name = NULL;
1002 1002
1003 if (! (add|del|list|(NULL != nickstring)|(NULL != uri)|(NULL != reverse_pkey)) ) 1003 if (! (add|del|list|(NULL != nickstring)|(NULL != uri)|(NULL != reverse_pkey))|(NULL != recordset) )
1004 { 1004 {
1005 /* nothing more to be done */ 1005 /* nothing more to be done */
1006 fprintf (stderr, 1006 fprintf (stderr,
@@ -1009,8 +1009,7 @@ identity_cb (void *cls,
1009 return; 1009 return;
1010 } 1010 }
1011 GNUNET_CRYPTO_ecdsa_key_get_public (&zone_pkey, 1011 GNUNET_CRYPTO_ecdsa_key_get_public (&zone_pkey,
1012 &pub); 1012 &pub);
1013
1014 ns = GNUNET_NAMESTORE_connect (cfg); 1013 ns = GNUNET_NAMESTORE_connect (cfg);
1015 if (NULL == ns) 1014 if (NULL == ns)
1016 { 1015 {
@@ -1018,6 +1017,44 @@ identity_cb (void *cls,
1018 _("Failed to connect to namestore\n")); 1017 _("Failed to connect to namestore\n"));
1019 return; 1018 return;
1020 } 1019 }
1020
1021 if (NULL != recordset)
1022 {
1023 /* replace entire record set */
1024 unsigned int rd_count;
1025 struct GNUNET_GNSRECORD_Data *rd;
1026
1027 if (NULL == name)
1028 {
1029 fprintf (stderr,
1030 _("Missing option `%s' for operation `%s'\n"),
1031 "-n", _("replace"));
1032 GNUNET_SCHEDULER_shutdown ();
1033 ret = 1;
1034 return;
1035 }
1036 rd_count = 0;
1037 for (struct RecordSetEntry *e = recordset; NULL != e; e = e->next)
1038 rd_count++;
1039 rd = GNUNET_new_array (rd_count,
1040 struct GNUNET_GNSRECORD_Data);
1041 rd_count = 0;
1042 for (struct RecordSetEntry *e = recordset; NULL != e; e = e->next)
1043 {
1044 rd[rd_count] = e->record;
1045 rd_count++;
1046 }
1047 set_qe = GNUNET_NAMESTORE_records_store (ns,
1048 &zone_pkey,
1049 name,
1050 rd_count,
1051 rd,
1052 &replace_cont,
1053 NULL);
1054 GNUNET_free (rd);
1055 return;
1056 }
1057
1021 if (add) 1058 if (add)
1022 { 1059 {
1023 if (NULL == name) 1060 if (NULL == name)
@@ -1526,9 +1563,9 @@ main (int argc,
1526 gettext_noop ("determine our name for the given PKEY"), 1563 gettext_noop ("determine our name for the given PKEY"),
1527 &reverse_pkey), 1564 &reverse_pkey),
1528 multirecord_option ('R', 1565 multirecord_option ('R',
1529 "record", 1566 "replace",
1530 "RECORDLINE", 1567 "RECORDLINE",
1531 gettext_noop ("complete record on one line to add/delete/display; can be specified multiple times"), 1568 gettext_noop ("set record set to values given by (possibly multiple) RECORDLINES; can be specified multiple times"),
1532 &recordset), 1569 &recordset),
1533 GNUNET_GETOPT_option_string ('t', 1570 GNUNET_GETOPT_option_string ('t',
1534 "type", 1571 "type",
diff --git a/src/namestore/test_namestore_put_multiple.sh b/src/namestore/test_namestore_put_multiple.sh
index 48ad95a3c..81e1ad2b5 100644
--- a/src/namestore/test_namestore_put_multiple.sh
+++ b/src/namestore/test_namestore_put_multiple.sh
@@ -75,7 +75,6 @@ function testing {
75# TEST CASES 75# TEST CASES
76# 1 76# 1
77echo "Testing adding of single A record with -R" 77echo "Testing adding of single A record with -R"
78declare -a arr=('1200 A n 127.0.0.1')
79testing test1 "${arr[@]}" 78testing test1 "${arr[@]}"
80# 2 79# 2
81echo "Testing adding of multiple A records with -R" 80echo "Testing adding of multiple A records with -R"