diff options
Diffstat (limited to 'src/util/pseudonym.c')
-rw-r--r-- | src/util/pseudonym.c | 277 |
1 files changed, 137 insertions, 140 deletions
diff --git a/src/util/pseudonym.c b/src/util/pseudonym.c index b6e51af18..2a736bc46 100644 --- a/src/util/pseudonym.c +++ b/src/util/pseudonym.c | |||
@@ -82,16 +82,16 @@ static struct DiscoveryCallback *head; | |||
82 | */ | 82 | */ |
83 | static void | 83 | static void |
84 | internal_notify (const GNUNET_HashCode * id, | 84 | internal_notify (const GNUNET_HashCode * id, |
85 | const struct GNUNET_CONTAINER_MetaData *md, int rating) | 85 | const struct GNUNET_CONTAINER_MetaData *md, int rating) |
86 | { | 86 | { |
87 | struct DiscoveryCallback *pos; | 87 | struct DiscoveryCallback *pos; |
88 | 88 | ||
89 | pos = head; | 89 | pos = head; |
90 | while (pos != NULL) | 90 | while (pos != NULL) |
91 | { | 91 | { |
92 | pos->callback (pos->closure, id, md, rating); | 92 | pos->callback (pos->closure, id, md, rating); |
93 | pos = pos->next; | 93 | pos = pos->next; |
94 | } | 94 | } |
95 | } | 95 | } |
96 | 96 | ||
97 | /** | 97 | /** |
@@ -103,10 +103,9 @@ internal_notify (const GNUNET_HashCode * id, | |||
103 | */ | 103 | */ |
104 | int | 104 | int |
105 | GNUNET_PSEUDONYM_discovery_callback_register (const struct | 105 | GNUNET_PSEUDONYM_discovery_callback_register (const struct |
106 | GNUNET_CONFIGURATION_Handle | 106 | GNUNET_CONFIGURATION_Handle *cfg, |
107 | *cfg, | 107 | GNUNET_PSEUDONYM_Iterator |
108 | GNUNET_PSEUDONYM_Iterator | 108 | iterator, void *closure) |
109 | iterator, void *closure) | ||
110 | { | 109 | { |
111 | struct DiscoveryCallback *list; | 110 | struct DiscoveryCallback *list; |
112 | 111 | ||
@@ -126,7 +125,7 @@ GNUNET_PSEUDONYM_discovery_callback_register (const struct | |||
126 | */ | 125 | */ |
127 | int | 126 | int |
128 | GNUNET_PSEUDONYM_discovery_callback_unregister (GNUNET_PSEUDONYM_Iterator | 127 | GNUNET_PSEUDONYM_discovery_callback_unregister (GNUNET_PSEUDONYM_Iterator |
129 | iterator, void *closure) | 128 | iterator, void *closure) |
130 | { | 129 | { |
131 | struct DiscoveryCallback *prev; | 130 | struct DiscoveryCallback *prev; |
132 | struct DiscoveryCallback *pos; | 131 | struct DiscoveryCallback *pos; |
@@ -134,11 +133,11 @@ GNUNET_PSEUDONYM_discovery_callback_unregister (GNUNET_PSEUDONYM_Iterator | |||
134 | prev = NULL; | 133 | prev = NULL; |
135 | pos = head; | 134 | pos = head; |
136 | while ((pos != NULL) && | 135 | while ((pos != NULL) && |
137 | ((pos->callback != iterator) || (pos->closure != closure))) | 136 | ((pos->callback != iterator) || (pos->closure != closure))) |
138 | { | 137 | { |
139 | prev = pos; | 138 | prev = pos; |
140 | pos = pos->next; | 139 | pos = pos->next; |
141 | } | 140 | } |
142 | if (pos == NULL) | 141 | if (pos == NULL) |
143 | return GNUNET_SYSERR; | 142 | return GNUNET_SYSERR; |
144 | if (prev == NULL) | 143 | if (prev == NULL) |
@@ -160,17 +159,16 @@ GNUNET_PSEUDONYM_discovery_callback_unregister (GNUNET_PSEUDONYM_Iterator | |||
160 | */ | 159 | */ |
161 | static char * | 160 | static char * |
162 | get_data_filename (const struct GNUNET_CONFIGURATION_Handle *cfg, | 161 | get_data_filename (const struct GNUNET_CONFIGURATION_Handle *cfg, |
163 | const char *prefix, const GNUNET_HashCode * psid) | 162 | const char *prefix, const GNUNET_HashCode * psid) |
164 | { | 163 | { |
165 | struct GNUNET_CRYPTO_HashAsciiEncoded enc; | 164 | struct GNUNET_CRYPTO_HashAsciiEncoded enc; |
166 | 165 | ||
167 | if (psid != NULL) | 166 | if (psid != NULL) |
168 | GNUNET_CRYPTO_hash_to_enc (psid, &enc); | 167 | GNUNET_CRYPTO_hash_to_enc (psid, &enc); |
169 | return GNUNET_DISK_get_home_filename (cfg, GNUNET_CLIENT_SERVICE_NAME, | 168 | return GNUNET_DISK_get_home_filename (cfg, GNUNET_CLIENT_SERVICE_NAME, prefix, |
170 | prefix, | 169 | (psid == |
171 | (psid == | 170 | NULL) ? NULL : (const char *) &enc, |
172 | NULL) ? NULL : (const char *) &enc, | 171 | NULL); |
173 | NULL); | ||
174 | } | 172 | } |
175 | 173 | ||
176 | 174 | ||
@@ -184,9 +182,9 @@ get_data_filename (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
184 | */ | 182 | */ |
185 | static void | 183 | static void |
186 | write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | 184 | write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, |
187 | const GNUNET_HashCode * nsid, | 185 | const GNUNET_HashCode * nsid, |
188 | const struct GNUNET_CONTAINER_MetaData *meta, | 186 | const struct GNUNET_CONTAINER_MetaData *meta, |
189 | int32_t ranking, const char *ns_name) | 187 | int32_t ranking, const char *ns_name) |
190 | { | 188 | { |
191 | char *fn; | 189 | char *fn; |
192 | struct GNUNET_BIO_WriteHandle *fileW; | 190 | struct GNUNET_BIO_WriteHandle *fileW; |
@@ -195,23 +193,23 @@ write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
195 | GNUNET_assert (fn != NULL); | 193 | GNUNET_assert (fn != NULL); |
196 | fileW = GNUNET_BIO_write_open (fn); | 194 | fileW = GNUNET_BIO_write_open (fn); |
197 | if (NULL != fileW) | 195 | if (NULL != fileW) |
196 | { | ||
197 | if ((GNUNET_OK != GNUNET_BIO_write_int32 (fileW, ranking)) || | ||
198 | (GNUNET_OK != GNUNET_BIO_write_string (fileW, ns_name)) || | ||
199 | (GNUNET_OK != GNUNET_BIO_write_meta_data (fileW, meta))) | ||
198 | { | 200 | { |
199 | if ((GNUNET_OK != GNUNET_BIO_write_int32 (fileW, ranking)) || | 201 | (void) GNUNET_BIO_write_close (fileW); |
200 | (GNUNET_OK != GNUNET_BIO_write_string (fileW, ns_name)) || | 202 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); |
201 | (GNUNET_OK != GNUNET_BIO_write_meta_data (fileW, meta))) | 203 | GNUNET_free (fn); |
202 | { | 204 | return; |
203 | (void) GNUNET_BIO_write_close (fileW); | ||
204 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | ||
205 | GNUNET_free (fn); | ||
206 | return; | ||
207 | } | ||
208 | if (GNUNET_OK != GNUNET_BIO_write_close (fileW)) | ||
209 | { | ||
210 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | ||
211 | GNUNET_free (fn); | ||
212 | return; | ||
213 | } | ||
214 | } | 205 | } |
206 | if (GNUNET_OK != GNUNET_BIO_write_close (fileW)) | ||
207 | { | ||
208 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | ||
209 | GNUNET_free (fn); | ||
210 | return; | ||
211 | } | ||
212 | } | ||
215 | GNUNET_free (fn); | 213 | GNUNET_free (fn); |
216 | /* create entry for pseudonym name in names */ | 214 | /* create entry for pseudonym name in names */ |
217 | /* FIXME: 90% of what this call does is not needed | 215 | /* FIXME: 90% of what this call does is not needed |
@@ -230,9 +228,9 @@ write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
230 | */ | 228 | */ |
231 | static int | 229 | static int |
232 | read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | 230 | read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, |
233 | const GNUNET_HashCode * nsid, | 231 | const GNUNET_HashCode * nsid, |
234 | struct GNUNET_CONTAINER_MetaData **meta, int32_t * ranking, | 232 | struct GNUNET_CONTAINER_MetaData **meta, int32_t * ranking, |
235 | char **ns_name) | 233 | char **ns_name) |
236 | { | 234 | { |
237 | char *fn; | 235 | char *fn; |
238 | char *emsg; | 236 | char *emsg; |
@@ -242,10 +240,10 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
242 | GNUNET_assert (fn != NULL); | 240 | GNUNET_assert (fn != NULL); |
243 | fileR = GNUNET_BIO_read_open (fn); | 241 | fileR = GNUNET_BIO_read_open (fn); |
244 | if (fileR == NULL) | 242 | if (fileR == NULL) |
245 | { | 243 | { |
246 | GNUNET_free (fn); | 244 | GNUNET_free (fn); |
247 | return GNUNET_SYSERR; | 245 | return GNUNET_SYSERR; |
248 | } | 246 | } |
249 | emsg = NULL; | 247 | emsg = NULL; |
250 | *ns_name = NULL; | 248 | *ns_name = NULL; |
251 | if ((GNUNET_OK != GNUNET_BIO_read_int32 (fileR, ranking)) || | 249 | if ((GNUNET_OK != GNUNET_BIO_read_int32 (fileR, ranking)) || |
@@ -253,30 +251,29 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
253 | GNUNET_BIO_read_string (fileR, "Read string error!", ns_name, 200)) || | 251 | GNUNET_BIO_read_string (fileR, "Read string error!", ns_name, 200)) || |
254 | (GNUNET_OK != | 252 | (GNUNET_OK != |
255 | GNUNET_BIO_read_meta_data (fileR, "Read meta data error!", meta))) | 253 | GNUNET_BIO_read_meta_data (fileR, "Read meta data error!", meta))) |
256 | { | 254 | { |
257 | (void) GNUNET_BIO_read_close (fileR, &emsg); | 255 | (void) GNUNET_BIO_read_close (fileR, &emsg); |
258 | GNUNET_free_non_null (emsg); | 256 | GNUNET_free_non_null (emsg); |
259 | GNUNET_free_non_null (*ns_name); | 257 | GNUNET_free_non_null (*ns_name); |
260 | *ns_name = NULL; | 258 | *ns_name = NULL; |
261 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | 259 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); |
262 | GNUNET_free (fn); | 260 | GNUNET_free (fn); |
263 | return GNUNET_SYSERR; | 261 | return GNUNET_SYSERR; |
264 | } | 262 | } |
265 | if (GNUNET_OK != GNUNET_BIO_read_close (fileR, &emsg)) | 263 | if (GNUNET_OK != GNUNET_BIO_read_close (fileR, &emsg)) |
266 | { | 264 | { |
267 | LOG (GNUNET_ERROR_TYPE_WARNING, | 265 | LOG (GNUNET_ERROR_TYPE_WARNING, |
268 | _ | 266 | _("Failed to parse metadata about pseudonym from file `%s': %s\n"), fn, |
269 | ("Failed to parse metadata about pseudonym from file `%s': %s\n"), | 267 | emsg); |
270 | fn, emsg); | 268 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); |
271 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | 269 | GNUNET_CONTAINER_meta_data_destroy (*meta); |
272 | GNUNET_CONTAINER_meta_data_destroy (*meta); | 270 | *meta = NULL; |
273 | *meta = NULL; | 271 | GNUNET_free_non_null (*ns_name); |
274 | GNUNET_free_non_null (*ns_name); | 272 | *ns_name = NULL; |
275 | *ns_name = NULL; | 273 | GNUNET_free_non_null (emsg); |
276 | GNUNET_free_non_null (emsg); | 274 | GNUNET_free (fn); |
277 | GNUNET_free (fn); | 275 | return GNUNET_SYSERR; |
278 | return GNUNET_SYSERR; | 276 | } |
279 | } | ||
280 | GNUNET_free (fn); | 277 | GNUNET_free (fn); |
281 | return GNUNET_OK; | 278 | return GNUNET_OK; |
282 | } | 279 | } |
@@ -292,7 +289,7 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
292 | */ | 289 | */ |
293 | char * | 290 | char * |
294 | GNUNET_PSEUDONYM_id_to_name (const struct GNUNET_CONFIGURATION_Handle *cfg, | 291 | GNUNET_PSEUDONYM_id_to_name (const struct GNUNET_CONFIGURATION_Handle *cfg, |
295 | const GNUNET_HashCode * nsid) | 292 | const GNUNET_HashCode * nsid) |
296 | { | 293 | { |
297 | struct GNUNET_CONTAINER_MetaData *meta; | 294 | struct GNUNET_CONTAINER_MetaData *meta; |
298 | char *name; | 295 | char *name; |
@@ -310,25 +307,25 @@ GNUNET_PSEUDONYM_id_to_name (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
310 | meta = NULL; | 307 | meta = NULL; |
311 | name = NULL; | 308 | name = NULL; |
312 | if (GNUNET_OK == read_info (cfg, nsid, &meta, rank, &name)) | 309 | if (GNUNET_OK == read_info (cfg, nsid, &meta, rank, &name)) |
310 | { | ||
311 | if ((meta != NULL) && (name == NULL)) | ||
312 | name = | ||
313 | GNUNET_CONTAINER_meta_data_get_first_by_types (meta, | ||
314 | EXTRACTOR_METATYPE_TITLE, | ||
315 | EXTRACTOR_METATYPE_FILENAME, | ||
316 | EXTRACTOR_METATYPE_DESCRIPTION, | ||
317 | EXTRACTOR_METATYPE_SUBJECT, | ||
318 | EXTRACTOR_METATYPE_PUBLISHER, | ||
319 | EXTRACTOR_METATYPE_AUTHOR_NAME, | ||
320 | EXTRACTOR_METATYPE_COMMENT, | ||
321 | EXTRACTOR_METATYPE_SUMMARY, | ||
322 | -1); | ||
323 | if (meta != NULL) | ||
313 | { | 324 | { |
314 | if ((meta != NULL) && (name == NULL)) | 325 | GNUNET_CONTAINER_meta_data_destroy (meta); |
315 | name = | 326 | meta = NULL; |
316 | GNUNET_CONTAINER_meta_data_get_first_by_types (meta, | ||
317 | EXTRACTOR_METATYPE_TITLE, | ||
318 | EXTRACTOR_METATYPE_FILENAME, | ||
319 | EXTRACTOR_METATYPE_DESCRIPTION, | ||
320 | EXTRACTOR_METATYPE_SUBJECT, | ||
321 | EXTRACTOR_METATYPE_PUBLISHER, | ||
322 | EXTRACTOR_METATYPE_AUTHOR_NAME, | ||
323 | EXTRACTOR_METATYPE_COMMENT, | ||
324 | EXTRACTOR_METATYPE_SUMMARY, | ||
325 | -1); | ||
326 | if (meta != NULL) | ||
327 | { | ||
328 | GNUNET_CONTAINER_meta_data_destroy (meta); | ||
329 | meta = NULL; | ||
330 | } | ||
331 | } | 327 | } |
328 | } | ||
332 | if (name == NULL) | 329 | if (name == NULL) |
333 | name = GNUNET_strdup (_("no-name")); | 330 | name = GNUNET_strdup (_("no-name")); |
334 | GNUNET_CRYPTO_hash (name, strlen (name), &nh); | 331 | GNUNET_CRYPTO_hash (name, strlen (name), &nh); |
@@ -339,31 +336,31 @@ GNUNET_PSEUDONYM_id_to_name (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
339 | if (0 == STAT (fn, &sbuf)) | 336 | if (0 == STAT (fn, &sbuf)) |
340 | GNUNET_DISK_file_size (fn, &len, GNUNET_YES); | 337 | GNUNET_DISK_file_size (fn, &len, GNUNET_YES); |
341 | fh = GNUNET_DISK_file_open (fn, | 338 | fh = GNUNET_DISK_file_open (fn, |
342 | GNUNET_DISK_OPEN_CREATE | | 339 | GNUNET_DISK_OPEN_CREATE | |
343 | GNUNET_DISK_OPEN_READWRITE, | 340 | GNUNET_DISK_OPEN_READWRITE, |
344 | GNUNET_DISK_PERM_USER_READ | | 341 | GNUNET_DISK_PERM_USER_READ | |
345 | GNUNET_DISK_PERM_USER_WRITE); | 342 | GNUNET_DISK_PERM_USER_WRITE); |
346 | i = 0; | 343 | i = 0; |
347 | idx = -1; | 344 | idx = -1; |
348 | while ((len >= sizeof (GNUNET_HashCode)) && | 345 | while ((len >= sizeof (GNUNET_HashCode)) && |
349 | (sizeof (GNUNET_HashCode) == | 346 | (sizeof (GNUNET_HashCode) == |
350 | GNUNET_DISK_file_read (fh, &nh, sizeof (GNUNET_HashCode)))) | 347 | GNUNET_DISK_file_read (fh, &nh, sizeof (GNUNET_HashCode)))) |
351 | { | 348 | { |
352 | if (0 == memcmp (&nh, nsid, sizeof (GNUNET_HashCode))) | 349 | if (0 == memcmp (&nh, nsid, sizeof (GNUNET_HashCode))) |
353 | { | ||
354 | idx = i; | ||
355 | break; | ||
356 | } | ||
357 | i++; | ||
358 | len -= sizeof (GNUNET_HashCode); | ||
359 | } | ||
360 | if (idx == -1) | ||
361 | { | 350 | { |
362 | idx = i; | 351 | idx = i; |
363 | if (sizeof (GNUNET_HashCode) != | 352 | break; |
364 | GNUNET_DISK_file_write (fh, nsid, sizeof (GNUNET_HashCode))) | ||
365 | LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "write", fn); | ||
366 | } | 353 | } |
354 | i++; | ||
355 | len -= sizeof (GNUNET_HashCode); | ||
356 | } | ||
357 | if (idx == -1) | ||
358 | { | ||
359 | idx = i; | ||
360 | if (sizeof (GNUNET_HashCode) != | ||
361 | GNUNET_DISK_file_write (fh, nsid, sizeof (GNUNET_HashCode))) | ||
362 | LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "write", fn); | ||
363 | } | ||
367 | GNUNET_DISK_file_close (fh); | 364 | GNUNET_DISK_file_close (fh); |
368 | ret = GNUNET_malloc (strlen (name) + 32); | 365 | ret = GNUNET_malloc (strlen (name) + 32); |
369 | GNUNET_snprintf (ret, strlen (name) + 32, "%s-%u", name, idx); | 366 | GNUNET_snprintf (ret, strlen (name) + 32, "%s-%u", name, idx); |
@@ -382,7 +379,7 @@ GNUNET_PSEUDONYM_id_to_name (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
382 | */ | 379 | */ |
383 | int | 380 | int |
384 | GNUNET_PSEUDONYM_name_to_id (const struct GNUNET_CONFIGURATION_Handle *cfg, | 381 | GNUNET_PSEUDONYM_name_to_id (const struct GNUNET_CONFIGURATION_Handle *cfg, |
385 | const char *ns_uname, GNUNET_HashCode * nsid) | 382 | const char *ns_uname, GNUNET_HashCode * nsid) |
386 | { | 383 | { |
387 | size_t slen; | 384 | size_t slen; |
388 | uint64_t len; | 385 | uint64_t len; |
@@ -408,24 +405,24 @@ GNUNET_PSEUDONYM_name_to_id (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
408 | if ((GNUNET_OK != GNUNET_DISK_file_test (fn) || | 405 | if ((GNUNET_OK != GNUNET_DISK_file_test (fn) || |
409 | (GNUNET_OK != GNUNET_DISK_file_size (fn, &len, GNUNET_YES))) || | 406 | (GNUNET_OK != GNUNET_DISK_file_size (fn, &len, GNUNET_YES))) || |
410 | ((idx + 1) * sizeof (GNUNET_HashCode) > len)) | 407 | ((idx + 1) * sizeof (GNUNET_HashCode) > len)) |
411 | { | 408 | { |
412 | GNUNET_free (fn); | 409 | GNUNET_free (fn); |
413 | return GNUNET_SYSERR; | 410 | return GNUNET_SYSERR; |
414 | } | 411 | } |
415 | fh = GNUNET_DISK_file_open (fn, | 412 | fh = GNUNET_DISK_file_open (fn, |
416 | GNUNET_DISK_OPEN_CREATE | | 413 | GNUNET_DISK_OPEN_CREATE | |
417 | GNUNET_DISK_OPEN_READWRITE, | 414 | GNUNET_DISK_OPEN_READWRITE, |
418 | GNUNET_DISK_PERM_USER_READ | | 415 | GNUNET_DISK_PERM_USER_READ | |
419 | GNUNET_DISK_PERM_USER_WRITE); | 416 | GNUNET_DISK_PERM_USER_WRITE); |
420 | GNUNET_free (fn); | 417 | GNUNET_free (fn); |
421 | GNUNET_DISK_file_seek (fh, idx * sizeof (GNUNET_HashCode), | 418 | GNUNET_DISK_file_seek (fh, idx * sizeof (GNUNET_HashCode), |
422 | GNUNET_DISK_SEEK_SET); | 419 | GNUNET_DISK_SEEK_SET); |
423 | if (sizeof (GNUNET_HashCode) != | 420 | if (sizeof (GNUNET_HashCode) != |
424 | GNUNET_DISK_file_read (fh, nsid, sizeof (GNUNET_HashCode))) | 421 | GNUNET_DISK_file_read (fh, nsid, sizeof (GNUNET_HashCode))) |
425 | { | 422 | { |
426 | GNUNET_DISK_file_close (fh); | 423 | GNUNET_DISK_file_close (fh); |
427 | return GNUNET_SYSERR; | 424 | return GNUNET_SYSERR; |
428 | } | 425 | } |
429 | GNUNET_DISK_file_close (fh); | 426 | GNUNET_DISK_file_close (fh); |
430 | return GNUNET_OK; | 427 | return GNUNET_OK; |
431 | } | 428 | } |
@@ -475,15 +472,15 @@ list_pseudonym_helper (void *cls, const char *fullname) | |||
475 | if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)) | 472 | if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)) |
476 | return GNUNET_OK; | 473 | return GNUNET_OK; |
477 | fn = &fullname[strlen (fullname) + 1 - | 474 | fn = &fullname[strlen (fullname) + 1 - |
478 | sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)]; | 475 | sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)]; |
479 | if (fn[-1] != DIR_SEPARATOR) | 476 | if (fn[-1] != DIR_SEPARATOR) |
480 | return GNUNET_OK; | 477 | return GNUNET_OK; |
481 | ret = GNUNET_OK; | 478 | ret = GNUNET_OK; |
482 | if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id)) | 479 | if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id)) |
483 | return GNUNET_OK; /* invalid name */ | 480 | return GNUNET_OK; /* invalid name */ |
484 | str = NULL; | 481 | str = NULL; |
485 | if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str)) | 482 | if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str)) |
486 | return GNUNET_OK; /* ignore entry */ | 483 | return GNUNET_OK; /* ignore entry */ |
487 | GNUNET_free_non_null (str); | 484 | GNUNET_free_non_null (str); |
488 | if (c->iterator != NULL) | 485 | if (c->iterator != NULL) |
489 | ret = c->iterator (c->closure, &id, meta, rating); | 486 | ret = c->iterator (c->closure, &id, meta, rating); |
@@ -502,7 +499,7 @@ list_pseudonym_helper (void *cls, const char *fullname) | |||
502 | */ | 499 | */ |
503 | int | 500 | int |
504 | GNUNET_PSEUDONYM_list_all (const struct GNUNET_CONFIGURATION_Handle *cfg, | 501 | GNUNET_PSEUDONYM_list_all (const struct GNUNET_CONFIGURATION_Handle *cfg, |
505 | GNUNET_PSEUDONYM_Iterator iterator, void *closure) | 502 | GNUNET_PSEUDONYM_Iterator iterator, void *closure) |
506 | { | 503 | { |
507 | struct ListPseudonymClosure cls; | 504 | struct ListPseudonymClosure cls; |
508 | char *fn; | 505 | char *fn; |
@@ -531,7 +528,7 @@ GNUNET_PSEUDONYM_list_all (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
531 | */ | 528 | */ |
532 | int | 529 | int |
533 | GNUNET_PSEUDONYM_rank (const struct GNUNET_CONFIGURATION_Handle *cfg, | 530 | GNUNET_PSEUDONYM_rank (const struct GNUNET_CONFIGURATION_Handle *cfg, |
534 | const GNUNET_HashCode * nsid, int delta) | 531 | const GNUNET_HashCode * nsid, int delta) |
535 | { | 532 | { |
536 | struct GNUNET_CONTAINER_MetaData *meta; | 533 | struct GNUNET_CONTAINER_MetaData *meta; |
537 | int ret; | 534 | int ret; |
@@ -541,10 +538,10 @@ GNUNET_PSEUDONYM_rank (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
541 | name = NULL; | 538 | name = NULL; |
542 | ret = read_info (cfg, nsid, &meta, &ranking, &name); | 539 | ret = read_info (cfg, nsid, &meta, &ranking, &name); |
543 | if (ret == GNUNET_SYSERR) | 540 | if (ret == GNUNET_SYSERR) |
544 | { | 541 | { |
545 | ranking = 0; | 542 | ranking = 0; |
546 | meta = GNUNET_CONTAINER_meta_data_create (); | 543 | meta = GNUNET_CONTAINER_meta_data_create (); |
547 | } | 544 | } |
548 | ranking += delta; | 545 | ranking += delta; |
549 | write_pseudonym_info (cfg, nsid, meta, ranking, name); | 546 | write_pseudonym_info (cfg, nsid, meta, ranking, name); |
550 | GNUNET_CONTAINER_meta_data_destroy (meta); | 547 | GNUNET_CONTAINER_meta_data_destroy (meta); |
@@ -564,8 +561,8 @@ GNUNET_PSEUDONYM_rank (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
564 | */ | 561 | */ |
565 | void | 562 | void |
566 | GNUNET_PSEUDONYM_add (const struct GNUNET_CONFIGURATION_Handle *cfg, | 563 | GNUNET_PSEUDONYM_add (const struct GNUNET_CONFIGURATION_Handle *cfg, |
567 | const GNUNET_HashCode * id, | 564 | const GNUNET_HashCode * id, |
568 | const struct GNUNET_CONTAINER_MetaData *meta) | 565 | const struct GNUNET_CONTAINER_MetaData *meta) |
569 | { | 566 | { |
570 | char *name; | 567 | char *name; |
571 | int32_t ranking; | 568 | int32_t ranking; |
@@ -579,16 +576,16 @@ GNUNET_PSEUDONYM_add (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
579 | 576 | ||
580 | if ((0 == STAT (fn, &sbuf)) && | 577 | if ((0 == STAT (fn, &sbuf)) && |
581 | (GNUNET_OK == read_info (cfg, id, &old, &ranking, &name))) | 578 | (GNUNET_OK == read_info (cfg, id, &old, &ranking, &name))) |
582 | { | 579 | { |
583 | GNUNET_CONTAINER_meta_data_merge (old, meta); | 580 | GNUNET_CONTAINER_meta_data_merge (old, meta); |
584 | write_pseudonym_info (cfg, id, old, ranking, name); | 581 | write_pseudonym_info (cfg, id, old, ranking, name); |
585 | GNUNET_CONTAINER_meta_data_destroy (old); | 582 | GNUNET_CONTAINER_meta_data_destroy (old); |
586 | GNUNET_free_non_null (name); | 583 | GNUNET_free_non_null (name); |
587 | } | 584 | } |
588 | else | 585 | else |
589 | { | 586 | { |
590 | write_pseudonym_info (cfg, id, meta, ranking, NULL); | 587 | write_pseudonym_info (cfg, id, meta, ranking, NULL); |
591 | } | 588 | } |
592 | GNUNET_free (fn); | 589 | GNUNET_free (fn); |
593 | internal_notify (id, meta, ranking); | 590 | internal_notify (id, meta, ranking); |
594 | } | 591 | } |