summaryrefslogtreecommitdiffstats
path: root/drkonqi/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'drkonqi/main.cpp')
-rw-r--r--drkonqi/main.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/drkonqi/main.cpp b/drkonqi/main.cpp
new file mode 100644
index 000000000..9fba35a20
--- /dev/null
+++ b/drkonqi/main.cpp
@@ -0,0 +1,91 @@
+/*****************************************************************
+ * drkonqi - The KDE Crash Handler
+ *
+ * Copyright (C) 2000-2003 Hans Petter Bieker <[email protected]>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************/
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <klocale.h>
+#include <dcopclient.h>
+
+#include "krashconf.h"
+#include "toplevel.h"
+
+static const char version[] = "1.0";
+static const char description[] = I18N_NOOP( "KDE crash handler gives the user feedback if a program crashed" );
+
+static const KCmdLineOptions options[] =
+{
+ {"signal <number>", I18N_NOOP("The signal number that was caught"), 0},
+ {"appname <name>", I18N_NOOP("Name of the program"), 0},
+ {"apppath <path>", I18N_NOOP("Path to the executable"), 0},
+ {"appversion <version>", I18N_NOOP("The version of the program"), 0},
+ {"bugaddress <address>", I18N_NOOP("The bug address to use"), 0},
+ {"programname <name>", I18N_NOOP("Translated name of the program"), 0},
+ {"pid <pid>", I18N_NOOP("The PID of the program"), 0},
+ {"startupid <id>", I18N_NOOP("Startup ID of the program"), 0},
+ {"kdeinit", I18N_NOOP("The program was started by kdeinit"), 0},
+ {"safer", I18N_NOOP("Disable arbitrary disk access"), 0},
+ KCmdLineLastOption
+};
+
+int main( int argc, char* argv[] )
+{
+ // Drop privs.
+ setgid(getgid());
+ if (setuid(getuid()) < 0 && geteuid() != getuid())
+ exit (255);
+
+ // Make sure that DrKonqi doesn't start DrKonqi when it crashes :-]
+ setenv("KDE_DEBUG", "true", 1);
+ unsetenv("SESSION_MANAGER");
+
+ KAboutData aboutData( "drkonqi",
+ I18N_NOOP("The KDE Crash Handler"),
+ version,
+ description,
+ KAboutData::License_BSD,
+ "(C) 2000-2003, Hans Petter Bieker");
+ aboutData.addAuthor("Hans Petter Bieker", 0, "[email protected]");
+
+ KCmdLineArgs::init(argc, argv, &aboutData);
+ KCmdLineArgs::addCmdLineOptions( options );
+
+ KApplication::disableAutoDcopRegistration();
+
+ KApplication a;
+
+ KrashConfig krashconf;
+
+ Toplevel w(&krashconf);
+
+ return w.exec();
+}