diff --git a/src/server/slavefuncs.c b/src/server/slavefuncs.c --- a/src/server/slavefuncs.c +++ b/src/server/slavefuncs.c @@ -308,3 +308,25 @@ void xmlcleanup() { xmlCleanupParser(); } + + +/** Creates directories recursively */ +int distren_mkdir_recurse(char *dirname) +{ + size_t counter; + char *nextdir; + + nextdir = strdup(dirname); + for(counter = 0; nextdir[counter]; counter ++) + { + /** @TODO OS-portabalize the path-separators */ + if(nextdir[counter] == '/') + { + nextdir[counter] = '\0'; + mkdir(nextdir, S_IRWXU | S_IRGRP | S_IROTH); + nextdir[counter] = '/'; + } + } + + return 0; +}