diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-09-11 08:18:18 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-09-11 08:18:18 +0000 |
commit | 15e39da4147d4fe8b94c23fee39ef4198c908a54 (patch) | |
tree | e25571fd928efee26aaf150353ecb6cd70bc42f9 /src/namestore/test_namestore_api_zone_iteration_specific_zone.c | |
parent | f3c214f61e5654b742b3ea1ea3f49f67d4289301 (diff) | |
download | gnunet-15e39da4147d4fe8b94c23fee39ef4198c908a54.tar.gz gnunet-15e39da4147d4fe8b94c23fee39ef4198c908a54.zip |
updated test to iterate specific zone
Diffstat (limited to 'src/namestore/test_namestore_api_zone_iteration_specific_zone.c')
-rw-r--r-- | src/namestore/test_namestore_api_zone_iteration_specific_zone.c | 269 |
1 files changed, 156 insertions, 113 deletions
diff --git a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c index 453f09bb1..299a8bbd8 100644 --- a/src/namestore/test_namestore_api_zone_iteration_specific_zone.c +++ b/src/namestore/test_namestore_api_zone_iteration_specific_zone.c | |||
@@ -19,12 +19,12 @@ | |||
19 | */ | 19 | */ |
20 | /** | 20 | /** |
21 | * @file namestore/test_namestore_api_zone_iteration_specific_zone.c | 21 | * @file namestore/test_namestore_api_zone_iteration_specific_zone.c |
22 | * @brief testcase for zone iteration functionality: iterate of a specific zone | 22 | * @brief testcase for zone iteration functionality: iterate over a specific zone |
23 | */ | 23 | */ |
24 | #include "platform.h" | 24 | #include "platform.h" |
25 | #include "gnunet_common.h" | 25 | #include "gnunet_common.h" |
26 | #include "gnunet_testing_lib.h" | ||
27 | #include "gnunet_namestore_service.h" | 26 | #include "gnunet_namestore_service.h" |
27 | #include "gnunet_testing_lib.h" | ||
28 | #include "namestore.h" | 28 | #include "namestore.h" |
29 | 29 | ||
30 | 30 | ||
@@ -35,40 +35,24 @@ static struct GNUNET_NAMESTORE_Handle * nsh; | |||
35 | 35 | ||
36 | static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; | 36 | static GNUNET_SCHEDULER_TaskIdentifier endbadly_task; |
37 | 37 | ||
38 | static GNUNET_SCHEDULER_TaskIdentifier stopiteration_task; | ||
39 | |||
40 | static struct GNUNET_CRYPTO_EccPrivateKey * privkey; | 38 | static struct GNUNET_CRYPTO_EccPrivateKey * privkey; |
41 | 39 | ||
42 | static struct GNUNET_CRYPTO_EccPublicKey pubkey; | ||
43 | |||
44 | static struct GNUNET_CRYPTO_ShortHashCode zone; | ||
45 | |||
46 | static struct GNUNET_CRYPTO_EccPrivateKey * privkey2; | 40 | static struct GNUNET_CRYPTO_EccPrivateKey * privkey2; |
47 | 41 | ||
48 | static struct GNUNET_CRYPTO_EccPublicKey pubkey2; | ||
49 | |||
50 | static struct GNUNET_CRYPTO_ShortHashCode zone2; | ||
51 | |||
52 | static struct GNUNET_NAMESTORE_ZoneIterator *zi; | 42 | static struct GNUNET_NAMESTORE_ZoneIterator *zi; |
53 | 43 | ||
54 | static int res; | 44 | static int res; |
55 | 45 | ||
56 | static int returned_records; | 46 | static int returned_records; |
57 | 47 | ||
58 | static struct GNUNET_CRYPTO_EccSignature *sig_1; | ||
59 | |||
60 | static char * s_name_1; | 48 | static char * s_name_1; |
61 | 49 | ||
62 | static struct GNUNET_NAMESTORE_RecordData *s_rd_1; | 50 | static struct GNUNET_NAMESTORE_RecordData *s_rd_1; |
63 | 51 | ||
64 | static struct GNUNET_CRYPTO_EccSignature *sig_2; | ||
65 | |||
66 | static char * s_name_2; | 52 | static char * s_name_2; |
67 | 53 | ||
68 | static struct GNUNET_NAMESTORE_RecordData *s_rd_2; | 54 | static struct GNUNET_NAMESTORE_RecordData *s_rd_2; |
69 | 55 | ||
70 | static struct GNUNET_CRYPTO_EccSignature *sig_3; | ||
71 | |||
72 | static char * s_name_3; | 56 | static char * s_name_3; |
73 | 57 | ||
74 | static struct GNUNET_NAMESTORE_RecordData *s_rd_3; | 58 | static struct GNUNET_NAMESTORE_RecordData *s_rd_3; |
@@ -83,21 +67,20 @@ static struct GNUNET_NAMESTORE_RecordData *s_rd_3; | |||
83 | static void | 67 | static void |
84 | endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 68 | endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
85 | { | 69 | { |
86 | if (stopiteration_task != GNUNET_SCHEDULER_NO_TASK) | 70 | if (NULL != zi) |
87 | { | 71 | { |
88 | GNUNET_SCHEDULER_cancel (stopiteration_task); | 72 | GNUNET_NAMESTORE_zone_iteration_stop (zi); |
89 | stopiteration_task = GNUNET_SCHEDULER_NO_TASK; | 73 | zi = NULL; |
90 | } | 74 | } |
91 | 75 | ||
92 | if (nsh != NULL) | 76 | if (nsh != NULL) |
93 | GNUNET_NAMESTORE_disconnect (nsh); | 77 | GNUNET_NAMESTORE_disconnect (nsh); |
94 | nsh = NULL; | 78 | nsh = NULL; |
95 | GNUNET_free_non_null(sig_1); | 79 | |
96 | GNUNET_free_non_null(sig_2); | ||
97 | GNUNET_free_non_null(sig_3); | ||
98 | GNUNET_free_non_null(s_name_1); | 80 | GNUNET_free_non_null(s_name_1); |
99 | GNUNET_free_non_null(s_name_2); | 81 | GNUNET_free_non_null(s_name_2); |
100 | GNUNET_free_non_null(s_name_3); | 82 | GNUNET_free_non_null(s_name_3); |
83 | |||
101 | if (s_rd_1 != NULL) | 84 | if (s_rd_1 != NULL) |
102 | { | 85 | { |
103 | GNUNET_free ((void *)s_rd_1->data); | 86 | GNUNET_free ((void *)s_rd_1->data); |
@@ -128,26 +111,26 @@ endbadly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
128 | static void | 111 | static void |
129 | end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 112 | end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
130 | { | 113 | { |
131 | if (stopiteration_task != GNUNET_SCHEDULER_NO_TASK) | 114 | if (NULL != zi) |
132 | { | 115 | { |
133 | GNUNET_SCHEDULER_cancel (stopiteration_task); | 116 | GNUNET_NAMESTORE_zone_iteration_stop (zi); |
134 | stopiteration_task = GNUNET_SCHEDULER_NO_TASK; | 117 | zi = NULL; |
135 | } | 118 | } |
119 | |||
136 | if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) | 120 | if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) |
137 | { | 121 | { |
138 | GNUNET_SCHEDULER_cancel (endbadly_task); | 122 | GNUNET_SCHEDULER_cancel (endbadly_task); |
139 | endbadly_task = GNUNET_SCHEDULER_NO_TASK; | 123 | endbadly_task = GNUNET_SCHEDULER_NO_TASK; |
140 | } | 124 | } |
125 | |||
141 | if (privkey != NULL) | 126 | if (privkey != NULL) |
142 | GNUNET_free (privkey); | 127 | GNUNET_free (privkey); |
143 | privkey = NULL; | 128 | privkey = NULL; |
129 | |||
144 | if (privkey2 != NULL) | 130 | if (privkey2 != NULL) |
145 | GNUNET_free (privkey2); | 131 | GNUNET_free (privkey2); |
146 | privkey2 = NULL; | 132 | privkey2 = NULL; |
147 | 133 | ||
148 | GNUNET_free (sig_1); | ||
149 | GNUNET_free (sig_2); | ||
150 | GNUNET_free (sig_3); | ||
151 | GNUNET_free (s_name_1); | 134 | GNUNET_free (s_name_1); |
152 | GNUNET_free (s_name_2); | 135 | GNUNET_free (s_name_2); |
153 | GNUNET_free (s_name_3); | 136 | GNUNET_free (s_name_3); |
@@ -174,80 +157,100 @@ end (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
174 | 157 | ||
175 | static void | 158 | static void |
176 | zone_proc (void *cls, | 159 | zone_proc (void *cls, |
177 | const struct GNUNET_CRYPTO_EccPublicKey *zone_key, | 160 | const struct GNUNET_CRYPTO_EccPrivateKey *zone, |
178 | struct GNUNET_TIME_Absolute expire, | 161 | const char *label, |
179 | const char *name, | 162 | unsigned int rd_count, |
180 | unsigned int rd_count, | 163 | const struct GNUNET_NAMESTORE_RecordData *rd) |
181 | const struct GNUNET_NAMESTORE_RecordData *rd, | ||
182 | const struct GNUNET_CRYPTO_EccSignature *signature) | ||
183 | { | 164 | { |
184 | int failed = GNUNET_NO; | 165 | int failed = GNUNET_NO; |
185 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Callback for zone `%s'\n", GNUNET_NAMESTORE_short_h2s (&zone)); | 166 | if ((zone == NULL) && (label == NULL)) |
186 | if ((zone_key == NULL) && (name == NULL)) | ||
187 | { | 167 | { |
188 | GNUNET_break (2 == returned_records); | 168 | GNUNET_break (2 == returned_records); |
189 | if (2 == returned_records) | 169 | if (2 == returned_records) |
190 | res = 0; | 170 | { |
171 | res = 0; /* Last iteraterator callback, we are done */ | ||
172 | zi = NULL; | ||
173 | } | ||
191 | else | 174 | else |
192 | res = 1; | 175 | res = 1; |
193 | 176 | ||
194 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received last result, iteration done after %u records\n", returned_records); | 177 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
178 | "Received last result, iteration done after receing %u results\n", | ||
179 | returned_records ); | ||
195 | GNUNET_SCHEDULER_add_now (&end, NULL); | 180 | GNUNET_SCHEDULER_add_now (&end, NULL); |
181 | return; | ||
196 | } | 182 | } |
197 | else | 183 | else |
198 | { | 184 | { |
199 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Comparing results name %s \n", name); | 185 | if (0 == memcmp (zone, privkey, sizeof (struct GNUNET_CRYPTO_EccPrivateKey))) |
200 | if (0 == strcmp (name, s_name_1)) | 186 | { |
201 | { | 187 | if (0 == strcmp (label, s_name_1)) |
202 | if (rd_count == 1) | ||
203 | { | 188 | { |
204 | if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_1)) | 189 | if (rd_count == 1) |
190 | { | ||
191 | if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_1)) | ||
192 | { | ||
193 | failed = GNUNET_YES; | ||
194 | GNUNET_break (0); | ||
195 | } | ||
196 | } | ||
197 | else | ||
205 | { | 198 | { |
206 | failed = GNUNET_YES; | 199 | failed = GNUNET_YES; |
207 | GNUNET_break (0); | 200 | GNUNET_break (0); |
208 | } | 201 | } |
209 | } | 202 | } |
210 | else | 203 | else if (0 == strcmp (label, s_name_2)) |
211 | { | ||
212 | failed = GNUNET_YES; | ||
213 | GNUNET_break (0); | ||
214 | } | ||
215 | } | ||
216 | else if (0 == strcmp (name, s_name_2)) | ||
217 | { | ||
218 | if (rd_count == 1) | ||
219 | { | 204 | { |
220 | if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_2)) | 205 | if (rd_count == 1) |
221 | { | 206 | { |
207 | if (GNUNET_YES != GNUNET_NAMESTORE_records_cmp(rd, s_rd_2)) | ||
208 | { | ||
209 | failed = GNUNET_YES; | ||
210 | GNUNET_break (0); | ||
211 | } | ||
212 | } | ||
213 | else | ||
214 | { | ||
215 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
216 | "Received invalid record count\n"); | ||
222 | failed = GNUNET_YES; | 217 | failed = GNUNET_YES; |
223 | GNUNET_break (0); | 218 | GNUNET_break (0); |
224 | } | 219 | } |
225 | } | 220 | } |
226 | else | 221 | else |
227 | { | 222 | { |
223 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
224 | "Comparing result failed: got name `%s' for first zone\n", label); | ||
228 | failed = GNUNET_YES; | 225 | failed = GNUNET_YES; |
229 | GNUNET_break (0); | 226 | GNUNET_break (0); |
230 | } | 227 | } |
231 | } | 228 | } |
232 | else | 229 | else if (0 == memcmp (zone, privkey2, sizeof (struct GNUNET_CRYPTO_EccPrivateKey))) |
233 | { | 230 | { |
234 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Comparing result failed: got name `%s'\n", name); | 231 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received data for not requested zone\n"); |
235 | res = 1; | 232 | failed = GNUNET_YES; |
236 | GNUNET_break (0); | 233 | GNUNET_break (0); |
237 | GNUNET_SCHEDULER_add_now (&end, NULL); | 234 | } |
238 | } | 235 | else |
239 | 236 | { | |
240 | if (failed == GNUNET_NO) | 237 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Received invalid zone\n"); |
241 | { | 238 | failed = GNUNET_YES; |
242 | returned_records ++; | ||
243 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Telling namestore to send the next result\n"); | ||
244 | GNUNET_NAMESTORE_zone_iterator_next (zi); | ||
245 | } | ||
246 | else | ||
247 | { | ||
248 | GNUNET_break (0); | 239 | GNUNET_break (0); |
249 | GNUNET_SCHEDULER_add_now (&end, NULL); | 240 | } |
250 | } | 241 | } |
242 | |||
243 | if (failed == GNUNET_NO) | ||
244 | { | ||
245 | returned_records ++; | ||
246 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
247 | "Telling namestore to send the next result\n"); | ||
248 | GNUNET_NAMESTORE_zone_iterator_next (zi); | ||
249 | } | ||
250 | else | ||
251 | { | ||
252 | GNUNET_break (0); | ||
253 | GNUNET_SCHEDULER_add_now (&end, NULL); | ||
251 | } | 254 | } |
252 | } | 255 | } |
253 | 256 | ||
@@ -264,30 +267,32 @@ put_cont (void *cls, int32_t success, const char *emsg) | |||
264 | } | 267 | } |
265 | else | 268 | else |
266 | { | 269 | { |
267 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records\n"); | 270 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to created records: `%s'\n", |
271 | emsg); | ||
268 | GNUNET_break (0); | 272 | GNUNET_break (0); |
269 | GNUNET_SCHEDULER_cancel (endbadly_task); | 273 | if (GNUNET_SCHEDULER_NO_TASK != endbadly_task) |
274 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
270 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | 275 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); |
276 | return; | ||
271 | } | 277 | } |
272 | 278 | ||
273 | if (c == 3) | 279 | if (c == 3) |
274 | { | 280 | { |
275 | res = 1; | 281 | res = 1; |
276 | returned_records = 0; | 282 | returned_records = 0; |
277 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over zone `%s'\n", | 283 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All records created, starting iteration over all zones \n"); |
278 | GNUNET_NAMESTORE_short_h2s(&zone)); | ||
279 | zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, | 284 | zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, |
280 | &zone, | 285 | privkey, |
281 | GNUNET_NAMESTORE_RF_NONE, | 286 | &zone_proc, |
282 | GNUNET_NAMESTORE_RF_NONE, | 287 | NULL); |
283 | zone_proc, | ||
284 | &zone); | ||
285 | if (zi == NULL) | 288 | if (zi == NULL) |
286 | { | 289 | { |
287 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); | 290 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); |
288 | GNUNET_break (0); | 291 | GNUNET_break (0); |
289 | GNUNET_SCHEDULER_cancel (endbadly_task); | 292 | if (GNUNET_SCHEDULER_NO_TASK != endbadly_task) |
293 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
290 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | 294 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); |
295 | return; | ||
291 | } | 296 | } |
292 | } | 297 | } |
293 | } | 298 | } |
@@ -312,23 +317,50 @@ create_record (unsigned int count) | |||
312 | } | 317 | } |
313 | 318 | ||
314 | 319 | ||
320 | /** | ||
321 | * Callback called from the zone iterator when we iterate over | ||
322 | * the empty zone. Check that we got no records and then | ||
323 | * start the actual tests by filling the zone. | ||
324 | */ | ||
315 | static void | 325 | static void |
316 | run (void *cls, | 326 | empty_zone_proc (void *cls, |
317 | const struct GNUNET_CONFIGURATION_Handle *cfg, | 327 | const struct GNUNET_CRYPTO_EccPrivateKey *zone, |
318 | struct GNUNET_TESTING_Peer *peer) | 328 | const char *label, |
329 | unsigned int rd_count, | ||
330 | const struct GNUNET_NAMESTORE_RecordData *rd) | ||
319 | { | 331 | { |
320 | char *hostkey_file; | 332 | char *hostkey_file; |
321 | struct GNUNET_TIME_Absolute et; | ||
322 | 333 | ||
323 | endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT,&endbadly, NULL); | 334 | GNUNET_assert (nsh == cls); |
335 | if (NULL != zone) | ||
336 | { | ||
337 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
338 | _("Expected empty zone but received zone private key\n")); | ||
339 | GNUNET_break (0); | ||
340 | if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) | ||
341 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
342 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | ||
343 | return; | ||
344 | } | ||
345 | if ((NULL != label) || (NULL != rd) || (0 != rd)) | ||
346 | { | ||
347 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
348 | _("Expected no zone content but received data\n")); | ||
349 | GNUNET_break (0); | ||
350 | if (endbadly_task != GNUNET_SCHEDULER_NO_TASK) | ||
351 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
352 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | ||
353 | return; | ||
354 | } | ||
355 | |||
356 | |||
357 | zi = NULL; | ||
324 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, | 358 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, |
325 | "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); | 359 | "N0UJMP015AFUNR2BTNM3FKPBLG38913BL8IDMCO2H0A1LIB81960.zkey"); |
326 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); | 360 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Using zonekey file `%s' \n", hostkey_file); |
327 | privkey = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); | 361 | privkey = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); |
328 | GNUNET_free (hostkey_file); | 362 | GNUNET_free (hostkey_file); |
329 | GNUNET_assert (privkey != NULL); | 363 | GNUNET_assert (privkey != NULL); |
330 | GNUNET_CRYPTO_ecc_key_get_public(privkey, &pubkey); | ||
331 | GNUNET_CRYPTO_short_hash (&pubkey, sizeof (pubkey), &zone); | ||
332 | 364 | ||
333 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, | 365 | GNUNET_asprintf(&hostkey_file,"zonefiles%s%s",DIR_SEPARATOR_STR, |
334 | "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); | 366 | "HGU0A0VCU334DN7F2I9UIUMVQMM7JMSD142LIMNUGTTV9R0CF4EG.zkey"); |
@@ -336,37 +368,48 @@ run (void *cls, | |||
336 | privkey2 = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); | 368 | privkey2 = GNUNET_CRYPTO_ecc_key_create_from_file(hostkey_file); |
337 | GNUNET_free (hostkey_file); | 369 | GNUNET_free (hostkey_file); |
338 | GNUNET_assert (privkey2 != NULL); | 370 | GNUNET_assert (privkey2 != NULL); |
339 | GNUNET_CRYPTO_ecc_key_get_public(privkey2, &pubkey2); | ||
340 | GNUNET_CRYPTO_short_hash (&pubkey2, sizeof (pubkey), &zone2); | ||
341 | nsh = GNUNET_NAMESTORE_connect (cfg); | ||
342 | GNUNET_break (NULL != nsh); | ||
343 | 371 | ||
344 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 1\n"); | 372 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 1\n"); |
373 | |||
345 | GNUNET_asprintf(&s_name_1, "dummy1"); | 374 | GNUNET_asprintf(&s_name_1, "dummy1"); |
346 | s_rd_1 = create_record(1); | 375 | s_rd_1 = create_record(1); |
347 | et.abs_value_us = s_rd_1[0].expiration_time; | 376 | GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_1, |
348 | sig_1 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_1, s_rd_1, 1); | 377 | 1, s_rd_1, &put_cont, NULL); |
349 | GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name_1, | ||
350 | 1, s_rd_1, | ||
351 | &put_cont, NULL); | ||
352 | 378 | ||
353 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 2 \n"); | 379 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 2 \n"); |
354 | GNUNET_asprintf(&s_name_2, "dummy2"); | 380 | GNUNET_asprintf(&s_name_2, "dummy2"); |
355 | s_rd_2 = create_record(1); | 381 | s_rd_2 = create_record(1); |
356 | et.abs_value_us = s_rd_2[0].expiration_time; | 382 | GNUNET_NAMESTORE_records_store(nsh, privkey, s_name_2, |
357 | sig_2 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_2, s_rd_2, 1); | 383 | 1, s_rd_2, &put_cont, NULL); |
358 | GNUNET_NAMESTORE_record_put_by_authority (nsh, privkey, s_name_2, | ||
359 | 1, s_rd_2, | ||
360 | &put_cont, NULL); | ||
361 | 384 | ||
362 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 3\n"); | 385 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created record 3\n"); |
386 | |||
363 | /* name in different zone */ | 387 | /* name in different zone */ |
364 | GNUNET_asprintf(&s_name_3, "dummy3"); | 388 | GNUNET_asprintf(&s_name_3, "dummy3"); |
365 | s_rd_3 = create_record(1); | 389 | s_rd_3 = create_record(1); |
366 | et.abs_value_us = s_rd_3[0].expiration_time; | 390 | GNUNET_NAMESTORE_records_store(nsh, privkey2, s_name_3, |
367 | sig_3 = GNUNET_NAMESTORE_create_signature(privkey, et, s_name_3, s_rd_3, 1); | 391 | 1, s_rd_3, &put_cont, NULL); |
368 | GNUNET_NAMESTORE_record_put (nsh, &pubkey2, s_name_3, | 392 | } |
369 | GNUNET_TIME_UNIT_FOREVER_ABS, 1, s_rd_3, sig_3, &put_cont, NULL); | 393 | |
394 | |||
395 | static void | ||
396 | run (void *cls, | ||
397 | const struct GNUNET_CONFIGURATION_Handle *cfg, | ||
398 | struct GNUNET_TESTING_Peer *peer) | ||
399 | { | ||
400 | endbadly_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, &endbadly, NULL); | ||
401 | nsh = GNUNET_NAMESTORE_connect (cfg); | ||
402 | GNUNET_break (NULL != nsh); | ||
403 | /* first, iterate over empty namestore */ | ||
404 | zi = GNUNET_NAMESTORE_zone_iteration_start(nsh, | ||
405 | NULL, &empty_zone_proc, nsh); | ||
406 | if (NULL == zi) | ||
407 | { | ||
408 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to create zone iterator\n"); | ||
409 | GNUNET_break (0); | ||
410 | GNUNET_SCHEDULER_cancel (endbadly_task); | ||
411 | endbadly_task = GNUNET_SCHEDULER_add_now (&endbadly, NULL); | ||
412 | } | ||
370 | } | 413 | } |
371 | 414 | ||
372 | 415 | ||
@@ -375,7 +418,7 @@ main (int argc, char *argv[]) | |||
375 | { | 418 | { |
376 | res = 1; | 419 | res = 1; |
377 | if (0 != | 420 | if (0 != |
378 | GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration-specific-zone", | 421 | GNUNET_TESTING_service_run ("test-namestore-api-zone-iteration", |
379 | "namestore", | 422 | "namestore", |
380 | "test_namestore_api.conf", | 423 | "test_namestore_api.conf", |
381 | &run, | 424 | &run, |