#include <signal.h>
#include <asm/ptrace.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/smartptr.h>
#include <lib/base/nconfig.h>
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)
{
{
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)
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];
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)
#endif
fprintf(f, "\t\t<contactemail>%s</contactemail>\n", crash_emailaddr);
fprintf(f, "\t\t<!-- Please email this crashlog to above address -->\n");
+ std::string activeSkin = getConfigFileValue("config.skin.primary_skin");
+ if (activeSkin != "Error")
+ {
+ if (activeSkin == "")
+ activeSkin = "Default Skin";
+ fprintf(f, "\t\t<skin>%s</skin>\n", activeSkin.c_str());
+ }
fprintf(f, "\t</enigma2>\n");
fprintf(f, "\t<image>\n");
dreamboxca[strlen(dreamboxca)-1] = 0;
fprintf(f, "\t\t<dreamboxca>\n\t\t<![CDATA[\n%s\n\t\t]]>\n\t\t</dreamboxca>\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<enigma2settings>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2settings>\n", settings.c_str());
fprintf(f, "\t<crashlogs>\n");
std::string buffer = getLogBuffer();
fprintf(f, "\t\t<enigma2crashlog>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2crashlog>\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<pythonMD5sum>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</pythonMD5sum>\n", pythonmd5.c_str());
fprintf(f, "\t</crashlogs>\n");