Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一剑流云
dbeaver
提交
3d14e996
D
dbeaver
项目概览
一剑流云
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3d14e996
编写于
12月 21, 2016
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#984 SSH tunnel invalidate fix
上级
9ac08e2c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
9 deletion
+17
-9
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
...l/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
+17
-9
未找到文件。
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/net/SSHTunnelImpl.java
浏览文件 @
3d14e996
...
...
@@ -46,6 +46,11 @@ public class SSHTunnelImpl implements DBWTunnel {
private
static
transient
JSch
jsch
;
private
transient
Session
session
;
// Saved config - used for tunnel invalidate
private
transient
int
savedLocalPort
;
private
transient
DBWHandlerConfiguration
savedConfiguration
;
private
transient
DBPConnectionConfiguration
savedConnectionInfo
;
@Override
public
DBPConnectionConfiguration
initializeTunnel
(
DBRProgressMonitor
monitor
,
DBPPlatform
platform
,
DBWHandlerConfiguration
configuration
,
DBPConnectionConfiguration
connectionInfo
)
throws
DBException
,
IOException
...
...
@@ -114,7 +119,10 @@ public class SSHTunnelImpl implements DBWTunnel {
}
catch
(
NumberFormatException
e
)
{
throw
new
DBException
(
"Bad database port number: "
+
dbPortString
);
}
int
localPort
=
findFreePort
(
platform
);
int
localPort
=
savedLocalPort
;
if
(
platform
!=
null
)
{
localPort
=
findFreePort
(
platform
);
}
try
{
if
(
jsch
==
null
)
{
jsch
=
new
JSch
();
...
...
@@ -150,6 +158,10 @@ public class SSHTunnelImpl implements DBWTunnel {
}
catch
(
JSchException
e
)
{
throw
new
DBException
(
"Cannot establish tunnel"
,
e
);
}
savedLocalPort
=
localPort
;
savedConfiguration
=
configuration
;
savedConnectionInfo
=
connectionInfo
;
connectionInfo
=
new
DBPConnectionConfiguration
(
connectionInfo
);
String
newPortValue
=
String
.
valueOf
(
localPort
);
// Replace database host/port and URL - let's use localhost
...
...
@@ -181,7 +193,7 @@ public class SSHTunnelImpl implements DBWTunnel {
@Override
public
void
invalidateHandler
(
DBRProgressMonitor
monitor
)
throws
DBException
,
IOException
{
boolean
isAlive
=
session
.
isConnected
();
boolean
isAlive
=
session
!=
null
&&
session
.
isConnected
();
if
(
isAlive
)
{
try
{
session
.
sendKeepAliveMsg
();
...
...
@@ -190,12 +202,8 @@ public class SSHTunnelImpl implements DBWTunnel {
}
}
if
(!
isAlive
)
{
session
.
disconnect
();
try
{
session
.
connect
();
}
catch
(
JSchException
e
)
{
throw
new
DBException
(
"Cannot initiate SSH connection"
,
e
);
}
closeTunnel
(
monitor
);
initializeTunnel
(
monitor
,
null
,
savedConfiguration
,
savedConnectionInfo
);
}
}
...
...
@@ -251,7 +259,7 @@ public class SSHTunnelImpl implements DBWTunnel {
@Override
public
void
log
(
int
level
,
String
message
)
{
String
levelStr
=
""
;
String
levelStr
;
switch
(
level
)
{
case
INFO:
levelStr
=
"INFO"
;
break
;
case
WARN:
levelStr
=
"WARN"
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录