gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit 8f7f4944aaf9b689c4a5b35b869f17c18cd37f54
parent 0c6475bd0c66bbc5190fb199d67594f203d93b2f
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Mon, 14 Feb 2022 12:15:54 +0100

GNS: Rename CNAME test; bugfix

Diffstat:
Msrc/gns/Makefile.am | 2+-
Msrc/gns/gnunet-service-gns_resolver.c | 13++++++++-----
Msrc/gns/test_gns_redirect_lookup.sh | 53+++++++++++++++++++++++++++--------------------------
3 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/src/gns/Makefile.am b/src/gns/Makefile.am @@ -270,7 +270,7 @@ check_SCRIPTS = \ test_gns_rel_expiration.sh\ test_gns_soa_lookup.sh\ test_gns_revocation.sh\ - test_gns_cname_lookup.sh\ + test_gns_redirect_lookup.sh\ test_proxy.sh if HAVE_GNUTLS diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c @@ -1197,7 +1197,7 @@ recursive_dns_resolution (struct GNS_ResolverHandle *rh) */ static void handle_gns_redirect_result (struct GNS_ResolverHandle *rh, - const char *rname) + const char *rname) { size_t nlen; char *res; @@ -1206,6 +1206,9 @@ handle_gns_redirect_result (struct GNS_ResolverHandle *rh, int af; struct GNUNET_IDENTITY_PublicKey zone; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Handling GNS REDIRECT result `%s'\n", + rname); nlen = strlen (rname); tld = GNS_get_tld (rname); if (0 == strcmp ("+", tld)) @@ -1945,8 +1948,8 @@ handle_gns_resolution_result (void *cls, (GNUNET_GNSRECORD_TYPE_REDIRECT == rd[0].record_type) && (GNUNET_GNSRECORD_TYPE_REDIRECT != rh->record_type)) { - handle_gns_cname_result (rh, - rd[0].data); + handle_gns_redirect_result (rh, + rd[0].data); return; } @@ -2311,7 +2314,7 @@ handle_gns_resolution_result (void *cls, _ ("Unable to process critical delegation record\n")); break; } -fail: + fail: GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _ ("GNS lookup recursion failed (no delegation record found)\n")); fail_resolution (rh); @@ -2949,7 +2952,7 @@ GNS_resolver_init (struct GNUNET_NAMECACHE_Handle *nc, if (GNUNET_YES == disable_cache) GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Namecache disabled\n"); - } +} /** diff --git a/src/gns/test_gns_redirect_lookup.sh b/src/gns/test_gns_redirect_lookup.sh @@ -27,9 +27,9 @@ rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME` TEST_IP_PLUS="127.0.0.1" TEST_IP_DNS="131.159.74.67" -TEST_RECORD_CNAME_SERVER="server" -TEST_RECORD_CNAME_PLUS="server.+" -TEST_RECORD_CNAME_DNS="gnunet.org" +TEST_RECORD_REDIRECT_SERVER="server" +TEST_RECORD_REDIRECT_PLUS="server.+" +TEST_RECORD_REDIRECT_DNS="gnunet.org" TEST_RECORD_NAME_SERVER="server" TEST_RECORD_NAME_PLUS="www" TEST_RECORD_NAME_ZKEY="www2" @@ -43,57 +43,58 @@ which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 15" gnunet-arm -s -c test_gns_lookup.conf gnunet-identity -C $MY_EGO -c test_gns_lookup.conf MY_EGO_PKEY=$(gnunet-identity -d -c test_gns_lookup.conf | grep ${MY_EGO} | awk '{print $3}') -TEST_RECORD_CNAME_ZKEY="server.${MY_EGO_PKEY}" -gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_DNS -t CNAME -V $TEST_RECORD_CNAME_DNS -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_PLUS -t CNAME -V $TEST_RECORD_CNAME_PLUS -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_ZKEY -t CNAME -V $TEST_RECORD_CNAME_ZKEY -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_CNAME_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf -RES_CNAME=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t A -c test_gns_lookup.conf` -RES_CNAME_RAW=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t CNAME -c test_gns_lookup.conf` -RES_CNAME_ZKEY=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_ZKEY -t A -c test_gns_lookup.conf` -RES_CNAME_DNS=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_DNS -t A -c test_gns_lookup.conf | grep $TEST_IP_DNS` +TEST_RECORD_REDIRECT_ZKEY="server.${MY_EGO_PKEY}" +gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_DNS -t REDIRECT -V $TEST_RECORD_REDIRECT_DNS -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_PLUS -t REDIRECT -V $TEST_RECORD_REDIRECT_PLUS -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_ZKEY -t REDIRECT -V $TEST_RECORD_REDIRECT_ZKEY -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_REDIRECT_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf +gnunet-namestore -D -z $MY_EGO +RES_REDIRECT=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t A -c test_gns_lookup.conf` +RES_REDIRECT_RAW=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t REDIRECT -c test_gns_lookup.conf` +RES_REDIRECT_ZKEY=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_ZKEY -t A -c test_gns_lookup.conf` +RES_REDIRECT_DNS=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_DNS -t A -c test_gns_lookup.conf | grep $TEST_IP_DNS` TESTEGOZONE=`gnunet-identity -c test_gns_lookup.conf -d | awk '{print $3}'` -gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_DNS -t CNAME -V $TEST_RECORD_CNAME_DNS -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_PLUS -t CNAME -V $TEST_RECORD_CNAME_PLUS -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_ZKEY -t CNAME -V $TEST_RECORD_CNAME_ZKEY -e never -c test_gns_lookup.conf -gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_CNAME_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_DNS -t REDIRECT -V $TEST_RECORD_REDIRECT_DNS -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_PLUS -t REDIRECT -V $TEST_RECORD_REDIRECT_PLUS -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_NAME_ZKEY -t REDIRECT -V $TEST_RECORD_REDIRECT_ZKEY -e never -c test_gns_lookup.conf +gnunet-namestore -p -z $MY_EGO -d -n $TEST_RECORD_REDIRECT_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf gnunet-identity -D $MY_EGO -c test_gns_lookup.conf gnunet-arm -e -c test_gns_lookup.conf rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME` # make cmp case-insensitive by converting to lower case first -RES_CNAME_RAW=`echo $RES_CNAME_RAW | tr [A-Z] [a-z]` +RES_REDIRECT_RAW=`echo $RES_REDIRECT_RAW | tr [A-Z] [a-z]` TESTEGOZONE=`echo $TESTEGOZONE | tr [A-Z] [a-z]` -if [ "$RES_CNAME_RAW" = "server.$TESTEGOZONE" ] +if [ "$RES_REDIRECT_RAW" = "server.$TESTEGOZONE" ] then - echo "PASS: CNAME resolution from GNS" + echo "PASS: REDIRECT resolution from GNS" else - echo "FAIL: CNAME resolution from GNS, got $RES_CNAME_RAW, expected server.$TESTEGOZONE." + echo "FAIL: REDIRECT resolution from GNS, got $RES_REDIRECT_RAW, expected server.$TESTEGOZONE." exit 1 fi -if [ "$RES_CNAME" = "$TEST_IP_PLUS" ] +if [ "$RES_REDIRECT" = "$TEST_IP_PLUS" ] then echo "PASS: IP resolution from GNS (.+)" else - echo "FAIL: IP resolution from GNS (.+), got $RES_CNAME, expected $TEST_IP_PLUS." + echo "FAIL: IP resolution from GNS (.+), got $RES_REDIRECT, expected $TEST_IP_PLUS." exit 1 fi -if [ "$RES_CNAME_ZKEY" = "$TEST_IP_PLUS" ] +if [ "$RES_REDIRECT_ZKEY" = "$TEST_IP_PLUS" ] then echo "PASS: IP resolution from GNS (.zkey)" else - echo "FAIL: IP resolution from GNS (.zkey), got $RES_CNAME, expected $TEST_IP_PLUS." + echo "FAIL: IP resolution from GNS (.zkey), got $RES_REDIRECT, expected $TEST_IP_PLUS." exit 1 fi -if echo "$RES_CNAME_DNS" | grep "$TEST_IP_DNS" > /dev/null +if echo "$RES_REDIRECT_DNS" | grep "$TEST_IP_DNS" > /dev/null then echo "PASS: IP resolution from DNS" exit 0 else - echo "FAIL: IP resolution from DNS, got $RES_CNAME_DNS, expected $TEST_IP_DNS." + echo "FAIL: IP resolution from DNS, got $RES_REDIRECT_DNS, expected $TEST_IP_DNS." exit 1 fi