X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/aeae287077a886690921baaea0a0f1149bc891db..f2cd38f53e8a04284b9f6db3dbf704a96063d67d:/NetworkController.m?ds=inline diff --git a/NetworkController.m b/NetworkController.m index d5c8465..f2989e3 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 autorelease]]; + [serverConnection setRootObject:rootObject]; + [rootObject makeValid]; [serverConnection registerName:@"ITMTPlayerHost"]; NS_HANDLER - [[serverConnection rootObject] release]; [serverConnection setRootObject:nil]; [serverConnection release]; [serverPort release]; @@ -110,8 +111,12 @@ static NetworkController *sharedController; } else if (serverOn && !status && [serverConnection isValid]) { //Turn off [service stop]; - [clientProxy invalidate]; + [service release]; + [rootObject invalidate]; [serverConnection registerName:nil]; + [serverConnection invalidate]; + //[serverConnection setRootObject:nil]; + //[[serverConnection sendPort] autorelease]; [serverConnection release]; ITDebugLog(@"Stopped server."); serverOn = NO; @@ -236,6 +241,18 @@ static NetworkController *sharedController; return valid; } +- (void)resetServerName +{ + if ([self isServerOn]) { + [service stop]; + [service release]; + service = [[NSNetService alloc] initWithDomain:@"" + type:@"_mttp._tcp." + name:[[NSUserDefaults standardUserDefaults] stringForKey:@"sharedPlayerName"] + port:SERVER_PORT]; + } +} + - (BOOL)isServerOn { return serverOn;