mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-28 07:51:11 +02:00
helpers.cpp: port safe_mkdir() from martii
Origin commit data
------------------
Branch: ni/coolstream
Commit: 57267a28aa
Author: vanhofen <vanhofen@gmx.de>
Date: 2013-11-22 (Fri, 22 Nov 2013)
Origin message was:
------------------
- helpers.cpp: port safe_mkdir() from martii
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -494,17 +494,17 @@ _remount:
|
|||||||
|
|
||||||
if(!res) {
|
if(!res) {
|
||||||
snprintf(cmd, sizeof(cmd), "%s/movies", dst);
|
snprintf(cmd, sizeof(cmd), "%s/movies", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
snprintf(cmd, sizeof(cmd), "%s/pictures", dst);
|
snprintf(cmd, sizeof(cmd), "%s/pictures", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
snprintf(cmd, sizeof(cmd), "%s/epg", dst);
|
snprintf(cmd, sizeof(cmd), "%s/epg", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
snprintf(cmd, sizeof(cmd), "%s/music", dst);
|
snprintf(cmd, sizeof(cmd), "%s/music", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
snprintf(cmd, sizeof(cmd), "%s/logos", dst);
|
snprintf(cmd, sizeof(cmd), "%s/logos", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
snprintf(cmd, sizeof(cmd), "%s/plugins", dst);
|
snprintf(cmd, sizeof(cmd), "%s/plugins", dst);
|
||||||
safe_mkdir((char *) cmd);
|
safe_mkdir(cmd);
|
||||||
sync();
|
sync();
|
||||||
}
|
}
|
||||||
_return:
|
_return:
|
||||||
|
@@ -190,19 +190,28 @@ FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type)
|
|||||||
return(fp);
|
return(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int safe_mkdir(char * path)
|
int safe_mkdir(const char * path)
|
||||||
{
|
{
|
||||||
struct statfs s;
|
struct statfs s;
|
||||||
int ret = 0;
|
size_t l = strlen(path);
|
||||||
if(!strncmp(path, "/hdd", 4)) {
|
char d[l + 3];
|
||||||
ret = statfs("/hdd", &s);
|
strncpy(d, path, l);
|
||||||
if((ret != 0) || (s.f_type == 0x72b6))
|
|
||||||
ret = -1;
|
// skip trailing slashes
|
||||||
else
|
while (l > 0 && d[l - 1] == '/')
|
||||||
mkdir(path, 0755);
|
l--;
|
||||||
} else
|
// find last slash
|
||||||
mkdir(path, 0755);
|
while (l > 0 && d[l - 1] != '/')
|
||||||
return ret;
|
l--;
|
||||||
|
if (!l)
|
||||||
|
return -1;
|
||||||
|
// append a single dot
|
||||||
|
d[l++] = '.';
|
||||||
|
d[l] = 0;
|
||||||
|
|
||||||
|
if(statfs(d, &s) || (s.f_type == 0x72b6 /* jffs2 */))
|
||||||
|
return -1;
|
||||||
|
return mkdir(path, 0755);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* function used to check is this dir writable, i.e. not flash, for record etc */
|
/* function used to check is this dir writable, i.e. not flash, for record etc */
|
||||||
|
@@ -30,7 +30,9 @@ int my_system(const char * cmd);
|
|||||||
int my_system(int argc, const char *arg, ...); /* argc is number of arguments including command */
|
int my_system(int argc, const char *arg, ...); /* argc is number of arguments including command */
|
||||||
|
|
||||||
FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type);
|
FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type);
|
||||||
int safe_mkdir(char * path);
|
|
||||||
|
int safe_mkdir(const char * path);
|
||||||
|
inline int safe_mkdir(std::string path) { return safe_mkdir(path.c_str()); }
|
||||||
off_t file_size(const char *filename);
|
off_t file_size(const char *filename);
|
||||||
bool file_exists(const char *filename);
|
bool file_exists(const char *filename);
|
||||||
void wakeup_hdd(const char *hdd_dir);
|
void wakeup_hdd(const char *hdd_dir);
|
||||||
|
Reference in New Issue
Block a user