コード例 #1
0
ファイル: cfg.c プロジェクト: Amey-Jain/syslog-ng
void
cfg_free(GlobalConfig *self)
{
  g_assert(self->persist == NULL);
  if (self->state)
    persist_state_free(self->state);

  g_free(self->file_template_name);
  g_free(self->proto_template_name);  
  log_template_unref(self->file_template);
  log_template_unref(self->proto_template);
  log_template_options_destroy(&self->template_options);
  host_resolve_options_destroy(&self->host_resolve_options);

  if (self->bad_hostname_compiled)
    regfree(&self->bad_hostname);
  g_free(self->bad_hostname_re);
  dns_cache_options_destroy(&self->dns_cache_options);
  g_free(self->custom_domain);
  plugin_free_plugins(self);
  plugin_free_candidate_modules(self);
  cfg_tree_free_instance(&self->tree);
  g_hash_table_unref(self->module_config);
  g_free(self);
}
コード例 #2
0
ファイル: test_runid.c プロジェクト: balabit/syslog-ng
PersistState *
restart_persist_state_with_cancel(PersistState *state, gchar *persist_file_name)
{
  PersistState *new_state;

  persist_state_cancel(state);
  persist_state_free(state);

  new_state = create_persist_state_for_test(persist_file_name);
  return new_state;
};
コード例 #3
0
ファイル: persist_lib.c プロジェクト: Achint08/syslog-ng
void
cancel_and_destroy_persist_state(PersistState *state)
{
  gchar *filename = g_strdup(persist_state_get_filename(state));

  persist_state_cancel(state);
  persist_state_free(state);

  unlink(filename);
  g_free(filename);
};
コード例 #4
0
ファイル: main.c プロジェクト: matwey/syslog-ng-persist
int main(int argc, char** argv) {
	struct arguments args;

	set_default_args(&args);
	if (parse_args(argc, argv, &args)) {
		return 1;
	}

	PersistEntryHandle handle;
	struct journald_state* journald_state = NULL;

	msg_init(TRUE);
	PersistState* state = persist_state_new(args.filename);

	gsize state_size;
	guint8 persist_version;

	persist_state_start_dump(state);
	switch (args.action) {
	case LIST:
		persist_state_foreach_entry(state, &handle_entry, NULL);
	break;
	case SHOW_JOURNALD_CURSOR:
		handle = persist_state_lookup_entry(state, systemd_journal, &state_size, &persist_version);
		if (handle == 0)
			break;
		journald_state = persist_state_map_entry(state, handle);
		printf("journald cursor: %s\n", journald_state->cursor);
		persist_state_unmap_entry(state, handle);
	break;
	case SAVE_JOURNALD_CURSOR:
		handle = persist_state_alloc_entry(state, systemd_journal, sizeof(struct journald_state));
		if (handle == 0)
			break;
		journald_state = persist_state_map_entry(state, handle);
		journald_state->header.version = 0;
		journald_state->header.big_endian = (G_BYTE_ORDER == G_BIG_ENDIAN);
		strncpy(journald_state->cursor, args.action_arg.journald_cursor, MAX_CURSOR_LENGTH);
		persist_state_unmap_entry(state, handle);
		persist_state_commit(state);
	break;
	default:;
	}

	persist_state_free(state);
	msg_deinit();

	return 0;
}
コード例 #5
0
ファイル: persist_lib.c プロジェクト: Achint08/syslog-ng
PersistState *
restart_persist_state(PersistState *state)
{
  PersistState *new_state;

  gchar* name = g_strdup(persist_state_get_filename(state));

  persist_state_commit(state);
  persist_state_free(state);

  new_state = create_persist_state_for_test(name);

  g_free(name);
  return new_state;
};
コード例 #6
0
ファイル: test_hostid.c プロジェクト: lmesz/syslog-ng
static void
create_persist_file_with_hostid(const gchar *persist_file, guint32 hostid)
{
  PersistState *state;
  PersistEntryHandle handle;
  HostIdState *host_id_state;

  unlink(persist_file);
  state = create_persist_state(persist_file);
  handle = persist_state_alloc_entry(state, HOST_ID_PERSIST_KEY, sizeof(HostIdState));
  host_id_state = persist_state_map_entry(state, handle);
  host_id_state->host_id = hostid;
  persist_state_unmap_entry(state, handle);
  persist_state_commit(state);
  persist_state_free(state);
}
コード例 #7
0
ファイル: test_hostid.c プロジェクト: lmesz/syslog-ng
static guint32
load_hostid_from_persist(const gchar *persist_file)
{
  PersistState *state;
  PersistEntryHandle handle;
  HostIdState *host_id_state;
  gsize size;
  guint8 version;
  guint32 result;

  state = create_persist_state(persist_file);
  handle = persist_state_lookup_entry(state, HOST_ID_PERSIST_KEY, &size, &version);
  assert_true(handle != 0, "cannot find hostid in persist file");
  host_id_state = persist_state_map_entry(state, handle);
  result = host_id_state->host_id;
  persist_state_unmap_entry(state, handle);
  persist_state_free(state);
  return result;
}
コード例 #8
0
ファイル: cfg.c プロジェクト: tiltti/syslog-ng-3.4
void
cfg_free(GlobalConfig *self)
{
  g_assert(self->persist == NULL);
  if (self->state)
    persist_state_free(self->state);

  g_free(self->file_template_name);
  g_free(self->proto_template_name);  
  log_template_unref(self->file_template);
  log_template_unref(self->proto_template);

  if (self->bad_hostname_compiled)
    regfree(&self->bad_hostname);
  g_free(self->bad_hostname_re);
  g_free(self->dns_cache_hosts);
  g_list_free(self->plugins);
  plugin_free_candidate_modules(self);
  cfg_tree_free_instance(&self->tree);
  g_free(self);
}
コード例 #9
0
ファイル: persist_lib.c プロジェクト: Achint08/syslog-ng
void
commit_and_free_persist_state(PersistState *state)
{
  persist_state_commit(state);
  persist_state_free(state);
};