#include "paths.h" #include "log.h" #include "errno.h" #include "stdio.h" #include "stdlib.h" #include "string.h" #include "sys/stat.h" #include "unistd.h" char template[] = "/var/tmp/pow/XXXXXX"; int pow_create_dir_for_package(char **path) { if (mkdir("/var/tmp/pow", 0700)) { if (errno != EEXIST) { pow_log_error("failed to create temp dir\n"); return 1; } } char *new_path = malloc(strlen(template) + 1); if (!new_path) { return 1; } strcpy(new_path, template); if (!mkdtemp(new_path)) { pow_log_error("failed to make dir\n"); free(new_path); return 1; } *path = new_path; return 0; }