diff options
author | rowanbeentje <rowan@beent.je> | 2009-06-05 01:28:18 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2009-06-05 01:28:18 +0000 |
commit | 47148e0493710c989384ca172ba47c7433092c36 (patch) | |
tree | dab0febb9c15911ca4146d7a6abc7c7322bff2c7 | |
parent | 4e6c8e557f6dd132e159ff4841900d1b72331eea (diff) | |
download | sequelpro-47148e0493710c989384ca172ba47c7433092c36.tar.gz sequelpro-47148e0493710c989384ca172ba47c7433092c36.tar.bz2 sequelpro-47148e0493710c989384ca172ba47c7433092c36.zip |
- Make memory management for SSH tunnels explicit to improve thread interaction and reduce crashes
- Add Command-. shortcuts for cancel buttons on SSH dialogs
-rw-r--r-- | Interfaces/SSHQuestionDialog.xib | 193 | ||||
-rw-r--r-- | Source/SPSSHTunnel.m | 28 |
2 files changed, 123 insertions, 98 deletions
diff --git a/Interfaces/SSHQuestionDialog.xib b/Interfaces/SSHQuestionDialog.xib index 3b18a91c..d0c4e2e3 100644 --- a/Interfaces/SSHQuestionDialog.xib +++ b/Interfaces/SSHQuestionDialog.xib @@ -8,8 +8,6 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="469"/> - <integer value="368"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -55,18 +53,19 @@ <int key="NSvFlags">274</int> <string key="NSFrame">{{126, 60}, {477, 129}}</string> <reference key="NSSuperview" ref="414427165"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="296218965"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">272891904</int> <string key="NSContents"/> - <object class="NSFont" key="NSSupport" id="926333026"> + <object class="NSFont" key="NSSupport" id="535233726"> <string key="NSName">LucidaGrande</string> <double key="NSSize">1.300000e+01</double> <int key="NSfFlags">16</int> </object> <reference key="NSControlView" ref="958459073"/> - <object class="NSColor" key="NSBackgroundColor" id="440063573"> + <object class="NSColor" key="NSBackgroundColor" id="759566909"> <int key="NSColorSpace">6</int> <string key="NSCatalogName">System</string> <string key="NSColorName">controlColor</string> @@ -75,11 +74,11 @@ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> </object> </object> - <object class="NSColor" key="NSTextColor" id="857180797"> + <object class="NSColor" key="NSTextColor" id="1062846423"> <int key="NSColorSpace">6</int> <string key="NSCatalogName">System</string> <string key="NSColorName">controlTextColor</string> - <object class="NSColor" key="NSColor" id="587031165"> + <object class="NSColor" key="NSColor" id="1040187102"> <int key="NSColorSpace">3</int> <bytes key="NSWhite">MAA</bytes> </object> @@ -91,6 +90,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{510, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="414427165"/> + <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="915366670"> @@ -128,11 +128,12 @@ </object> <string key="NSFrame">{{20, 115}, {75, 74}}</string> <reference key="NSSuperview" ref="414427165"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSImageCell" key="NSCell" id="490596046"> <int key="NSCellFlags">130560</int> <int key="NSCellFlags2">33554432</int> - <object class="NSCustomResource" key="NSContents" id="493872852"> + <object class="NSCustomResource" key="NSContents" id="113855075"> <string key="NSClassName">NSImage</string> <string key="NSResourceName">appicon</string> </object> @@ -148,6 +149,7 @@ <int key="NSvFlags">289</int> <string key="NSFrame">{{414, 12}, {96, 32}}</string> <reference key="NSSuperview" ref="414427165"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="382904691"> <int key="NSCellFlags">67239424</int> @@ -156,9 +158,9 @@ <reference key="NSSupport" ref="313221240"/> <reference key="NSControlView" ref="472545742"/> <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">129</int> + <int key="NSButtonFlags2">268435585</int> <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> + <string key="NSKeyEquivalent">.</string> <int key="NSPeriodicDelay">200</int> <int key="NSPeriodicInterval">25</int> </object> @@ -180,6 +182,7 @@ </object> <string key="NSFrame">{{68, 113}, {32, 32}}</string> <reference key="NSSuperview" ref="414427165"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSImageCell" key="NSCell" id="406303847"> <int key="NSCellFlags">130560</int> @@ -198,11 +201,12 @@ </object> <string key="NSFrameSize">{620, 209}</string> <reference key="NSSuperview"/> + <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> - <object class="NSWindowTemplate" id="638910821"> + <object class="NSWindowTemplate" id="317330000"> <int key="NSWindowStyleMask">1</int> <int key="NSWindowBacking">2</int> <string key="NSWindowRect">{{196, 301}, {620, 209}}</string> @@ -211,40 +215,42 @@ <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> - <object class="NSView" key="NSWindowView" id="69459762"> + <object class="NSView" key="NSWindowView" id="800993241"> <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="596781589"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSTextField" id="882917083"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">274</int> <string key="NSFrame">{{126, 113}, {477, 76}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="994843376"> + <object class="NSTextFieldCell" key="NSCell" id="324489195"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">272891904</int> <string key="NSContents"/> - <reference key="NSSupport" ref="926333026"/> - <reference key="NSControlView" ref="596781589"/> - <reference key="NSBackgroundColor" ref="440063573"/> - <reference key="NSTextColor" ref="857180797"/> + <reference key="NSSupport" ref="535233726"/> + <reference key="NSControlView" ref="882917083"/> + <reference key="NSBackgroundColor" ref="759566909"/> + <reference key="NSTextColor" ref="1062846423"/> </object> </object> - <object class="NSButton" id="292904434"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSButton" id="881553485"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">289</int> <string key="NSFrame">{{510, 12}, {96, 32}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="918476288"> + <object class="NSButtonCell" key="NSCell" id="171126067"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">134217728</int> <string key="NSContents">OK</string> <reference key="NSSupport" ref="313221240"/> - <reference key="NSControlView" ref="292904434"/> + <reference key="NSControlView" ref="881553485"/> <int key="NSButtonFlags">-2038284033</int> <int key="NSButtonFlags2">129</int> <string key="NSAlternateContents"/> @@ -253,8 +259,8 @@ <int key="NSPeriodicInterval">25</int> </object> </object> - <object class="NSImageView" id="464904462"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSImageView" id="823624076"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">268</int> <object class="NSMutableSet" key="NSDragTypes"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -269,12 +275,13 @@ </object> </object> <string key="NSFrame">{{20, 115}, {75, 74}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> - <object class="NSImageCell" key="NSCell" id="1038501330"> + <object class="NSImageCell" key="NSCell" id="70636684"> <int key="NSCellFlags">130560</int> <int key="NSCellFlags2">33554432</int> - <reference key="NSContents" ref="493872852"/> + <reference key="NSContents" ref="113855075"/> <int key="NSAlign">0</int> <int key="NSScale">0</int> <int key="NSStyle">0</int> @@ -282,28 +289,29 @@ </object> <bool key="NSEditable">YES</bool> </object> - <object class="NSButton" id="421245814"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSButton" id="920337090"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">289</int> <string key="NSFrame">{{414, 12}, {96, 32}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="934536740"> + <object class="NSButtonCell" key="NSCell" id="811201853"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">134217728</int> <string key="NSContents">Cancel</string> <reference key="NSSupport" ref="313221240"/> - <reference key="NSControlView" ref="421245814"/> + <reference key="NSControlView" ref="920337090"/> <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">129</int> + <int key="NSButtonFlags2">268435585</int> <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> + <string key="NSKeyEquivalent">.</string> <int key="NSPeriodicDelay">200</int> <int key="NSPeriodicInterval">25</int> </object> </object> - <object class="NSImageView" id="331556700"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSImageView" id="736278290"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">268</int> <object class="NSMutableSet" key="NSDragTypes"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -318,9 +326,10 @@ </object> </object> <string key="NSFrame">{{68, 113}, {32, 32}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> - <object class="NSImageCell" key="NSCell" id="510630540"> + <object class="NSImageCell" key="NSCell" id="169063774"> <int key="NSCellFlags">130560</int> <int key="NSCellFlags2">33554432</int> <object class="NSCustomResource" key="NSContents"> @@ -334,18 +343,19 @@ </object> <bool key="NSEditable">YES</bool> </object> - <object class="NSSecureTextField" id="408102217"> - <reference key="NSNextResponder" ref="69459762"/> + <object class="NSSecureTextField" id="951010250"> + <reference key="NSNextResponder" ref="800993241"/> <int key="NSvFlags">294</int> <string key="NSFrame">{{129, 70}, {261, 22}}</string> - <reference key="NSSuperview" ref="69459762"/> + <reference key="NSSuperview" ref="800993241"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> - <object class="NSSecureTextFieldCell" key="NSCell" id="938809700"> + <object class="NSSecureTextFieldCell" key="NSCell" id="709544507"> <int key="NSCellFlags">343014976</int> <int key="NSCellFlags2">272630784</int> <string key="NSContents"/> <reference key="NSSupport" ref="313221240"/> - <reference key="NSControlView" ref="408102217"/> + <reference key="NSControlView" ref="951010250"/> <bool key="NSDrawsBackground">YES</bool> <object class="NSColor" key="NSBackgroundColor"> <int key="NSColorSpace">6</int> @@ -360,7 +370,7 @@ <int key="NSColorSpace">6</int> <string key="NSCatalogName">System</string> <string key="NSColorName">textColor</string> - <reference key="NSColor" ref="587031165"/> + <reference key="NSColor" ref="1040187102"/> </object> <object class="NSArray" key="NSAllowedInputLocales"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -371,6 +381,7 @@ </object> <string key="NSFrameSize">{620, 209}</string> <reference key="NSSuperview"/> + <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> @@ -415,7 +426,7 @@ <object class="IBActionConnection" key="connection"> <string key="label">closeSheet:</string> <reference key="source" ref="1021"/> - <reference key="destination" ref="292904434"/> + <reference key="destination" ref="881553485"/> </object> <int key="connectionID">480</int> </object> @@ -423,7 +434,7 @@ <object class="IBActionConnection" key="connection"> <string key="label">closeSheet:</string> <reference key="source" ref="1021"/> - <reference key="destination" ref="421245814"/> + <reference key="destination" ref="920337090"/> </object> <int key="connectionID">481</int> </object> @@ -431,7 +442,7 @@ <object class="IBOutletConnection" key="connection"> <string key="label">sshPasswordDialog</string> <reference key="source" ref="1021"/> - <reference key="destination" ref="638910821"/> + <reference key="destination" ref="317330000"/> </object> <int key="connectionID">482</int> </object> @@ -439,7 +450,7 @@ <object class="IBOutletConnection" key="connection"> <string key="label">sshPasswordText</string> <reference key="source" ref="1021"/> - <reference key="destination" ref="596781589"/> + <reference key="destination" ref="882917083"/> </object> <int key="connectionID">483</int> </object> @@ -447,7 +458,7 @@ <object class="IBOutletConnection" key="connection"> <string key="label">sshPasswordField</string> <reference key="source" ref="1021"/> - <reference key="destination" ref="408102217"/> + <reference key="destination" ref="951010250"/> </object> <int key="connectionID">488</int> </object> @@ -575,110 +586,110 @@ </object> <object class="IBObjectRecord"> <int key="objectID">468</int> - <reference key="object" ref="638910821"/> + <reference key="object" ref="317330000"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="69459762"/> + <reference ref="800993241"/> </object> <reference key="parent" ref="1049"/> </object> <object class="IBObjectRecord"> <int key="objectID">469</int> - <reference key="object" ref="69459762"/> + <reference key="object" ref="800993241"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="421245814"/> - <reference ref="292904434"/> - <reference ref="464904462"/> - <reference ref="596781589"/> - <reference ref="331556700"/> - <reference ref="408102217"/> + <reference ref="920337090"/> + <reference ref="881553485"/> + <reference ref="823624076"/> + <reference ref="882917083"/> + <reference ref="736278290"/> + <reference ref="951010250"/> </object> - <reference key="parent" ref="638910821"/> + <reference key="parent" ref="317330000"/> </object> <object class="IBObjectRecord"> <int key="objectID">470</int> - <reference key="object" ref="421245814"/> + <reference key="object" ref="920337090"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="934536740"/> + <reference ref="811201853"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">471</int> - <reference key="object" ref="292904434"/> + <reference key="object" ref="881553485"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="918476288"/> + <reference ref="171126067"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">472</int> - <reference key="object" ref="464904462"/> + <reference key="object" ref="823624076"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="1038501330"/> + <reference ref="70636684"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">473</int> - <reference key="object" ref="596781589"/> + <reference key="object" ref="882917083"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="994843376"/> + <reference ref="324489195"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">474</int> - <reference key="object" ref="331556700"/> + <reference key="object" ref="736278290"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="510630540"/> + <reference ref="169063774"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">475</int> - <reference key="object" ref="510630540"/> - <reference key="parent" ref="331556700"/> + <reference key="object" ref="169063774"/> + <reference key="parent" ref="736278290"/> </object> <object class="IBObjectRecord"> <int key="objectID">476</int> - <reference key="object" ref="994843376"/> - <reference key="parent" ref="596781589"/> + <reference key="object" ref="324489195"/> + <reference key="parent" ref="882917083"/> </object> <object class="IBObjectRecord"> <int key="objectID">477</int> - <reference key="object" ref="1038501330"/> - <reference key="parent" ref="464904462"/> + <reference key="object" ref="70636684"/> + <reference key="parent" ref="823624076"/> </object> <object class="IBObjectRecord"> <int key="objectID">478</int> - <reference key="object" ref="918476288"/> - <reference key="parent" ref="292904434"/> + <reference key="object" ref="171126067"/> + <reference key="parent" ref="881553485"/> </object> <object class="IBObjectRecord"> <int key="objectID">479</int> - <reference key="object" ref="934536740"/> - <reference key="parent" ref="421245814"/> + <reference key="object" ref="811201853"/> + <reference key="parent" ref="920337090"/> </object> <object class="IBObjectRecord"> <int key="objectID">484</int> - <reference key="object" ref="408102217"/> + <reference key="object" ref="951010250"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="938809700"/> + <reference ref="709544507"/> </object> - <reference key="parent" ref="69459762"/> + <reference key="parent" ref="800993241"/> </object> <object class="IBObjectRecord"> <int key="objectID">485</int> - <reference key="object" ref="938809700"/> - <reference key="parent" ref="408102217"/> + <reference key="object" ref="709544507"/> + <reference key="parent" ref="951010250"/> </object> </object> </object> diff --git a/Source/SPSSHTunnel.m b/Source/SPSSHTunnel.m index 79ea780c..d8332c14 100644 --- a/Source/SPSSHTunnel.m +++ b/Source/SPSSHTunnel.m @@ -35,13 +35,13 @@ */ - (id) initToHost:(NSString *) theHost port:(int) thePort login:(NSString *) theLogin tunnellingToPort:(int) targetPort onHost:(NSString *) targetHost { - if (!theHost || !thePort || !theLogin || !targetPort || !targetHost) return nil; + if (!theHost || !thePort || !targetPort || !targetHost) return nil; self = [super init]; // Store the connection settings as appropriate sshHost = [[NSString alloc] initWithString:theHost]; - sshLogin = [[NSString alloc] initWithString:theLogin]; + sshLogin = [[NSString alloc] initWithString:(theLogin?theLogin:@"")]; sshPort = thePort; if ([theHost isEqualToString:targetHost]) { remoteHost = [[NSString alloc] initWithString:@"127.0.0.1"]; @@ -54,8 +54,8 @@ lastError = nil; // Set up a connection for use by the tunnel process - tunnelConnectionName = [NSString stringWithFormat:@"SequelPro-%f", [[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] hash]]; - tunnelConnectionVerifyHash = [NSString stringWithFormat:@"%f", [[NSString stringWithFormat:@"%f%i", [[NSDate date] timeIntervalSince1970]] hash]]; + tunnelConnectionName = [[NSString alloc] initWithFormat:@"SequelPro-%f", [[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] hash]]; + tunnelConnectionVerifyHash = [[NSString alloc] initWithFormat:@"%f", [[NSString stringWithFormat:@"%f%i", [[NSDate date] timeIntervalSince1970]] hash]]; tunnelConnection = [[NSConnection defaultConnection] retain]; [tunnelConnection runInNewThread]; [tunnelConnection removeRunLoop:[NSRunLoop currentRunLoop]]; @@ -140,6 +140,7 @@ */ - (NSString *) lastError { + if (!lastError) return nil; return [NSString stringWithString:lastError]; } @@ -219,7 +220,7 @@ [task setLaunchPath: @"/usr/bin/ssh"]; // Set up the arguments for the task - taskArguments = [ NSMutableArray array ]; + taskArguments = [[NSMutableArray alloc] init]; [taskArguments addObject:@"-N"]; // Tunnel only [taskArguments addObject:@"-v"]; // Verbose mode for messages // [taskArguments addObject:@"-C"]; // TODO: compression? @@ -242,7 +243,7 @@ // Set up the environment for the task authenticationAppPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"TunnelPassphraseRequester"]; - taskEnvironment = [NSMutableDictionary dictionaryWithDictionary:[[NSProcessInfo processInfo] environment]]; + taskEnvironment = [[NSMutableDictionary alloc] initWithDictionary:[[NSProcessInfo processInfo] environment]]; [taskEnvironment removeObjectForKey: @"SSH_AGENT_PID"]; [taskEnvironment removeObjectForKey: @"SSH_AUTH_SOCK"]; [taskEnvironment setObject:authenticationAppPath forKey:@"SSH_ASKPASS"]; @@ -289,6 +290,7 @@ // If the task closed unexpectedly, alert appropriately if (connectionState != SPSSH_STATE_IDLE) { connectionState = SPSSH_STATE_IDLE; + if (lastError) [lastError release]; lastError = [[NSString alloc] initWithString:NSLocalizedString(@"The SSH Tunnel has unexpectedly closed.", @"SSH tunnel unexpectedly closed")]; if (delegate) [delegate performSelectorOnMainThread:stateChangeSelector withObject:self waitUntilDone:NO]; } @@ -299,6 +301,8 @@ object:[standardError fileHandleForReading]]; [task release], task = nil; [standardError release], standardError = nil; + [taskEnvironment release], taskEnvironment = nil; + [taskArguments release], taskArguments = nil; [pool release]; } @@ -472,7 +476,17 @@ } - (void)dealloc -{ +{ + [sshHost release]; + [sshLogin release]; + [remoteHost release]; + [tunnelConnectionName release]; + [tunnelConnectionVerifyHash release]; + [tunnelConnection release]; + if (password) [password release]; + if (keychainName) [keychainName release]; + if (keychainAccount) [keychainAccount release]; + [super dealloc]; } |