コード例 #1
0
ファイル: output_file.c プロジェクト: dkarametos/pom-ng
static int file_pload_open(struct analyzer_pload_instance *pi, const char *filename) {

	// Create the private structure for the payload
	struct output_file_pload_priv *ppriv = malloc(sizeof(struct output_file_pload_priv));
	if (!ppriv) {
		pom_oom(sizeof(struct output_file_pload_priv));
		return POM_ERR;
	}
	memset(ppriv, 0, sizeof(struct output_file_pload_priv));

	ppriv->filename = strdup(filename);
	if (!ppriv->filename) {
		free(ppriv);
		pom_oom(strlen(filename) + 1);
		return POM_ERR;
	}

	ppriv->fd = pom_open(filename, O_WRONLY | O_CREAT, 0666);
	if (ppriv->fd == -1) {
		free(ppriv);
		return POM_ERR;
	}

	analyzer_pload_instance_set_priv(pi, ppriv);

	pomlog(POMLOG_DEBUG "File %s open", ppriv->filename);
	return POM_OK;
}
コード例 #2
0
ファイル: output_file.c プロジェクト: gmsoft-tuxicoman/pom-ng
static int file_pload_open(struct output_file_priv *output_priv, const char *filename, void **pload_priv) {

	// Create the private structure for the payload
	struct output_file_pload_priv *ppriv = malloc(sizeof(struct output_file_pload_priv));
	if (!ppriv) {
		pom_oom(sizeof(struct output_file_pload_priv));
		return POM_ERR;
	}
	memset(ppriv, 0, sizeof(struct output_file_pload_priv));

	ppriv->filename = strdup(filename);
	if (!ppriv->filename) {
		free(ppriv);
		pom_oom(strlen(filename) + 1);
		return POM_ERR;
	}

	ppriv->fd = pom_open(filename, O_WRONLY | O_CREAT, 0666);
	if (ppriv->fd == -1) {
		free(ppriv);
		return POM_ERR;
	}

	if (output_priv && output_priv->perf_files_open)
		registry_perf_inc(output_priv->perf_files_open, 1);
		

	pomlog(POMLOG_DEBUG "File %s open", ppriv->filename);

	*pload_priv = ppriv;

	return POM_OK;
}