#define CHECKER_URL @"http://portcheck.transmissionbt.com/%d"
#define CHECK_FIRE 3.0
+@interface PortChecker (Private)
+
+- (void) startProbe;
+
+@end
+
@implementation PortChecker
- (id) initForPort: (int) portNumber delay: (BOOL) delay withDelegate: (id) delegate
fPortNumber = portNumber;
fStatus = PORT_STATUS_CHECKING;
- fTimer = [NSTimer scheduledTimerWithTimeInterval: (delay ? CHECK_FIRE : 0.1) target: self
- selector: @selector(startProbe) userInfo: nil repeats: NO];
+ if (delay)
+ fTimer = [NSTimer scheduledTimerWithTimeInterval: CHECK_FIRE target: self
+ selector: @selector(startProbe) userInfo: nil repeats: NO];
+ else
+ [self startProbe];
}
return self;
return fStatus;
}
-- (void) startProbe
-{
- fTimer = nil;
-
- NSURLRequest * portProbeRequest = [NSURLRequest requestWithURL: [NSURL URLWithString:
- [NSString stringWithFormat: CHECKER_URL, fPortNumber]] cachePolicy:
- [NSApp isOnLeopardOrBetter] ? NSURLRequestReloadIgnoringLocalCacheData : NSURLRequestReloadIgnoringCacheData
- timeoutInterval: 15.0];
-
- if ((fConnection = [[NSURLConnection alloc] initWithRequest: portProbeRequest delegate: self]))
- fPortProbeData = [[NSMutableData alloc] init];
- else
- {
- NSLog(@"Unable to get port status: failed to initiate connection");
- [self callBackWithStatus: PORT_STATUS_ERROR];
- }
-}
-
- (void) cancelProbe
{
[fTimer invalidate];
[fDelegate performSelectorOnMainThread: @selector(portCheckerDidFinishProbing:) withObject: self waitUntilDone: NO];
}
-#pragma mark NSURLConnection delegate methods
-
- (void) connection: (NSURLConnection *) connection didReceiveResponse: (NSURLResponse *) response
{
[fPortProbeData setLength: 0];
}
@end
+
+@implementation PortChecker (Private)
+
+- (void) startProbe
+{
+ fTimer = nil;
+
+ NSURLRequest * portProbeRequest = [NSURLRequest requestWithURL: [NSURL URLWithString:
+ [NSString stringWithFormat: CHECKER_URL, fPortNumber]] cachePolicy:
+ [NSApp isOnLeopardOrBetter] ? NSURLRequestReloadIgnoringLocalAndRemoteCacheData : NSURLRequestReloadIgnoringCacheData
+ timeoutInterval: 15.0];
+
+ if ((fConnection = [[NSURLConnection alloc] initWithRequest: portProbeRequest delegate: self]))
+ fPortProbeData = [[NSMutableData alloc] init];
+ else
+ {
+ NSLog(@"Unable to get port status: failed to initiate connection");
+ [self callBackWithStatus: PORT_STATUS_ERROR];
+ }
+}
+
+@end
+