@@ -8,7 +8,9 @@ import _ from 'lodash';
8
8
const actions = {
9
9
connect ( config ) {
10
10
return dispatch => {
11
- let sshErrorThrown = false
11
+ let sshErrorThrown = false ;
12
+ let redisErrorThrown = false ;
13
+ let redisErrorMessage ;
12
14
if ( config . ssh ) {
13
15
dispatch ( { type : 'updateConnectStatus' , data : 'SSH connecting...' } ) ;
14
16
const conn = new Client ( ) ;
@@ -26,7 +28,7 @@ const actions = {
26
28
} ) ;
27
29
} )
28
30
. on ( 'error' , err => {
29
- sshErrorThrown = true
31
+ sshErrorThrown = true ;
30
32
dispatch ( { type : 'disconnect' } ) ;
31
33
alert ( `SSH Error: ${ err . message } ` ) ;
32
34
} ) ;
@@ -85,8 +87,10 @@ const actions = {
85
87
if ( err . message === 'Ready check failed: NOAUTH Authentication required.' ) {
86
88
err . message = 'Redis Error: Access denied. Please double-check your password.' ;
87
89
}
88
- alert ( err . message ) ;
89
- dispatch ( { type : 'disconnect' } ) ;
90
+ if ( err . message !== 'Connection is closed.' ) {
91
+ alert ( err . message ) ;
92
+ redis . disconnect ( ) ;
93
+ }
90
94
return ;
91
95
}
92
96
const version = redis . serverInfo . redis_version ;
@@ -101,10 +105,17 @@ const actions = {
101
105
dispatch ( { type : 'connect' , data : { redis, config } } ) ;
102
106
} )
103
107
} ) ;
108
+ redis . once ( 'error' , function ( error ) {
109
+ redisErrorMessage = error ;
110
+ } ) ;
104
111
redis . once ( 'end' , function ( ) {
105
112
dispatch ( { type : 'disconnect' } ) ;
106
113
if ( ! sshErrorThrown ) {
107
- alert ( 'Redis Error: Connection failed' ) ;
114
+ let msg = 'Redis Error: Connection failed. ' ;
115
+ if ( redisErrorMessage ) {
116
+ msg += `(${ redisErrorMessage } )` ;
117
+ }
118
+ alert ( msg ) ;
108
119
}
109
120
} ) ;
110
121
}
0 commit comments