Prepend Debian string to Debian version
This commit is contained in:
+19
-7
@@ -1303,14 +1303,17 @@ METHOD(pts_t, destroy, void,
|
|||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define RELEASE_LSB 0
|
||||||
|
#define RELEASE_DEBIAN 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine Linux distribution and hardware platform
|
* Determine Linux distribution and hardware platform
|
||||||
*/
|
*/
|
||||||
static char* extract_platform_info(void)
|
static char* extract_platform_info(void)
|
||||||
{
|
{
|
||||||
FILE *file;
|
FILE *file;
|
||||||
char buf[BUF_LEN], *pos, *value = NULL;
|
char buf[BUF_LEN], *pos = buf, *value = NULL;
|
||||||
int i, len;
|
int i, len = BUF_LEN - 1;
|
||||||
struct utsname uninfo;
|
struct utsname uninfo;
|
||||||
|
|
||||||
/* Linux/Unix distribution release info (from http://linuxmafia.com) */
|
/* Linux/Unix distribution release info (from http://linuxmafia.com) */
|
||||||
@@ -1336,6 +1339,7 @@ static char* extract_platform_info(void)
|
|||||||
};
|
};
|
||||||
|
|
||||||
const char description[] = "DISTRIB_DESCRIPTION=\"";
|
const char description[] = "DISTRIB_DESCRIPTION=\"";
|
||||||
|
const char str_debian[] = "Debian ";
|
||||||
|
|
||||||
for (i = 0; i < countof(releases); i++)
|
for (i = 0; i < countof(releases); i++)
|
||||||
{
|
{
|
||||||
@@ -1344,11 +1348,19 @@ static char* extract_platform_info(void)
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == RELEASE_DEBIAN)
|
||||||
|
{
|
||||||
|
strcpy(buf, str_debian);
|
||||||
|
pos += strlen(str_debian);
|
||||||
|
len -= strlen(str_debian);
|
||||||
|
}
|
||||||
|
|
||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
len = min(ftell(file), sizeof(buf)-1);
|
len = min(ftell(file), len);
|
||||||
rewind(file);
|
rewind(file);
|
||||||
buf[len] = '\0';
|
pos[len] = '\0';
|
||||||
if (fread(buf, 1, len, file) != len)
|
if (fread(pos, 1, len, file) != len)
|
||||||
{
|
{
|
||||||
DBG1(DBG_PTS, "failed to read file '%s'", releases[i]);
|
DBG1(DBG_PTS, "failed to read file '%s'", releases[i]);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
@@ -1356,7 +1368,7 @@ static char* extract_platform_info(void)
|
|||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
if (i == 0) /* LSB release */
|
if (i == RELEASE_LSB)
|
||||||
{
|
{
|
||||||
pos = strstr(buf, description);
|
pos = strstr(buf, description);
|
||||||
if (!pos)
|
if (!pos)
|
||||||
@@ -1377,7 +1389,7 @@ static char* extract_platform_info(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
value = buf;
|
value = buf;
|
||||||
pos = strchr(value, '\n');
|
pos = strchr(pos, '\n');
|
||||||
if (!pos)
|
if (!pos)
|
||||||
{
|
{
|
||||||
DBG1(DBG_PTS, "failed to find end of release string");
|
DBG1(DBG_PTS, "failed to find end of release string");
|
||||||
|
|||||||
Reference in New Issue
Block a user