-/*
- * MenuTunes
- * NetworkController
- * Rendezvous network controller
- *
- * Original Author : Kent Sutherland <ksuther@ithinksw.com>
- * Responsibility : Kent Sutherland <ksuther@ithinksw.com>
- *
- * Copyright (c) 2003 iThink Software.
- * All Rights Reserved
- *
- */
-
#import "NetworkController.h"
#import "MainController.h"
#import "NetworkObject.h"
clientPort = [[NSSocketPort alloc] initRemoteWithTCPPort:SERVER_PORT
host:host];
clientConnection = [[NSConnection connectionWithReceivePort:nil sendPort:clientPort] retain];
- [clientConnection setReplyTimeout:5];
+ [clientConnection setReplyTimeout:10];
clientProxy = [[clientConnection rootProxy] retain];
connectedToServer = YES;
NS_HANDLER
if (!clientProxy) {
ITDebugLog(@"Null proxy! Couldn't connect!");
[self disconnect];
- return NO;
+ return 0;
}
if ([clientProxy requiresPassword]) {
{
NSData *fullPass = [[NSUserDefaults standardUserDefaults] dataForKey:@"connectPassword"];
unsigned char buffer;
- NSConnection *testConnection;
- NSSocketPort *testPort;
+ NSConnection *testConnection = nil;
+ NSSocketPort *testPort = nil;
NetworkObject *tempProxy;
BOOL valid;
ITDebugLog(@"Checking for shared remote at %@.", host);
testPort = [[NSSocketPort alloc] initRemoteWithTCPPort:SERVER_PORT
host:host];
testConnection = [[NSConnection connectionWithReceivePort:nil sendPort:testPort] retain];
- [testConnection setReplyTimeout:2];
- [testConnection setRequestTimeout:2];
+ [testConnection setReplyTimeout:5];
+ [testConnection setRequestTimeout:5];
tempProxy = (NetworkObject *)[testConnection rootProxy];
[tempProxy serverName];
valid = [tempProxy isValid];
ITDebugLog(@"Found service named %@.", [aNetService name]);
[remoteServices addObject:aNetService];
[aNetService setDelegate:self];
- [aNetService resolve];
+ //Figure out if it responds to the 10.4 method
+ if ([aNetService respondsToSelector:@selector(resolveWithTimeout:)]) {
+ (void)[aNetService resolveWithTimeout:5.0];
+ } else {
+ [aNetService resolve];
+ }
if (!moreComing) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil];
}
ITDebugLog(@"Resolved service named %@.", [sender name]);
[[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"useSharedPlayer"] && !connectedToServer) {
- [[MainController sharedController] checkForRemoteServer];
+ [[MainController sharedController] checkForRemoteServerAndConnectImmediately:NO];
}
[sender stop];
}