Ejemplo n.º 1
0
int transfer_file(char* filename)
{
    int fd_read = cfs_open(filename, CFS_READ);
    if (fd_read == -1)
    {
        log_error("cfs_open(%s) failed\n", filename); 
        return -1;
    }

    cfs_offset_t pos = -1;
    if ((pos = cfs_seek(fd_read, 0, CFS_SEEK_END)) == -1)
    {
        log_error("cfs_seek(%s) to file end failed", filename); 
        cfs_close(fd_read);
        return -1;
    }

    if ((pos = cfs_seek(fd_read, 0, CFS_SEEK_SET)) == -1)
    {
        log_error("cfs_seek(%s) to file begin failed", filename); 
        cfs_close(fd_read);
        return -1;
    }

    init_file_reader(&_f_reader);
    strcpy(_f_reader.file_name, filename);
    _f_reader.send_fd = begin_send_file(filename);
    _f_reader.read_fd = fd_read;
    _f_reader.file_size = (uint16_t)pos;

    send_file_block(_f_reader.send_fd);

    return 0;
}
Ejemplo n.º 2
0
analyzer_t::analyzer_t(const std::string &trace_path, analysis_tool_t **tools_in,
                       int num_tools_in, int worker_count_in)
    : success(true)
    , num_tools(num_tools_in)
    , tools(tools_in)
    , parallel(true)
    , worker_count(worker_count_in)
{
    for (int i = 0; i < num_tools; ++i) {
        if (tools[i] == NULL || !*tools[i]) {
            success = false;
            error_string = "Tool is not successfully initialized";
            if (tools[i] != NULL)
                error_string += ": " + tools[i]->get_error_string();
            return;
        }
        const std::string error = tools[i]->initialize();
        if (!error.empty()) {
            success = false;
            error_string = "Tool failed to initialize: " + error;
            return;
        }
    }
    if (!init_file_reader(trace_path))
        success = false;
}
Ejemplo n.º 3
0
analyzer_t::analyzer_t(const std::string &trace_path)
    : success(true)
    , num_tools(0)
    , tools(NULL)
    // This external-iterator interface does not support parallel analysis.
    , parallel(false)
    , worker_count(0)
{
    if (!init_file_reader(trace_path))
        success = false;
}
Ejemplo n.º 4
0
analyzer_t::analyzer_t(const std::string &trace_file, analysis_tool_t **tools_in,
                       int num_tools_in) :
    success(true), trace_iter(NULL), trace_end(NULL), num_tools(num_tools_in),
    tools(tools_in)
{
    for (int i = 0; i < num_tools; ++i) {
        if (tools[i] == NULL || !*tools[i]) {
            success = false;
            ERRMSG("Tool is not successfully initialized\n");
            return;
        }
    }
    if (!init_file_reader(trace_file))
        success = false;
}
Ejemplo n.º 5
0
analyzer_t::analyzer_t(const std::string &trace_file) :
    success(true), trace_iter(NULL), trace_end(NULL), num_tools(0), tools(NULL)
{
    if (!init_file_reader(trace_file))
        success = false;
}
Ejemplo n.º 6
0
int
main(int argc, char *argv[])
{
  GPtrArray *plugin_array = g_ptr_array_new();
  GOptionContext *ctx = g_option_context_new(" target port");

  signal(SIGPIPE, signal_callback_handler);

  int plugin_num = enumerate_plugins(SYSLOG_NG_PATH_LOGGEN_PLUGIN_DIR, plugin_array, ctx);
  DEBUG("%d plugin successfuly loaded\n",plugin_num);

  /* create sub group for file reader functions */
  GOptionGroup *group = g_option_group_new("file-reader", "file-reader", "Show options", NULL, NULL);
  g_option_group_add_entries(group, get_file_reader_options());
  g_option_context_add_group(ctx, group);

  GError *error = NULL;
  if (!g_option_context_parse(ctx, &argc, &argv, &error))
    {
      ERROR("option parsing failed: %s\n", error->message);
      g_ptr_array_free(plugin_array,TRUE);
      if (error)
        g_error_free(error);
      return 1;
    }

  /* debug option defined by --debug command line option */
  set_debug_level(debug);

  if (argc>=3)
    {
      global_plugin_option.target = g_strdup(argv[1]);
      global_plugin_option.port = g_strdup(argv[2]);
    }
  else if (argc>=2)
    {
      global_plugin_option.target = g_strdup(argv[1]);
      global_plugin_option.port = NULL;
    }
  else
    {
      global_plugin_option.target = NULL;
      global_plugin_option.port = NULL;
      DEBUG("no port and address specified");
    }

  DEBUG("target=%s port=%s\n",global_plugin_option.target,global_plugin_option.port);

  if (global_plugin_option.message_length > MAX_MESSAGE_LENGTH)
    {
      ERROR("warning: defined message length (%d) is too big. truncated to (%d)\n",global_plugin_option.message_length,
            MAX_MESSAGE_LENGTH);
      global_plugin_option.message_length = MAX_MESSAGE_LENGTH;
    }

  read_from_file = init_file_reader(global_plugin_option.active_connections);
  if (read_from_file < 0)
    {
      ERROR("error while opening input file. exit.\n");
      return 1;
    }

  message_counter_lock = g_mutex_new();

  init_logline_generator(plugin_array);
  init_csv_statistics();

  if (start_plugins(plugin_array) > 0)
    {
      wait_all_plugin_to_finish(plugin_array);
      stop_plugins(plugin_array);
    }

  close_file_reader(global_plugin_option.active_connections);

  if (message_counter_lock)
    g_mutex_free(message_counter_lock);
  g_free((gpointer)global_plugin_option.target);
  g_free((gpointer)global_plugin_option.port);
  g_ptr_array_free(plugin_array,TRUE);
  g_free(thread_stat_count_last);
  g_free(thread_stat_count);
  return 0;
}