gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23856 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r23856 - gnunet/src/util
Date: Mon, 17 Sep 2012 15:41:33 +0200

Author: grothoff
Date: 2012-09-17 15:41:33 +0200 (Mon, 17 Sep 2012)
New Revision: 23856

Modified:
   gnunet/src/util/crypto_rsa.c
Log:
-trying to fix bb errors

Modified: gnunet/src/util/crypto_rsa.c
===================================================================
--- gnunet/src/util/crypto_rsa.c        2012-09-17 13:30:14 UTC (rev 23855)
+++ gnunet/src/util/crypto_rsa.c        2012-09-17 13:41:33 UTC (rev 23856)
@@ -943,6 +943,8 @@
   enum GNUNET_OS_ProcessStatusType type;
   unsigned long code;
   struct GNUNET_CRYPTO_RsaPrivateKey *pk;
+  char buf[512];
+  ssize_t ret;
 
   gc->read_task = GNUNET_SCHEDULER_NO_TASK;
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
@@ -955,9 +957,23 @@
       GNUNET_OS_process_status (gc->gnunet_rsa,
                                &type, &code))
   {
-    GNUNET_break (0);
-    gc->cont (gc->cont_cls, NULL, _("internal error"));
-    GNUNET_CRYPTO_rsa_key_create_stop (gc);
+    if (0 >= (ret = GNUNET_DISK_file_read (GNUNET_DISK_pipe_handle 
(gc->gnunet_rsa_out,
+                                                                   
GNUNET_DISK_PIPE_END_READ),
+                                          buf, sizeof (buf))))
+      {
+       GNUNET_break (0);
+       gc->cont (gc->cont_cls, NULL, _("internal error"));
+       GNUNET_CRYPTO_rsa_key_create_stop (gc);
+       return;
+      }
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+               _("Unexpected gnunet-rsa output: %.*s\n"),
+               (int) ret, buf);
+    gc->read_task = GNUNET_SCHEDULER_add_read_file 
(GNUNET_TIME_UNIT_FOREVER_REL,
+                                                   GNUNET_DISK_pipe_handle 
(gc->gnunet_rsa_out,
+                                                                            
GNUNET_DISK_PIPE_END_READ),
+                                                   
&check_key_generation_completion,
+                                                   gc);    
     return;
   }
   GNUNET_OS_process_destroy (gc->gnunet_rsa);
@@ -977,6 +993,7 @@
     return;
   }
   gc->cont (gc->cont_cls, pk, NULL);
+  GNUNET_DISK_pipe_close (gc->gnunet_rsa_out);
   GNUNET_free (gc->filename);
   GNUNET_free (gc);
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]