Files
watrbx-game-engine/RobloxMac/CMCrashReporter.mm
T
2025-09-18 17:55:52 -04:00

81 lines
2.3 KiB
Plaintext

//
// CMCrashReporter.m
// CMCrashReporter-App
//
// Created by Jelle De Laender on 20/01/08.
// Copyright 2008 CodingMammoth. All rights reserved.
// Copyright 2010 CodingMammoth. Revision. All rights reserved.
//
// Modified by ROBLOX 2011
void uploadAndDeletFileAsync(const char* url, const char* file);
#import "CMCrashReporter.h"
@implementation CMCrashReporter
+ (void) submitFile:(NSString *)file
{
NSLog(@"submitFile: %@", file);
if ([[NSFileManager defaultManager] fileExistsAtPath:file] == NO)
return;
NSString* base = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"RbxBaseUrl"];
NSString* crashURL = [base stringByAppendingString:@"error/dmp.ashx"];
uploadAndDeletFileAsync(
[crashURL cStringUsingEncoding:NSUTF8StringEncoding],
[file cStringUsingEncoding:NSUTF8StringEncoding]
);
}
+(void)check
{
NSUserDefaults *defaults = [[NSUserDefaultsController sharedUserDefaultsController] defaults];
if ([CMCrashReporterGlobal checkOnCrashes] && ![defaults boolForKey:@"CMCrashReporterIgnoreCrashes"]) {
NSArray *reports = [CMCrashReporter getReports];
if ([reports count] > 0) {
int max = MIN([CMCrashReporterGlobal numberOfMaximumReports],[reports count]);
if (max == 0) max = [reports count];
int i;
for (i = 0; i < max; i++)
[CMCrashReporter submitFile:[reports objectAtIndex:i]];
}
}
}
+(NSArray *)getReports
{
// (Snow) Leopard format is AppName_Year_Month_Day
NSString *prefix = @"RobloxPlayer";
NSMutableArray *array = [NSMutableArray array];
{
NSString *path = [@"~/Library/Logs/CrashReporter/" stringByExpandingTildeInPath];
NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:path];
NSString *file;
while (file = [dirEnum nextObject])
if ([file hasPrefix:prefix])
[array addObject:[[NSString stringWithFormat:@"~/Library/Logs/CrashReporter/%@",file] stringByExpandingTildeInPath]];
}
if (false)
{
NSString *path = [@"~/Library/Logs/DiagnosticReports/" stringByExpandingTildeInPath];
NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:path];
NSString *file;
while (file = [dirEnum nextObject])
if ([file hasPrefix:prefix])
[array addObject:[[NSString stringWithFormat:@"~/Library/Logs/DiagnosticReports/%@",file] stringByExpandingTildeInPath]];
}
return array;
}
@end