diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-03-15 14:05:23 +0000 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-03-15 14:05:23 +0000 |
commit | d6e09d02cc47caa5189af6da003e4bcb037193a0 (patch) | |
tree | 14fc944575aaa48bfd6e274a527b5690cad8256d /src | |
parent | f619430fc962cc50f48e980841c76ca7fe1e801e (diff) | |
download | gnunet-d6e09d02cc47caa5189af6da003e4bcb037193a0.tar.gz gnunet-d6e09d02cc47caa5189af6da003e4bcb037193a0.zip |
-fixes, block plugin change
Diffstat (limited to 'src')
-rw-r--r-- | src/gns/gnunet-service-gns_resolver.c | 4 | ||||
-rw-r--r-- | src/gns/plugin_block_gns.c | 32 |
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); |