Remove metric submission on crashes

- Rename the progress dialog, add punctuation to messaging
This commit is contained in:
Kaz Wolfe 2024-02-16 13:22:15 -08:00
parent 4b601f15c7
commit 24e6bf3dc8
No known key found for this signature in database
GPG key ID: 258813F53A16EBB4

View file

@ -758,9 +758,9 @@ int main() {
std::cout << "Creating progress window" << std::endl; std::cout << "Creating progress window" << std::endl;
IProgressDialog* pProgressDialog = NULL; IProgressDialog* pProgressDialog = NULL;
if (SUCCEEDED(CoCreateInstance(CLSID_ProgressDialog, NULL, CLSCTX_ALL, IID_IProgressDialog, (void**)&pProgressDialog)) && pProgressDialog) { if (SUCCEEDED(CoCreateInstance(CLSID_ProgressDialog, NULL, CLSCTX_ALL, IID_IProgressDialog, (void**)&pProgressDialog)) && pProgressDialog) {
pProgressDialog->SetTitle(L"Dalamud"); pProgressDialog->SetTitle(L"Dalamud Crash Handler");
pProgressDialog->SetLine(1, L"The game has crashed", FALSE, NULL); pProgressDialog->SetLine(1, L"The game has crashed!", FALSE, NULL);
pProgressDialog->SetLine(2, L"Dalamud is collecting further information", FALSE, NULL); pProgressDialog->SetLine(2, L"Dalamud is collecting further information...", FALSE, NULL);
pProgressDialog->SetLine(3, L"Refreshing Game Module List", FALSE, NULL); pProgressDialog->SetLine(3, L"Refreshing Game Module List", FALSE, NULL);
pProgressDialog->StartProgressDialog(NULL, NULL, PROGDLG_MARQUEEPROGRESS | PROGDLG_NOCANCEL | PROGDLG_NOMINIMIZE, NULL); pProgressDialog->StartProgressDialog(NULL, NULL, PROGDLG_MARQUEEPROGRESS | PROGDLG_NOCANCEL | PROGDLG_NOMINIMIZE, NULL);
IOleWindow* pOleWindow; IOleWindow* pOleWindow;
@ -904,47 +904,6 @@ int main() {
print_exception_info_extended(exinfo.ExceptionPointers, exinfo.ContextRecord, log); print_exception_info_extended(exinfo.ExceptionPointers, exinfo.ContextRecord, log);
std::wofstream(logPath) << log.str(); std::wofstream(logPath) << log.str();
std::thread submitThread;
if (!getenv("DALAMUD_NO_METRIC")) {
auto url = std::format(L"/Dalamud/Metric/ReportCrash?lt={}&code={:x}", exinfo.nLifetime, exinfo.ExceptionRecord.ExceptionCode);
submitThread = std::thread([url = std::move(url)] {
const auto hInternet = WinHttpOpen(L"Dalamud Crash Handler/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
const auto hConnect = !hInternet ? nullptr : WinHttpConnect(hInternet, L"kamori.goats.dev", INTERNET_DEFAULT_HTTP_PORT, 0);
const auto hRequest = !hConnect ? nullptr : WinHttpOpenRequest(hConnect, L"GET", url.c_str(), NULL, WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
0);
if (hRequest) WinHttpAddRequestHeaders(hRequest, L"Host: kamori.goats.dev", (ULONG)-1L, WINHTTP_ADDREQ_FLAG_ADD);
const auto bSent = !hRequest ? false : WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
if (!bSent)
std::cerr << std::format("Failed to send metric: 0x{:x}", GetLastError()) << std::endl;
if (WinHttpReceiveResponse(hRequest, nullptr))
{
DWORD dwStatusCode = 0;
DWORD dwStatusCodeSize = sizeof(DWORD);
WinHttpQueryHeaders(hRequest,
WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER,
WINHTTP_HEADER_NAME_BY_INDEX,
&dwStatusCode, &dwStatusCodeSize, WINHTTP_NO_HEADER_INDEX);
if (dwStatusCode != 200)
std::cerr << std::format("Failed to send metric: {}", dwStatusCode) << std::endl;
}
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hInternet) WinHttpCloseHandle(hInternet);
});
}
TASKDIALOGCONFIG config = { 0 }; TASKDIALOGCONFIG config = { 0 };
const TASKDIALOG_BUTTON radios[]{ const TASKDIALOG_BUTTON radios[]{
@ -1034,14 +993,6 @@ int main() {
}; };
config.lpCallbackData = reinterpret_cast<LONG_PTR>(&callback); config.lpCallbackData = reinterpret_cast<LONG_PTR>(&callback);
if (pProgressDialog)
pProgressDialog->SetLine(3, L"Submitting Metrics", FALSE, NULL);
if (submitThread.joinable()) {
submitThread.join();
submitThread = {};
}
if (pProgressDialog) { if (pProgressDialog) {
pProgressDialog->StopProgressDialog(); pProgressDialog->StopProgressDialog();
pProgressDialog->Release(); pProgressDialog->Release();