gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r20018 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r20018 - gnunet/src/gns
Date: Fri, 24 Feb 2012 18:00:42 +0100

Author: schanzen
Date: 2012-02-24 18:00:42 +0100 (Fri, 24 Feb 2012)
New Revision: 20018

Added:
   gnunet/src/gns/gns.conf.in
   gnunet/src/gns/test_gnunet_gns.sh
Modified:
   gnunet/src/gns/Makefile.am
   gnunet/src/gns/gnunet-service-gns.c
Log:
-test and config


Modified: gnunet/src/gns/Makefile.am
===================================================================
--- gnunet/src/gns/Makefile.am  2012-02-24 16:48:35 UTC (rev 20017)
+++ gnunet/src/gns/Makefile.am  2012-02-24 17:00:42 UTC (rev 20018)
@@ -12,8 +12,8 @@
 
 plugindir = $(libdir)/gnunet
 
-#pkgcfg_DATA = \
-#  dns.conf
+pkgcfg_DATA = \
+  gns.conf
 
 lib_LTLIBRARIES = \
   libgnunetgns.la libgnunetnamestore.la
@@ -24,8 +24,8 @@
 #noinst_PROGRAMS = \
 #  gnunet-gns-lookup
 
-#check_SCRIPTS = \
-# test_gnunet_dns.sh
+check_SCRIPTS = \
+ test_gnunet_gns.sh
 
 #gnunet_gns_lookup_SOURCES = \
 # gnunet-gns-lookup.c

Added: gnunet/src/gns/gns.conf.in
===================================================================
--- gnunet/src/gns/gns.conf.in                          (rev 0)
+++ gnunet/src/gns/gns.conf.in  2012-02-24 17:00:42 UTC (rev 20018)
@@ -0,0 +1,13 @@
+[gns]
+AUTOSTART = YES
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-gns
+UNIXPATH = /tmp/gnunet-service-gns.sock
+
+# Access to this service can compromise all DNS queries in this
+# system.  Thus access should be restricted to the same UID.
+# (see https://gnunet.org/gnunet-access-control-model)
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES

Modified: gnunet/src/gns/gnunet-service-gns.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns.c 2012-02-24 16:48:35 UTC (rev 20017)
+++ gnunet/src/gns/gnunet-service-gns.c 2012-02-24 17:00:42 UTC (rev 20018)
@@ -521,10 +521,10 @@
                    const struct GNUNET_NAMESTORE_RecordData *rd,
                    const struct GNUNET_CRYPTO_RsaSignature *signature)
 {
-  struct GNUNET_GNS_ResolverHandle *query;
+  struct GNUNET_GNS_ResolverHandle *rh;
   GNUNET_HashCode zone;
 
-  query = (struct GNUNET_GNS_ResolverHandle *)cls;
+  rh = (struct GNUNET_GNS_ResolverHandle *)cls;
   GNUNET_CRYPTO_hash(key, GNUNET_CRYPTO_RSA_KEY_LENGTH, &zone);
   
   /**
@@ -547,7 +547,7 @@
     /**
      * Last hope
      */
-    resolve_authority_dht(query, name);
+    resolve_authority_dht(rh, name);
     return;
   }
 
@@ -560,9 +560,9 @@
   GNUNET_assert(rd->record_type == GNUNET_GNS_RECORD_PKEY);
   GNUNET_HashCode *pkey_hash = GNUNET_malloc(sizeof(GNUNET_HashCode));
   GNUNET_CRYPTO_hash(rd->data, GNUNET_CRYPTO_RSA_KEY_LENGTH, pkey_hash);
-  GNUNET_free_non_null(query->authority);
-  query->authority = pkey_hash;
-  resolve_name(query, query->authority);
+  GNUNET_free_non_null(rh->authority);
+  rh->authority = pkey_hash;
+  resolve_name(rh, rh->authority);
   
 }
 
@@ -611,8 +611,12 @@
   packet->num_additional_records = 0;
   packet->num_answers = rd_count; //answer->num_records;
   //packet.num_authority_records = 0;//answer->num_authority_records;
+  
+  if (NULL == rh->authority)
+    dnsflags.authoritative_answer = 1;
+  else
+    dnsflags.authoritative_answer = 0;
 
-  dnsflags.authoritative_answer = 1;
   dnsflags.message_truncated = 0;
   dnsflags.recursion_desired = 0;
   dnsflags.authenticated_data = 0;
@@ -620,10 +624,12 @@
   dnsflags.zero = 0;
   dnsflags.recursion_available = 0;
   dnsflags.opcode = GNUNET_DNSPARSER_OPCODE_QUERY;
+  
   if (rd == NULL)
     dnsflags.return_code = GNUNET_DNSPARSER_RETURN_CODE_NAME_ERROR;
   else
     dnsflags.return_code = GNUNET_DNSPARSER_RETURN_CODE_NO_ERROR;
+  
   dnsflags.query_or_response = 1;
   packet->flags = dnsflags;
 
@@ -896,6 +902,7 @@
   rh = GNUNET_malloc(sizeof (struct GNUNET_GNS_ResolverHandle));
   rh->packet = p;
   rh->query = q;
+  rh->authority = NULL;
   
   //FIXME do not forget to free!!
   rh->name = GNUNET_malloc(strlen(q->name)

Added: gnunet/src/gns/test_gnunet_gns.sh
===================================================================
--- gnunet/src/gns/test_gnunet_gns.sh                           (rev 0)
+++ gnunet/src/gns/test_gnunet_gns.sh   2012-02-24 17:00:42 UTC (rev 20018)
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+ME=`whoami`
+if [ "$ME" != "root" ]
+then
+  echo "This test only works if run as root.  Skipping."
+  exit 0
+fi
+export PATH=".:$PATH"
+gnunet-service-gns -c gns.conf &
+sleep 1
+LO=`nslookup alice.gnunet | grep Address | tail -n1`
+if [ "$LO" != "Address: 1.2.3.4" ]
+then
+ echo "Fail: $LO"
+fi
+LO=`nslookup www.bob.gnunet | grep Address | tail -n1`
+if [ "$LO" != "Address: 4.5.6.7" ]
+then
+  echo "Fail: $LO"
+fi
+kill `jobs -p`


Property changes on: gnunet/src/gns/test_gnunet_gns.sh
___________________________________________________________________
Added: svn:executable
   + *




reply via email to

[Prev in Thread] Current Thread [Next in Thread]