From 2eec126620f778f8baa7c4976d67e490e409bb30 Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Thu, 15 Mar 2012 16:51:59 +0000 Subject: [PATCH] -fixes --- src/gns/gnunet-service-gns.c | 9 +++++++++ src/gns/gnunet-service-gns_resolver.c | 22 +++++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/gns/gnunet-service-gns.c b/src/gns/gnunet-service-gns.c index ac5c74818..e843e61ec 100644 --- a/src/gns/gnunet-service-gns.c +++ b/src/gns/gnunet-service-gns.c @@ -599,6 +599,15 @@ static void handle_get_authority(void *cls, send_get_auth_response(cah, name); return; } + + if (strcmp(name, GNUNET_GNS_TLD) == 0) + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "%s is us. Returning\n", name); + cah->name = NULL; + send_get_auth_response(cah, name); + return; + } cah->name = GNUNET_malloc(strlen(name) - strlen(GNUNET_GNS_TLD) + 1); diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index a2f61af0e..9b83794f5 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c @@ -1474,13 +1474,21 @@ gns_resolver_get_authority(GNUNET_HashCode zone, nah = GNUNET_malloc(sizeof (struct GetNameAuthorityHandle)); rh = GNUNET_malloc(sizeof (struct ResolverHandle)); rh->authority = zone; - - rh->name = GNUNET_malloc(strlen(name) - - strlen(GNUNET_GNS_TLD)); - memset(rh->name, 0, - strlen(name)-strlen(GNUNET_GNS_TLD)); - memcpy(rh->name, name, - strlen(name)-strlen(GNUNET_GNS_TLD) - 1); + + if (strcmp(GNUNET_GNS_TLD, name) == 0) + { + rh->name = GNUNET_malloc(2); + strcpy(rh->name, ""); + } + else + { + rh->name = GNUNET_malloc(strlen(name) + - strlen(GNUNET_GNS_TLD)); + memset(rh->name, 0, + strlen(name)-strlen(GNUNET_GNS_TLD)); + memcpy(rh->name, name, + strlen(name)-strlen(GNUNET_GNS_TLD) - 1); + } nah->name = GNUNET_malloc(strlen(name)+1); memset(nah->name, 0, -- 2.25.1