aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/bsod.cpp51
-rw-r--r--main/bsod.h2
-rw-r--r--main/enigma-dvbtest.cpp6
-rw-r--r--main/enigma-scan.cpp6
-rw-r--r--main/enigma.cpp2
5 files changed, 36 insertions, 31 deletions
diff --git a/main/bsod.cpp b/main/bsod.cpp
index 173a2cce..583107d7 100644
--- a/main/bsod.cpp
+++ b/main/bsod.cpp
@@ -67,7 +67,7 @@ extern std::string getLogBuffer();
#define INFOFILE "/maintainer.info"
-void bsodFatal()
+void bsodFatal(const char *component)
{
char logfile[128];
sprintf(logfile, "/media/hdd/enigma2_crash_%u.log", (unsigned int)time(0));
@@ -81,30 +81,35 @@ void bsodFatal()
char crash_emailaddr[256] = CRASH_EMAILADDR;
char crash_component[256] = "enigma2";
- while ((start = lines.find("\n File \"", start)) != std::string::npos)
+ if (component)
+ snprintf(crash_component, 256, component);
+ else
{
- start += 9;
- size_t end = lines.find("\"", start);
- if (end == std::string::npos)
- break;
- end = lines.rfind("/", end);
- if (end == std::string::npos)
- break;
- if (end - start >= (256 - strlen(INFOFILE)))
- continue;
- char filename[256];
- snprintf(filename, 256, "%s%s", lines.substr(start, end - start).c_str(), INFOFILE);
- FILE *cf = fopen(filename, "r");
- if (cf)
+ while ((start = lines.find("\n File \"", start)) != std::string::npos)
{
- fgets(crash_emailaddr, sizeof crash_emailaddr, cf);
- if (*crash_emailaddr && crash_emailaddr[strlen(crash_emailaddr)-1] == '\n')
- crash_emailaddr[strlen(crash_emailaddr)-1] = 0;
+ start += 9;
+ size_t end = lines.find("\"", start);
+ if (end == std::string::npos)
+ break;
+ end = lines.rfind("/", end);
+ if (end == std::string::npos)
+ break;
+ if (end - start >= (256 - strlen(INFOFILE)))
+ continue;
+ char filename[256];
+ snprintf(filename, 256, "%s%s", lines.substr(start, end - start).c_str(), INFOFILE);
+ FILE *cf = fopen(filename, "r");
+ if (cf)
+ {
+ fgets(crash_emailaddr, sizeof crash_emailaddr, cf);
+ if (*crash_emailaddr && crash_emailaddr[strlen(crash_emailaddr)-1] == '\n')
+ crash_emailaddr[strlen(crash_emailaddr)-1] = 0;
- fgets(crash_component, sizeof crash_component, cf);
- if (*crash_component && crash_component[strlen(crash_component)-1] == '\n')
- crash_component[strlen(crash_component)-1] = 0;
- fclose(cf);
+ fgets(crash_component, sizeof crash_component, cf);
+ if (*crash_component && crash_component[strlen(crash_component)-1] == '\n')
+ crash_component[strlen(crash_component)-1] = 0;
+ fclose(cf);
+ }
}
}
@@ -242,7 +247,7 @@ void handleFatalSignal(int signum, siginfo_t *si, void *ctx)
oops(uc->uc_mcontext, signum == SIGSEGV || signum == SIGABRT);
#endif
eDebug("-------");
- bsodFatal();
+ bsodFatal("enigma2, signal");
}
void bsodCatchSignals()
diff --git a/main/bsod.h b/main/bsod.h
index aa8cfb74..4ee4c48b 100644
--- a/main/bsod.h
+++ b/main/bsod.h
@@ -3,6 +3,6 @@
void bsodLogInit();
void bsodCatchSignals();
-void bsodFatal();
+void bsodFatal(const char *component);
#endif
diff --git a/main/enigma-dvbtest.cpp b/main/enigma-dvbtest.cpp
index aa562399..1eaedb76 100644
--- a/main/enigma-dvbtest.cpp
+++ b/main/enigma-dvbtest.cpp
@@ -45,9 +45,9 @@ public:
fesat.frequency = 12070000;
fesat.symbol_rate = 27500000;
- fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation::Horizontal;
- fesat.fec = eDVBFrontendParametersSatellite::FEC::f3_4;
- fesat.inversion = eDVBFrontendParametersSatellite::Inversion::Off;
+ fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation_Horizontal;
+ fesat.fec = eDVBFrontendParametersSatellite::FEC_3_4;
+ fesat.inversion = eDVBFrontendParametersSatellite::Inversion_Off;
fesat.orbital_position = 192;
eDVBFrontendParameters *fe = new eDVBFrontendParameters();
diff --git a/main/enigma-scan.cpp b/main/enigma-scan.cpp
index 4233c0dc..208b15fd 100644
--- a/main/enigma-scan.cpp
+++ b/main/enigma-scan.cpp
@@ -43,9 +43,9 @@ public:
fesat.frequency = 11817000; // 12070000;
fesat.symbol_rate = 27500000;
- fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation::Vertical;
- fesat.fec = eDVBFrontendParametersSatellite::FEC::f3_4;
- fesat.inversion = eDVBFrontendParametersSatellite::Inversion::Off;
+ fesat.polarisation = eDVBFrontendParametersSatellite::Polarisation_Vertical;
+ fesat.fec = eDVBFrontendParametersSatellite::FEC_3_4;
+ fesat.inversion = eDVBFrontendParametersSatellite::Inversion_Off;
fesat.orbital_position = 192;
eDVBFrontendParameters *fe = new eDVBFrontendParameters();
diff --git a/main/enigma.cpp b/main/enigma.cpp
index 0893b035..98175c49 100644
--- a/main/enigma.cpp
+++ b/main/enigma.cpp
@@ -248,7 +248,7 @@ int main(int argc, char **argv)
if (exit_code == 5) /* python crash */
{
eDebug("(exit code 5)");
- bsodFatal();
+ bsodFatal(0);
}
dsk.paint();