/* * Recursively make directories. */ static int r_mkdir(const char *part) { char *ptr, parentdir[500]; struct stat st; if (stat(part, &st) == 0) return(0); ptr = strrchr(part, FR_DIR_SEP); if (ptr == part) return(0); snprintf(parentdir, (ptr - part)+1, "%s", part); if (r_mkdir(parentdir) != 0) return(1); if (mkdir(part, 0770) != 0) { radlog(L_ERR, "mkdir(%s) error: %s\n", part, strerror(errno)); return(1); } return(0); }
void _fl_mkdir (int *w) { r_mkdir ((char *)(w[0]), (int)(w[1]), (int)(w[2]), (int *)(w[3])); }