int output_file_pload_open(void *obj, void **ppriv, struct pload *pload) {

	struct output_file_priv *priv = obj;

	// Open the file
	char filename[FILENAME_MAX] = { 0 };
	char *path = PTYPE_STRING_GETVAL(priv->p_path);

	// TODO Use correct filename
	struct tm tmp;
	struct timeval tv;
	gettimeofday(&tv, NULL);
	localtime_r((time_t*)&tv.tv_sec, &tmp);
	char *format = "%Y%m%d-%H%M%S";
	char buff[4+2+2+1+2+2+2+1];
	strftime(buff, sizeof(buff), format, &tmp);

	char *pload_filename = pload_get_filename(pload);
	if (pload_filename) {
		snprintf(filename, FILENAME_MAX - 1, "%s/%s-%u-%s", path, buff, (unsigned int)tv.tv_usec, pload_filename);
	} else {
		char *ext = "bin";
		struct pload_type *pt = pload_get_type(pload);
		if (pt && pt->extension)
			ext = pt->extension;
		snprintf(filename, FILENAME_MAX - 1, "%s/%s-%u.%s", path, buff, (unsigned int)tv.tv_usec, ext);
	}

	return file_pload_open(obj, filename, ppriv);

}
Exemple #2
0
int output_file_pload_open(struct analyzer_pload_instance *pi, void *output_priv) {

	struct output_file_priv *priv = output_priv;

	// Open the file
	char filename[FILENAME_MAX + 1];
	strncpy(filename, PTYPE_STRING_GETVAL(priv->p_path), FILENAME_MAX);

	// TODO Use correct filename
	struct tm tmp;
	struct timeval tv;
	gettimeofday(&tv, NULL);
	localtime_r((time_t*)&tv.tv_sec, &tmp);
	char *format = "%Y%m%d-%H%M%S";
	char buff[4+2+2+1+2+2+2+1];
	strftime(buff, sizeof(buff), format, &tmp);
	snprintf(filename + strlen(filename), FILENAME_MAX - strlen(filename), "%s-%u.bin", buff, (unsigned int)tv.tv_usec);

	return file_pload_open(pi, filename);

}
Exemple #3
0
int addon_file_pload_open(struct analyzer_pload_instance *pi, void *output_priv, struct ptype *params[]) {

	char *filename = PTYPE_STRING_GETVAL(params[0]);
	return file_pload_open(pi, filename);
}
int addon_file_pload_open(void *output_priv, void **priv, struct pload *pload, struct ptype *params[]) {

	char *filename = PTYPE_STRING_GETVAL(params[0]);
	return file_pload_open(output_priv, filename, priv);
}