diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-11-16 14:37:07 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-11-16 14:37:07 +0000 |
commit | 3cf8a24f8a74ce2fc4707e61038431c69a5ace3b (patch) | |
tree | 247f3c6f97e0350f29d9b0f97dfaa8cadf1c7e05 /src/util/pseudonym.c | |
parent | 689b3d243c3cc49551f9f9ecbc2b046021a48e16 (diff) | |
download | gnunet-3cf8a24f8a74ce2fc4707e61038431c69a5ace3b.tar.gz gnunet-3cf8a24f8a74ce2fc4707e61038431c69a5ace3b.zip |
more error handling
Diffstat (limited to 'src/util/pseudonym.c')
-rw-r--r-- | src/util/pseudonym.c | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/src/util/pseudonym.c b/src/util/pseudonym.c index 3bc8137fe..55ed3884a 100644 --- a/src/util/pseudonym.c +++ b/src/util/pseudonym.c | |||
@@ -189,13 +189,13 @@ write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
189 | (GNUNET_OK != GNUNET_BIO_write_meta_data(fileW, meta)) ) | 189 | (GNUNET_OK != GNUNET_BIO_write_meta_data(fileW, meta)) ) |
190 | { | 190 | { |
191 | GNUNET_BIO_write_close(fileW); | 191 | GNUNET_BIO_write_close(fileW); |
192 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fileW)); | 192 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); |
193 | GNUNET_free (fn); | 193 | GNUNET_free (fn); |
194 | return; | 194 | return; |
195 | } | 195 | } |
196 | if (GNUNET_OK != GNUNET_BIO_write_close(fileW)) | 196 | if (GNUNET_OK != GNUNET_BIO_write_close(fileW)) |
197 | { | 197 | { |
198 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fileW)); | 198 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); |
199 | GNUNET_free (fn); | 199 | GNUNET_free (fn); |
200 | return; | 200 | return; |
201 | } | 201 | } |
@@ -217,21 +217,39 @@ read_info (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
217 | { | 217 | { |
218 | char *fn; | 218 | char *fn; |
219 | char *emsg; | 219 | char *emsg; |
220 | int ret; | 220 | struct GNUNET_BIO_ReadHandle *fileR; |
221 | |||
221 | fn = get_data_filename (cfg, PS_METADATA_DIR, nsid); | 222 | fn = get_data_filename (cfg, PS_METADATA_DIR, nsid); |
222 | GNUNET_assert (fn != NULL); | 223 | GNUNET_assert (fn != NULL); |
223 | struct GNUNET_BIO_ReadHandle *fileR; | ||
224 | fileR = GNUNET_BIO_read_open(fn); | 224 | fileR = GNUNET_BIO_read_open(fn); |
225 | if((NULL != fileR)&& | 225 | if (fileR == NULL) |
226 | (GNUNET_OK == GNUNET_BIO_read_int32__(fileR, "Read int32 error!", ranking))&& | 226 | { |
227 | (GNUNET_OK == GNUNET_BIO_read_string(fileR, "Read string error!", ns_name, 200))&& | 227 | GNUNET_free (fn); |
228 | (GNUNET_OK == GNUNET_BIO_read_meta_data(fileR, "Read meta data error!", meta))&& | 228 | return GNUNET_SYSERR; |
229 | (GNUNET_OK == GNUNET_BIO_read_close(fileR, &emsg))) | 229 | } |
230 | ret = GNUNET_OK; | 230 | if ( (GNUNET_OK != GNUNET_BIO_read_int32__(fileR, "Read int32 error!", ranking)) || |
231 | else | 231 | (GNUNET_OK != GNUNET_BIO_read_string(fileR, "Read string error!", ns_name, 200)) || |
232 | ret = GNUNET_SYSERR; | 232 | (GNUNET_OK != GNUNET_BIO_read_meta_data(fileR, "Read meta data error!", meta)) ) |
233 | { | ||
234 | GNUNET_BIO_read_close(fileR, &emsg); | ||
235 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | ||
236 | GNUNET_free (fn); | ||
237 | return GNUNET_SYSERR; | ||
238 | } | ||
239 | emsg = NULL; | ||
240 | if (GNUNET_OK != GNUNET_BIO_read_close(fileR, &emsg)) | ||
241 | { | ||
242 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
243 | _("Failed to parse metadata about pseudonym from file `%s': %s\n"), | ||
244 | fn, | ||
245 | emsg); | ||
246 | GNUNET_break (GNUNET_OK == GNUNET_DISK_directory_remove (fn)); | ||
247 | GNUNET_free_non_null (emsg); | ||
248 | GNUNET_free (fn); | ||
249 | return GNUNET_SYSERR; | ||
250 | } | ||
233 | GNUNET_free (fn); | 251 | GNUNET_free (fn); |
234 | return ret; | 252 | return GNUNET_OK; |
235 | } | 253 | } |
236 | 254 | ||
237 | 255 | ||