doc
[oweals/gnunet.git] / src / stream / perf_stream_api.c
index 3dbdda256a86d23356c0ea710f4687aa36de0214..9539415f415f6173b6becaf78e5eef302e74c007 100644 (file)
@@ -438,7 +438,12 @@ write_completion (void *cls, enum GNUNET_STREAM_Status status, size_t size)
   double throughput;
   double prof_time_sec;
 
-  GNUNET_assert (GNUNET_STREAM_OK == status);
+  if (GNUNET_STREAM_OK != status)
+  {
+    GNUNET_SCHEDULER_cancel (abort_task);
+    abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL);
+    return;
+  }
   GNUNET_assert (size <= DATA_SIZE);
   pdata->bytes_wrote += size;
   for (;size > 0; size--)
@@ -537,7 +542,12 @@ input_processor (void *cls, enum GNUNET_STREAM_Status status,
 {
   struct PeerData *pdata = cls;
 
-  GNUNET_assert (GNUNET_STREAM_OK == status);
+  if (GNUNET_STREAM_OK != status)
+  {
+    GNUNET_SCHEDULER_cancel (abort_task);
+    abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL);
+    return 0;
+  }
   GNUNET_assert (size < DATA_SIZE);
   GNUNET_assert (0 == memcmp (((void *)data ) + pdata->bytes_read, 
                              input_data, size));
@@ -588,6 +598,15 @@ stream_listen_cb (void *cls, struct GNUNET_STREAM_Socket *socket,
 {
   struct PeerData *pdata = cls;
 
+  
+  if ((NULL == socket) || (NULL == initiator))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Binding error\n");
+    if (GNUNET_SCHEDULER_NO_TASK != abort_task)
+      GNUNET_SCHEDULER_cancel (abort_task);
+    abort_task = GNUNET_SCHEDULER_add_now (&do_abort, NULL);
+    return GNUNET_OK;
+  }
   GNUNET_assert (NULL != socket);
   GNUNET_assert (pdata == &peer_data[1]);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer connected: %s\n",