From: Kent Sutherland Date: Wed, 10 Dec 2003 00:06:53 +0000 (+0000) Subject: Weeeee. Hopefully fixed more network bugs. X-Git-Tag: v1.2~16 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/e6737bc05855fb976e0126e85b436c91d19246b9 Weeeee. Hopefully fixed more network bugs. --- diff --git a/NetworkController.h b/NetworkController.h index 1f1f799..57eee2e 100755 --- a/NetworkController.h +++ b/NetworkController.h @@ -24,11 +24,11 @@ NSMutableArray *remoteServices; NSConnection *serverConnection, *clientConnection; - NSSocketPort *clientPort; + NSSocketPort *clientPort, *serverPort; NSString *remoteHost; BOOL serverOn, clientConnected, connectedToServer; NSData *serverPass, *clientPass; - NetworkObject *clientProxy; + NetworkObject *rootObject, *clientProxy; } + (NetworkController *)sharedController; diff --git a/NetworkController.m b/NetworkController.m index 70994df..6c9631c 100755 --- a/NetworkController.m +++ b/NetworkController.m @@ -33,6 +33,8 @@ static NetworkController *sharedController; sharedController = self; browser = [[NSNetServiceBrowser alloc] init]; [browser setDelegate:self]; + rootObject = [[NetworkObject alloc] init]; + serverPort = [[NSSocketPort alloc] initWithTCPPort:SERVER_PORT]; } return self; } @@ -45,6 +47,8 @@ static NetworkController *sharedController; } [serverPass release]; [clientPass release]; + [serverPort release]; + [rootObject release]; [clientProxy release]; [remoteServices release]; [browser release]; @@ -69,19 +73,16 @@ static NetworkController *sharedController; { if (!serverOn && status) { NSString *name = [[NSUserDefaults standardUserDefaults] stringForKey:@"sharedPlayerName"]; - NSPort *serverPort; unsigned char buffer; NSData *fullPass; //Turn on NS_DURING - serverPort = [[[NSSocketPort alloc] initWithTCPPort:SERVER_PORT] autorelease]; serverConnection = [[NSConnection alloc] initWithReceivePort:serverPort sendPort:serverPort]; - clientProxy = [[NetworkObject alloc] init]; - [serverConnection setRootObject:clientProxy]; + [serverConnection setRootObject:rootObject]; + [rootObject makeValid]; [serverConnection registerName:@"ITMTPlayerHost"]; NS_HANDLER - [clientProxy release]; [serverConnection setRootObject:nil]; [serverConnection release]; [serverPort release]; @@ -110,9 +111,11 @@ static NetworkController *sharedController; } else if (serverOn && !status && [serverConnection isValid]) { //Turn off [service stop]; - [clientProxy invalidate]; + [rootObject invalidate]; [serverConnection registerName:nil]; - [serverConnection setRootObject:nil]; + [serverConnection invalidate]; + //[serverConnection setRootObject:nil]; + //[[serverConnection sendPort] autorelease]; [serverConnection release]; ITDebugLog(@"Stopped server."); serverOn = NO; diff --git a/NetworkObject.h b/NetworkObject.h index 0e185d4..5a3781b 100755 --- a/NetworkObject.h +++ b/NetworkObject.h @@ -30,5 +30,6 @@ - (BOOL)sendPassword:(NSData *)password; - (void)invalidate; +- (void)makeValid; - (BOOL)isValid; @end diff --git a/NetworkObject.m b/NetworkObject.m index a29c3f5..3c941dc 100755 --- a/NetworkObject.m +++ b/NetworkObject.m @@ -72,6 +72,11 @@ _valid = NO; } +- (void)makeValid +{ + _valid = YES; +} + - (BOOL)isValid { return _valid; diff --git a/StatusWindowController.m b/StatusWindowController.m index 293e35c..0a83819 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -276,5 +276,4 @@ static StatusWindowController *sharedController; [_window setLocked:YES]; } - @end \ No newline at end of file diff --git a/libValidate.a b/libValidate.a index 6e7e58d..eb23cd2 100755 Binary files a/libValidate.a and b/libValidate.a differ