X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=main%2Fbsod.cpp;h=c03628329581bd97cc02cacb8a5e5a4e938bd59b;hp=fde4146ba6d9d99ece2585fddaa82ecf6b46ae4a;hb=879d60c88e24c2c3f2aab9dff73192c901f63f31;hpb=b0ac904a84b223808c303f170888559b91c71e71 diff --git a/main/bsod.cpp b/main/bsod.cpp old mode 100644 new mode 100755 index fde4146..c036283 --- a/main/bsod.cpp +++ b/main/bsod.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -65,7 +66,7 @@ static void addToLogbuffer(int level, const std::string &log) static std::string getConfigFileValue(const char *entry) { - std::string configfile = "/etc/enigma2/settings"; + std::string configfile = eEnv::resolve("${sysconfdir}/enigma2/settings"); std::string configvalue; if (entry) { @@ -74,7 +75,7 @@ static std::string getConfigFileValue(const char *entry) { return configvalue; } - else // get Value from enigma2 settings file + else // get value from enigma2 settings file { FILE *f = fopen(configfile.c_str(), "r"); if (!f) @@ -119,15 +120,29 @@ static std::string getFileContent(const char *file) char line[1024]; if (!fgets(line, 1024, f)) break; - filecontent += line; + std::string tmp = line; + std::string password; + int pwdpos = tmp.find(".password=", 0); + if( pwdpos != std::string::npos) + { + filecontent += tmp.substr(0,pwdpos +10); + for ( int pos = pwdpos +10; pos < tmp.length()-1; ++pos ) + { + filecontent += "X"; + } + filecontent += "\n"; + } + else { + filecontent += line; + } } fclose(f); } return filecontent; } -static std::string execCommand(char* cmd) { - FILE* pipe = popen(cmd, "r"); +static std::string execCommand(std::string cmd) { + FILE* pipe = popen(cmd.c_str(), "r"); if (!pipe) return "Error"; char buffer[STDBUFFER_SIZE]; @@ -142,11 +157,6 @@ static std::string execCommand(char* cmd) { return result; } -extern std::string execCommand(); -extern std::string getConfigFileValue(); -extern std::string getFileContent(); -extern std::string getLogBuffer(); - #define INFOFILE "/maintainer.info" void bsodFatal(const char *component) @@ -220,6 +230,13 @@ void bsodFatal(const char *component) #endif fprintf(f, "\t\t%s\n", crash_emailaddr); fprintf(f, "\t\t\n"); + std::string activeSkin = getConfigFileValue("config.skin.primary_skin"); + if (activeSkin != "Error") + { + if (activeSkin == "") + activeSkin = "Default Skin"; + fprintf(f, "\t\t%s\n", activeSkin.c_str()); + } fprintf(f, "\t\n"); fprintf(f, "\t\n"); @@ -253,7 +270,7 @@ void bsodFatal(const char *component) dreamboxca[strlen(dreamboxca)-1] = 0; fprintf(f, "\t\t\n\t\t\n\t\t\n", dreamboxca); } - std::string settings = getFileContent("/etc/enigma2/settings"); + std::string settings = getFileContent(eEnv::resolve("${sysconfdir}/enigma2/settings").c_str()); if (settings != "Error") { fprintf(f, "\t\t\n\t\t\n\t\t\n", settings.c_str()); @@ -315,7 +332,7 @@ void bsodFatal(const char *component) fprintf(f, "\t\n"); std::string buffer = getLogBuffer(); fprintf(f, "\t\t\n\t\t\n\t\t\n", buffer.c_str()); - std::string pythonmd5 = execCommand("find /usr/lib/enigma2/python/ -name \"*.py\" | xargs md5sum"); + std::string pythonmd5 = execCommand("find " + eEnv::resolve("${libdir}/enigma2/python/") + " -name \"*.py\" | xargs md5sum"); fprintf(f, "\t\t\n\t\t\n\t\t\n", pythonmd5.c_str()); fprintf(f, "\t\n");