X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/da05d51282a00722e05f2c777db5cc3d0623d348..2404965b693451fd71dcffd06eb82695e9085389:/NetworkController.m diff --git a/NetworkController.m b/NetworkController.m index 1e7a230..49b8321 100755 --- a/NetworkController.m +++ b/NetworkController.m @@ -69,20 +69,24 @@ 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]; + serverPort = [[[NSSocketPort alloc] initWithTCPPort:SERVER_PORT] autorelease]; serverConnection = [[NSConnection alloc] initWithReceivePort:serverPort sendPort:serverPort]; - [serverConnection setRootObject:[[NetworkObject alloc] init]]; + clientProxy = [[NetworkObject alloc] init]; + [serverConnection setRootObject:[clientProxy autorelease]]; [serverConnection registerName:@"ITMTPlayerHost"]; NS_HANDLER [[serverConnection rootObject] release]; + [serverConnection setRootObject:nil]; [serverConnection release]; [serverPort release]; ITDebugLog(@"Error starting server!"); + return; NS_ENDHANDLER ITDebugLog(@"Started server."); if (!name) { @@ -102,12 +106,13 @@ static NetworkController *sharedController; } [service publish]; serverOn = YES; + ITDebugLog(@"Server service published."); } else if (serverOn && !status && [serverConnection isValid]) { //Turn off [service stop]; [serverConnection registerName:nil]; - [[serverConnection rootObject] release]; [serverConnection release]; + [clientProxy release]; ITDebugLog(@"Stopped server."); serverOn = NO; } @@ -133,11 +138,12 @@ static NetworkController *sharedController; clientConnection = [[NSConnection connectionWithReceivePort:nil sendPort:clientPort] retain]; [clientConnection setReplyTimeout:5]; clientProxy = [[clientConnection rootProxy] retain]; + connectedToServer = YES; NS_HANDLER [clientConnection release]; [clientPort release]; ITDebugLog(@"Connection to host failed: %@", host); - return NO; + return 0; NS_ENDHANDLER if (!clientProxy) { @@ -172,7 +178,6 @@ static NetworkController *sharedController; ITDebugLog(@"Connected to host: %@", host); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(disconnect) name:NSConnectionDidDieNotification object:clientConnection]; - connectedToServer = YES; return 1; } @@ -282,7 +287,6 @@ static NetworkController *sharedController; - (void)netServiceDidResolveAddress:(NSNetService *)sender { ITDebugLog(@"Resolved service named %@.", [sender name]); - NSLog(@"Resolved service named %@.", [sender name]); [[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil]; [sender stop]; }