From a740aa2625df2c0ed21ed7118bd8ab5faec375b8 Mon Sep 17 00:00:00 2001 From: Nelson Billing Date: Wed, 29 Jul 2020 16:28:25 -0700 Subject: Fix Mac symupload non-XCode builds. Change-Id: Ic4924032faba83fc14f62feaac9a97bbfd0971ed Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2324311 Reviewed-by: Mark Mentovai --- src/tools/mac/symupload/SymbolCollectorClient.m | 247 ------------------------ 1 file changed, 247 deletions(-) delete mode 100644 src/tools/mac/symupload/SymbolCollectorClient.m (limited to 'src/tools/mac/symupload/SymbolCollectorClient.m') diff --git a/src/tools/mac/symupload/SymbolCollectorClient.m b/src/tools/mac/symupload/SymbolCollectorClient.m deleted file mode 100644 index 38103ccb..00000000 --- a/src/tools/mac/symupload/SymbolCollectorClient.m +++ /dev/null @@ -1,247 +0,0 @@ -// Copyright (c) 2019, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * 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. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "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 COPYRIGHT -// OWNER OR CONTRIBUTORS 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. - -#import "SymbolCollectorClient.h" - -#import "HTTPGetRequest.h" -#import "HTTPSimplePostRequest.h" - -@implementation UploadURLResponse - -//============================================================================= -- (id)initWithUploadURL:(NSString *)uploadURL - withUploadKey:(NSString *)uploadKey { - if (self = [super init]) { - uploadURL_ = [uploadURL copy]; - uploadKey_ = [uploadKey copy]; - } - return self; -} - -//============================================================================= -- (void)dealloc { - [uploadURL_ release]; - [uploadKey_ release]; - - [super dealloc]; -} - -//============================================================================= -- (NSString*)uploadURL { - return uploadURL_; -} - -//============================================================================= -- (NSString*)uploadKey { - return uploadKey_; -} -@end - -@implementation SymbolCollectorClient - -//============================================================================= -+ (SymbolStatus)CheckSymbolStatus:(NSString *)APIURL - withAPIKey:(NSString *)APIKey - withDebugFile:(NSString *)debugFile - withDebugID:(NSString *)debugID { - NSURL* URL = [NSURL URLWithString:[NSString stringWithFormat: - @"%@/v1/symbols/%@/%@:checkStatus" - @"?key=%@", - APIURL, - debugFile, - debugID, - APIKey]]; - - HTTPGetRequest* getRequest = [[HTTPGetRequest alloc] initWithURL:URL]; - NSError *error = nil; - NSData *data = [getRequest send:&error]; - NSString *result = [[NSString alloc] initWithData:data - encoding:NSUTF8StringEncoding]; - int responseCode = [[getRequest response] statusCode]; - [getRequest release]; - - if (error || responseCode != 200) { - fprintf(stdout, "Failed to check symbol status.\n"); - fprintf(stdout, "Response code: %d\n", responseCode); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return SymbolStatusUnknown; - } - - error = nil; - NSRegularExpression* statusRegex = [NSRegularExpression - regularExpressionWithPattern: - @"\"status\": \"([^\"]+)\"" - options:0 - error:&error]; - NSArray* matches = [statusRegex - matchesInString:result - options:0 - range: NSMakeRange(0, [result length])]; - if ([matches count] != 1) { - fprintf(stdout, "Failed to parse check symbol status response."); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return SymbolStatusUnknown; - } - - NSString* status = [result substringWithRange:[matches[0] rangeAtIndex:1]]; - [result release]; - - return [status isEqualToString:@"FOUND"] ? - SymbolStatusFound : - SymbolStatusMissing; -} - -//============================================================================= -+ (UploadURLResponse *)CreateUploadURL:(NSString *)APIURL - withAPIKey:(NSString *)APIKey { - NSURL* URL = [NSURL URLWithString:[NSString stringWithFormat: - @"%@/v1/uploads:create?key=%@", - APIURL, - APIKey]]; - - HTTPSimplePostRequest* postRequest = [[HTTPSimplePostRequest alloc] - initWithURL:URL]; - NSError *error = nil; - NSData* data = [postRequest send:&error]; - NSString *result = [[NSString alloc] initWithData:data - encoding:NSUTF8StringEncoding]; - int responseCode = [[postRequest response] statusCode]; - [postRequest release]; - - if (error || responseCode != 200) { - fprintf(stdout, "Failed to create upload URL.\n"); - fprintf(stdout, "Response code: %d\n", responseCode); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return nil; - } - - // Note camel-case rather than underscores. - NSRegularExpression* uploadURLRegex = [NSRegularExpression - regularExpressionWithPattern: - @"\"uploadUrl\": \"([^\"]+)\"" - options:0 - error:&error]; - NSRegularExpression* uploadKeyRegex = [NSRegularExpression - regularExpressionWithPattern: - @"\"uploadKey\": \"([^\"]+)\"" - options:0 - error:&error]; - - NSArray* uploadURLMatches = [uploadURLRegex - matchesInString:result - options:0 - range: NSMakeRange(0, [result length])]; - NSArray* uploadKeyMatches = [uploadKeyRegex - matchesInString:result - options:0 - range: NSMakeRange(0, [result length])]; - if ([uploadURLMatches count] != 1 || [uploadKeyMatches count] != 1) { - fprintf(stdout, "Failed to parse create url response."); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return nil; - } - NSString* uploadURL = [result - substringWithRange:[uploadURLMatches[0] - rangeAtIndex:1]]; - NSString* uploadKey = [result - substringWithRange:[uploadKeyMatches[0] - rangeAtIndex:1]]; - - return [[UploadURLResponse alloc] initWithUploadURL:uploadURL - withUploadKey:uploadKey]; -} - -//============================================================================= -+ (CompleteUploadResult)CompleteUpload:(NSString *)APIURL - withAPIKey:(NSString *)APIKey - withUploadKey:(NSString *)uploadKey - withDebugFile:(NSString *)debugFile - withDebugID:(NSString *)debugID { - NSURL* URL = [NSURL URLWithString:[NSString stringWithFormat: - @"%@/v1/uploads/%@:complete?key=%@", - APIURL, - uploadKey, - APIKey]]; - NSString* body = [NSString stringWithFormat: - @"{ symbol_id: { debug_file: \"%@\", debug_id: \"%@\" } }", - debugFile, - debugID]; - - HTTPSimplePostRequest* postRequest = [[HTTPSimplePostRequest alloc] - initWithURL:URL]; - [postRequest setBody:body]; - [postRequest setContentType:@"application/json"]; - - NSError *error = nil; - NSData* data = [postRequest send:&error]; - NSString *result = [[NSString alloc] initWithData:data - encoding:NSUTF8StringEncoding]; - int responseCode = [[postRequest response] statusCode]; - [postRequest release]; - - if (error || responseCode != 200) { - fprintf(stdout, "Failed to complete upload URL.\n"); - fprintf(stdout, "Response code: %d\n", responseCode); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return CompleteUploadResultError; - } - - // Note camel-case rather than underscores. - NSRegularExpression* completeResultRegex = [NSRegularExpression - regularExpressionWithPattern: - @"\"result\": \"([^\"]+)\"" - options:0 - error:&error]; - - NSArray* completeResultMatches = [completeResultRegex - matchesInString:result - options:0 - range: NSMakeRange(0, [result length])]; - - if ([completeResultMatches count] != 1) { - fprintf(stdout, "Failed to parse complete upload response."); - fprintf(stdout, "Response:\n"); - fprintf(stdout, "%s\n", [result UTF8String]); - return nil; - } - NSString* completeResult = [result - substringWithRange:[completeResultMatches[0] - rangeAtIndex:1]]; - [result release]; - - return ([completeResult isEqualToString:@"DUPLICATE_DATA"]) ? - CompleteUploadResultDuplicateData : - CompleteUploadResultOk; -} -@end -- cgit v1.2.1