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); }
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); }
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); }