aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-06-05 10:00:23 +0200
committerChristian Grothoff <christian@grothoff.org>2018-06-05 10:00:23 +0200
commit1cc9d829c0add9533f1bb7fab59c32a7328086d0 (patch)
tree82bc36b82747dacd38a41b3771c8db8ef1e668ad
parent09f7c260e7cd3bc0f12ad89e2dcf7d813f4089d8 (diff)
downloadgnunet-1cc9d829c0add9533f1bb7fab59c32a7328086d0.tar.gz
gnunet-1cc9d829c0add9533f1bb7fab59c32a7328086d0.zip
code cleanup, fix strlen
-rw-r--r--po/POTFILES.in124
-rw-r--r--src/gns/gnunet-gns-proxy.c313
2 files changed, 293 insertions, 144 deletions
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 120e3be78..35a9d6977 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
@@ -102,6 +102,7 @@ src/dht/dht_api.c
102src/dht/dht_test_lib.c 102src/dht/dht_test_lib.c
103src/dht/gnunet-dht-get.c 103src/dht/gnunet-dht-get.c
104src/dht/gnunet-dht-monitor.c 104src/dht/gnunet-dht-monitor.c
105src/dht/gnunet_dht_profiler.c
105src/dht/gnunet-dht-put.c 106src/dht/gnunet-dht-put.c
106src/dht/gnunet-service-dht.c 107src/dht/gnunet-service-dht.c
107src/dht/gnunet-service-dht_clients.c 108src/dht/gnunet-service-dht_clients.c
@@ -110,7 +111,6 @@ src/dht/gnunet-service-dht_hello.c
110src/dht/gnunet-service-dht_neighbours.c 111src/dht/gnunet-service-dht_neighbours.c
111src/dht/gnunet-service-dht_nse.c 112src/dht/gnunet-service-dht_nse.c
112src/dht/gnunet-service-dht_routing.c 113src/dht/gnunet-service-dht_routing.c
113src/dht/gnunet_dht_profiler.c
114src/dht/plugin_block_dht.c 114src/dht/plugin_block_dht.c
115src/dns/dns_api.c 115src/dns/dns_api.c
116src/dns/dnsparser.c 116src/dns/dnsparser.c
@@ -126,8 +126,8 @@ src/dv/gnunet-dv.c
126src/dv/gnunet-service-dv.c 126src/dv/gnunet-service-dv.c
127src/dv/plugin_transport_dv.c 127src/dv/plugin_transport_dv.c
128src/exit/gnunet-daemon-exit.c 128src/exit/gnunet-daemon-exit.c
129src/exit/gnunet-helper-exit-windows.c
130src/exit/gnunet-helper-exit.c 129src/exit/gnunet-helper-exit.c
130src/exit/gnunet-helper-exit-windows.c
131src/fragmentation/defragmentation.c 131src/fragmentation/defragmentation.c
132src/fragmentation/fragmentation.c 132src/fragmentation/fragmentation.c
133src/fs/fs_api.c 133src/fs/fs_api.c
@@ -152,8 +152,8 @@ src/fs/gnunet-auto-share.c
152src/fs/gnunet-daemon-fsprofiler.c 152src/fs/gnunet-daemon-fsprofiler.c
153src/fs/gnunet-directory.c 153src/fs/gnunet-directory.c
154src/fs/gnunet-download.c 154src/fs/gnunet-download.c
155src/fs/gnunet-fs-profiler.c
156src/fs/gnunet-fs.c 155src/fs/gnunet-fs.c
156src/fs/gnunet-fs-profiler.c
157src/fs/gnunet-helper-fs-publish.c 157src/fs/gnunet-helper-fs-publish.c
158src/fs/gnunet-publish.c 158src/fs/gnunet-publish.c
159src/fs/gnunet-search.c 159src/fs/gnunet-search.c
@@ -173,10 +173,10 @@ src/gns/gns_tld_api.c
173src/gns/gnunet-bcd.c 173src/gns/gnunet-bcd.c
174src/gns/gnunet-dns2gns.c 174src/gns/gnunet-dns2gns.c
175src/gns/gnunet-gns-benchmark.c 175src/gns/gnunet-gns-benchmark.c
176src/gns/gnunet-gns.c
176src/gns/gnunet-gns-helper-service-w32.c 177src/gns/gnunet-gns-helper-service-w32.c
177src/gns/gnunet-gns-import.c 178src/gns/gnunet-gns-import.c
178src/gns/gnunet-gns-proxy.c 179src/gns/gnunet-gns-proxy.c
179src/gns/gnunet-gns.c
180src/gns/gnunet-service-gns.c 180src/gns/gnunet-service-gns.c
181src/gns/gnunet-service-gns_interceptor.c 181src/gns/gnunet-service-gns_interceptor.c
182src/gns/gnunet-service-gns_resolver.c 182src/gns/gnunet-service-gns_resolver.c
@@ -185,15 +185,15 @@ src/gns/nss/nss_gns_query.c
185src/gns/plugin_block_gns.c 185src/gns/plugin_block_gns.c
186src/gns/plugin_gnsrecord_gns.c 186src/gns/plugin_gnsrecord_gns.c
187src/gns/plugin_rest_gns.c 187src/gns/plugin_rest_gns.c
188src/gns/w32nsp-install.c
189src/gns/w32nsp-resolve.c
190src/gns/w32nsp-uninstall.c
191src/gns/w32nsp.c
192src/gnsrecord/gnsrecord.c 188src/gnsrecord/gnsrecord.c
193src/gnsrecord/gnsrecord_crypto.c 189src/gnsrecord/gnsrecord_crypto.c
194src/gnsrecord/gnsrecord_misc.c 190src/gnsrecord/gnsrecord_misc.c
195src/gnsrecord/gnsrecord_serialization.c 191src/gnsrecord/gnsrecord_serialization.c
196src/gnsrecord/plugin_gnsrecord_dns.c 192src/gnsrecord/plugin_gnsrecord_dns.c
193src/gns/w32nsp.c
194src/gns/w32nsp-install.c
195src/gns/w32nsp-resolve.c
196src/gns/w32nsp-uninstall.c
197src/hello/address.c 197src/hello/address.c
198src/hello/gnunet-hello.c 198src/hello/gnunet-hello.c
199src/hello/hello.c 199src/hello/hello.c
@@ -202,6 +202,11 @@ src/hostlist/gnunet-daemon-hostlist_client.c
202src/hostlist/gnunet-daemon-hostlist_server.c 202src/hostlist/gnunet-daemon-hostlist_server.c
203src/identity-attribute/identity_attribute.c 203src/identity-attribute/identity_attribute.c
204src/identity-attribute/plugin_identity_attribute_gnuid.c 204src/identity-attribute/plugin_identity_attribute_gnuid.c
205src/identity/gnunet-identity.c
206src/identity/gnunet-service-identity.c
207src/identity/identity_api.c
208src/identity/identity_api_lookup.c
209src/identity/plugin_rest_identity.c
205src/identity-provider/gnunet-idp.c 210src/identity-provider/gnunet-idp.c
206src/identity-provider/gnunet-service-identity-provider.c 211src/identity-provider/gnunet-service-identity-provider.c
207src/identity-provider/identity_provider_api.c 212src/identity-provider/identity_provider_api.c
@@ -210,20 +215,15 @@ src/identity-provider/plugin_gnsrecord_identity_provider.c
210src/identity-provider/plugin_identity_provider_sqlite.c 215src/identity-provider/plugin_identity_provider_sqlite.c
211src/identity-provider/plugin_rest_identity_provider.c 216src/identity-provider/plugin_rest_identity_provider.c
212src/identity-provider/plugin_rest_openid_connect.c 217src/identity-provider/plugin_rest_openid_connect.c
213src/identity/gnunet-identity.c
214src/identity/gnunet-service-identity.c
215src/identity/identity_api.c
216src/identity/identity_api_lookup.c
217src/identity/plugin_rest_identity.c
218src/json/json.c
219src/json/json_generator.c
220src/json/json_helper.c
221src/json/json_mhd.c
222src/jsonapi/jsonapi.c 218src/jsonapi/jsonapi.c
223src/jsonapi/jsonapi_document.c 219src/jsonapi/jsonapi_document.c
224src/jsonapi/jsonapi_error.c 220src/jsonapi/jsonapi_error.c
225src/jsonapi/jsonapi_relationship.c 221src/jsonapi/jsonapi_relationship.c
226src/jsonapi/jsonapi_resource.c 222src/jsonapi/jsonapi_resource.c
223src/json/json.c
224src/json/json_generator.c
225src/json/json_helper.c
226src/json/json_mhd.c
227src/multicast/gnunet-multicast.c 227src/multicast/gnunet-multicast.c
228src/multicast/gnunet-service-multicast.c 228src/multicast/gnunet-service-multicast.c
229src/multicast/multicast_api.c 229src/multicast/multicast_api.c
@@ -237,8 +237,8 @@ src/namecache/namecache_api.c
237src/namecache/plugin_namecache_flat.c 237src/namecache/plugin_namecache_flat.c
238src/namecache/plugin_namecache_postgres.c 238src/namecache/plugin_namecache_postgres.c
239src/namecache/plugin_namecache_sqlite.c 239src/namecache/plugin_namecache_sqlite.c
240src/namestore/gnunet-namestore-fcfsd.c
241src/namestore/gnunet-namestore.c 240src/namestore/gnunet-namestore.c
241src/namestore/gnunet-namestore-fcfsd.c
242src/namestore/gnunet-service-namestore.c 242src/namestore/gnunet-service-namestore.c
243src/namestore/gnunet-zoneimport.c 243src/namestore/gnunet-zoneimport.c
244src/namestore/namestore_api.c 244src/namestore/namestore_api.c
@@ -254,10 +254,10 @@ src/nat-auto/gnunet-service-nat-auto.c
254src/nat-auto/gnunet-service-nat-auto_legacy.c 254src/nat-auto/gnunet-service-nat-auto_legacy.c
255src/nat-auto/nat_auto_api.c 255src/nat-auto/nat_auto_api.c
256src/nat-auto/nat_auto_api_test.c 256src/nat-auto/nat_auto_api_test.c
257src/nat/gnunet-helper-nat-client-windows.c
258src/nat/gnunet-helper-nat-client.c 257src/nat/gnunet-helper-nat-client.c
259src/nat/gnunet-helper-nat-server-windows.c 258src/nat/gnunet-helper-nat-client-windows.c
260src/nat/gnunet-helper-nat-server.c 259src/nat/gnunet-helper-nat-server.c
260src/nat/gnunet-helper-nat-server-windows.c
261src/nat/gnunet-nat.c 261src/nat/gnunet-nat.c
262src/nat/gnunet-service-nat.c 262src/nat/gnunet-service-nat.c
263src/nat/gnunet-service-nat_externalip.c 263src/nat/gnunet-service-nat_externalip.c
@@ -266,15 +266,15 @@ src/nat/gnunet-service-nat_mini.c
266src/nat/gnunet-service-nat_stun.c 266src/nat/gnunet-service-nat_stun.c
267src/nat/nat_api.c 267src/nat/nat_api.c
268src/nat/nat_api_stun.c 268src/nat/nat_api_stun.c
269src/nse/gnunet-nse-profiler.c
270src/nse/gnunet-nse.c 269src/nse/gnunet-nse.c
270src/nse/gnunet-nse-profiler.c
271src/nse/gnunet-service-nse.c 271src/nse/gnunet-service-nse.c
272src/nse/nse_api.c 272src/nse/nse_api.c
273src/peerinfo-tool/gnunet-peerinfo.c
274src/peerinfo-tool/gnunet-peerinfo_plugins.c
275src/peerinfo/gnunet-service-peerinfo.c 273src/peerinfo/gnunet-service-peerinfo.c
276src/peerinfo/peerinfo_api.c 274src/peerinfo/peerinfo_api.c
277src/peerinfo/peerinfo_api_notify.c 275src/peerinfo/peerinfo_api_notify.c
276src/peerinfo-tool/gnunet-peerinfo.c
277src/peerinfo-tool/gnunet-peerinfo_plugins.c
278src/peerstore/gnunet-peerstore.c 278src/peerstore/gnunet-peerstore.c
279src/peerstore/gnunet-service-peerstore.c 279src/peerstore/gnunet-service-peerstore.c
280src/peerstore/peerstore_api.c 280src/peerstore/peerstore_api.c
@@ -325,13 +325,13 @@ src/rps/gnunet-service-rps_custommap.c
325src/rps/gnunet-service-rps_sampler.c 325src/rps/gnunet-service-rps_sampler.c
326src/rps/gnunet-service-rps_sampler_elem.c 326src/rps/gnunet-service-rps_sampler_elem.c
327src/rps/gnunet-service-rps_view.c 327src/rps/gnunet-service-rps_view.c
328src/rps/rps-test_util.c
329src/rps/rps_api.c 328src/rps/rps_api.c
329src/rps/rps-test_util.c
330src/scalarproduct/gnunet-scalarproduct.c 330src/scalarproduct/gnunet-scalarproduct.c
331src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
332src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
333src/scalarproduct/gnunet-service-scalarproduct_alice.c 331src/scalarproduct/gnunet-service-scalarproduct_alice.c
334src/scalarproduct/gnunet-service-scalarproduct_bob.c 332src/scalarproduct/gnunet-service-scalarproduct_bob.c
333src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
334src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
335src/scalarproduct/scalarproduct_api.c 335src/scalarproduct/scalarproduct_api.c
336src/secretsharing/gnunet-secretsharing-profiler.c 336src/secretsharing/gnunet-secretsharing-profiler.c
337src/secretsharing/gnunet-service-secretsharing.c 337src/secretsharing/gnunet-service-secretsharing.c
@@ -360,16 +360,15 @@ src/statistics/gnunet-statistics.c
360src/statistics/statistics_api.c 360src/statistics/statistics_api.c
361src/template/gnunet-service-template.c 361src/template/gnunet-service-template.c
362src/template/gnunet-template.c 362src/template/gnunet-template.c
363src/testbed-logger/gnunet-service-testbed-logger.c
364src/testbed-logger/testbed_logger_api.c
365src/testbed/generate-underlay-topology.c 363src/testbed/generate-underlay-topology.c
366src/testbed/gnunet-daemon-latency-logger.c 364src/testbed/gnunet-daemon-latency-logger.c
367src/testbed/gnunet-daemon-testbed-blacklist.c 365src/testbed/gnunet-daemon-testbed-blacklist.c
368src/testbed/gnunet-daemon-testbed-underlay.c 366src/testbed/gnunet-daemon-testbed-underlay.c
369src/testbed/gnunet-helper-testbed.c 367src/testbed/gnunet-helper-testbed.c
368src/testbed/gnunet_mpi_test.c
370src/testbed/gnunet-service-test-barriers.c 369src/testbed/gnunet-service-test-barriers.c
371src/testbed/gnunet-service-testbed.c
372src/testbed/gnunet-service-testbed_barriers.c 370src/testbed/gnunet-service-testbed_barriers.c
371src/testbed/gnunet-service-testbed.c
373src/testbed/gnunet-service-testbed_cache.c 372src/testbed/gnunet-service-testbed_cache.c
374src/testbed/gnunet-service-testbed_connectionpool.c 373src/testbed/gnunet-service-testbed_connectionpool.c
375src/testbed/gnunet-service-testbed_cpustatus.c 374src/testbed/gnunet-service-testbed_cpustatus.c
@@ -377,19 +376,20 @@ src/testbed/gnunet-service-testbed_links.c
377src/testbed/gnunet-service-testbed_meminfo.c 376src/testbed/gnunet-service-testbed_meminfo.c
378src/testbed/gnunet-service-testbed_oc.c 377src/testbed/gnunet-service-testbed_oc.c
379src/testbed/gnunet-service-testbed_peers.c 378src/testbed/gnunet-service-testbed_peers.c
380src/testbed/gnunet-testbed-profiler.c
381src/testbed/gnunet_mpi_test.c
382src/testbed/gnunet_testbed_mpi_spawn.c 379src/testbed/gnunet_testbed_mpi_spawn.c
383src/testbed/testbed_api.c 380src/testbed/gnunet-testbed-profiler.c
381src/testbed-logger/gnunet-service-testbed-logger.c
382src/testbed-logger/testbed_logger_api.c
384src/testbed/testbed_api_barriers.c 383src/testbed/testbed_api_barriers.c
384src/testbed/testbed_api.c
385src/testbed/testbed_api_hosts.c 385src/testbed/testbed_api_hosts.c
386src/testbed/testbed_api_operations.c 386src/testbed/testbed_api_operations.c
387src/testbed/testbed_api_peers.c 387src/testbed/testbed_api_peers.c
388src/testbed/testbed_api_sd.c 388src/testbed/testbed_api_sd.c
389src/testbed/testbed_api_services.c 389src/testbed/testbed_api_services.c
390src/testbed/testbed_api_statistics.c 390src/testbed/testbed_api_statistics.c
391src/testbed/testbed_api_test.c
392src/testbed/testbed_api_testbed.c 391src/testbed/testbed_api_testbed.c
392src/testbed/testbed_api_test.c
393src/testbed/testbed_api_topology.c 393src/testbed/testbed_api_topology.c
394src/testbed/testbed_api_underlay.c 394src/testbed/testbed_api_underlay.c
395src/testing/gnunet-testing.c 395src/testing/gnunet-testing.c
@@ -398,39 +398,36 @@ src/testing/testing.c
398src/topology/friends.c 398src/topology/friends.c
399src/topology/gnunet-daemon-topology.c 399src/topology/gnunet-daemon-topology.c
400src/transport/gnunet-helper-transport-bluetooth.c 400src/transport/gnunet-helper-transport-bluetooth.c
401src/transport/gnunet-helper-transport-wlan-dummy.c
402src/transport/gnunet-helper-transport-wlan.c 401src/transport/gnunet-helper-transport-wlan.c
403src/transport/gnunet-service-transport.c 402src/transport/gnunet-helper-transport-wlan-dummy.c
404src/transport/gnunet-service-transport_ats.c 403src/transport/gnunet-service-transport_ats.c
404src/transport/gnunet-service-transport.c
405src/transport/gnunet-service-transport_hello.c 405src/transport/gnunet-service-transport_hello.c
406src/transport/gnunet-service-transport_manipulation.c 406src/transport/gnunet-service-transport_manipulation.c
407src/transport/gnunet-service-transport_neighbours.c 407src/transport/gnunet-service-transport_neighbours.c
408src/transport/gnunet-service-transport_plugins.c 408src/transport/gnunet-service-transport_plugins.c
409src/transport/gnunet-service-transport_validation.c 409src/transport/gnunet-service-transport_validation.c
410src/transport/gnunet-transport.c
410src/transport/gnunet-transport-certificate-creation.c 411src/transport/gnunet-transport-certificate-creation.c
411src/transport/gnunet-transport-profiler.c 412src/transport/gnunet-transport-profiler.c
412src/transport/gnunet-transport-wlan-receiver.c 413src/transport/gnunet-transport-wlan-receiver.c
413src/transport/gnunet-transport-wlan-sender.c 414src/transport/gnunet-transport-wlan-sender.c
414src/transport/gnunet-transport.c
415src/transport/plugin_transport_http_client.c 415src/transport/plugin_transport_http_client.c
416src/transport/plugin_transport_http_common.c 416src/transport/plugin_transport_http_common.c
417src/transport/plugin_transport_http_server.c 417src/transport/plugin_transport_http_server.c
418src/transport/plugin_transport_smtp.c 418src/transport/plugin_transport_smtp.c
419src/transport/plugin_transport_tcp.c 419src/transport/plugin_transport_tcp.c
420src/transport/plugin_transport_template.c 420src/transport/plugin_transport_template.c
421src/transport/plugin_transport_udp.c
422src/transport/plugin_transport_udp_broadcasting.c 421src/transport/plugin_transport_udp_broadcasting.c
422src/transport/plugin_transport_udp.c
423src/transport/plugin_transport_unix.c 423src/transport/plugin_transport_unix.c
424src/transport/plugin_transport_wlan.c 424src/transport/plugin_transport_wlan.c
425src/transport/plugin_transport_xt.c
426src/transport/plugin_transport_xu.c
425src/transport/tcp_connection_legacy.c 427src/transport/tcp_connection_legacy.c
426src/transport/tcp_server_legacy.c 428src/transport/tcp_server_legacy.c
427src/transport/tcp_server_mst_legacy.c 429src/transport/tcp_server_mst_legacy.c
428src/transport/tcp_service_legacy.c 430src/transport/tcp_service_legacy.c
429src/transport/transport-testing-filenames.c
430src/transport/transport-testing-loggers.c
431src/transport/transport-testing-main.c
432src/transport/transport-testing-send.c
433src/transport/transport-testing.c
434src/transport/transport_api_address_to_string.c 431src/transport/transport_api_address_to_string.c
435src/transport/transport_api_blacklist.c 432src/transport/transport_api_blacklist.c
436src/transport/transport_api_core.c 433src/transport/transport_api_core.c
@@ -439,6 +436,11 @@ src/transport/transport_api_manipulation.c
439src/transport/transport_api_monitor_peers.c 436src/transport/transport_api_monitor_peers.c
440src/transport/transport_api_monitor_plugins.c 437src/transport/transport_api_monitor_plugins.c
441src/transport/transport_api_offer_hello.c 438src/transport/transport_api_offer_hello.c
439src/transport/transport-testing.c
440src/transport/transport-testing-filenames.c
441src/transport/transport-testing-loggers.c
442src/transport/transport-testing-main.c
443src/transport/transport-testing-send.c
442src/tun/regex.c 444src/tun/regex.c
443src/tun/tun.c 445src/tun/tun.c
444src/util/bandwidth.c 446src/util/bandwidth.c
@@ -452,8 +454,8 @@ src/util/configuration_loader.c
452src/util/container_bloomfilter.c 454src/util/container_bloomfilter.c
453src/util/container_heap.c 455src/util/container_heap.c
454src/util/container_meta_data.c 456src/util/container_meta_data.c
455src/util/container_multihashmap.c
456src/util/container_multihashmap32.c 457src/util/container_multihashmap32.c
458src/util/container_multihashmap.c
457src/util/container_multipeermap.c 459src/util/container_multipeermap.c
458src/util/container_multishortmap.c 460src/util/container_multishortmap.c
459src/util/crypto_abe.c 461src/util/crypto_abe.c
@@ -474,8 +476,8 @@ src/util/crypto_symmetric.c
474src/util/disk.c 476src/util/disk.c
475src/util/getopt.c 477src/util/getopt.c
476src/util/getopt_helpers.c 478src/util/getopt_helpers.c
477src/util/gnunet-config-diff.c
478src/util/gnunet-config.c 479src/util/gnunet-config.c
480src/util/gnunet-config-diff.c
479src/util/gnunet-ecc.c 481src/util/gnunet-ecc.c
480src/util/gnunet-helper-w32-console.c 482src/util/gnunet-helper-w32-console.c
481src/util/gnunet-resolver.c 483src/util/gnunet-resolver.c
@@ -506,13 +508,13 @@ src/util/time.c
506src/util/w32cat.c 508src/util/w32cat.c
507src/util/win.c 509src/util/win.c
508src/util/winproc.c 510src/util/winproc.c
509src/vpn/gnunet-helper-vpn-windows.c
510src/vpn/gnunet-helper-vpn.c 511src/vpn/gnunet-helper-vpn.c
512src/vpn/gnunet-helper-vpn-windows.c
511src/vpn/gnunet-service-vpn.c 513src/vpn/gnunet-service-vpn.c
512src/vpn/gnunet-vpn.c 514src/vpn/gnunet-vpn.c
513src/vpn/vpn_api.c 515src/vpn/vpn_api.c
514src/zonemaster/gnunet-service-zonemaster-monitor.c
515src/zonemaster/gnunet-service-zonemaster.c 516src/zonemaster/gnunet-service-zonemaster.c
517src/zonemaster/gnunet-service-zonemaster-monitor.c
516src/fs/fs_api.h 518src/fs/fs_api.h
517src/include/gnunet_common.h 519src/include/gnunet_common.h
518src/include/gnunet_mq_lib.h 520src/include/gnunet_mq_lib.h
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c
index fcd69599b..e4fa5cc10 100644
--- a/src/gns/gnunet-gns-proxy.c
+++ b/src/gns/gnunet-gns-proxy.c
@@ -106,7 +106,13 @@
106 * @param fun name of curl_easy-function that gave the error 106 * @param fun name of curl_easy-function that gave the error
107 * @param rc return code from curl 107 * @param rc return code from curl
108 */ 108 */
109#define LOG_CURL_EASY(level,fun,rc) GNUNET_log(level, _("%s failed at %s:%d: `%s'\n"), fun, __FILE__, __LINE__, curl_easy_strerror (rc)) 109#define LOG_CURL_EASY(level,fun,rc) \
110 GNUNET_log (level, \
111 _("%s failed at %s:%d: `%s'\n"), \
112 fun, \
113 __FILE__, \
114 __LINE__, \
115 curl_easy_strerror (rc))
110 116
111 117
112/* *************** Socks protocol definitions (move to TUN?) ****************** */ 118/* *************** Socks protocol definitions (move to TUN?) ****************** */
@@ -768,21 +774,37 @@ cleanup_s5r (struct Socks5Request *s5r)
768 } 774 }
769 if ( (NULL != s5r->response) && 775 if ( (NULL != s5r->response) &&
770 (curl_failure_response != s5r->response) ) 776 (curl_failure_response != s5r->response) )
777 {
771 MHD_destroy_response (s5r->response); 778 MHD_destroy_response (s5r->response);
779 s5r->response = NULL;
780 }
772 if (NULL != s5r->rtask) 781 if (NULL != s5r->rtask)
782 {
773 GNUNET_SCHEDULER_cancel (s5r->rtask); 783 GNUNET_SCHEDULER_cancel (s5r->rtask);
784 s5r->rtask = NULL;
785 }
774 if (NULL != s5r->timeout_task) 786 if (NULL != s5r->timeout_task)
787 {
775 GNUNET_SCHEDULER_cancel (s5r->timeout_task); 788 GNUNET_SCHEDULER_cancel (s5r->timeout_task);
789 s5r->timeout_task = NULL;
790 }
776 if (NULL != s5r->wtask) 791 if (NULL != s5r->wtask)
792 {
777 GNUNET_SCHEDULER_cancel (s5r->wtask); 793 GNUNET_SCHEDULER_cancel (s5r->wtask);
794 s5r->wtask = NULL;
795 }
778 if (NULL != s5r->gns_lookup) 796 if (NULL != s5r->gns_lookup)
797 {
779 GNUNET_GNS_lookup_with_tld_cancel (s5r->gns_lookup); 798 GNUNET_GNS_lookup_with_tld_cancel (s5r->gns_lookup);
799 s5r->gns_lookup = NULL;
800 }
780 if (NULL != s5r->sock) 801 if (NULL != s5r->sock)
781 { 802 {
782 if (SOCKS5_SOCKET_WITH_MHD <= s5r->state) 803 if (SOCKS5_SOCKET_WITH_MHD <= s5r->state)
783 GNUNET_NETWORK_socket_free_memory_only_ (s5r->sock); 804 GNUNET_NETWORK_socket_free_memory_only_ (s5r->sock);
784 else 805 else
785 GNUNET_NETWORK_socket_close (s5r->sock); 806 GNUNET_NETWORK_socket_close (s5r->sock);
807 s5r->sock = NULL;
786 } 808 }
787 GNUNET_CONTAINER_DLL_remove (s5r_head, 809 GNUNET_CONTAINER_DLL_remove (s5r_head,
788 s5r_tail, 810 s5r_tail,
@@ -1129,7 +1151,9 @@ curl_check_hdr (void *buffer,
1129 domain_matched = GNUNET_NO; /* make sure we match domain at most once */ 1151 domain_matched = GNUNET_NO; /* make sure we match domain at most once */
1130 for (tok = strtok (hdr_val, ";"); NULL != tok; tok = strtok (NULL, ";")) 1152 for (tok = strtok (hdr_val, ";"); NULL != tok; tok = strtok (NULL, ";"))
1131 { 1153 {
1132 if ( (0 == strncasecmp (tok, " domain", strlen (" domain"))) && 1154 if ( (0 == strncasecmp (tok,
1155 " domain",
1156 strlen (" domain"))) &&
1133 (GNUNET_NO == domain_matched) ) 1157 (GNUNET_NO == domain_matched) )
1134 { 1158 {
1135 domain_matched = GNUNET_YES; 1159 domain_matched = GNUNET_YES;
@@ -1137,7 +1161,8 @@ curl_check_hdr (void *buffer,
1137 if (strlen (cookie_domain) < strlen (s5r->leho)) 1161 if (strlen (cookie_domain) < strlen (s5r->leho))
1138 { 1162 {
1139 delta_cdomain = strlen (s5r->leho) - strlen (cookie_domain); 1163 delta_cdomain = strlen (s5r->leho) - strlen (cookie_domain);
1140 if (0 == strcasecmp (cookie_domain, s5r->leho + delta_cdomain)) 1164 if (0 == strcasecmp (cookie_domain,
1165 s5r->leho + delta_cdomain))
1141 { 1166 {
1142 offset += sprintf (new_cookie_hdr + offset, 1167 offset += sprintf (new_cookie_hdr + offset,
1143 " domain=%s;", 1168 " domain=%s;",
@@ -1145,7 +1170,8 @@ curl_check_hdr (void *buffer,
1145 continue; 1170 continue;
1146 } 1171 }
1147 } 1172 }
1148 else if (0 == strcmp (cookie_domain, s5r->leho)) 1173 else if (0 == strcmp (cookie_domain,
1174 s5r->leho))
1149 { 1175 {
1150 offset += sprintf (new_cookie_hdr + offset, 1176 offset += sprintf (new_cookie_hdr + offset,
1151 " domain=%s;", 1177 " domain=%s;",
@@ -1156,7 +1182,9 @@ curl_check_hdr (void *buffer,
1156 _("Cookie domain `%s' supplied by server is invalid\n"), 1182 _("Cookie domain `%s' supplied by server is invalid\n"),
1157 tok); 1183 tok);
1158 } 1184 }
1159 GNUNET_memcpy (new_cookie_hdr + offset, tok, strlen (tok)); 1185 GNUNET_memcpy (new_cookie_hdr + offset,
1186 tok,
1187 strlen (tok));
1160 offset += strlen (tok); 1188 offset += strlen (tok);
1161 new_cookie_hdr[offset++] = ';'; 1189 new_cookie_hdr[offset++] = ';';
1162 } 1190 }
@@ -1164,7 +1192,8 @@ curl_check_hdr (void *buffer,
1164 } 1192 }
1165 1193
1166 new_location = NULL; 1194 new_location = NULL;
1167 if (0 == strcasecmp (MHD_HTTP_HEADER_LOCATION, hdr_type)) 1195 if (0 == strcasecmp (MHD_HTTP_HEADER_LOCATION,
1196 hdr_type))
1168 { 1197 {
1169 char *leho_host; 1198 char *leho_host;
1170 1199
@@ -1251,7 +1280,9 @@ create_mhd_response_from_s5r (struct Socks5Request *s5r)
1251 s5r->domain, 1280 s5r->domain,
1252 s5r->url); 1281 s5r->url);
1253 s5r->response_code = resp_code; 1282 s5r->response_code = resp_code;
1254 s5r->response = MHD_create_response_from_callback ((-1 == content_length) ? MHD_SIZE_UNKNOWN : content_length, 1283 s5r->response = MHD_create_response_from_callback ((-1 == content_length)
1284 ? MHD_SIZE_UNKNOWN
1285 : content_length,
1255 IO_BUFFERSIZE, 1286 IO_BUFFERSIZE,
1256 &mhd_content_cb, 1287 &mhd_content_cb,
1257 s5r, 1288 s5r,
@@ -1480,20 +1511,28 @@ curl_download_prepare ()
1480 return; 1511 return;
1481 } 1512 }
1482 to = -1; 1513 to = -1;
1483 GNUNET_break (CURLM_OK == curl_multi_timeout (curl_multi, &to)); 1514 GNUNET_break (CURLM_OK ==
1515 curl_multi_timeout (curl_multi,
1516 &to));
1484 if (-1 == to) 1517 if (-1 == to)
1485 rtime = GNUNET_TIME_UNIT_FOREVER_REL; 1518 rtime = GNUNET_TIME_UNIT_FOREVER_REL;
1486 else 1519 else
1487 rtime = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to); 1520 rtime = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS,
1521 to);
1488 if (-1 != max) 1522 if (-1 != max)
1489 { 1523 {
1490 grs = GNUNET_NETWORK_fdset_create (); 1524 grs = GNUNET_NETWORK_fdset_create ();
1491 gws = GNUNET_NETWORK_fdset_create (); 1525 gws = GNUNET_NETWORK_fdset_create ();
1492 GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1); 1526 GNUNET_NETWORK_fdset_copy_native (grs,
1493 GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1); 1527 &rs,
1528 max + 1);
1529 GNUNET_NETWORK_fdset_copy_native (gws,
1530 &ws,
1531 max + 1);
1494 curl_download_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT, 1532 curl_download_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1495 rtime, 1533 rtime,
1496 grs, gws, 1534 grs,
1535 gws,
1497 &curl_task_download, 1536 &curl_task_download,
1498 curl_multi); 1537 curl_multi);
1499 GNUNET_NETWORK_fdset_destroy (gws); 1538 GNUNET_NETWORK_fdset_destroy (gws);
@@ -1648,12 +1687,15 @@ con_val_iter (void *cls,
1648 struct Socks5Request *s5r = cls; 1687 struct Socks5Request *s5r = cls;
1649 char *hdr; 1688 char *hdr;
1650 1689
1651 if ( (0 == strcasecmp (MHD_HTTP_HEADER_HOST, key)) && 1690 if ( (0 == strcasecmp (MHD_HTTP_HEADER_HOST,
1691 key)) &&
1652 (NULL != s5r->leho) ) 1692 (NULL != s5r->leho) )
1653 value = s5r->leho; 1693 value = s5r->leho;
1654 if (0 == strcasecmp (MHD_HTTP_HEADER_CONTENT_LENGTH, key)) 1694 if (0 == strcasecmp (MHD_HTTP_HEADER_CONTENT_LENGTH,
1695 key))
1655 return MHD_YES; 1696 return MHD_YES;
1656 if (0 == strcasecmp (MHD_HTTP_HEADER_ACCEPT_ENCODING, key)) 1697 if (0 == strcasecmp (MHD_HTTP_HEADER_ACCEPT_ENCODING,
1698 key))
1657 return MHD_YES; 1699 return MHD_YES;
1658 GNUNET_asprintf (&hdr, 1700 GNUNET_asprintf (&hdr,
1659 "%s: %s", 1701 "%s: %s",
@@ -1774,21 +1816,40 @@ create_response (void *cls,
1774 return MHD_queue_response (con, 1816 return MHD_queue_response (con,
1775 MHD_HTTP_INTERNAL_SERVER_ERROR, 1817 MHD_HTTP_INTERNAL_SERVER_ERROR,
1776 curl_failure_response); 1818 curl_failure_response);
1777 curl_easy_setopt (s5r->curl, CURLOPT_HEADERFUNCTION, &curl_check_hdr); 1819 curl_easy_setopt (s5r->curl,
1778 curl_easy_setopt (s5r->curl, CURLOPT_HEADERDATA, s5r); 1820 CURLOPT_HEADERFUNCTION,
1779 curl_easy_setopt (s5r->curl, CURLOPT_FOLLOWLOCATION, 0); 1821 &curl_check_hdr);
1822 curl_easy_setopt (s5r->curl,
1823 CURLOPT_HEADERDATA,
1824 s5r);
1825 curl_easy_setopt (s5r->curl,
1826 CURLOPT_FOLLOWLOCATION,
1827 0);
1780 if (s5r->is_gns) 1828 if (s5r->is_gns)
1781 curl_easy_setopt (s5r->curl, 1829 curl_easy_setopt (s5r->curl,
1782 CURLOPT_IPRESOLVE, 1830 CURLOPT_IPRESOLVE,
1783 CURL_IPRESOLVE_V4); 1831 CURL_IPRESOLVE_V4);
1784 curl_easy_setopt (s5r->curl, CURLOPT_CONNECTTIMEOUT, 600L); 1832 curl_easy_setopt (s5r->curl,
1785 curl_easy_setopt (s5r->curl, CURLOPT_TIMEOUT, 600L); 1833 CURLOPT_CONNECTTIMEOUT,
1786 curl_easy_setopt (s5r->curl, CURLOPT_NOSIGNAL, 1L); 1834 600L);
1787 curl_easy_setopt (s5r->curl, CURLOPT_HTTP_CONTENT_DECODING, 0); 1835 curl_easy_setopt (s5r->curl,
1788 // curl_easy_setopt (s5r->curl, CURLOPT_HTTP_TRANSFER_DECODING, 0); 1836 CURLOPT_TIMEOUT,
1789 curl_easy_setopt (s5r->curl, CURLOPT_NOSIGNAL, 1L); 1837 600L);
1790 curl_easy_setopt (s5r->curl, CURLOPT_PRIVATE, s5r); 1838 curl_easy_setopt (s5r->curl,
1791 curl_easy_setopt (s5r->curl, CURLOPT_VERBOSE, 0L); 1839 CURLOPT_NOSIGNAL,
1840 1L);
1841 curl_easy_setopt (s5r->curl,
1842 CURLOPT_HTTP_CONTENT_DECODING,
1843 0);
1844 curl_easy_setopt (s5r->curl,
1845 CURLOPT_NOSIGNAL,
1846 1L);
1847 curl_easy_setopt (s5r->curl,
1848 CURLOPT_PRIVATE,
1849 s5r);
1850 curl_easy_setopt (s5r->curl,
1851 CURLOPT_VERBOSE,
1852 0L);
1792 /** 1853 /**
1793 * Pre-populate cache to resolve Hostname. 1854 * Pre-populate cache to resolve Hostname.
1794 * This is necessary as the DNS name in the CURLOPT_URL is used 1855 * This is necessary as the DNS name in the CURLOPT_URL is used
@@ -1844,11 +1905,21 @@ create_response (void *cls,
1844 MHD_HTTP_METHOD_PUT)) 1905 MHD_HTTP_METHOD_PUT))
1845 { 1906 {
1846 s5r->state = SOCKS5_SOCKET_UPLOAD_STARTED; 1907 s5r->state = SOCKS5_SOCKET_UPLOAD_STARTED;
1847 curl_easy_setopt (s5r->curl, CURLOPT_UPLOAD, 1L); 1908 curl_easy_setopt (s5r->curl,
1848 curl_easy_setopt (s5r->curl, CURLOPT_WRITEFUNCTION, &curl_download_cb); 1909 CURLOPT_UPLOAD,
1849 curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); 1910 1L);
1850 curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); 1911 curl_easy_setopt (s5r->curl,
1851 curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); 1912 CURLOPT_WRITEFUNCTION,
1913 &curl_download_cb);
1914 curl_easy_setopt (s5r->curl,
1915 CURLOPT_WRITEDATA,
1916 s5r);
1917 curl_easy_setopt (s5r->curl,
1918 CURLOPT_READFUNCTION,
1919 &curl_upload_cb);
1920 curl_easy_setopt (s5r->curl,
1921 CURLOPT_READDATA,
1922 s5r);
1852 { 1923 {
1853 const char *us; 1924 const char *us;
1854 long upload_size; 1925 long upload_size;
@@ -1870,11 +1941,21 @@ create_response (void *cls,
1870 else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_POST)) 1941 else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_POST))
1871 { 1942 {
1872 s5r->state = SOCKS5_SOCKET_UPLOAD_STARTED; 1943 s5r->state = SOCKS5_SOCKET_UPLOAD_STARTED;
1873 curl_easy_setopt (s5r->curl, CURLOPT_POST, 1L); 1944 curl_easy_setopt (s5r->curl,
1874 curl_easy_setopt (s5r->curl, CURLOPT_WRITEFUNCTION, &curl_download_cb); 1945 CURLOPT_POST,
1875 curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); 1946 1L);
1876 curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); 1947 curl_easy_setopt (s5r->curl,
1877 curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); 1948 CURLOPT_WRITEFUNCTION,
1949 &curl_download_cb);
1950 curl_easy_setopt (s5r->curl,
1951 CURLOPT_WRITEDATA,
1952 s5r);
1953 curl_easy_setopt (s5r->curl,
1954 CURLOPT_READFUNCTION,
1955 &curl_upload_cb);
1956 curl_easy_setopt (s5r->curl,
1957 CURLOPT_READDATA,
1958 s5r);
1878 { 1959 {
1879 const char *us; 1960 const char *us;
1880 long upload_size; 1961 long upload_size;
@@ -1893,22 +1974,35 @@ create_response (void *cls,
1893 } 1974 }
1894 } 1975 }
1895 } 1976 }
1896 else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_HEAD)) 1977 else if (0 == strcasecmp (meth,
1978 MHD_HTTP_METHOD_HEAD))
1897 { 1979 {
1898 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; 1980 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED;
1899 curl_easy_setopt (s5r->curl, CURLOPT_NOBODY, 1L); 1981 curl_easy_setopt (s5r->curl,
1982 CURLOPT_NOBODY,
1983 1L);
1900 } 1984 }
1901 else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_OPTIONS)) 1985 else if (0 == strcasecmp (meth,
1986 MHD_HTTP_METHOD_OPTIONS))
1902 { 1987 {
1903 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; 1988 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED;
1904 curl_easy_setopt (s5r->curl, CURLOPT_CUSTOMREQUEST, "OPTIONS"); 1989 curl_easy_setopt (s5r->curl,
1990 CURLOPT_CUSTOMREQUEST,
1991 "OPTIONS");
1905 } 1992 }
1906 else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_GET)) 1993 else if (0 == strcasecmp (meth,
1994 MHD_HTTP_METHOD_GET))
1907 { 1995 {
1908 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; 1996 s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED;
1909 curl_easy_setopt (s5r->curl, CURLOPT_HTTPGET, 1L); 1997 curl_easy_setopt (s5r->curl,
1910 curl_easy_setopt (s5r->curl, CURLOPT_WRITEFUNCTION, &curl_download_cb); 1998 CURLOPT_HTTPGET,
1911 curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); 1999 1L);
2000 curl_easy_setopt (s5r->curl,
2001 CURLOPT_WRITEFUNCTION,
2002 &curl_download_cb);
2003 curl_easy_setopt (s5r->curl,
2004 CURLOPT_WRITEDATA,
2005 s5r);
1912 } 2006 }
1913 else 2007 else
1914 { 2008 {
@@ -1922,31 +2016,47 @@ create_response (void *cls,
1922 2016
1923 if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_0)) 2017 if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_0))
1924 { 2018 {
1925 curl_easy_setopt (s5r->curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); 2019 curl_easy_setopt (s5r->curl,
2020 CURLOPT_HTTP_VERSION,
2021 CURL_HTTP_VERSION_1_0);
1926 } 2022 }
1927 else if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_1)) 2023 else if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_1))
1928 { 2024 {
1929 curl_easy_setopt (s5r->curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 2025 curl_easy_setopt (s5r->curl,
2026 CURLOPT_HTTP_VERSION,
2027 CURL_HTTP_VERSION_1_1);
1930 } 2028 }
1931 else 2029 else
1932 { 2030 {
1933 curl_easy_setopt (s5r->curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_NONE); 2031 curl_easy_setopt (s5r->curl,
2032 CURLOPT_HTTP_VERSION,
2033 CURL_HTTP_VERSION_NONE);
1934 } 2034 }
1935 2035
1936 if (HTTPS_PORT == s5r->port) 2036 if (HTTPS_PORT == s5r->port)
1937 { 2037 {
1938 curl_easy_setopt (s5r->curl, CURLOPT_USE_SSL, CURLUSESSL_ALL); 2038 curl_easy_setopt (s5r->curl,
2039 CURLOPT_USE_SSL,
2040 CURLUSESSL_ALL);
1939 if (NULL != s5r->dane_data) 2041 if (NULL != s5r->dane_data)
1940 curl_easy_setopt (s5r->curl, CURLOPT_SSL_VERIFYPEER, 0L); 2042 curl_easy_setopt (s5r->curl,
2043 CURLOPT_SSL_VERIFYPEER,
2044 0L);
1941 else 2045 else
1942 curl_easy_setopt (s5r->curl, CURLOPT_SSL_VERIFYPEER, 1L); 2046 curl_easy_setopt (s5r->curl,
2047 CURLOPT_SSL_VERIFYPEER,
2048 1L);
1943 /* Disable cURL checking the hostname, as we will check ourselves 2049 /* Disable cURL checking the hostname, as we will check ourselves
1944 as only we have the domain name or the LEHO or the DANE record */ 2050 as only we have the domain name or the LEHO or the DANE record */
1945 curl_easy_setopt (s5r->curl, CURLOPT_SSL_VERIFYHOST, 0L); 2051 curl_easy_setopt (s5r->curl,
2052 CURLOPT_SSL_VERIFYHOST,
2053 0L);
1946 } 2054 }
1947 else 2055 else
1948 { 2056 {
1949 curl_easy_setopt (s5r->curl, CURLOPT_USE_SSL, CURLUSESSL_NONE); 2057 curl_easy_setopt (s5r->curl,
2058 CURLOPT_USE_SSL,
2059 CURLUSESSL_NONE);
1950 } 2060 }
1951 2061
1952 if (CURLM_OK != 2062 if (CURLM_OK !=
@@ -1979,7 +2089,9 @@ create_response (void *cls,
1979 /* FIXME: This must be set or a header with Transfer-Encoding: chunked. Else 2089 /* FIXME: This must be set or a header with Transfer-Encoding: chunked. Else
1980 * upload callback is not called! 2090 * upload callback is not called!
1981 */ 2091 */
1982 curl_easy_setopt (s5r->curl, CURLOPT_POSTFIELDSIZE, *upload_data_size); 2092 curl_easy_setopt (s5r->curl,
2093 CURLOPT_POSTFIELDSIZE,
2094 *upload_data_size);
1983 2095
1984 left = GNUNET_MIN (*upload_data_size, 2096 left = GNUNET_MIN (*upload_data_size,
1985 sizeof (s5r->io_buf) - s5r->io_len); 2097 sizeof (s5r->io_buf) - s5r->io_len);
@@ -2372,8 +2484,10 @@ load_file (const char* filename,
2372 uint64_t fsize; 2484 uint64_t fsize;
2373 2485
2374 if (GNUNET_OK != 2486 if (GNUNET_OK !=
2375 GNUNET_DISK_file_size (filename, &fsize, 2487 GNUNET_DISK_file_size (filename,
2376 GNUNET_YES, GNUNET_YES)) 2488 &fsize,
2489 GNUNET_YES,
2490 GNUNET_YES))
2377 return NULL; 2491 return NULL;
2378 if (fsize > MAX_PEM_SIZE) 2492 if (fsize > MAX_PEM_SIZE)
2379 return NULL; 2493 return NULL;
@@ -2405,7 +2519,8 @@ load_key_from_file (gnutls_x509_privkey_t key,
2405 gnutls_datum_t key_data; 2519 gnutls_datum_t key_data;
2406 int ret; 2520 int ret;
2407 2521
2408 key_data.data = load_file (keyfile, &key_data.size); 2522 key_data.data = load_file (keyfile,
2523 &key_data.size);
2409 if (NULL == key_data.data) 2524 if (NULL == key_data.data)
2410 return GNUNET_SYSERR; 2525 return GNUNET_SYSERR;
2411 ret = gnutls_x509_privkey_import (key, &key_data, 2526 ret = gnutls_x509_privkey_import (key, &key_data,
@@ -2435,15 +2550,18 @@ load_cert_from_file (gnutls_x509_crt_t crt,
2435 gnutls_datum_t cert_data; 2550 gnutls_datum_t cert_data;
2436 int ret; 2551 int ret;
2437 2552
2438 cert_data.data = load_file (certfile, &cert_data.size); 2553 cert_data.data = load_file (certfile,
2554 &cert_data.size);
2439 if (NULL == cert_data.data) 2555 if (NULL == cert_data.data)
2440 return GNUNET_SYSERR; 2556 return GNUNET_SYSERR;
2441 ret = gnutls_x509_crt_import (crt, &cert_data, 2557 ret = gnutls_x509_crt_import (crt,
2558 &cert_data,
2442 GNUTLS_X509_FMT_PEM); 2559 GNUTLS_X509_FMT_PEM);
2443 if (GNUTLS_E_SUCCESS != ret) 2560 if (GNUTLS_E_SUCCESS != ret)
2444 { 2561 {
2445 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 2562 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
2446 _("Unable to import certificate %s\n"), certfile); 2563 _("Unable to import certificate from `%s'\n"),
2564 certfile);
2447 } 2565 }
2448 GNUNET_free_non_null (cert_data.data); 2566 GNUNET_free_non_null (cert_data.data);
2449 return (GNUTLS_E_SUCCESS != ret) ? GNUNET_SYSERR : GNUNET_OK; 2567 return (GNUTLS_E_SUCCESS != ret) ? GNUNET_SYSERR : GNUNET_OK;
@@ -2473,14 +2591,27 @@ generate_gns_certificate (const char *name)
2473 GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_init (&request)); 2591 GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_init (&request));
2474 GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_set_key (request, proxy_ca.key)); 2592 GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_set_key (request, proxy_ca.key));
2475 pgc = GNUNET_new (struct ProxyGNSCertificate); 2593 pgc = GNUNET_new (struct ProxyGNSCertificate);
2476 gnutls_x509_crt_set_dn_by_oid (request, GNUTLS_OID_X520_COUNTRY_NAME, 2594 gnutls_x509_crt_set_dn_by_oid (request,
2477 0, "ZZ", 2); 2595 GNUTLS_OID_X520_COUNTRY_NAME,
2478 gnutls_x509_crt_set_dn_by_oid (request, GNUTLS_OID_X520_ORGANIZATION_NAME, 2596 0,
2479 0, "GNU Name System", 4); 2597 "ZZ",
2480 gnutls_x509_crt_set_dn_by_oid (request, GNUTLS_OID_X520_COMMON_NAME, 2598 strlen ("ZZ"));
2481 0, name, strlen (name)); 2599 gnutls_x509_crt_set_dn_by_oid (request,
2482 GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_set_version (request, 3)); 2600 GNUTLS_OID_X520_ORGANIZATION_NAME,
2483 gnutls_rnd (GNUTLS_RND_NONCE, &serial, sizeof (serial)); 2601 0,
2602 "GNU Name System",
2603 strlen ("GNU Name System"));
2604 gnutls_x509_crt_set_dn_by_oid (request,
2605 GNUTLS_OID_X520_COMMON_NAME,
2606 0,
2607 name,
2608 strlen (name));
2609 GNUNET_break (GNUTLS_E_SUCCESS ==
2610 gnutls_x509_crt_set_version (request,
2611 3));
2612 gnutls_rnd (GNUTLS_RND_NONCE,
2613 &serial,
2614 sizeof (serial));
2484 gnutls_x509_crt_set_serial (request, 2615 gnutls_x509_crt_set_serial (request,
2485 &serial, 2616 &serial,
2486 sizeof (serial)); 2617 sizeof (serial));
@@ -2501,10 +2632,14 @@ generate_gns_certificate (const char *name)
2501 0); 2632 0);
2502 key_buf_size = sizeof (pgc->key); 2633 key_buf_size = sizeof (pgc->key);
2503 cert_buf_size = sizeof (pgc->cert); 2634 cert_buf_size = sizeof (pgc->cert);
2504 gnutls_x509_crt_export (request, GNUTLS_X509_FMT_PEM, 2635 gnutls_x509_crt_export (request,
2505 pgc->cert, &cert_buf_size); 2636 GNUTLS_X509_FMT_PEM,
2506 gnutls_x509_privkey_export (proxy_ca.key, GNUTLS_X509_FMT_PEM, 2637 pgc->cert,
2507 pgc->key, &key_buf_size); 2638 &cert_buf_size);
2639 gnutls_x509_privkey_export (proxy_ca.key,
2640 GNUTLS_X509_FMT_PEM,
2641 pgc->key,
2642 &key_buf_size);
2508 gnutls_x509_crt_deinit (request); 2643 gnutls_x509_crt_deinit (request);
2509 return pgc; 2644 return pgc;
2510} 2645}
@@ -2945,7 +3080,8 @@ do_s5r_read (void *cls)
2945 s5r->rtask = NULL; 3080 s5r->rtask = NULL;
2946 tc = GNUNET_SCHEDULER_get_task_context (); 3081 tc = GNUNET_SCHEDULER_get_task_context ();
2947 if ( (NULL != tc->read_ready) && 3082 if ( (NULL != tc->read_ready) &&
2948 (GNUNET_NETWORK_fdset_isset (tc->read_ready, s5r->sock)) ) 3083 (GNUNET_NETWORK_fdset_isset (tc->read_ready,
3084 s5r->sock)) )
2949 { 3085 {
2950 rlen = GNUNET_NETWORK_socket_recv (s5r->sock, 3086 rlen = GNUNET_NETWORK_socket_recv (s5r->sock,
2951 &s5r->rbuf[s5r->rbuf_len], 3087 &s5r->rbuf[s5r->rbuf_len],
@@ -3142,17 +3278,22 @@ do_accept (void *cls)
3142 if (lsock == lsock4) 3278 if (lsock == lsock4)
3143 ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 3279 ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
3144 lsock, 3280 lsock,
3145 &do_accept, lsock); 3281 &do_accept,
3282 lsock);
3146 else if (lsock == lsock6) 3283 else if (lsock == lsock6)
3147 ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 3284 ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
3148 lsock, 3285 lsock,
3149 &do_accept, lsock); 3286 &do_accept,
3287 lsock);
3150 else 3288 else
3151 GNUNET_assert (0); 3289 GNUNET_assert (0);
3152 s = GNUNET_NETWORK_socket_accept (lsock, NULL, NULL); 3290 s = GNUNET_NETWORK_socket_accept (lsock,
3291 NULL,
3292 NULL);
3153 if (NULL == s) 3293 if (NULL == s)
3154 { 3294 {
3155 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "accept"); 3295 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
3296 "accept");
3156 return; 3297 return;
3157 } 3298 }
3158 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3299 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -3165,7 +3306,8 @@ do_accept (void *cls)
3165 s5r->state = SOCKS5_INIT; 3306 s5r->state = SOCKS5_INIT;
3166 s5r->rtask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, 3307 s5r->rtask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
3167 s5r->sock, 3308 s5r->sock,
3168 &do_s5r_read, s5r); 3309 &do_s5r_read,
3310 s5r);
3169} 3311}
3170 3312
3171 3313
@@ -3262,7 +3404,8 @@ bind_v4 ()
3262 if (NULL == ls) 3404 if (NULL == ls)
3263 return NULL; 3405 return NULL;
3264 if (GNUNET_OK != 3406 if (GNUNET_OK !=
3265 GNUNET_NETWORK_socket_bind (ls, (const struct sockaddr *) &sa4, 3407 GNUNET_NETWORK_socket_bind (ls,
3408 (const struct sockaddr *) &sa4,
3266 sizeof (sa4))) 3409 sizeof (sa4)))
3267 { 3410 {
3268 eno = errno; 3411 eno = errno;
@@ -3298,7 +3441,8 @@ bind_v6 ()
3298 if (NULL == ls) 3441 if (NULL == ls)
3299 return NULL; 3442 return NULL;
3300 if (GNUNET_OK != 3443 if (GNUNET_OK !=
3301 GNUNET_NETWORK_socket_bind (ls, (const struct sockaddr *) &sa6, 3444 GNUNET_NETWORK_socket_bind (ls,
3445 (const struct sockaddr *) &sa6,
3302 sizeof (sa6))) 3446 sizeof (sa6)))
3303 { 3447 {
3304 eno = errno; 3448 eno = errno;
@@ -3353,7 +3497,8 @@ run (void *cls,
3353 cafile = cafile_cfg; 3497 cafile = cafile_cfg;
3354 } 3498 }
3355 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3499 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
3356 "Using %s as CA\n", cafile); 3500 "Using `%s' as CA\n",
3501 cafile);
3357 3502
3358 gnutls_global_init (); 3503 gnutls_global_init ();
3359 gnutls_x509_crt_init (&proxy_ca.cert); 3504 gnutls_x509_crt_init (&proxy_ca.cert);
@@ -3488,7 +3633,8 @@ run (void *cls,
3488 * @return 0 ok, 1 on error 3633 * @return 0 ok, 1 on error
3489 */ 3634 */
3490int 3635int
3491main (int argc, char *const *argv) 3636main (int argc,
3637 char *const *argv)
3492{ 3638{
3493 struct GNUNET_GETOPT_CommandLineOption options[] = { 3639 struct GNUNET_GETOPT_CommandLineOption options[] = {
3494 GNUNET_GETOPT_option_uint16 ('p', 3640 GNUNET_GETOPT_option_uint16 ('p',
@@ -3509,8 +3655,9 @@ main (int argc, char *const *argv)
3509 "</head><body>cURL fail</body></html>"; 3655 "</head><body>cURL fail</body></html>";
3510 int ret; 3656 int ret;
3511 3657
3512 if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, 3658 if (GNUNET_OK !=
3513 &argc, &argv)) 3659 GNUNET_STRINGS_get_utf8_args (argc, argv,
3660 &argc, &argv))
3514 return 2; 3661 return 2;
3515 GNUNET_log_setup ("gnunet-gns-proxy", 3662 GNUNET_log_setup ("gnunet-gns-proxy",
3516 "WARNING", 3663 "WARNING",