From b837b70f50ce4d33628f406380c447ff8e70d85a Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Thu, 23 Feb 2006 22:26:21 +0000 Subject: [PATCH] Using the universal libValidate. Fixed a small Audioscrobbler crash that could happen if the Audioscrobbler servers died. --- AudioscrobblerController.m | 11 +++---- MenuTunes.xcodeproj/project.pbxproj | 44 +++++++++++++++++++++------- libValidate.a | Bin 8056 -> 8056 bytes libValidateUniversal.a | Bin 0 -> 11936 bytes validate.h | 14 +++++++++ 5 files changed, 54 insertions(+), 15 deletions(-) create mode 100755 libValidateUniversal.a diff --git a/AudioscrobblerController.m b/AudioscrobblerController.m index bc56007..05a3a07 100644 --- a/AudioscrobblerController.m +++ b/AudioscrobblerController.m @@ -43,7 +43,7 @@ static AudioscrobblerController *_sharedController = nil; _postURL = [NSURL URLWithString:@"http://audioscrobbler.com/"];*/ _delayDate = [[NSDate date] retain]; - _responseData = nil; + _responseData = [[NSMutableData alloc] init]; _tracks = [[NSMutableArray alloc] init]; _submitTracks = [[NSMutableArray alloc] init]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAudioscrobblerNotification:) name:@"AudioscrobblerHandshakeComplete" object:self]; @@ -96,7 +96,7 @@ static AudioscrobblerController *_sharedController = nil; [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:nil userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]]; _currentStatus = AudioscrobblerRequestingHandshakeStatus; - _responseData = [[NSMutableData alloc] init]; + //_responseData = [[NSMutableData alloc] init]; [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:15] delegate:self]; } } @@ -223,7 +223,8 @@ static AudioscrobblerController *_sharedController = nil; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[requestString dataUsingEncoding:NSUTF8StringEncoding]]; _currentStatus = AudioscrobblerSubmittingTracksStatus; - _responseData = [[NSMutableData alloc] init]; + //_responseData = [[NSMutableData alloc] init]; + [_responseData setData:nil]; [NSURLConnection connectionWithRequest:request delegate:self]; [requestString release]; [request release]; @@ -247,7 +248,7 @@ static AudioscrobblerController *_sharedController = nil; - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { - [_responseData release]; + [_responseData setData:nil]; [_lastStatus release]; _lastStatus = [[NSString stringWithFormat:NSLocalizedString(@"audioscrobbler_error", @"Error - %@"), [error localizedDescription]] retain]; [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:self userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]]; @@ -338,7 +339,7 @@ static AudioscrobblerController *_sharedController = nil; _lastStatus = [NSLocalizedString(key, comment) retain]; [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:nil userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]]; [string release]; - [_responseData release]; + [_responseData setData:nil]; } -(NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse diff --git a/MenuTunes.xcodeproj/project.pbxproj b/MenuTunes.xcodeproj/project.pbxproj index cac7557..4dd83a4 100755 --- a/MenuTunes.xcodeproj/project.pbxproj +++ b/MenuTunes.xcodeproj/project.pbxproj @@ -11,7 +11,7 @@ 3739DDA408CFA0C600CCFBC6 /* PlaylistNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */; }; 3739DDA508CFA0C600CCFBC6 /* PlaylistNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3739DDA108CFA0C600CCFBC6 /* PlaylistNode.h */; }; 3739DDA608CFA0C600CCFBC6 /* PlaylistNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */; }; - 3740716D05ACE20500CC2142 /* libValidate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3740716C05ACE20500CC2142 /* libValidate.a */; }; + 3769DD1709A01C0700573A04 /* libValidateUniversal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3769DD1609A01C0700573A04 /* libValidateUniversal.a */; }; 3798C6B6091874600004C420 /* AudioscrobblerController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3798C6B4091874600004C420 /* AudioscrobblerController.h */; }; 3798C6B7091874600004C420 /* AudioscrobblerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3798C6B5091874600004C420 /* AudioscrobblerController.m */; }; 37A1EBDB091F07F700C2CE55 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A1EBDA091F07F700C2CE55 /* Security.framework */; }; @@ -242,7 +242,7 @@ 32CA4F630368D1EE00C91783 /* MenuTunes_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTunes_Prefix.pch; sourceTree = ""; }; 3739DDA108CFA0C600CCFBC6 /* PlaylistNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaylistNode.h; sourceTree = ""; }; 3739DDA208CFA0C600CCFBC6 /* PlaylistNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlaylistNode.m; sourceTree = ""; }; - 3740716C05ACE20500CC2142 /* libValidate.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libValidate.a; sourceTree = ""; }; + 3769DD1609A01C0700573A04 /* libValidateUniversal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libValidateUniversal.a; sourceTree = ""; }; 3798C6B4091874600004C420 /* AudioscrobblerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioscrobblerController.h; sourceTree = ""; }; 3798C6B5091874600004C420 /* AudioscrobblerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioscrobblerController.m; sourceTree = ""; }; 37A1EBDA091F07F700C2CE55 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = ""; }; @@ -343,8 +343,8 @@ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, 7C95A0E905A92B0700B4F576 /* libcrypto.dylib in Frameworks */, 7C95A0F005A92B4800B4F576 /* Carbon.framework in Frameworks */, - 3740716D05ACE20500CC2142 /* libValidate.a in Frameworks */, 37A1EBDB091F07F700C2CE55 /* Security.framework in Frameworks */, + 3769DD1709A01C0700573A04 /* libValidateUniversal.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -398,7 +398,7 @@ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 7C95A0EF05A92B4800B4F576 /* Carbon.framework */, 37A1EBDA091F07F700C2CE55 /* Security.framework */, - 3740716C05ACE20500CC2142 /* libValidate.a */, + 3769DD1609A01C0700573A04 /* libValidateUniversal.a */, 7C95A0E805A92B0700B4F576 /* libcrypto.dylib */, ); name = "Linked Frameworks"; @@ -1169,12 +1169,16 @@ GCC_WARN_UNKNOWN_PRAGMAS = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = .; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SRCROOT)", + ); MACOSX_DEPLOYMENT_TARGET = 10.2; OPTIMIZATION_CFLAGS = "-O0"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = "-bind_at_load"; PRODUCT_NAME = MenuTunes; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -1200,11 +1204,15 @@ GCC_WARN_UNKNOWN_PRAGMAS = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = .; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SRCROOT)", + ); MACOSX_DEPLOYMENT_TARGET = 10.2; OTHER_CFLAGS = ""; OTHER_LDFLAGS = "-bind_at_load"; PRODUCT_NAME = MenuTunes; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -1228,11 +1236,15 @@ GCC_WARN_UNKNOWN_PRAGMAS = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = .; + LIBRARY_SEARCH_PATHS = ( + ., + "$(SRCROOT)", + ); MACOSX_DEPLOYMENT_TARGET = 10.2; OTHER_CFLAGS = ""; OTHER_LDFLAGS = "-bind_at_load"; PRODUCT_NAME = MenuTunes; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; WARNING_CFLAGS = ( "-Wmost", "-Wno-four-char-constants", @@ -1245,24 +1257,36 @@ 7C182AD408A84C6300A098F8 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + ppc, + i386, + ); MACOSX_DEPLOYMENT_TARGET = 10.2; - SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Debug; }; 7C182AD508A84C6300A098F8 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + ppc, + i386, + ); MACOSX_DEPLOYMENT_TARGET = 10.2; - SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Release; }; 7C182AD608A84C6300A098F8 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + ppc, + i386, + ); MACOSX_DEPLOYMENT_TARGET = 10.2; - SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Default; }; diff --git a/libValidate.a b/libValidate.a index d2413649b6a295092448a85e54392c770a43bfc3..c370fb36fb2055163c7d497a728a1873bbea57fa 100755 GIT binary patch delta 19 acmexi_rq?26o-j{si~2XiNQvtFnIt*?FIb+ delta 19 acmexi_rq?26o;{?iGi_!spUqcFnIt+4h94O diff --git a/libValidateUniversal.a b/libValidateUniversal.a new file mode 100755 index 0000000000000000000000000000000000000000..0cdead4b1a2afceb366a3b09df18fac6befae62c GIT binary patch literal 11936 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 U)Bmsx{m+%3(^95?oAUGj00ck4CIA2c literal 0 HcmV?d00001 diff --git a/validate.h b/validate.h index 4e5f639..bfc3627 100755 --- a/validate.h +++ b/validate.h @@ -11,6 +11,7 @@ extern "C" { #endif + typedef unsigned char* eSellerate_String; typedef short eSellerate_DaysSince2000; @@ -27,6 +28,19 @@ eSellerate_DaysSince2000 eSellerate_ValidateSerialNumber ( * if invalid: 0 */ +eSellerate_DaysSince2000 eWeb_ValidateSerialNumber ( + const char *serialNumber, /* "C" string */ + const char *nameBasedKey, /* "C" string (nil if unneeded) */ + const char *extraDataKey, /* "C" string (nil if unneeded) */ + const char *publisherKey /* "C" string (nil if unneeded) */ +); +/* + * return codes: + * if valid: date (days since January 1 2000) of expiration or (non-expiring) purchase + * if invalid: 0 + */ + + eSellerate_DaysSince2000 eSellerate_Today ( ); /* days from 1/1/2000 to today */ #ifdef __cplusplus -- 2.20.1