aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2013-02-20 01:22:45 +0000
committerrowanbeentje <rowan@beent.je>2013-02-20 01:22:45 +0000
commit6be2edae44406588125036771a6b030993ba58aa (patch)
tree3b5a6e93e0cf660f2b4e3229f7dce99ef5774785 /Source
parent36fa01d0c98481af4b6a17061ac94c0a5a0186fe (diff)
downloadsequelpro-6be2edae44406588125036771a6b030993ba58aa.tar.gz
sequelpro-6be2edae44406588125036771a6b030993ba58aa.tar.bz2
sequelpro-6be2edae44406588125036771a6b030993ba58aa.zip
- Default to disabling SSH multiplexing to avoid connection issues as per Issue #1457; leave multiplexing code present, but behind a preference. Run `defaults write com.sequelpro.SequelPro -boolean YES` to re-enable.
Diffstat (limited to 'Source')
-rw-r--r--Source/SPConnectionHandler.m7
-rw-r--r--Source/SPConstants.h1
-rw-r--r--Source/SPConstants.m1
-rw-r--r--Source/SPSSHTunnel.h1
-rw-r--r--Source/SPSSHTunnel.m8
5 files changed, 7 insertions, 11 deletions
diff --git a/Source/SPConnectionHandler.m b/Source/SPConnectionHandler.m
index ce42c17b..77cfe083 100644
--- a/Source/SPConnectionHandler.m
+++ b/Source/SPConnectionHandler.m
@@ -380,13 +380,6 @@ static NSString *SPLocalhostAddress = @"127.0.0.1";
if (newState == SPMySQLProxyIdle) {
- // If the connection closed unexpectedly, and muxing was enabled, disable muxing an re-try.
- if ([theTunnel taskExitedUnexpectedly] && [theTunnel connectionMuxingEnabled]) {
- [theTunnel setConnectionMuxingEnabled:NO];
- [theTunnel connect];
- return;
- }
-
#ifndef SP_CODA
[dbDocument setTitlebarStatus:NSLocalizedString(@"SSH Disconnected", @"SSH disconnected titlebar marker")];
#endif
diff --git a/Source/SPConstants.h b/Source/SPConstants.h
index 91e2492f..c321d1fa 100644
--- a/Source/SPConstants.h
+++ b/Source/SPConstants.h
@@ -418,6 +418,7 @@ extern NSString *SPBundleDeletedDefaultBundlesKey;
extern NSString *SPHiddenKeyFileVisibilityKey;
extern NSString *SPSelectionDetailTypeIndexed;
extern NSString *SPSelectionDetailTypePrimaryKeyed;
+extern NSString *SPSSHEnableMuxingPreference;
// URLs
extern NSString *SPDonationsURL;
diff --git a/Source/SPConstants.m b/Source/SPConstants.m
index 3ac465fb..cad10d95 100644
--- a/Source/SPConstants.m
+++ b/Source/SPConstants.m
@@ -224,6 +224,7 @@ NSString *SPBundleDeletedDefaultBundlesKey = @"deletedDefaultBundles";
NSString *SPHiddenKeyFileVisibilityKey = @"KeySelectionHiddenFilesVisibility";
NSString *SPSelectionDetailTypeIndexed = @"SelectionDetailTypeNSIndexSet";
NSString *SPSelectionDetailTypePrimaryKeyed = @"SelectionDetailTypePrimaryKeyedDetails";
+NSString *SPSSHEnableMuxingPreference = @"SSHMultiplexingEnabled";
// URLs
NSString *SPDonationsURL = @"http://www.sequelpro.com/donate/";
diff --git a/Source/SPSSHTunnel.h b/Source/SPSSHTunnel.h
index 25a98cc4..08c39c07 100644
--- a/Source/SPSSHTunnel.h
+++ b/Source/SPSSHTunnel.h
@@ -82,7 +82,6 @@
}
@property (readonly) BOOL passwordPromptCancelled;
-@property (readwrite) BOOL connectionMuxingEnabled;
@property (readonly) BOOL taskExitedUnexpectedly;
- (id)initToHost:(NSString *)theHost port:(NSInteger)thePort login:(NSString *)theLogin tunnellingToPort:(NSInteger)targetPort onHost:(NSString *)targetHost;
diff --git a/Source/SPSSHTunnel.m b/Source/SPSSHTunnel.m
index 448325de..536f2f43 100644
--- a/Source/SPSSHTunnel.m
+++ b/Source/SPSSHTunnel.m
@@ -44,7 +44,6 @@
@implementation SPSSHTunnel
@synthesize passwordPromptCancelled;
-@synthesize connectionMuxingEnabled;
@synthesize taskExitedUnexpectedly;
/*
@@ -75,8 +74,9 @@
debugMessagesLock = [[NSLock alloc] init];
answerAvailableLock = [[NSLock alloc] init];
- // Enable connection muxing on 10.7+, as 10.6 has problems with muxing (see Issue #1457)
- connectionMuxingEnabled = (systemVersion >= 0x1070);
+ // Enable connection muxing on 10.7+, but only if a preference is enabled; this is because
+ // muxing causes connection instability for a large number of users (see Issue #1457)
+ connectionMuxingEnabled = (systemVersion >= 0x1070) && [[NSUserDefaults standardUserDefaults] boolForKey:SPSSHEnableMuxingPreference];
// Set up a connection for use by the tunnel process
tunnelConnectionName = [[NSString alloc] initWithFormat:@"SequelPro-%lu", (unsigned long)[[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] hash]];
@@ -322,6 +322,8 @@
// Ensure that the connection can be used for only tunnels, not interactive
[taskArguments addObject:@"-N"];
+ // If explicitly enabled, activate connection multiplexing - note that this can cause connection
+ // instability on some setups, so is currently disabled by default.
if (connectionMuxingEnabled) {
// Enable automatic connection muxing/sharing, for faster connections