diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-12-20 14:54:23 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-12-20 14:54:23 +0000 |
commit | a0a09022f0d0df917465b8e71753a69f066058d3 (patch) | |
tree | 83deac8d2675eb6709baa6cbb5bec0e964da7dc5 /src/gns | |
parent | c8b0a68ec9cbe6bc4f525b1e8c24bb1c0bb3485d (diff) | |
download | gnunet-a0a09022f0d0df917465b8e71753a69f066058d3.tar.gz gnunet-a0a09022f0d0df917465b8e71753a69f066058d3.zip |
-fix VPN resolution to A/AAAA records
Diffstat (limited to 'src/gns')
-rw-r--r-- | src/gns/gnunet-service-gns_resolver.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index ede81b49d..14e714a85 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c | |||
@@ -1396,7 +1396,7 @@ handle_gns_resolution_result (void *cls, | |||
1396 | case GNUNET_GNSRECORD_TYPE_VPN: | 1396 | case GNUNET_GNSRECORD_TYPE_VPN: |
1397 | { | 1397 | { |
1398 | af = (GNUNET_DNSPARSER_TYPE_A == rh->record_type) ? AF_INET : AF_INET6; | 1398 | af = (GNUNET_DNSPARSER_TYPE_A == rh->record_type) ? AF_INET : AF_INET6; |
1399 | if (sizeof (struct GNUNET_TUN_GnsVpnRecord) < | 1399 | if (sizeof (struct GNUNET_TUN_GnsVpnRecord) > |
1400 | rd[i].data_size) | 1400 | rd[i].data_size) |
1401 | { | 1401 | { |
1402 | GNUNET_break_op (0); | 1402 | GNUNET_break_op (0); |
@@ -1416,16 +1416,24 @@ handle_gns_resolution_result (void *cls, | |||
1416 | GNUNET_CRYPTO_hash (vname, | 1416 | GNUNET_CRYPTO_hash (vname, |
1417 | strlen (vname), // FIXME: +1? | 1417 | strlen (vname), // FIXME: +1? |
1418 | &vhash); | 1418 | &vhash); |
1419 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1420 | "Attempting VPN allocation for %s-%s (AF: %d, proto %d)\n", | ||
1421 | GNUNET_i2s (&vpn->peer), | ||
1422 | vname, | ||
1423 | (int) af, | ||
1424 | (int) ntohs (vpn->proto)); | ||
1419 | vpn_ctx = GNUNET_new (struct VpnContext); | 1425 | vpn_ctx = GNUNET_new (struct VpnContext); |
1420 | rh->vpn_ctx = vpn_ctx; | 1426 | rh->vpn_ctx = vpn_ctx; |
1421 | vpn_ctx->rh = rh; | 1427 | vpn_ctx->rh = rh; |
1422 | vpn_ctx->rd_data_size = GNUNET_GNSRECORD_records_get_size (rd_count, | 1428 | vpn_ctx->rd_data_size = GNUNET_GNSRECORD_records_get_size (rd_count, |
1423 | rd); | 1429 | rd); |
1424 | vpn_ctx->rd_data = GNUNET_malloc (vpn_ctx->rd_data_size); | 1430 | vpn_ctx->rd_data = GNUNET_malloc (vpn_ctx->rd_data_size); |
1425 | (void) GNUNET_GNSRECORD_records_serialize (rd_count, | 1431 | vpn_ctx->rd_count = rd_count; |
1426 | rd, | 1432 | GNUNET_assert (vpn_ctx->rd_data_size == |
1427 | vpn_ctx->rd_data_size, | 1433 | GNUNET_GNSRECORD_records_serialize (rd_count, |
1428 | vpn_ctx->rd_data); | 1434 | rd, |
1435 | vpn_ctx->rd_data_size, | ||
1436 | vpn_ctx->rd_data)); | ||
1429 | vpn_ctx->vpn_request = GNUNET_VPN_redirect_to_peer (vpn_handle, | 1437 | vpn_ctx->vpn_request = GNUNET_VPN_redirect_to_peer (vpn_handle, |
1430 | af, | 1438 | af, |
1431 | ntohs (vpn->proto), | 1439 | ntohs (vpn->proto), |
@@ -1433,7 +1441,7 @@ handle_gns_resolution_result (void *cls, | |||
1433 | &vhash, | 1441 | &vhash, |
1434 | GNUNET_TIME_relative_to_absolute (VPN_TIMEOUT), | 1442 | GNUNET_TIME_relative_to_absolute (VPN_TIMEOUT), |
1435 | &vpn_allocation_cb, | 1443 | &vpn_allocation_cb, |
1436 | rh); | 1444 | vpn_ctx); |
1437 | return; | 1445 | return; |
1438 | } | 1446 | } |
1439 | case GNUNET_GNSRECORD_TYPE_GNS2DNS: | 1447 | case GNUNET_GNSRECORD_TYPE_GNS2DNS: |