aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2012-03-15 14:05:23 +0000
committerMartin Schanzenbach <mschanzenbach@posteo.de>2012-03-15 14:05:23 +0000
commitd6e09d02cc47caa5189af6da003e4bcb037193a0 (patch)
tree14fc944575aaa48bfd6e274a527b5690cad8256d /src
parentf619430fc962cc50f48e980841c76ca7fe1e801e (diff)
downloadgnunet-d6e09d02cc47caa5189af6da003e4bcb037193a0.tar.gz
gnunet-d6e09d02cc47caa5189af6da003e4bcb037193a0.zip
-fixes, block plugin change
Diffstat (limited to 'src')
-rw-r--r--src/gns/gnunet-service-gns_resolver.c4
-rw-r--r--src/gns/plugin_block_gns.c32
2 files changed, 19 insertions, 17 deletions
diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c
index 3a94556b7..dee082e99 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -602,8 +602,8 @@ process_delegation_result_dht(void* cls,
602 * should never get here unless false dht key/put 602 * should never get here unless false dht key/put
603 * block plugin should handle this 603 * block plugin should handle this
604 **/ 604 **/
605 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "DHT authority lookup error!\n"); 605 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "DHT authority lookup found no match!\n");
606 GNUNET_break(0); 606 rh->proc(rh->proc_cls, rh, 0, NULL);
607} 607}
608 608
609 609
diff --git a/src/gns/plugin_block_gns.c b/src/gns/plugin_block_gns.c
index 3071ef64e..46db6a22a 100644
--- a/src/gns/plugin_block_gns.c
+++ b/src/gns/plugin_block_gns.c
@@ -77,9 +77,20 @@ block_plugin_gns_evaluate (void *cls, enum GNUNET_BLOCK_Type type,
77 77
78 if (type != GNUNET_BLOCK_TYPE_GNS_NAMERECORD) 78 if (type != GNUNET_BLOCK_TYPE_GNS_NAMERECORD)
79 return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED; 79 return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
80 if (reply_block_size == 0) 80 if (reply_block == NULL)
81 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; 81 {
82 82 /**
83 * check if request is valid
84 * FIXME we could check for the record types here
85 **/
86 if (xquery_size < sizeof(uint32_t))
87 return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
88 else
89 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
90 }
91
92 /* this is a reply */
93
83 nrb = (struct GNSNameRecordBlock *)reply_block; 94 nrb = (struct GNSNameRecordBlock *)reply_block;
84 name = (char*)&nrb[1]; 95 name = (char*)&nrb[1];
85 GNUNET_CRYPTO_hash(&nrb->public_key, 96 GNUNET_CRYPTO_hash(&nrb->public_key,
@@ -101,7 +112,7 @@ block_plugin_gns_evaluate (void *cls, enum GNUNET_BLOCK_Type type,
101 112
102 /* Check query key against public key */ 113 /* Check query key against public key */
103 if (0 != GNUNET_CRYPTO_hash_cmp(query, &query_key)) 114 if (0 != GNUNET_CRYPTO_hash_cmp(query, &query_key))
104 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; 115 return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
105 116
106 record_match = 0; 117 record_match = 0;
107 rd_count = ntohl(nrb->rd_count); 118 rd_count = ntohl(nrb->rd_count);
@@ -121,7 +132,7 @@ block_plugin_gns_evaluate (void *cls, enum GNUNET_BLOCK_Type type,
121 { 132 {
122 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, 133 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
123 "Data invalid (%d bytes, %d records)\n", rd_len, rd_count); 134 "Data invalid (%d bytes, %d records)\n", rd_len, rd_count);
124 return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID; 135 return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
125 } 136 }
126 137
127 if (xquery_size < sizeof(uint32_t)) 138 if (xquery_size < sizeof(uint32_t))
@@ -156,19 +167,10 @@ block_plugin_gns_evaluate (void *cls, enum GNUNET_BLOCK_Type type,
156 &nrb->signature)) 167 &nrb->signature))
157 { 168 {
158 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Signature invalid\n"); 169 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Signature invalid\n");
159 return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID; 170 return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
160 } 171 }
161 } 172 }
162 173
163 if ((record_xquery != 0) && (record_match == 0))
164 {
165 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
166 "No record matches query!\n");
167 return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
168 }
169
170 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Records match\n");
171
172 if (NULL != bf) 174 if (NULL != bf)
173 { 175 {
174 GNUNET_CRYPTO_hash(reply_block, reply_block_size, &chash); 176 GNUNET_CRYPTO_hash(reply_block, reply_block_size, &chash);