mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-03 10:51:05 +02:00
hdd_menu: use realpath(3) instead of calling system("readlink")
Origin commit data
------------------
Branch: ni/coolstream
Commit: f8066b5a3e
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2015-02-10 (Tue, 10 Feb 2015)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -133,6 +133,14 @@ int CHDDMenuHandler::filterDevName(const char * name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static string readlink(const char *path)
|
||||||
|
{
|
||||||
|
char link[PATH_MAX + 1];
|
||||||
|
if (realpath(path, link))
|
||||||
|
return string(link);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
bool CHDDMenuHandler::is_mounted(const char *dev)
|
bool CHDDMenuHandler::is_mounted(const char *dev)
|
||||||
{
|
{
|
||||||
bool res = false;
|
bool res = false;
|
||||||
@@ -143,7 +151,7 @@ bool CHDDMenuHandler::is_mounted(const char *dev)
|
|||||||
snprintf(devpath, sizeof(devpath), "/dev/%s", dev);
|
snprintf(devpath, sizeof(devpath), "/dev/%s", dev);
|
||||||
|
|
||||||
char buffer[255];
|
char buffer[255];
|
||||||
string realdev = backtick("readlink -f " + string(devpath));
|
string realdev = readlink(devpath);
|
||||||
realdev = trim(realdev);
|
realdev = trim(realdev);
|
||||||
FILE *f = fopen("/proc/mounts", "r");
|
FILE *f = fopen("/proc/mounts", "r");
|
||||||
if(f) {
|
if(f) {
|
||||||
@@ -156,7 +164,7 @@ bool CHDDMenuHandler::is_mounted(const char *dev)
|
|||||||
if (!strcmp(buffer, devpath)) /* default '/dev/sda1' mount */
|
if (!strcmp(buffer, devpath)) /* default '/dev/sda1' mount */
|
||||||
res = true;
|
res = true;
|
||||||
else { /* now the case of '/dev/disk/by-label/myharddrive' mounts */
|
else { /* now the case of '/dev/disk/by-label/myharddrive' mounts */
|
||||||
string realmount = backtick("readlink -f " + string(buffer));
|
string realmount = readlink(buffer);
|
||||||
if (realdev == trim(realmount))
|
if (realdev == trim(realmount))
|
||||||
res = true;
|
res = true;
|
||||||
}
|
}
|
||||||
@@ -410,7 +418,7 @@ void CHDDMenuHandler::setRecordPath(std::string &dev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* don't annoy if the recordingdir is a symlink pointing to the 'right' location */
|
/* don't annoy if the recordingdir is a symlink pointing to the 'right' location */
|
||||||
string readl = backtick("readlink -f " + g_settings.network_nfs_recordingdir);
|
string readl = readlink(g_settings.network_nfs_recordingdir.c_str());
|
||||||
readl = trim(readl);
|
readl = trim(readl);
|
||||||
if (newpath.compare(readl) == 0) {
|
if (newpath.compare(readl) == 0) {
|
||||||
printf("CHDDMenuHandler::%s: recordingdir is a symlink to %s\n",
|
printf("CHDDMenuHandler::%s: recordingdir is a symlink to %s\n",
|
||||||
|
Reference in New Issue
Block a user