Example #1
0
CTEST2(tube, manager_bind_event)
{
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_LOOPSTART_NAME, test_cb, &data->err));
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_RUNNING_NAME, test_cb, &data->err));
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_DATA_NAME, test_cb, &data->err));
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_CLOSE_NAME, test_cb, &data->err));
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_ADD_NAME, test_cb, &data->err));
    ASSERT_TRUE( tube_manager_bind_event(data->mgr, EV_REMOVE_NAME, test_cb, &data->err));
}
Example #2
0
int
spudtest(int    argc,
         char** argv)
{
  ls_err     err;
  size_t     i;
  const char nums[] = "0123456789";

  if (argc < 2)
  {
    fprintf(stderr, "spudload <destination>\n");
    exit(64);
  }
#if defined(__APPLE__)
  srandomdev();
#endif
#if defined(__LINUX__)
  srandom( time(NULL) );
#endif
  for (i = 0; i < sizeof(data); i++)
  {
    data[i] = nums[i % 10];
  }

  if ( !ls_sockaddr_get_remote_ip_addr(argv[1],
                                       "1402",
                                       (struct sockaddr*)&remoteAddr,
                                       sizeof(remoteAddr),
                                       &err) )
  {
    return 1;
  }

  if ( !tube_manager_create(0, &mgr, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_create");
    return 1;
  }
  if ( !tube_manager_socket(mgr, 0, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_socket");
    return 1;
  }

  if ( !tube_manager_signal(mgr, SIGINT, done, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_signal");
    return 1;
  }

  if ( !tube_manager_bind_event(mgr, EV_REMOVE_NAME, remove_cb, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_bind_event");
    return 1;
  }

  memset( tubes, 0, sizeof(tubes) );

  /* Start and listen to the sockets. */
  pthread_create(&listenThread, NULL, socketListen, NULL);

  return markov();
}
Example #3
0
int
spudtest(int    argc,
         char** argv)
{
  ls_err                  err;
  int                     ch;
  struct sockaddr_storage addr;
  /* bool has_addr = false;; */

  while ( ( ch = getopt(argc, argv, "?hvs:") ) != -1 )
  {
    switch (ch)
    {
    case 'v':
      ls_log_set_level(LS_LOG_VERBOSE);
      break;
    case 's':
      if ( !ls_sockaddr_parse(optarg, (struct sockaddr*)&addr, sizeof(addr),
                              &err) )
      {
        LS_LOG_ERR(err, "Invalid address");
        return 1;
      }
      /* has_addr = true; */
      break;
    case 'h':
    case '?':
    default:
      usage();
      break;
    }
  }
  argc -= optind;
  argv += optind;

  if (argc < 1)
  {
    usage();
  }

  ls_log(LS_LOG_INFO, "entering spudtest");
  memset( &config, 0, sizeof(config) );

  if ( !ls_sockaddr_get_remote_ip_addr(argv[0],
                                       "1402",
                                       (struct sockaddr*)&config.remoteAddr,
                                       sizeof(config.remoteAddr),
                                       &err) )
  {
    LS_LOG_ERR(err, "ls_sockaddr_get_remote_ip_addr");
    return 1;
  }

  if ( !tube_manager_create(0, &mgr, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_create");
    return 1;
  }
  if ( !tube_manager_socket(mgr, 0, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_socket");
    return 1;
  }

  /* TODO: make source addresses work (again?). */
  /* if (has_addr) { */
  /*     LOGI("source address: %s\n", inet_ntop(AF_INET6, &addr, buf,
   * sizeof(buf))); */
  /* } */

  if ( !tube_manager_bind_event(mgr, EV_LOOPSTART_NAME, loopstart_cb, &err) ||
       !tube_manager_bind_event(mgr, EV_RUNNING_NAME, running_cb, &err) ||
       !tube_manager_bind_event(mgr, EV_DATA_NAME, data_cb, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_bind_event");
    return 1;
  }

  if ( !tube_manager_signal(mgr, SIGINT, done_sig, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_signal");
    return 1;
  }

  if ( !tube_manager_schedule_ms(mgr, 5000, done, NULL, NULL, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_schedule_ms");
    return 1;
  }

  if ( !tube_manager_loop(mgr, &err) )
  {
    LS_LOG_ERR(err, "tube_manager_loop");
  }

  return 0;
}