]> granicus.if.org Git - transmission/commitdiff
if delay is off, perform the port check probe without any timer; on 10.5, set the...
authorMitchell Livingston <livings124@transmissionbt.com>
Sat, 6 Sep 2008 21:57:13 +0000 (21:57 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Sat, 6 Sep 2008 21:57:13 +0000 (21:57 +0000)
macosx/PortChecker.m
macosx/PrefsController.m

index bd5af77a072a96f818ded0a6e978aaa073d8951f..b26a0a72cbd47d1a1662770bef32e3a717873e20 100644 (file)
 #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];
@@ -94,8 +85,6 @@
         [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
+
index e7dd23d47b40f03fc9a6ac2fe9dac0da08d782bc..52a697458d18f298e6fb0ddd0040b327b3cfd3c1 100644 (file)
@@ -365,8 +365,7 @@ tr_handle * fHandle;
             [fPortChecker cancelProbe];
             [fPortChecker release];
         }
-        fPortChecker = [[PortChecker alloc] initForPort: fPeerPort
-            delay: tr_sessionIsPortForwardingEnabled(fHandle) withDelegate: self];
+        fPortChecker = [[PortChecker alloc] initForPort: fPeerPort delay: tr_sessionIsPortForwardingEnabled(fHandle) withDelegate: self];
     }
 }