diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-09-17 13:41:33 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-09-17 13:41:33 +0000 |
commit | b2399cd463b59e7228e0a93464e856ce6fae0a47 (patch) | |
tree | 7cb10a8f9770682c138a858e5f400f5575fa3a55 /src | |
parent | 1e235920da4833235a83e8daa422f2420ab2368a (diff) | |
download | gnunet-b2399cd463b59e7228e0a93464e856ce6fae0a47.tar.gz gnunet-b2399cd463b59e7228e0a93464e856ce6fae0a47.zip |
-trying to fix bb errors
Diffstat (limited to 'src')
-rw-r--r-- | src/util/crypto_rsa.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/util/crypto_rsa.c b/src/util/crypto_rsa.c index 8843464a2..d94051201 100644 --- a/src/util/crypto_rsa.c +++ b/src/util/crypto_rsa.c | |||
@@ -943,6 +943,8 @@ check_key_generation_completion (void *cls, | |||
943 | enum GNUNET_OS_ProcessStatusType type; | 943 | enum GNUNET_OS_ProcessStatusType type; |
944 | unsigned long code; | 944 | unsigned long code; |
945 | struct GNUNET_CRYPTO_RsaPrivateKey *pk; | 945 | struct GNUNET_CRYPTO_RsaPrivateKey *pk; |
946 | char buf[512]; | ||
947 | ssize_t ret; | ||
946 | 948 | ||
947 | gc->read_task = GNUNET_SCHEDULER_NO_TASK; | 949 | gc->read_task = GNUNET_SCHEDULER_NO_TASK; |
948 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | 950 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) |
@@ -955,9 +957,23 @@ check_key_generation_completion (void *cls, | |||
955 | GNUNET_OS_process_status (gc->gnunet_rsa, | 957 | GNUNET_OS_process_status (gc->gnunet_rsa, |
956 | &type, &code)) | 958 | &type, &code)) |
957 | { | 959 | { |
958 | GNUNET_break (0); | 960 | if (0 >= (ret = GNUNET_DISK_file_read (GNUNET_DISK_pipe_handle (gc->gnunet_rsa_out, |
959 | gc->cont (gc->cont_cls, NULL, _("internal error")); | 961 | GNUNET_DISK_PIPE_END_READ), |
960 | GNUNET_CRYPTO_rsa_key_create_stop (gc); | 962 | buf, sizeof (buf)))) |
963 | { | ||
964 | GNUNET_break (0); | ||
965 | gc->cont (gc->cont_cls, NULL, _("internal error")); | ||
966 | GNUNET_CRYPTO_rsa_key_create_stop (gc); | ||
967 | return; | ||
968 | } | ||
969 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | ||
970 | _("Unexpected gnunet-rsa output: %.*s\n"), | ||
971 | (int) ret, buf); | ||
972 | gc->read_task = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | ||
973 | GNUNET_DISK_pipe_handle (gc->gnunet_rsa_out, | ||
974 | GNUNET_DISK_PIPE_END_READ), | ||
975 | &check_key_generation_completion, | ||
976 | gc); | ||
961 | return; | 977 | return; |
962 | } | 978 | } |
963 | GNUNET_OS_process_destroy (gc->gnunet_rsa); | 979 | GNUNET_OS_process_destroy (gc->gnunet_rsa); |
@@ -977,6 +993,7 @@ check_key_generation_completion (void *cls, | |||
977 | return; | 993 | return; |
978 | } | 994 | } |
979 | gc->cont (gc->cont_cls, pk, NULL); | 995 | gc->cont (gc->cont_cls, pk, NULL); |
996 | GNUNET_DISK_pipe_close (gc->gnunet_rsa_out); | ||
980 | GNUNET_free (gc->filename); | 997 | GNUNET_free (gc->filename); |
981 | GNUNET_free (gc); | 998 | GNUNET_free (gc); |
982 | } | 999 | } |