Exemplo n.º 1
0
/**
 * Shutdown nicely
 */
static void
do_close (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
  switch (test_step)
  {
  case TEST_STEP_1_HOP:
    if (NULL != peer_data[0].socket)
      GNUNET_STREAM_close (peer_data[0].socket);
    if (NULL != peer_data[1].socket)
      GNUNET_STREAM_close (peer_data[1].socket);
    if (NULL != peer2_listen_socket)
      GNUNET_STREAM_listen_close (peer2_listen_socket); /* Close listen socket */
    break;
  case TEST_STEP_2_HOP:
    if (NULL != peer_data[1].socket)
      GNUNET_STREAM_close (peer_data[1].socket);
    if (NULL != peer_data[0].op)
      GNUNET_TESTBED_operation_done (peer_data[0].op);
    if (NULL != peer_data[1].op)
      GNUNET_TESTBED_operation_done (peer_data[1].op);
    break;
  case TEST_STEP_3_HOP:
    GNUNET_break (0);    
  }  
  if (GNUNET_SCHEDULER_NO_TASK != abort_task)
    GNUNET_SCHEDULER_cancel (abort_task);
  if (GNUNET_SCHEDULER_NO_TASK != write_task)
    GNUNET_SCHEDULER_cancel (write_task);
  GNUNET_SCHEDULER_shutdown (); /* Shutdown this testcase */
  if (NULL != meter)
  {
    free_meter (meter);
    meter = NULL;
  }
}
Exemplo n.º 2
0
/**
 * Shutdown nicely
 */
static void
do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
  GNUNET_STREAM_close (peer1.socket);
  if (NULL != peer2.socket)
    GNUNET_STREAM_close (peer2.socket);
  if (NULL != peer2_listen_socket)
    GNUNET_STREAM_listen_close (peer2_listen_socket);
  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: shutdown\n");
  if (0 != abort_task)
  {
    GNUNET_SCHEDULER_cancel (abort_task);
  }
  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: arm\n");
  if (0 != GNUNET_OS_process_kill (arm_pid, SIGTERM))
  {
    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
  }
  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Wait\n");
  /* Free the duplicated configuration */
  GNUNET_CONFIGURATION_destroy (config_peer1);
  GNUNET_CONFIGURATION_destroy (config_peer2);
  GNUNET_assert (GNUNET_OK == GNUNET_OS_process_wait (arm_pid));
  GNUNET_OS_process_destroy (arm_pid);
}
Exemplo n.º 3
0
/**
 * Shutdown nicely
 */
static void
do_close (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
    if (GNUNET_SCHEDULER_NO_TASK != abort_task)
        GNUNET_SCHEDULER_cancel (abort_task);
    if (NULL != peer1.socket)
        GNUNET_STREAM_close (peer1.socket);
    if (NULL != peer2.socket)
        GNUNET_STREAM_close (peer2.socket);
    if (NULL != peer2_listen_socket)
        GNUNET_STREAM_listen_close (peer2_listen_socket); /* Close listen socket */
}
Exemplo n.º 4
0
/**
 * Adapter function called to destroy a connection to
 * a service.
 * 
 * @param cls closure
 * @param op_result service handle returned from the connect adapter
 */
static void
stream_da (void *cls, void *op_result)
{
  if (&peer_data[1] == cls)
  {
    GNUNET_STREAM_listen_close (op_result);
    return;
  }
  else if (&peer_data[0] == cls)
  {
    GNUNET_STREAM_close (op_result);
    return;
  }
  GNUNET_assert (0);
}
/**
 * Shutdown subsystem for non-anonymous file-sharing.
 */
void
GSF_stream_stop ()
{
  struct StreamClient *sc;

  while (NULL != (sc = sc_head))
    terminate_stream (sc);
  if (NULL != listen_socket)
  {
    GNUNET_STREAM_listen_close (listen_socket);
    listen_socket = NULL;
  }
  GNUNET_CONTAINER_multihashmap_iterate (stream_map,
					 &release_streams,
					 NULL);
  GNUNET_CONTAINER_multihashmap_destroy (stream_map);
  stream_map = NULL;
}