aboutsummaryrefslogtreecommitdiff
path: root/src/util/pseudonym.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-11-16 14:37:07 +0000
committerChristian Grothoff <christian@grothoff.org>2009-11-16 14:37:07 +0000
commit3cf8a24f8a74ce2fc4707e61038431c69a5ace3b (patch)
tree247f3c6f97e0350f29d9b0f97dfaa8cadf1c7e05 /src/util/pseudonym.c
parent689b3d243c3cc49551f9f9ecbc2b046021a48e16 (diff)
downloadgnunet-3cf8a24f8a74ce2fc4707e61038431c69a5ace3b.tar.gz
gnunet-3cf8a24f8a74ce2fc4707e61038431c69a5ace3b.zip
more error handling
Diffstat (limited to 'src/util/pseudonym.c')
-rw-r--r--src/util/pseudonym.c44
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