From 4b796cc1babfe2ab087c76e0dbf646d8f927b84e Mon Sep 17 00:00:00 2001 From: Nicky Date: Sun, 20 Feb 2022 18:47:22 +0100 Subject: [PATCH] Remove obsolete file. Add example upload code (needs curl update). --- indra/linux_crash_logger/CMakeLists.txt | 9 - .../linux_crash_logger/linux_crash_logger.cpp | 39 +++- .../linux_crash_logger/llcrashloggerlinux.cpp | 172 ------------------ 3 files changed, 35 insertions(+), 185 deletions(-) delete mode 100644 indra/linux_crash_logger/llcrashloggerlinux.cpp diff --git a/indra/linux_crash_logger/CMakeLists.txt b/indra/linux_crash_logger/CMakeLists.txt index 249d51873d..e2b50f7b55 100644 --- a/indra/linux_crash_logger/CMakeLists.txt +++ b/indra/linux_crash_logger/CMakeLists.txt @@ -3,17 +3,8 @@ project(linux_crash_logger) include(00-Common) -#include(GLH) -#include(LLCoreHttp) -#include(LLCommon) -#include(LLMath) -#include(LLMessage) -#include(LLFileSystem) -#include(LLXML) include(Linking) include(UI) -#include(FreeType) -#include(Boost) include(CURL) include_directories( diff --git a/indra/linux_crash_logger/linux_crash_logger.cpp b/indra/linux_crash_logger/linux_crash_logger.cpp index 2d38fa2b2e..614a8808d8 100644 --- a/indra/linux_crash_logger/linux_crash_logger.cpp +++ b/indra/linux_crash_logger/linux_crash_logger.cpp @@ -24,13 +24,44 @@ * $/LicenseInfo$ */ -//#include "linden_common.h" -//#include "llcrashloggerlinux.h" -//#include "llsdutil.h" +#include int main(int argc, char **argv) { - /* + /* + curl_global_init(CURL_GLOBAL_ALL); + + auto curl = curl_easy_init(); + if( curl) + { + auto form = curl_mime_init(curl); + + auto field = curl_mime_addpart(form); + curl_mime_name(field, "upload_file_minidump"); + curl_mime_filedata(field, "minidump.dmp"); + + field = curl_mime_addpart(form); + curl_mime_name(field, "product"); + curl_mime_data(field, "Firestorm-Releasex64", CURL_ZERO_TERMINATED); + + field = curl_mime_addpart(form); + curl_mime_name(field, "version"); + curl_mime_data(field, "6.4.21.64531", CURL_ZERO_TERMINATED); + + curl_easy_setopt(curl, CURLOPT_URL, "https://fs_test.bugsplat.com/post/bp/crash/crashpad.php"); + curl_easy_setopt(curl, CURLOPT_MIMEPOST, form); + + auto res = curl_easy_perform(curl); + + if(res != CURLE_OK) + fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); + + curl_easy_cleanup(curl); + + curl_mime_free(form); + } + return 0; + LL_INFOS() << "Starting crash reporter." << LL_ENDL; LLCrashLoggerLinux app; diff --git a/indra/linux_crash_logger/llcrashloggerlinux.cpp b/indra/linux_crash_logger/llcrashloggerlinux.cpp deleted file mode 100644 index 0395935d04..0000000000 --- a/indra/linux_crash_logger/llcrashloggerlinux.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/** - * @file llcrashloggerlinux.cpp - * @brief Linux crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llcrashloggerlinux.h" - -#include - -#include "linden_common.h" - -#include "indra_constants.h" // CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME -#include "llerror.h" -#include "llfile.h" -#include "lltimer.h" -#include "llstring.h" -#include "lldir.h" -#include "llsdserialize.h" - -#if LL_GTK -# include "gtk/gtk.h" -#error "Direct use of GTK is deprecated" -#endif // LL_GTK - -#define MAX_LOADSTRING 100 - -// Fire-901 / Crashreporting: Brand for FS, add URL to privacy policy - -// These need to be localized. -// static const char dialog_text[] = -// "Second Life appears to have crashed or frozen last time it ran.\n" -// "This crash reporter collects information about your computer's hardware, operating system, and some Second Life logs, all of which are used for debugging purposes only.\n" -// "\n" -// "Send crash report?"; -// -// static const char dialog_title[] = -// "Second Life Crash Logger"; - -static const char dialog_text[] = -"Firestorm appears to have crashed or frozen last time it ran.\n" -"This crash reporter collects information about your computer's hardware, operating system which are used for debugging purposes only. SecondLife logs are not collected.\n" -"This report will be send to firestormviewer.org. Review our privacy policy at http://www.firestormviewer.org/privacy-policy for more information.\n" -"\n" -"Send crash report?"; - -static const char dialog_title[] = -"Firestorm Crash Logger"; - -// - -#if 0 - -#if LL_GTK -static void response_callback (GtkDialog *dialog, - gint arg1, - gpointer user_data) -{ - gint *response = (gint*)user_data; - *response = arg1; - gtk_widget_destroy(GTK_WIDGET(dialog)); - gtk_main_quit(); -} -#endif // LL_GTK - -static BOOL do_ask_dialog(void) -{ -#if LL_GTK - gtk_disable_setlocale(); - if (!gtk_init_check(NULL, NULL)) { - LL_INFOS() << "Could not initialize GTK for 'ask to send crash report' dialog; not sending report." << LL_ENDL; - return FALSE; - } - - GtkWidget *win = NULL; - GtkDialogFlags flags = GTK_DIALOG_MODAL; - GtkMessageType messagetype = GTK_MESSAGE_QUESTION; - GtkButtonsType buttons = GTK_BUTTONS_YES_NO; - gint response = GTK_RESPONSE_NONE; - - win = gtk_message_dialog_new(NULL, - flags, messagetype, buttons, - "%s", dialog_text); - gtk_window_set_type_hint(GTK_WINDOW(win), - GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_window_set_title(GTK_WINDOW(win), dialog_title); - g_signal_connect (win, - "response", - G_CALLBACK (response_callback), - &response); - gtk_widget_show_all (win); - gtk_main(); - - return (GTK_RESPONSE_OK == response || - GTK_RESPONSE_YES == response || - GTK_RESPONSE_APPLY == response); -#else - return FALSE; -#endif // LL_GTK -} -#endif - -LLCrashLoggerLinux::LLCrashLoggerLinux(void) -{ -} - -LLCrashLoggerLinux::~LLCrashLoggerLinux(void) -{ -} - -void LLCrashLoggerLinux::gatherPlatformSpecificFiles() -{ -} - -bool LLCrashLoggerLinux::frame() -{ - // Get around the crash logger popping up all the time. - // Right now there seems to be no easy way to test if there's logs from a real crash to send. Which - // would be preferred, as then asking for sending in data makes sense. Right now the dialog will just open always. - - // bool send_logs = true; - // if(CRASH_BEHAVIOR_ASK == getCrashBehavior()) - // { - // send_logs = do_ask_dialog(); - // } - // else if(CRASH_BEHAVIOR_NEVER_SEND == getCrashBehavior()) - // { - // send_logs = false; - // } - - bool send_logs = (CRASH_BEHAVIOR_NEVER_SEND == getCrashBehavior()); - - // - - if(send_logs) - { - sendCrashLogs(); - } - return true; -} - -bool LLCrashLoggerLinux::cleanup() -{ - commonCleanup(); - mKeyMaster.releaseMaster(); - return true; -} - -void LLCrashLoggerLinux::updateApplication(const std::string& message) -{ - LLCrashLogger::updateApplication(message); -}